[U-Boot] [PATCH] tegra20: rework UART GPIO handling

Simon Glass sjg at chromium.org
Tue Aug 21 21:07:54 CEST 2012


On Mon, Aug 20, 2012 at 8:48 AM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 08/19/2012 12:15 PM, Lucas Stach wrote:
>> Rename board provided gpio_config_uart() to
>> gpio_early_init_uart() as it does the same thing as the equally
>> called function provided by the uart-switch code. This allows
>> to simply call this function in early board init whether or not
>> we are building with CONFIG_UART_SWITCH defined.
>>
>> Also provide a weak symbol for this function, to avoid the
>> need to provide this function for boards that don't need any
>> fixup.
>>
>> This patch supersedes the earlier posted
>> "tegra: convert gpio_config_uart to weak symbol".
>> Build tested with MAKEALL -s tegra20
>>
>> Signed-off-by: Lucas Stach <dev at lynxeye.de>

Acked-by: Simon Glass <sjg at chromium.org>

>
> I think this seems reasonable. However, a couple others should comment,
> so I'm CCing them and quoting the whole patch.
>
> Simon Glass should comment because he created the UART switch code.

This change seems reasonable to me.

> Allen Martin should comment, since it looks like both SPL and non-SPL
> end up calling gpio_early_init_uart(); is that duplication correct or
> problematic?

OK so far as seaboard goes, but could perhaps do with a tidy up at some point.

Regards,
Simon

>
>> ---
>>  arch/arm/cpu/arm720t/tegra20/board.h   |  2 +-
>>  arch/arm/cpu/arm720t/tegra20/spl.c     |  4 ----
>>  board/avionic-design/common/tamonten.c |  7 -------
>>  board/compal/paz00/paz00.c             |  7 -------
>>  board/compulab/trimslice/trimslice.c   |  7 -------
>>  board/nvidia/common/board.c            | 10 ++++++----
>>  board/nvidia/harmony/harmony.c         |  7 -------
>>  board/nvidia/seaboard/seaboard.c       |  2 +-
>>  board/nvidia/whistler/whistler.c       |  7 -------
>>  9 Dateien geändert, 8 Zeilen hinzugefügt(+), 45 Zeilen entfernt(-)
>>
>> diff --git a/arch/arm/cpu/arm720t/tegra20/board.h b/arch/arm/cpu/arm720t/tegra20/board.h
>> index 61b91c0..260767d 100644
>> --- a/arch/arm/cpu/arm720t/tegra20/board.h
>> +++ b/arch/arm/cpu/arm720t/tegra20/board.h
>> @@ -22,4 +22,4 @@
>>   */
>>
>>  void board_init_uart_f(void);
>> -void gpio_config_uart(void);
>> +void gpio_early_init_uart(void);
>> diff --git a/arch/arm/cpu/arm720t/tegra20/spl.c b/arch/arm/cpu/arm720t/tegra20/spl.c
>> index da723ef..183a2e1 100644
>> --- a/arch/arm/cpu/arm720t/tegra20/spl.c
>> +++ b/arch/arm/cpu/arm720t/tegra20/spl.c
>> @@ -65,11 +65,7 @@ void board_init_f(ulong dummy)
>>       board_init_uart_f();
>>
>>       /* Initialize periph GPIOs */
>> -#ifdef CONFIG_SPI_UART_SWITCH
>>       gpio_early_init_uart();
>> -#else
>> -     gpio_config_uart();
>> -#endif
>>
>>       /*
>>        * We call relocate_code() with relocation target same as the
>> diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c
>> index a0a4d1d..f5e6f6d 100644
>> --- a/board/avionic-design/common/tamonten.c
>> +++ b/board/avionic-design/common/tamonten.c
>> @@ -41,13 +41,6 @@
>>  #include <mmc.h>
>>  #endif
>>
>> -/*
>> - * Routine: gpio_config_uart
>> - * Description: Does nothing on Tamonten - no conflict w/SPI.
>> - */
>> -void gpio_config_uart(void)
>> -{
>> -}
>>
>>  #ifdef CONFIG_BOARD_EARLY_INIT_F
>>  void gpio_early_init(void)
>> diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
>> index cd684f2..59cf41b 100644
>> --- a/board/compal/paz00/paz00.c
>> +++ b/board/compal/paz00/paz00.c
>> @@ -24,13 +24,6 @@
>>  #include <mmc.h>
>>  #endif
>>
>> -/*
>> - * Routine: gpio_config_uart
>> - * Description: Does nothing on Paz00 - no conflict w/SPI.
>> - */
>> -void gpio_config_uart(void)
>> -{
>> -}
>>
>>  #ifdef CONFIG_TEGRA_MMC
>>  /*
>> diff --git a/board/compulab/trimslice/trimslice.c b/board/compulab/trimslice/trimslice.c
>> index 5dae15b..f6de19e 100644
>> --- a/board/compulab/trimslice/trimslice.c
>> +++ b/board/compulab/trimslice/trimslice.c
>> @@ -34,13 +34,6 @@
>>  #include <mmc.h>
>>  #endif
>>
>> -/*
>> - * Routine: gpio_config_uart
>> - * Description: Does nothing on TrimSlice - no UART-related GPIOs.
>> - */
>> -void gpio_config_uart(void)
>> -{
>> -}
>>
>>  void pin_mux_spi(void)
>>  {
>> diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c
>> index 7ab2040..78e136a 100644
>> --- a/board/nvidia/common/board.c
>> +++ b/board/nvidia/common/board.c
>> @@ -72,6 +72,11 @@ void __pin_mux_spi(void)
>>
>>  void pin_mux_spi(void) __attribute__((weak, alias("__pin_mux_spi")));
>>
>> +void __gpio_early_init_uart(void)
>> +{
>> +}
>> +
>> +void gpio_early_init_uart(void) __attribute__((weak, alias("__gpio_early_init_uart")));
>>  /*
>>   * Routine: power_det_init
>>   * Description: turn off power detects
>> @@ -156,11 +161,8 @@ int board_early_init_f(void)
>>
>>       /* Initialize periph GPIOs */
>>       gpio_early_init();
>> -#ifdef CONFIG_SPI_UART_SWITCH
>>       gpio_early_init_uart();
>> -#else
>> -     gpio_config_uart();
>> -#endif
>> +
>>       return 0;
>>  }
>>  #endif       /* EARLY_INIT */
>> diff --git a/board/nvidia/harmony/harmony.c b/board/nvidia/harmony/harmony.c
>> index 44977c7..5b75230 100644
>> --- a/board/nvidia/harmony/harmony.c
>> +++ b/board/nvidia/harmony/harmony.c
>> @@ -33,13 +33,6 @@
>>  #include <mmc.h>
>>  #endif
>>
>> -/*
>> - * Routine: gpio_config_uart
>> - * Description: Does nothing on Harmony - no conflict w/SPI.
>> - */
>> -void gpio_config_uart(void)
>> -{
>> -}
>>
>>  #ifdef CONFIG_TEGRA_MMC
>>  /*
>> diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
>> index 3298a6b..7c4ff1b 100644
>> --- a/board/nvidia/seaboard/seaboard.c
>> +++ b/board/nvidia/seaboard/seaboard.c
>> @@ -46,7 +46,7 @@ static void gpio_config_uart_seaboard(void)
>>       gpio_direction_output(GPIO_PI3, 0);
>>  }
>>
>> -void gpio_config_uart(void)
>> +void gpio_early_init_uart(void)
>>  {
>>       if (machine_is_ventana())
>>               return;
>> diff --git a/board/nvidia/whistler/whistler.c b/board/nvidia/whistler/whistler.c
>> index c0a114d..cad7c48 100644
>> --- a/board/nvidia/whistler/whistler.c
>> +++ b/board/nvidia/whistler/whistler.c
>> @@ -34,13 +34,6 @@
>>  #include <mmc.h>
>>  #endif
>>
>> -/*
>> - * Routine: gpio_config_uart
>> - * Description: Does nothing on Whistler - no UART-related GPIOs.
>> - */
>> -void gpio_config_uart(void)
>> -{
>> -}
>>
>>  /*
>>   * Routine: pin_mux_mmc
>>
>


More information about the U-Boot mailing list