summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/include/mach/pinmux.h
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-12-14 13:41:20 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-21 15:05:43 +0530
commit8b2b6d14763f1662507170dcb419053dce7877c2 (patch)
treef123b2398aed0271a52ec0250480b771f8fcd8ca /arch/arm/mach-tegra/include/mach/pinmux.h
parent4fbd126f17e1b8db673129b754ab70c43f275302 (diff)
arm: tegra: Use generator macros for pinmux selectors
Replace the hand-crafted pinmux mux selector enumerators and name table with generator macros to avoid mismatches between them. Change-Id: I2e56bf89a4b29f33af00d0e4d2617ee13c554997 Signed-off-by: Scott Williams <scwilliams@nvidia.com> Reviewed-on: http://git-master/r/70088 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mark Stadler <mastadler@nvidia.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Allen Martin <amartin@nvidia.com> Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/include/mach/pinmux.h')
-rw-r--r--arch/arm/mach-tegra/include/mach/pinmux.h243
1 files changed, 127 insertions, 116 deletions
diff --git a/arch/arm/mach-tegra/include/mach/pinmux.h b/arch/arm/mach-tegra/include/mach/pinmux.h
index 6a2c18c52faa..5d50d798cb9b 100644
--- a/arch/arm/mach-tegra/include/mach/pinmux.h
+++ b/arch/arm/mach-tegra/include/mach/pinmux.h
@@ -26,127 +26,138 @@
#error "Undefined Tegra architecture"
#endif
+#define TEGRA_MUX_LIST \
+ TEGRA_MUX(NONE) \
+ TEGRA_MUX(AHB_CLK) \
+ TEGRA_MUX(APB_CLK) \
+ TEGRA_MUX(AUDIO_SYNC) \
+ TEGRA_MUX(CRT) \
+ TEGRA_MUX(DAP1) \
+ TEGRA_MUX(DAP2) \
+ TEGRA_MUX(DAP3) \
+ TEGRA_MUX(DAP4) \
+ TEGRA_MUX(DAP5) \
+ TEGRA_MUX(DISPLAYA) \
+ TEGRA_MUX(DISPLAYB) \
+ TEGRA_MUX(EMC_TEST0_DLL) \
+ TEGRA_MUX(EMC_TEST1_DLL) \
+ TEGRA_MUX(GMI) \
+ TEGRA_MUX(GMI_INT) \
+ TEGRA_MUX(HDMI) \
+ TEGRA_MUX(I2C1) \
+ TEGRA_MUX(I2C2) \
+ TEGRA_MUX(I2C3) \
+ TEGRA_MUX(IDE) \
+ TEGRA_MUX(IRDA) \
+ TEGRA_MUX(KBC) \
+ TEGRA_MUX(MIO) \
+ TEGRA_MUX(MIPI_HS) \
+ TEGRA_MUX(NAND) \
+ TEGRA_MUX(OSC) \
+ TEGRA_MUX(OWR) \
+ TEGRA_MUX(PCIE) \
+ TEGRA_MUX(PLLA_OUT) \
+ TEGRA_MUX(PLLC_OUT1) \
+ TEGRA_MUX(PLLM_OUT1) \
+ TEGRA_MUX(PLLP_OUT2) \
+ TEGRA_MUX(PLLP_OUT3) \
+ TEGRA_MUX(PLLP_OUT4) \
+ TEGRA_MUX(PWM) \
+ TEGRA_MUX(PWR_INTR) \
+ TEGRA_MUX(PWR_ON) \
+ TEGRA_MUX(RTCK) \
+ TEGRA_MUX(SDIO1) \
+ TEGRA_MUX(SDIO2) \
+ TEGRA_MUX(SDIO3) \
+ TEGRA_MUX(SDIO4) \
+ TEGRA_MUX(SFLASH) \
+ TEGRA_MUX(SPDIF) \
+ TEGRA_MUX(SPI1) \
+ TEGRA_MUX(SPI2) \
+ TEGRA_MUX(SPI2_ALT) \
+ TEGRA_MUX(SPI3) \
+ TEGRA_MUX(SPI4) \
+ TEGRA_MUX(TRACE) \
+ TEGRA_MUX(TWC) \
+ TEGRA_MUX(UARTA) \
+ TEGRA_MUX(UARTB) \
+ TEGRA_MUX(UARTC) \
+ TEGRA_MUX(UARTD) \
+ TEGRA_MUX(UARTE) \
+ TEGRA_MUX(ULPI) \
+ TEGRA_MUX(VI) \
+ TEGRA_MUX(VI_SENSOR_CLK) \
+ TEGRA_MUX(XIO) \
+ /* End of Tegra2 MUX selectors */ \
+ TEGRA_MUX(BLINK) \
+ TEGRA_MUX(CEC) \
+ TEGRA_MUX(CLK12) \
+ TEGRA_MUX(DAP) \
+ TEGRA_MUX(DAPSDMMC2) \
+ TEGRA_MUX(DDR) \
+ TEGRA_MUX(DEV3) \
+ TEGRA_MUX(DTV) \
+ TEGRA_MUX(VI_ALT1) \
+ TEGRA_MUX(VI_ALT2) \
+ TEGRA_MUX(VI_ALT3) \
+ TEGRA_MUX(EMC_DLL) \
+ TEGRA_MUX(EXTPERIPH1) \
+ TEGRA_MUX(EXTPERIPH2) \
+ TEGRA_MUX(EXTPERIPH3) \
+ TEGRA_MUX(GMI_ALT) \
+ TEGRA_MUX(HDA) \
+ TEGRA_MUX(HSI) \
+ TEGRA_MUX(I2C4) \
+ TEGRA_MUX(I2C5) \
+ TEGRA_MUX(I2CPWR) \
+ TEGRA_MUX(I2S0) \
+ TEGRA_MUX(I2S1) \
+ TEGRA_MUX(I2S2) \
+ TEGRA_MUX(I2S3) \
+ TEGRA_MUX(I2S4) \
+ TEGRA_MUX(NAND_ALT) \
+ TEGRA_MUX(POPSDIO4) \
+ TEGRA_MUX(POPSDMMC4) \
+ TEGRA_MUX(PWM0) \
+ TEGRA_MUX(PWM1) \
+ TEGRA_MUX(PWM2) \
+ TEGRA_MUX(PWM3) \
+ TEGRA_MUX(SATA) \
+ TEGRA_MUX(SPI5) \
+ TEGRA_MUX(SPI6) \
+ TEGRA_MUX(SYSCLK) \
+ TEGRA_MUX(VGP1) \
+ TEGRA_MUX(VGP2) \
+ TEGRA_MUX(VGP3) \
+ TEGRA_MUX(VGP4) \
+ TEGRA_MUX(VGP5) \
+ TEGRA_MUX(VGP6) \
+ /* End of Tegra3 MUX selectors */
+
enum tegra_mux_func {
- TEGRA_MUX_RSVD = 0x8000,
- TEGRA_MUX_RSVD0 = TEGRA_MUX_RSVD,
- TEGRA_MUX_RSVD1 = 0x8000,
- TEGRA_MUX_RSVD2 = 0x8001,
- TEGRA_MUX_RSVD3 = 0x8002,
- TEGRA_MUX_RSVD4 = 0x8003,
- TEGRA_MUX_INVALID = 0x4000,
- TEGRA_MUX_NONE = 0,
- TEGRA_MUX_AHB_CLK,
- TEGRA_MUX_APB_CLK,
- TEGRA_MUX_AUDIO_SYNC,
- TEGRA_MUX_CRT,
- TEGRA_MUX_DAP1,
- TEGRA_MUX_DAP2,
- TEGRA_MUX_DAP3,
- TEGRA_MUX_DAP4,
- TEGRA_MUX_DAP5,
- TEGRA_MUX_DISPLAYA,
- TEGRA_MUX_DISPLAYB,
- TEGRA_MUX_EMC_TEST0_DLL,
- TEGRA_MUX_EMC_TEST1_DLL,
- TEGRA_MUX_GMI,
- TEGRA_MUX_GMI_INT,
- TEGRA_MUX_HDMI,
- TEGRA_MUX_I2C,
- TEGRA_MUX_I2C1 = TEGRA_MUX_I2C,
- TEGRA_MUX_I2C2,
- TEGRA_MUX_I2C3,
- TEGRA_MUX_IDE,
- TEGRA_MUX_IRDA,
- TEGRA_MUX_KBC,
- TEGRA_MUX_MIO,
- TEGRA_MUX_MIPI_HS,
- TEGRA_MUX_NAND,
- TEGRA_MUX_OSC,
- TEGRA_MUX_OWR,
- TEGRA_MUX_PCIE,
- TEGRA_MUX_PLLA_OUT,
- TEGRA_MUX_PLLC_OUT1,
- TEGRA_MUX_PLLM_OUT1,
- TEGRA_MUX_PLLP_OUT2,
- TEGRA_MUX_PLLP_OUT3,
- TEGRA_MUX_PLLP_OUT4,
- TEGRA_MUX_PWM,
- TEGRA_MUX_PWR_INTR,
- TEGRA_MUX_PWR_ON,
- TEGRA_MUX_RTCK,
- TEGRA_MUX_SDIO1,
+#define TEGRA_MUX(mux) TEGRA_MUX_##mux,
+ TEGRA_MUX_LIST
+#undef TEGRA_MUX
+ TEGRA_MUX_SAFE, /* "Safe" default mux selector */
+ TEGRA_MAX_MUX, /* Number of mux selectors */
+ TEGRA_MUX_TEGRA2_LAST = TEGRA_MUX_XIO,
+ TEGRA_MUX_TEGRA3_LAST = TEGRA_MUX_VGP6,
+
+ /* Mux selector aliases */
+ TEGRA_MUX_I2C = TEGRA_MUX_I2C1,
TEGRA_MUX_SDMMC1 = TEGRA_MUX_SDIO1,
- TEGRA_MUX_SDIO2,
TEGRA_MUX_SDMMC2 = TEGRA_MUX_SDIO2,
- TEGRA_MUX_SDIO3,
TEGRA_MUX_SDMMC3 = TEGRA_MUX_SDIO3,
- TEGRA_MUX_SDIO4,
TEGRA_MUX_SDMMC4 = TEGRA_MUX_SDIO4,
- TEGRA_MUX_SFLASH,
- TEGRA_MUX_SPDIF,
- TEGRA_MUX_SPI1,
- TEGRA_MUX_SPI2,
- TEGRA_MUX_SPI2_ALT,
- TEGRA_MUX_SPI3,
- TEGRA_MUX_SPI4,
- TEGRA_MUX_TRACE,
- TEGRA_MUX_TWC,
- TEGRA_MUX_UARTA,
- TEGRA_MUX_UARTB,
- TEGRA_MUX_UARTC,
- TEGRA_MUX_UARTD,
- TEGRA_MUX_UARTE,
- TEGRA_MUX_ULPI,
- TEGRA_MUX_VI,
- TEGRA_MUX_VI_SENSOR_CLK,
- TEGRA_MUX_XIO,
-#ifndef CONFIG_ARCH_TEGRA_2x_SOC
- TEGRA_MUX_BLINK,
- TEGRA_MUX_CEC,
- TEGRA_MUX_CLK12,
- TEGRA_MUX_DAP,
- TEGRA_MUX_DAPSDMMC2,
- TEGRA_MUX_DDR,
- TEGRA_MUX_DEV3,
- TEGRA_MUX_DTV,
- TEGRA_MUX_VI_ALT1,
- TEGRA_MUX_VI_ALT2,
- TEGRA_MUX_VI_ALT3,
- TEGRA_MUX_EMC_DLL,
- TEGRA_MUX_EXTPERIPH1,
- TEGRA_MUX_EXTPERIPH2,
- TEGRA_MUX_EXTPERIPH3,
- TEGRA_MUX_GMI_ALT,
- TEGRA_MUX_HDA,
- TEGRA_MUX_HSI,
- TEGRA_MUX_I2C4,
- TEGRA_MUX_I2C5,
- TEGRA_MUX_I2CPWR,
- TEGRA_MUX_I2S0,
- TEGRA_MUX_I2S1,
- TEGRA_MUX_I2S2,
- TEGRA_MUX_I2S3,
- TEGRA_MUX_I2S4,
- TEGRA_MUX_NAND_ALT,
- TEGRA_MUX_POPSDIO4,
- TEGRA_MUX_POPSDMMC4,
- TEGRA_MUX_PWM0,
- TEGRA_MUX_PWM1,
- TEGRA_MUX_PWM2,
- TEGRA_MUX_PWM3,
- TEGRA_MUX_SATA,
- TEGRA_MUX_SPI5,
- TEGRA_MUX_SPI6,
- TEGRA_MUX_SYSCLK,
- TEGRA_MUX_VGP1,
- TEGRA_MUX_VGP2,
- TEGRA_MUX_VGP3,
- TEGRA_MUX_VGP4,
- TEGRA_MUX_VGP5,
- TEGRA_MUX_VGP6,
-#endif
- TEGRA_MUX_SAFE,
- TEGRA_MAX_MUX,
+
+ /* Special mux selector values */
+ TEGRA_MUX_INVALID = 0x4000,
+ TEGRA_MUX_RSVD = 0x8000,
+ TEGRA_MUX_RSVD0 = TEGRA_MUX_RSVD,
+ TEGRA_MUX_RSVD1 = 0x8001,
+ TEGRA_MUX_RSVD2 = 0x8002,
+ TEGRA_MUX_RSVD3 = 0x8003,
+ TEGRA_MUX_RSVD4 = 0x8004,
};
enum tegra_pullupdown {