[U-Boot] [PATCH 10/11] tegra20: remove old pinmux setup

Stephen Warren swarren at wwwdotorg.org
Fri Jan 25 23:34:40 CET 2013


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



More information about the U-Boot mailing list