Skip to contentSkip to conversation

tegra30: fix UART2 pinmux table entry

PATCH New Allen Martin 2 participants 4 messages Jan 9, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tegra30: fix UART2 pinmux table entry

UART2_TXD and UART2_RXD mux 0 SFIO entries should be IRDA not UARTB.

---
 arch/arm/cpu/tegra30-common/pinmux.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/cpu/tegra30-common/pinmux.c +2 -2
index 122665f..8045fa1 100644
@@ -149,8 +149,8 @@ const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
 	PINI(VI_MCLK,	  VI,	   VI,		VI,	   VI,      VI),
 	PINI(VI_VSYNC,	  VI,	   DDR,		RSVD2,	   VI,      RSVD4),
 	PINI(VI_HSYNC,	  VI,	   DDR,		RSVD2,	   VI,      RSVD4),
-	PINI(UART2_RXD,	  UART,	   UARTB,	SPDIF,	   UARTA,   SPI4),
-	PINI(UART2_TXD,	  UART,	   UARTB,	SPDIF,	   UARTA,   SPI4),
+	PINI(UART2_RXD,	  UART,	   IRDA,	SPDIF,	   UARTA,   SPI4),
+	PINI(UART2_TXD,	  UART,	   IRDA,	SPDIF,	   UARTA,   SPI4),
 	PINI(UART2_RTS_N, UART,	   UARTA,	UARTB,	   GMI,     SPI4),
 	PINI(UART2_CTS_N, UART,	   UARTA,	UARTB,	   GMI,     SPI4),
 	PINI(UART3_TXD,	  UART,	   UARTC,	RSVD2,	   GMI,     RSVD4),
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/1 tegra30: fix UART2 pinmux table entry

Quoted 1 line · Allen Martin

UART2_TXD and UART2_RXD mux 0 SFIO entries should be IRDA not UARTB.

IRDA is just a needlessly different synonym for UARTB; there shouldn't be any mention of IRDA in the pinmux code anywhere, or any users of the pinmux code.

#2 lore raw

PATCH 1/1 tegra30: fix UART2 pinmux table entry

Quoted 6 lines · Stephen Warren
Quoted 1 line · Allen Martin

UART2_TXD and UART2_RXD mux 0 SFIO entries should be IRDA not UARTB.

IRDA is just a needlessly different synonym for UARTB; there shouldn't be any mention of IRDA in the pinmux code anywhere, or any users of the pinmux code.

Oh suck, I didn't realize we had synonyms in the pinmux tables, that seems like a really bad idea. Unfortunately it looks like this particular synonym is widespread. I see it used in the pinmux spreadsheets, the downstream Android kernel source, and gfshell code.

The bug I was trying to fix here is that IRDA is referenced in the u-boot cardhu pinmux table. I guess the fix is to change that to UARTB, but it sounds like maybe a larger synonym cleanup is needed everywhere, do you know of any others?

I'm thinking there needs to be some better run time error checking in the u-boot pinmux code too. There are some debug asserts in there now, but because I didn't have debug turned on this particular bug lead to silent corruption of the pinmux registers which was a PITA to track down. Thoughts on turning those asserts into always on error checking code? Not sure how much it will slow down pinmux programming.

-Allen

Signature · 1 line
nvpublic
#3 lore raw

PATCH 1/1 tegra30: fix UART2 pinmux table entry

Quoted 4 lines · Allen Martin
Quoted 3 lines · Stephen Warren
Quoted 1 line · Allen Martin

UART2_TXD and UART2_RXD mux 0 SFIO entries should be IRDA not UARTB.

Quoted 8 lines
Quoted 3 lines

IRDA is just a needlessly different synonym for UARTB; there shouldn't be any mention of IRDA in the pinmux code anywhere, or any users of the pinmux code.

Oh suck, I didn't realize we had synonyms in the pinmux tables, that seems like a really bad idea. Unfortunately it looks like this particular synonym is widespread. I see it used in the pinmux spreadsheets, the downstream Android kernel source, and gfshell code.

It will disappear from the downstream kernels once they've picked up the upstream pinctrl driver; I spent a fair bit of time correlating all the various documentation sources and eliminating duplicate names for the upstream kernel pinctrl driver.

Quoted 2 lines

The bug I was trying to fix here is that IRDA is referenced in the u-boot cardhu pinmux table.

Oh, I didn't notice that the second time round; I'm pretty sure I pointed it out in the very first review. Maybe that was just of the U-Boot pinmux driver and not the Cardhu file.

Quoted 3 lines

I guess the fix is to change that to
UARTB, but it sounds like maybe a larger synonym cleanup is needed everywhere, do you know of any others?

I can't recall for sure; I think there were some. I'd suggest comparing upstream U-Boot's pinmux driver with the upstream kernel's pinctrl driver, treating the kernel as canonical now.

Quoted 6 lines

I'm thinking there needs to be some better run time error checking in the u-boot pinmux code too. There are some debug asserts in there now, but because I didn't have debug turned on this particular bug lead to silent corruption of the pinmux registers which was a PITA to track down. Thoughts on turning those asserts into always on error checking code? Not sure how much it will slow down pinmux programming.

I doubt the speed would be significantly affected, unless an error triggers and the printf/... actually happens, but you don't really care about speed then.