
On 09/27/2012 03:52 PM, Lucas Stach wrote:
The prototypes used in board files were all scattered out, which lead to code duplication between SPL and normal U-Boot and some prototypes not actually being used. Consolidate this in a common board header.
This will allow to push down the calling of the pinmux functions into the respective drivers and this way cut down on complexity from the common board code.
I don't think that (calling pinmux from drivers) would be a good idea. The entire pinmux should be set up globally when the system boots in order to avoid conflicts part-way through a change, and to avoid duplicating pinmux calls into every single driver. Unless a particular driver actively needs to switch between different pinmux configurations at run-time (e.g. an I2C bus mux that uses pinmux to do the muxing).
That said, this change to simplify all the #includes is probably reasonable. One comment below.
diff --git a/arch/arm/include/asm/arch-tegra/board.h b/arch/arm/include/asm/arch-tegra/board.h
-/* Setup UARTs for the board according to the selected config */ +/* Set up pinmux to make UART usable */ +void gpio_config_uart(void); /* CONFIG_SPI_UART_SWITCH */ +void gpio_early_init_uart(void); /*!CONFIG_SPI_UART_SWITCH */
+/* Set up early UART output */ void board_init_uart_f(void);
+/* Set up any early GPIOs the board might need for proper operation */ +void gpio_early_init(void); /* overrideable GPIO config */
I think we should just rip out all the CONFIG_SPI_UART_SWITCH stuff. It's only there to support one board with a completely broken HW design. Still, that could happen in a separate patch after this though.