
On 24 March 2015 16:21:02 CET, Stephen Warren swarren@wwwdotorg.org wrote:
diff --git a/arch/arm/mach-tegra/tegra20/funcmux.c
b/arch/arm/mach-tegra/tegra20/funcmux.c
Note that this will conflict with:
09f455dca749 ARM: tegra: collect SoC sources into mach-tegra
... which moved that file.
OK, sorry. Haven't seen that one yet. Will rebase accordingly.
What if ATC is actually used for some purpose other than GMI? This will
corrupt the pinmux for that pingroup, and prevent the other peripheral from working. For example, PERIPH_ID_SDMMC4/FUNCMUX_SDMMC4_ATC_ATD_8BIT
actively uses ATC, and this change might break it if both are used together on one board.
Yes, agreed.
The best approach is to simply not use funcmux at all, but rather program the entire pinmux from a table. That guarantees no conflicts. Boards using later SoCs take this approach.
Yes, that one I knew but nobody does on T20 (yet) plus T20 is kind of special due to its pin groups spanning multiple pins and such.
Alternatively, have the board code (rather than funcmux) select some other value for ATC. This allows the board code to select the exact correct value for that pingroup once (thus avoiding multiple changes to
the pinmux for that pingroup, which could cause glitches), and guarantees that the common code will never corrupt that setting.
That one for sure would work if above table approach proves to be too cumbersome to do.
Thanks Stephen