Thread (9 messages) 9 messages, 3 authors, 2012-09-27

[U-Boot] [PATCH 1/2] tegra: clean up board include hell

flat view

From: Simon Glass <sjg@chromium.org>
Date: 2012-09-27 22:59:09

Hi,

On Thu, Sep 27, 2012 at 3:32 PM, Stephen Warren [off-list ref] wrote:
On 09/27/2012 03:52 PM, Lucas Stach wrote:
quoted
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.
quoted
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).
Well I'm not so keen on this approach. Ultimately we want to be able
to start a driver (and set up its pinmux) only if it is needed during
boot. The idea behind funcmux is that it is a single line call from a
driver or board to select the required setting, so the overhead is
small - and we know that for most peripherals there are only a small
number of options.

I can't predict where we might end up with fdt-based pinmux, but it
seems to me that global pinmux should be a board/implementer option,
not something required by the use of Tegra.

Just my 2c worth.
That said, this change to simplify all the #includes is probably
reasonable. One comment below.
quoted
diff --git a/arch/arm/include/asm/arch-tegra/board.h b/arch/arm/include/asm/arch-tegra/board.h
quoted
-/* 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.
Yes I agree the seaboard is broken, but this is an upstream board and
is in fact the only one I have to test with. Could we perhaps delay
ripping this out for a little while longer?

Regards,
Simon
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help