Hi Prafulla,

On Wednesday 27 October 2010 15:53:21 Prafulla Wadaskar wrote:
> ARMADA 100 SoCs has NS16550 compatible UART peripheral
> This patch enables the same for ARMADA100 platforms
> 
> Signed-off-by: Mahavir Jain <mj...@marvell.com>
> Signed-off-by: Prafulla WADASKAR <prafu...@marvell.com>
> ---
>  drivers/serial/ns16550.c |   16 ++++++++++++++++
>  drivers/serial/serial.c  |    3 +++
>  2 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> index 32f24de..e57ed1f 100644
> --- a/drivers/serial/ns16550.c
> +++ b/drivers/serial/ns16550.c
> @@ -26,7 +26,15 @@
> 
>  void NS16550_init (NS16550_t com_port, int baud_divisor)
>  {
> +#ifdef CONFIG_ARMADA100
> +     /*
> +      * For ARMADA 100 Based Processors bit 6 in IER register
> +      * represents UART Unit Enable bit.
> +      */
> +     serial_out((1 << 6), &com_port->ier);
> +#else
>       serial_out(0x00, &com_port->ier);
> +#endif

These board/platform specific driver additions are really ugly. A better way 
to do this would be something like this:

Add this to your board/platform header:

#define CONFIG_SYS_NS16550_IER  (1 << 6)

And then to ns16550.c or even ns16550.h:

#ifndef CONFIG_SYS_NS16550_IER
#define CONFIG_SYS_NS16550_IER  0x00
#endif

This macro can now be used unconditionally when initializing this "ier" 
register:

        serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier);

Cheers,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: off...@denx.de
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to