|
@@ -10,6 +10,7 @@
|
|
|
#include <asm/io.h>
|
|
|
#include <linux/compiler.h>
|
|
|
#include <serial.h>
|
|
|
+#include <asm/arch/hardware.h>
|
|
|
|
|
|
#define ZYNQ_UART_SR_TXFULL 0x00000010 /* TX FIFO full */
|
|
|
#define ZYNQ_UART_SR_RXEMPTY 0x00000002 /* RX FIFO empty */
|
|
@@ -33,13 +34,23 @@ struct uart_zynq {
|
|
|
};
|
|
|
|
|
|
static struct uart_zynq *uart_zynq_ports[2] = {
|
|
|
-#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR0
|
|
|
- [0] = (struct uart_zynq *)CONFIG_ZYNQ_SERIAL_BASEADDR0,
|
|
|
+ [0] = (struct uart_zynq *)ZYNQ_SERIAL_BASEADDR0,
|
|
|
+ [1] = (struct uart_zynq *)ZYNQ_SERIAL_BASEADDR1,
|
|
|
+};
|
|
|
+
|
|
|
+#if !defined(CONFIG_ZYNQ_SERIAL_BAUDRATE0)
|
|
|
+# define CONFIG_ZYNQ_SERIAL_BAUDRATE0 CONFIG_BAUDRATE
|
|
|
#endif
|
|
|
-#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR1
|
|
|
- [1] = (struct uart_zynq *)CONFIG_ZYNQ_SERIAL_BASEADDR1,
|
|
|
+#if !defined(CONFIG_ZYNQ_SERIAL_BAUDRATE1)
|
|
|
+# 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;
|
|
@@ -47,14 +58,10 @@ struct uart_zynq_params {
|
|
|
};
|
|
|
|
|
|
static struct uart_zynq_params uart_zynq_ports_param[2] = {
|
|
|
-#if defined(CONFIG_ZYNQ_SERIAL_BAUDRATE0) && defined(CONFIG_ZYNQ_SERIAL_CLOCK0)
|
|
|
[0].baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE0,
|
|
|
[0].clock = CONFIG_ZYNQ_SERIAL_CLOCK0,
|
|
|
-#endif
|
|
|
-#if defined(CONFIG_ZYNQ_SERIAL_BAUDRATE1) && defined(CONFIG_ZYNQ_SERIAL_CLOCK1)
|
|
|
[1].baudrate = CONFIG_ZYNQ_SERIAL_BAUDRATE1,
|
|
|
[1].clock = CONFIG_ZYNQ_SERIAL_CLOCK1,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
/* Set up the baud rate in gd struct */
|
|
@@ -186,20 +193,19 @@ struct serial_device uart_zynq_serial1_device =
|
|
|
|
|
|
__weak struct serial_device *default_serial_console(void)
|
|
|
{
|
|
|
+#if defined(CONFIG_ZYNQ_SERIAL_UART0)
|
|
|
if (uart_zynq_ports[0])
|
|
|
return &uart_zynq_serial0_device;
|
|
|
+#endif
|
|
|
+#if defined(CONFIG_ZYNQ_SERIAL_UART1)
|
|
|
if (uart_zynq_ports[1])
|
|
|
return &uart_zynq_serial1_device;
|
|
|
-
|
|
|
+#endif
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
void zynq_serial_initalize(void)
|
|
|
{
|
|
|
-#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR0
|
|
|
serial_register(&uart_zynq_serial0_device);
|
|
|
-#endif
|
|
|
-#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR1
|
|
|
serial_register(&uart_zynq_serial1_device);
|
|
|
-#endif
|
|
|
}
|