[U-Boot] [PATCH 4/6] tegra: Add support for UART init in cpu board.c

Simon Glass sjg at chromium.org
Mon Nov 28 21:14:40 CET 2011


Hi Mike,

On Wed, Nov 23, 2011 at 3:40 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> On Wednesday 23 November 2011 17:59:06 Simon Glass wrote:
>> --- a/arch/arm/cpu/armv7/tegra2/board.c
>> +++ b/arch/arm/cpu/armv7/tegra2/board.c
>>
>> +static void setup_uarts(int uart_ids)
>> +{
>> +     static enum periph_id id_for_uart[UART_COUNT] = {
>> +             PERIPH_ID_UART1,
>> +             PERIPH_ID_UART2,
>> +             PERIPH_ID_UART3,
>> +             PERIPH_ID_UART4,
>> +     };
>
> does this need the [UART_COUNT] ?  what if you used "[]" ...

No, it is purely trying to provoke a compiler warning if it is wrong.
But that won't work if UART_COUNT is larger anyway. I'll remove it.

>
>> +     int i;
>
> size_t

Ick. OK.

>
>> +     for (i = 0; i < UART_COUNT; i++) {
>
> ... and then did ARRAY_SIZE(id_for_uart) ?
>
>> +void board_init_uart_f(void)
>> +{
>> +     int uart_ids = 0;       /* bit mask of which UART ids to enable */
>> +
>> +#ifdef CONFIG_TEGRA2_ENABLE_UARTA
>> +     uart_ids |= UARTA;
>> +#endif
>> +#ifdef CONFIG_TEGRA2_ENABLE_UARTB
>> +     uart_ids |= UARTB;
>> +#endif
>> +#ifdef CONFIG_TEGRA2_ENABLE_UARTD
>> +     uart_ids |= UARTD;
>> +#endif
>> +     setup_uarts(uart_ids);
>> +}
>
> we added a func in the Blackfin pinmux API where you could pass it a list of
> peripherals to mux.  so you could do:
>        static const unsigned pin_list[] = {
>        #ifdef CONFIG_TEGRA2_ENABLE_UARTA
>                UART1,
>        #endif
>                0,
>        };
>        pinmux_request_list(pin_list);
>
> and the list version would just walk the 0-terminated array calling
> pinmux_request() automatically
> -mike
>

Well yes, but funcmux isn't about pins, it's about whole functions. We
could provide a new function to enable a list of functions, but for
now there really wouldn't be any callers. UART1 is just our own number
- the callee requires a peripheral ID.

Regards,
Simon


More information about the U-Boot mailing list