[U-Boot] [PATCH v1 0/2] serial: atmel_usart: Support to enable an early debug UART

The patch set is to add support to enable an early debug UART for debugging. And add ATMEL_USART option to enable the Atmel usartdriver from Kconfig.
Wenyou Yang (2): serial: Kconfig: Add ATMEL_USART option serial: atmel_usart: Support enable an early debug UART
drivers/serial/Kconfig | 14 ++++++++++++++ drivers/serial/atmel_usart.c | 22 ++++++++++++++++++++++ 2 files changed, 36 insertions(+)

Add ATMEL_USART option to support to enable the Atmel usart driver from Kconfig.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com ---
drivers/serial/Kconfig | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index ab5df70..a6035dc 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -289,6 +289,13 @@ config AR933X_UART tree binding to operate, please refer to the document at doc/device-tree-bindings/serial/qca,ar9330-uart.txt.
+config ATMEL_USART + bool "Atmel USART support" + help + Select this to enable USART support for Atmel SoCs. It can be + configured in the device tree, and input clock frequency can + be got from the clk node. + config FSL_LPUART bool "Freescale LPUART support" help

Add support to enable an early debug UART for debugging.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com ---
drivers/serial/Kconfig | 7 +++++++ drivers/serial/atmel_usart.c | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+)
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index a6035dc..b8ecd80 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -98,6 +98,13 @@ config DEBUG_UART_AR933X driver will be available until the real driver model serial is running.
+config DEBUG_UART_ATMEL + bool "Atmel USART" + help + Select this to enable a debug UART using the atmel usart driver. You + will need to provide parameters to make this work. The driver will + be available until the real driver-model serial is running. + config DEBUG_UART_NS16550 bool "ns16550" help diff --git a/drivers/serial/atmel_usart.c b/drivers/serial/atmel_usart.c index e450135..7674f97 100644 --- a/drivers/serial/atmel_usart.c +++ b/drivers/serial/atmel_usart.c @@ -11,6 +11,7 @@ #include <errno.h> #include <watchdog.h> #include <serial.h> +#include <debug_uart.h> #include <linux/compiler.h>
#include <asm/io.h> @@ -226,3 +227,24 @@ U_BOOT_DRIVER(serial_atmel) = { .priv_auto_alloc_size = sizeof(struct atmel_serial_priv), }; #endif + +#ifdef CONFIG_DEBUG_UART_ATMEL +static inline void _debug_uart_init(void) +{ + atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_DEBUG_UART_BASE; + + atmel_serial_setbrg_internal(usart, 0, CONFIG_BAUDRATE); +} + +static inline void _debug_uart_putc(int ch) +{ + atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_DEBUG_UART_BASE; + + while (!(readl(&usart->csr) & USART3_BIT(TXRDY))) + ; + + writel(ch, &usart->thr); +} + +DEBUG_UART_FUNCS +#endif

On 30 August 2016 at 02:43, Wenyou Yang wenyou.yang@atmel.com wrote:
Add support to enable an early debug UART for debugging.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com
drivers/serial/Kconfig | 7 +++++++ drivers/serial/atmel_usart.c | 22 ++++++++++++++++++++++ 2 files changed, 29 insertions(+)
Reviewed-by: Simon Glass sjg@chromium.org
participants (2)
-
Simon Glass
-
Wenyou Yang