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

Stephen Warren swarren at wwwdotorg.org
Mon Aug 20 17:48:24 CEST 2012


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>

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.
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?

> ---
>  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