serial_zynq: Migrate to Zynq clock framework

Remove hard coded frequencies and use Zynq's clock framework to obtain
the UART clock frequency.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
Soren Brinkmann 2013-11-21 13:38:55 -08:00 committed by Michal Simek
parent 97598fcf10
commit 19605e2e03

View File

@ -10,6 +10,7 @@
#include <asm/io.h>
#include <linux/compiler.h>
#include <serial.h>
#include <asm/arch/clk.h>
#include <asm/arch/hardware.h>
#define ZYNQ_UART_SR_TXFULL 0x00000010 /* TX FIFO full */
@ -45,23 +46,13 @@ static struct uart_zynq *uart_zynq_ports[2] = {
# define CONFIG_ZYNQ_SERIAL_BAUDRATE1 CONFIG_BAUDRATE
#endif
#if !defined(CONFIG_ZYNQ_SERIAL_CLOCK0)
# define CONFIG_ZYNQ_SERIAL_CLOCK0 50000000
#endif
#if !defined(CONFIG_ZYNQ_SERIAL_CLOCK1)
# define CONFIG_ZYNQ_SERIAL_CLOCK1 50000000
#endif
struct uart_zynq_params {
u32 baudrate;
u32 clock;
};
static struct uart_zynq_params uart_zynq_ports_param[2] = {
[0].baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE0,
[0].clock = CONFIG_ZYNQ_SERIAL_CLOCK0,
[1].baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE1,
[1].clock = CONFIG_ZYNQ_SERIAL_CLOCK1,
};
/* Set up the baud rate in gd struct */
@ -71,7 +62,7 @@ static void uart_zynq_serial_setbrg(const int port)
unsigned int calc_bauderror, bdiv, bgen;
unsigned long calc_baud = 0;
unsigned long baud = uart_zynq_ports_param[port].baudrate;
unsigned long clock = uart_zynq_ports_param[port].clock;
unsigned long clock = get_uart_clk(port);
struct uart_zynq *regs = uart_zynq_ports[port];
/* master clock