On 01/25/2013 02:19 PM, Lucas Stach wrote: > Am Freitag, den 25.01.2013, 14:12 -0800 schrieb Stephen Warren: >> On 01/24/2013 08:48 AM, Lucas Stach wrote: >>> All boards are converted to the new tablebased pinmux setup. Get rid of >>> the old method. >> >>> diff --git a/arch/arm/cpu/tegra-common/board.c >>> b/arch/arm/cpu/tegra-common/board.c >> >>> @@ -145,7 +121,6 @@ static void setup_uarts(int uart_ids) >>> if (uart_ids & (1 << i)) { >>> enum periph_id id = id_for_uart[i]; >>> >>> - funcmux_select(id, uart_configs[i]); >>> clock_ll_start_uart(id); >>> } >>> } >> >> Doesn't the debug UART get set up very early, in the SPL, before any >> table-based pinmux could be activated? >> >> If so, I think we need to leave this one funcmux API call in place, so >> that the debug UART always works nice and early. >> >> If not, how much does this series increase the binary of the SPL? >> > Ah right, I forgot about SPL debug. If we go for FDT based pinmux, we > have to init UART in some explicit way, as DT and SPL don't mix. > > But even then I would like to get rid of the funcmux style and rather > let the boards provide a minimal UART pinmux init table, as funcmux > doesn't map too well onto the plethora of config options Tegra30 > provides for the pinmux.
Yes, that's perhaps true. For reference, I recently worked out all the possible locations of each logical signal (well, only RX/TX/RTS/CTS for Tegra30) for each UART. I put the table below for reference in case it's interesting. Tegra20: (sets of pingroups that create a complete UART) > + * UART A: > + * 0: unspecified > + * 1: irrx, irtx > + * 2: gpu > + * 3: sdb, sdd > + * 4: sdio1 > + * 5: uaa > + * 6: irrx, irtx, uad > + * 7: irrx, irtx, uad, uab > + * 8: sdb, sdd, uad > + * 9: sdb, sdd, uad, uab > + * 10: uaa, uab > + * UART B: > + * 0: unspecified > + * 1: uad > + * 2: uad, irrx, irtx > + * UART C: > + * 0: unspecified > + * 1: uca > + * 2: uca, ucb > + * UART D: > + * 0: unspecified > + * 1: gmc > + * 2: uda > + * UART E: > + * 0: unspecified > + * 1: gma > + * 2: sdio1 Tegra30: (possible locations for each signal on each UART) > + * UART CTS pin > + * UART A: > + * 0: unspecified > + * 1: uart2_rxd > + * 2: ulpi_data2 > + * 3: gpio_pu2 > + * UART B: > + * 0: unspecified > + * 1: uart2_cts_n > + * UART C: > + * 0: unspecified > + * 1: uart3_cts_n > + * UART D: > + * 0: unspecified > + * 1: gmi_a18 > + * 2: ulpi_nxt > + * UART E: > + * 0: unspecified > + * 1: sdmmc1_dat1 > + * 2: sdmmc4_dat2 > + * UART RTS pin > + * UART A: > + * 0: unspecified > + * 1: uart2_txd > + * 2: ulpi_data3 > + * 3: gpio_pu3 > + * UART B: > + * 0: unspecified > + * 1: uart2_rts_n > + * UART C: > + * 0: unspecified > + * 1: uart3_rts_n > + * UART D: > + * 0: unspecified > + * 1: gmi_a19 > + * 2: ulpi_stp > + * UART E: > + * 0: unspecified > + * 1: sdmmc1_dat0 > + * 2: sdmmc4_dat3 > + * UART TXD pin > + * UART A: > + * 0: unspecified > + * 1: sdmmc3_clk > + * 2: uart2_rts_n > + * 3: ulpi_data0 > + * 4: gpio_pu0 > + * UART B: > + * 0: unspecified > + * 1: uart2_txd > + * UART C: > + * 0: unspecified > + * 1: uart3_txd > + * UART D: > + * 0: unspecified > + * 1: gmi_a16 > + * 2: ulpi_clk > + * UART E: > + * 0: unspecified > + * 1: sdmmc1_dat3 > + * 2: sdmmc4_dat0 > + * UART RXD pin > + * UART A: > + * 0: unspecified > + * 1: sdmmc3_cmd > + * 2: uart2_cts_n > + * 3: ulpi_data1 > + * 4: gpio_pu1 > + * UART B: > + * 0: unspecified > + * 1: uart2_rxd > + * UART C: > + * 0: unspecified > + * 1: uart3_rxd > + * UART D: > + * 0: unspecified > + * 1: gmi_a17 > + * 2: ulpi_dir > + * UART E: > + * 0: unspecified > + * 1: sdmmc1_dat2 > + * 2: sdmmc4_dat1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot