[U-Boot] [PATCH v2 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.
Changes in v2: - Collect the Reviewed-by tag.
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 ---
Changes in v2: None
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

On 12 September 2016 at 20:37, Wenyou Yang wenyou.yang@atmel.com wrote:
Add ATMEL_USART option to support to enable the Atmel usart driver from Kconfig.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com
Changes in v2: None
drivers/serial/Kconfig | 7 +++++++ 1 file changed, 7 insertions(+)
Reviewed-by: Simon Glass sjg@chromium.org

On Tue, Sep 13, 2016 at 10:37:32AM +0800, Wenyou Yang wrote:
Add ATMEL_USART option to support to enable the Atmel usart driver from Kconfig.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com Reviewed-by: Simon Glass sjg@chromium.org
Reviewed-by: Andreas Bießmann andreas@biessmann.org
Changes in v2: None
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 Reviewed-by: Simon Glass sjg@chromium.org ---
Changes in v2: - Collect the Reviewed-by tag.
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 Tue, Sep 13, 2016 at 10:37:33AM +0800, Wenyou Yang wrote:
Add support to enable an early debug UART for debugging.
Signed-off-by: Wenyou Yang wenyou.yang@atmel.com Reviewed-by: Simon Glass sjg@chromium.org
Reviewed-by: Andreas Bießmann andreas@biessmann.org
Changes in v2:
- Collect the Reviewed-by tag.
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
participants (3)
-
Andreas Bießmann
-
Simon Glass
-
Wenyou Yang