[U-Boot] [PATCH] serial: ns16550: Fix Debug UART initialization for AM335x

Simon Glass sjg at chromium.org
Fri Nov 11 17:17:55 CET 2016


Hi,

On 10 November 2016 at 04:00, Jacob Siverskog <jacob at teenage.engineering> wrote:
> Fixed the init sequence in debug_uart_init() to match the one in
> NS16550_init(). Without this I was unable to get debug UART working on
> AM335x. Based on a patch by Vasili Galka.
>
> Signed-off-by: Jacob Siverskog <jacob at teenage.engineering>
> ---
>  drivers/serial/ns16550.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> index 6e9b946..40fe246 100644
> --- a/drivers/serial/ns16550.c
> +++ b/drivers/serial/ns16550.c
> @@ -262,6 +262,11 @@ static inline void _debug_uart_init(void)
>         baud_divisor = ns16550_calc_divisor(com_port, CONFIG_DEBUG_UART_CLOCK,
>                                             CONFIG_BAUDRATE);
>         serial_dout(&com_port->ier, CONFIG_SYS_NS16550_IER);
> +#if defined(CONFIG_OMAP) || defined(CONFIG_AM33XX) || \
> +                       defined(CONFIG_TI81XX) || defined(CONFIG_AM43XX)
> +       serial_dout(&com_port->mdr1, 0x7);      /* mode select reset TL16C750*/
> +#endif

This is generic code so we cannot have arch-specific #ifdefs here. You
could pass in a flags or tweaks value perhaps? That would need a
change to the function signature.

> +
>         serial_dout(&com_port->mcr, UART_MCRVAL);
>         serial_dout(&com_port->fcr, UART_FCRVAL);
>
> @@ -269,6 +274,14 @@ static inline void _debug_uart_init(void)
>         serial_dout(&com_port->dll, baud_divisor & 0xff);
>         serial_dout(&com_port->dlm, (baud_divisor >> 8) & 0xff);
>         serial_dout(&com_port->lcr, UART_LCRVAL);
> +
> +#if defined(CONFIG_OMAP) || \
> +       defined(CONFIG_AM33XX) || defined(CONFIG_SOC_DA8XX) || \
> +       defined(CONFIG_TI81XX) || defined(CONFIG_AM43XX)
> +
> +       /* /16 is proper to hit 115200 with 48MHz */
> +       serial_dout(&com_port->mdr1, 0);
> +#endif /* CONFIG_OMAP */
>  }
>
>  static inline void _debug_uart_putc(int ch)
> --
> 2.10.2
>

Regards,
Simon


More information about the U-Boot mailing list