Tegra114: pinmux: Update pinmux tables & code, fix a bug w/SDMMC3 init
authorTom Warren <twarren@nvidia.com>
Fri, 1 Mar 2013 21:38:20 +0000 (14:38 -0700)
committerTom Warren <twarren@nvidia.com>
Thu, 14 Mar 2013 18:06:43 +0000 (11:06 -0700)
Use the latest tables & code from our internal U-Boot repo.
The SDMMC3_CD, CLK_LB_IN and CLK_LB_OUT offsets in the pingroup
table were off by a few indices, causing the pinmux init code to
write bad data to the PINMUX_AUX_ regs. This also enabled the lock
bit, which made it impossible to reconfig the pads correctly for
SDMMC3 (SD card on Dalmore) operation. Also fixes SPI_CS2_N,
USB_VBUS_EN0, HDMI_CEC and UART2_RXD/TXD muxes.

Signed-off-by: Tom Warren <twarren@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
arch/arm/cpu/tegra114-common/pinmux.c
arch/arm/include/asm/arch-tegra114/pinmux.h
board/nvidia/dalmore/dalmore.c
board/nvidia/dalmore/pinmux-config-dalmore.h

index 52b3ec47aab156c398a1f4355217763dab70290f..27b5f694fa3cb5e649224ed953ebf31db0c30330 100644 (file)
@@ -37,6 +37,7 @@ struct tegra_pingroup_desc {
 #define PMUX_OD_SHIFT          6
 #define PMUX_LOCK_SHIFT                7
 #define PMUX_IO_RESET_SHIFT    8
+#define PMUX_RCV_SEL_SHIFT     9
 
 /* Convenient macro for defining pin group properties */
 #define PIN(pg_name, vdd, f0, f1, f2, f3, iod) \
@@ -58,6 +59,10 @@ struct tegra_pingroup_desc {
 #define PINO(pg_name, vdd, f0, f1, f2, f3) \
        PIN(pg_name, vdd, f0, f1, f2, f3, OUTPUT)
 
+/* A pin group number which is not used */
+#define PIN_RESERVED \
+       PIN(NONE, NONE, INVALID, INVALID, INVALID, INVALID, NONE)
+
 const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
        /*      NAME      VDD      f0           f1         f2       f3  */
        PINI(ULPI_DATA0,  BB,      SPI3,       HSI,        UARTA,   ULPI),
@@ -84,71 +89,71 @@ const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
        PINI(SDMMC1_DAT2, SDMMC1,  SDMMC1,     PWM0,       SPI4,    UARTA),
        PINI(SDMMC1_DAT1, SDMMC1,  SDMMC1,     PWM1,       SPI4,    UARTA),
        PINI(SDMMC1_DAT0, SDMMC1,  SDMMC1,     RSVD2,      SPI4,    UARTA),
-       PINI(GPIO_PV2,    BB,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(GPIO_PV3,    BB,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x3060 - 0x3064 */
+       PIN_RESERVED,
        PINI(CLK2_OUT,    SDMMC1,  EXTPERIPH2, RSVD2,      RSVD3,   RSVD4),
        PINI(CLK2_REQ,    SDMMC1,  DAP,        RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_PWR1,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_PWR2,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_SDIN,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_SDOUT,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_WR_N,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_CS0_N,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_DC0,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_SCK,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_PWR0,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_PCLK,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_DE,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_HSYNC,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_VSYNC,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D0,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D1,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D2,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D3,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D4,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D5,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D6,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D7,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D8,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D9,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D10,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D11,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D12,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D13,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D14,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D15,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D16,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D17,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D18,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D19,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D20,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D21,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D22,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_D23,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_CS1_N,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_M1,      LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINO(LCD_DC1,     LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x3070 - 0x310c */
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
        PINI(HDMI_INT,    LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
        PINI(DDC_SCL,     LCD,     I2C4,       RSVD2,      RSVD3,   RSVD4),
        PINI(DDC_SDA,     LCD,     I2C4,       RSVD2,      RSVD3,   RSVD4),
-       PINI(CRT_HSYNC,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(CRT_VSYNC,   LCD,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D0,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D1,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D2,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D3,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D4,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D5,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D6,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D7,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D8,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D9,       VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D10,      VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_D11,      VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_PCLK,     VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_MCLK,     VI,      RSVD1,      RSVD3,      RSVD3,   RSVD4),
-       PINI(VI_VSYNC,    VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(VI_HSYNC,    VI,      RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x311c - 0x3160 */
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
        PINI(UART2_RXD,   UART,    UARTB,      SPDIF,      UARTA,   SPI4),
        PINI(UART2_TXD,   UART,    UARTB,      SPDIF,      UARTA,   SPI4),
        PINI(UART2_RTS_N, UART,    UARTA,      UARTB,      RSVD3,   SPI4),
@@ -220,7 +225,7 @@ const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
        PINI(SDMMC4_DAT5, SDMMC4,  SDMMC4,     SPI3,       GMI,     RSVD4),
        PINI(SDMMC4_DAT6, SDMMC4,  SDMMC4,     SPI3,       GMI,     RSVD4),
        PINI(SDMMC4_DAT7, SDMMC4,  SDMMC4,     RSVD2,      GMI,     RSVD4),
-       PINI(SDMMC4_RST_N, SDMMC4, RSVD1,      RSVD2,      RSVD3,   SDMMC4),
+       PIN_RESERVED,   /* Reserved by t114: 0x3280 */
        PINI(CAM_MCLK,    CAM,     VI,         VI_ALT1,    VI_ALT2, RSVD4),
        PINI(GPIO_PCC1,   CAM,     I2S4,       RSVD2,      RSVD3,   RSVD4),
        PINI(GPIO_PBB0,   CAM,     I2S4,       VI,         VI_ALT1, VI_ALT3),
@@ -246,11 +251,11 @@ const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
        PINI(KB_ROW8,     SYS,     KBC,        RSVD2,      RSVD3,   UARTA),
        PINI(KB_ROW9,     SYS,     KBC,        RSVD2,      RSVD3,   UARTA),
        PINI(KB_ROW10,    SYS,     KBC,        RSVD2,      RSVD3,   UARTA),
-       PINI(KB_ROW11,    SYS,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(KB_ROW12,    SYS,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(KB_ROW13,    SYS,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(KB_ROW14,    SYS,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(KB_ROW15,    SYS,     RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x32e8 - 0x32f8 */
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
        PINI(KB_COL0,     SYS,     KBC,        USB,        SPI2,    EMC_DLL),
        PINI(KB_COL1,     SYS,     KBC,        RSVD2,      SPI2,    EMC_DLL),
        PINI(KB_COL2,     SYS,     KBC,        RSVD2,      SPI2,    RSVD4),
@@ -278,36 +283,46 @@ const struct tegra_pingroup_desc tegra_soc_pingroups[PINGRP_COUNT] = {
        PINI(DAP2_DIN,    AUDIO,   I2S1,       HDA,        RSVD3,   RSVD4),
        PINI(DAP2_DOUT,   AUDIO,   I2S1,       HDA,        RSVD3,   RSVD4),
        PINI(DAP2_SCLK,   AUDIO,   I2S1,       HDA,        RSVD3,   RSVD4),
-       PINI(SPI2_MOSI,   AUDIO,   SPI6,       CLDVFS,     RSVD3,   RSVD4),
-       PINI(SPI2_MISO,   AUDIO,   SPI6,       RSVD2,      RSVD3,   RSVD4),
-       PINI(SPI2_CS0_N,  AUDIO,   SPI6,       SPI1,       RSVD3,   RSVD4),
-       PINI(SPI2_SCK,    AUDIO,   SPI6,       CLDVFS,     RSVD3,   RSVD4),
-       PINI(SPI1_MOSI,   AUDIO,   RSVD1,      SPI1,       SPI2,    DAP2),
-       PINI(SPI1_SCK,    AUDIO,   RSVD1,      SPI1,       SPI2,    RSVD4),
-       PINI(SPI1_CS0_N,  AUDIO,   SPI6,       SPI1,       SPI2,    RSVD4),
-       PINI(SPI1_MISO,   AUDIO,   RSVD1,      SPI1,       SPI2,    RSVD4),
-       PINI(SPI2_CS1_N,  AUDIO,   RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(SPI2_CS2_N,  AUDIO,   RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PINI(DVFS_PWM,    AUDIO,   SPI6,       CLDVFS,     RSVD3,   RSVD4),
+       PINI(GPIO_X1_AUD, AUDIO,   SPI6,       RSVD2,      RSVD3,   RSVD4),
+       PINI(GPIO_X3_AUD, AUDIO,   SPI6,       SPI1,       RSVD3,   RSVD4),
+       PINI(DVFS_CLK,    AUDIO,   SPI6,       CLDVFS,     RSVD3,   RSVD4),
+       PINI(GPIO_X4_AUD, AUDIO,   RSVD1,      SPI1,       SPI2,    DAP2),
+       PINI(GPIO_X5_AUD, AUDIO,   RSVD1,      SPI1,       SPI2,    RSVD4),
+       PINI(GPIO_X6_AUD, AUDIO,   SPI6,       SPI1,       SPI2,    RSVD4),
+       PINI(GPIO_X7_AUD, AUDIO,   RSVD1,      SPI1,       SPI2,    RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x3388 - 0x338c */
+       PIN_RESERVED,
        PINI(SDMMC3_CLK,  SDMMC3,  SDMMC3,     RSVD2,      RSVD3,   SPI3),
        PINI(SDMMC3_CMD,  SDMMC3,  SDMMC3,     PWM3,       UARTA,   SPI3),
        PINI(SDMMC3_DAT0, SDMMC3,  SDMMC3,     RSVD2,      RSVD3,   SPI3),
        PINI(SDMMC3_DAT1, SDMMC3,  SDMMC3,     PWM2,       UARTA,   SPI3),
        PINI(SDMMC3_DAT2, SDMMC3,  SDMMC3,     PWM1,       DISPA,   SPI3),
        PINI(SDMMC3_DAT3, SDMMC3,  SDMMC3,     PWM0,       DISPB,   SPI3),
-       PINI(SDMMC3_DAT4, SDMMC3,  RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(SDMMC3_DAT5, SDMMC3,  RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(SDMMC3_DAT6, SDMMC3,  RSVD1,      RSVD2,      RSVD3,   RSVD4),
-       PINI(SDMMC3_DAT7, SDMMC3,  RSVD1,      RSVD2,      RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x33a8 - 0x33dc */
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
+       PIN_RESERVED,
        PINI(HDMI_CEC,    SYS,     CEC,        SDMMC3,     RSVD3,   SOC),
        PINI(SDMMC1_WP_N, SDMMC1,  SDMMC1,     CLK12,      SPI4,    UARTA),
-       PINI(SDMMC3_CD_N, SDMMC3,  SDMMC3,     OWR,        RSVD3,   RSVD4),
-       PINI(SPI1_CS1_N,  AUDIO,   SPI6,       RSVD2,      SPI2,    I2C1),
-       PINI(SPI1_CS2_N,  AUDIO,   SPI6,       SPI1,       SPI2,    I2C1),
-       PINI(USB_VBUS_EN0, SYS,    USB,        RSVD2,      RSVD3,   RSVD4),
-       PINI(USB_VBUS_EN1, SYS,    USB,        RSVD2,      RSVD3,   RSVD4),
+       PINI(SDMMC3_CD_N, SYS,  SDMMC3,     OWR,        RSVD3,   RSVD4),
+       PINI(GPIO_W2_AUD, AUDIO,   SPI6,       RSVD2,      SPI2,    I2C1),
+       PINI(GPIO_W3_AUD, AUDIO,   SPI6,       SPI1,       SPI2,    I2C1),
+       PINI(USB_VBUS_EN0, LCD,    USB,        RSVD2,      RSVD3,   RSVD4),
+       PINI(USB_VBUS_EN1, LCD,    USB,        RSVD2,      RSVD3,   RSVD4),
        PINI(SDMMC3_CLK_LB_IN,  SDMMC3, SDMMC3, RSVD2,     RSVD3,   RSVD4),
-       PINO(SDMMC3_CLK_LB_OUT, SDMMC3, SDMMC3, RSVD2,     RSVD3,   RSVD4),
-       PINO(NAND_GMI_CLK_LB,   GMI,    SDMMC2, NAND,      GMI,     RSVD4),
+       PINI(SDMMC3_CLK_LB_OUT, SDMMC3, SDMMC3, RSVD2,     RSVD3,   RSVD4),
+       PIN_RESERVED,   /* Reserved by t114: 0x3404 */
        PINO(RESET_OUT_N, SYS,     RSVD1,      RSVD2,      RSVD3, RESET_OUT_N),
 };
 
@@ -484,6 +499,30 @@ static int pinmux_set_ioreset(enum pmux_pingrp pin,
        return 0;
 }
 
+static int pinmux_set_rcv_sel(enum pmux_pingrp pin,
+                               enum pmux_pin_rcv_sel rcv_sel)
+{
+       struct pmux_tri_ctlr *pmt =
+                       (struct pmux_tri_ctlr *)NV_PA_APB_MISC_BASE;
+       u32 *pin_rcv_sel = &pmt->pmt_ctl[pin];
+       u32 reg;
+
+       /* Error check on pin and rcv_sel */
+       assert(pmux_pingrp_isvalid(pin));
+       assert(pmux_pin_rcv_sel_isvalid(rcv_sel));
+
+       if (rcv_sel == PMUX_PIN_RCV_SEL_DEFAULT)
+               return 0;
+
+       reg = readl(pin_rcv_sel);
+       reg &= ~(0x1 << PMUX_RCV_SEL_SHIFT);
+       if (rcv_sel == PMUX_PIN_RCV_SEL_HIGH)
+               reg |= (0x1 << PMUX_RCV_SEL_SHIFT);
+       writel(reg, pin_rcv_sel);
+
+       return 0;
+}
+
 void pinmux_config_pingroup(struct pingroup_config *config)
 {
        enum pmux_pingrp pin = config->pingroup;
@@ -495,6 +534,7 @@ void pinmux_config_pingroup(struct pingroup_config *config)
        pinmux_set_lock(pin, config->lock);
        pinmux_set_od(pin, config->od);
        pinmux_set_ioreset(pin, config->ioreset);
+       pinmux_set_rcv_sel(pin, config->rcv_sel);
 }
 
 void pinmux_config_table(struct pingroup_config *config, int len)
index fd2293039d0a3586af85111c05f14cbf492b6e1f..53905cb8e9154f1e7cf5aa451e798762168dd654 100644 (file)
@@ -50,72 +50,12 @@ enum pmux_pingrp {
        PINGRP_SDMMC1_DAT2,
        PINGRP_SDMMC1_DAT1,
        PINGRP_SDMMC1_DAT0,
-       PINGRP_GPIO_PV2,
-       PINGRP_GPIO_PV3,
-       PINGRP_CLK2_OUT,
+       PINGRP_CLK2_OUT = PINGRP_SDMMC1_DAT0 + 3,
        PINGRP_CLK2_REQ,
-       PINGRP_LCD_PWR1,
-       PINGRP_LCD_PWR2,
-       PINGRP_LCD_SDIN,
-       PINGRP_LCD_SDOUT,
-       PINGRP_LCD_WR_N,
-       PINGRP_LCD_CS0_N,
-       PINGRP_LCD_DC0,
-       PINGRP_LCD_SCK,
-       PINGRP_LCD_PWR0,
-       PINGRP_LCD_PCLK,
-       PINGRP_LCD_DE,
-       PINGRP_LCD_HSYNC,
-       PINGRP_LCD_VSYNC,
-       PINGRP_LCD_D0,
-       PINGRP_LCD_D1,
-       PINGRP_LCD_D2,
-       PINGRP_LCD_D3,
-       PINGRP_LCD_D4,
-       PINGRP_LCD_D5,
-       PINGRP_LCD_D6,
-       PINGRP_LCD_D7,
-       PINGRP_LCD_D8,
-       PINGRP_LCD_D9,
-       PINGRP_LCD_D10,
-       PINGRP_LCD_D11,
-       PINGRP_LCD_D12,
-       PINGRP_LCD_D13,
-       PINGRP_LCD_D14,
-       PINGRP_LCD_D15,
-       PINGRP_LCD_D16,
-       PINGRP_LCD_D17,
-       PINGRP_LCD_D18,
-       PINGRP_LCD_D19,
-       PINGRP_LCD_D20,
-       PINGRP_LCD_D21,
-       PINGRP_LCD_D22,
-       PINGRP_LCD_D23,
-       PINGRP_LCD_CS1_N,
-       PINGRP_LCD_M1,
-       PINGRP_LCD_DC1,
-       PINGRP_HDMI_INT,
+       PINGRP_HDMI_INT = PINGRP_CLK2_REQ + 41,
        PINGRP_DDC_SCL,
        PINGRP_DDC_SDA,
-       PINGRP_CRT_HSYNC,
-       PINGRP_CRT_VSYNC,
-       PINGRP_VI_D0,
-       PINGRP_VI_D1,
-       PINGRP_VI_D2,
-       PINGRP_VI_D3,
-       PINGRP_VI_D4,
-       PINGRP_VI_D5,
-       PINGRP_VI_D6,
-       PINGRP_VI_D7,
-       PINGRP_VI_D8,
-       PINGRP_VI_D9,
-       PINGRP_VI_D10,
-       PINGRP_VI_D11,
-       PINGRP_VI_PCLK,
-       PINGRP_VI_MCLK,
-       PINGRP_VI_VSYNC,
-       PINGRP_VI_HSYNC,
-       PINGRP_UART2_RXD,
+       PINGRP_UART2_RXD = PINGRP_DDC_SDA + 19,
        PINGRP_UART2_TXD,
        PINGRP_UART2_RTS_N,
        PINGRP_UART2_CTS_N,
@@ -186,8 +126,7 @@ enum pmux_pingrp {
        PINGRP_SDMMC4_DAT5,
        PINGRP_SDMMC4_DAT6,
        PINGRP_SDMMC4_DAT7,
-       PINGRP_SDMMC4_RST_N,
-       PINGRP_CAM_MCLK,
+       PINGRP_CAM_MCLK = PINGRP_SDMMC4_DAT7 + 2,
        PINGRP_GPIO_PCC1,
        PINGRP_GPIO_PBB0,
        PINGRP_CAM_I2C_SCL,
@@ -212,12 +151,7 @@ enum pmux_pingrp {
        PINGRP_KB_ROW8,
        PINGRP_KB_ROW9,
        PINGRP_KB_ROW10,
-       PINGRP_KB_ROW11,
-       PINGRP_KB_ROW12,
-       PINGRP_KB_ROW13,
-       PINGRP_KB_ROW14,
-       PINGRP_KB_ROW15,
-       PINGRP_KB_COL0,
+       PINGRP_KB_COL0 = PINGRP_KB_ROW10 + 6,
        PINGRP_KB_COL1,
        PINGRP_KB_COL2,
        PINGRP_KB_COL3,
@@ -244,47 +178,30 @@ enum pmux_pingrp {
        PINGRP_DAP2_DIN,
        PINGRP_DAP2_DOUT,
        PINGRP_DAP2_SCLK,
-       PINGRP_SPI2_MOSI,
-       PINGRP_SPI2_MISO,
-       PINGRP_SPI2_CS0_N,
-       PINGRP_SPI2_SCK,
-       PINGRP_SPI1_MOSI,
-       PINGRP_SPI1_SCK,
-       PINGRP_SPI1_CS0_N,
-       PINGRP_SPI1_MISO,
-       PINGRP_SPI2_CS1_N,
-       PINGRP_SPI2_CS2_N,
-       PINGRP_SDMMC3_CLK,
+       PINGRP_DVFS_PWM,
+       PINGRP_GPIO_X1_AUD,
+       PINGRP_GPIO_X3_AUD,
+       PINGRP_DVFS_CLK,
+       PINGRP_GPIO_X4_AUD,
+       PINGRP_GPIO_X5_AUD,
+       PINGRP_GPIO_X6_AUD,
+       PINGRP_GPIO_X7_AUD,
+       PINGRP_SDMMC3_CLK = PINGRP_GPIO_X7_AUD + 3,
        PINGRP_SDMMC3_CMD,
        PINGRP_SDMMC3_DAT0,
        PINGRP_SDMMC3_DAT1,
        PINGRP_SDMMC3_DAT2,
        PINGRP_SDMMC3_DAT3,
-       PINGRP_SDMMC3_DAT4,
-       PINGRP_SDMMC3_DAT5,
-       PINGRP_SDMMC3_DAT6,
-       PINGRP_SDMMC3_DAT7,
-       PINGRP_PEX_L0_PRSNT_N,
-       PINGRP_PEX_L0_RST_N,
-       PINGRP_PEX_L0_CLKREQ_N,
-       PINGRP_PEX_WAKE_N,
-       PINGRP_PEX_L1_PRSNT_N,
-       PINGRP_PEX_L1_RST_N,
-       PINGRP_PEX_L1_CLKREQ_N,
-       PINGRP_PEX_L2_PRSNT_N,
-       PINGRP_PEX_L2_RST_N,
-       PINGRP_PEX_L2_CLKREQ_N,
-       PINGRP_HDMI_CEC,        /* offset 0x33e0 */
+       PINGRP_HDMI_CEC = PINGRP_SDMMC3_DAT3 + 15, /* offset 0x33e0 */
        PINGRP_SDMMC1_WP_N,
        PINGRP_SDMMC3_CD_N,
-       PINGRP_SPI1_CS1_N,
-       PINGRP_SPI1_CS2_N,
-       PINGRP_USB_VBUS_EN0,    /* offset 0x33f4 */
+       PINGRP_GPIO_W2_AUD,
+       PINGRP_GPIO_W3_AUD,
+       PINGRP_USB_VBUS_EN0,    /* offset 0x33f4 */
        PINGRP_USB_VBUS_EN1,
        PINGRP_SDMMC3_CLK_LB_IN,
        PINGRP_SDMMC3_CLK_LB_OUT,
-       PINGRP_NAND_GMI_CLK_LB,
-       PINGRP_RESET_OUT_N,
+       PINGRP_RESET_OUT_N = PINGRP_SDMMC3_CLK_LB_OUT + 2,
        PINGRP_COUNT,
 };
 
@@ -304,23 +221,16 @@ enum pdrive_pingrp {
        PDRIVE_PINGROUP_DAP3,
        PDRIVE_PINGROUP_DAP4,
        PDRIVE_PINGROUP_DBG,
-       PDRIVE_PINGROUP_LCD1,
-       PDRIVE_PINGROUP_LCD2,
-       PDRIVE_PINGROUP_SDIO2,
        PDRIVE_PINGROUP_SDIO3,
        PDRIVE_PINGROUP_SPI,
        PDRIVE_PINGROUP_UAA,
        PDRIVE_PINGROUP_UAB,
        PDRIVE_PINGROUP_UART2,
        PDRIVE_PINGROUP_UART3,
-       PDRIVE_PINGROUP_VI1 = 24,       /* offset 0x8c8 */
        PDRIVE_PINGROUP_SDIO1 = 33,     /* offset 0x8ec */
        PDRIVE_PINGROUP_CRT = 36,       /* offset 0x8f8 */
        PDRIVE_PINGROUP_DDC,
        PDRIVE_PINGROUP_GMA,
-       PDRIVE_PINGROUP_GMB,
-       PDRIVE_PINGROUP_GMC,
-       PDRIVE_PINGROUP_GMD,
        PDRIVE_PINGROUP_GME,
        PDRIVE_PINGROUP_GMF,
        PDRIVE_PINGROUP_GMG,
@@ -401,6 +311,7 @@ enum pmux_func {
        PMUX_FUNC_VI,
        PMUX_FUNC_VI_SENSOR_CLK,
        PMUX_FUNC_XIO,
+       /* End of Tegra2 MUX selectors */
        PMUX_FUNC_BLINK,
        PMUX_FUNC_CEC,
        PMUX_FUNC_CLK12,
@@ -444,7 +355,7 @@ enum pmux_func {
        PMUX_FUNC_VGP4,
        PMUX_FUNC_VGP5,
        PMUX_FUNC_VGP6,
-
+       /* End of Tegra3 MUX selectors */
        PMUX_FUNC_USB,
        PMUX_FUNC_SOC,
        PMUX_FUNC_CPU,
@@ -453,10 +364,12 @@ enum pmux_func {
        PMUX_FUNC_PMI,
        PMUX_FUNC_CLDVFS,
        PMUX_FUNC_RESET_OUT_N,
+       /* End of Tegra114 MUX selectors */
 
        PMUX_FUNC_SAFE,
        PMUX_FUNC_MAX,
 
+       PMUX_FUNC_INVALID = 0x4000,
        PMUX_FUNC_RSVD1 = 0x8000,
        PMUX_FUNC_RSVD2 = 0x8001,
        PMUX_FUNC_RSVD3 = 0x8002,
@@ -492,6 +405,7 @@ enum pmux_tristate {
 enum pmux_pin_io {
        PMUX_PIN_OUTPUT = 0,
        PMUX_PIN_INPUT = 1,
+       PMUX_PIN_NONE,
 };
 /* return 1 if a pin_io_is in range */
 #define pmux_pin_io_isvalid(io) (((io) >= PMUX_PIN_OUTPUT) && \
@@ -525,6 +439,16 @@ enum pmux_pin_ioreset {
                                (((ioreset) >= PMUX_PIN_IO_RESET_DEFAULT) && \
                                ((ioreset) <= PMUX_PIN_IO_RESET_ENABLE))
 
+enum pmux_pin_rcv_sel {
+       PMUX_PIN_RCV_SEL_DEFAULT = 0,
+       PMUX_PIN_RCV_SEL_NORMAL,
+       PMUX_PIN_RCV_SEL_HIGH,
+};
+/* return 1 if a pin_rcv_sel_is in range */
+#define pmux_pin_rcv_sel_isvalid(rcv_sel) \
+                               (((rcv_sel) >= PMUX_PIN_RCV_SEL_DEFAULT) && \
+                               ((rcv_sel) <= PMUX_PIN_RCV_SEL_HIGH))
+
 /* Available power domains used by pin groups */
 enum pmux_vddio {
        PMUX_VDDIO_BB = 0,
@@ -581,6 +505,8 @@ struct pingroup_config {
        enum pmux_pin_lock lock;        /* lock enable/disable PMUX_PIN...  */
        enum pmux_pin_od od;            /* open-drain or push-pull driver  */
        enum pmux_pin_ioreset ioreset;  /* input/output reset PMUX_PIN...  */
+       enum pmux_pin_rcv_sel rcv_sel;  /* select between High and Normal  */
+                                       /* VIL/VIH receivers */
 };
 
 /* Set a pin group to tristate */
index aca3c7d17bb2ad154847e63f172ecb6e91271664..2020a5f00d2fa62c15a8a735a18377ab94ebbc25 100644 (file)
@@ -24,6 +24,9 @@
  */
 void pinmux_init(void)
 {
+       pinmux_config_table(tegra114_pinmux_set_nontristate,
+               ARRAY_SIZE(tegra114_pinmux_set_nontristate));
+
        pinmux_config_table(tegra114_pinmux_common,
                ARRAY_SIZE(tegra114_pinmux_common));
 
index 3dd47da32db25d955a79c938f8dc5e55adff02f3..d25881908d4c12e1658c0ec70e5cb81547413091 100644 (file)
@@ -17,7 +17,7 @@
 #ifndef _PINMUX_CONFIG_DALMORE_H_
 #define _PINMUX_CONFIG_DALMORE_H_
 
-#define DEFAULT_PINMUX(_pingroup, _mux, _pull, _tri, _io)   \
+#define DEFAULT_PINMUX(_pingroup, _mux, _pull, _tri, _io)      \
        {                                                       \
                .pingroup       = PINGRP_##_pingroup,           \
                .func           = PMUX_FUNC_##_mux,             \
                .ioreset        = PMUX_PIN_IO_RESET_DEFAULT,    \
        }
 
-#define LV_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _ioreset) \
+#define DDC_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _rcv_sel) \
+       {                                                       \
+               .pingroup       = PINGRP_##_pingroup,           \
+               .func           = PMUX_FUNC_##_mux,             \
+               .pull           = PMUX_PULL_##_pull,            \
+               .tristate       = PMUX_TRI_##_tri,              \
+               .io             = PMUX_PIN_##_io,               \
+               .lock           = PMUX_PIN_LOCK_##_lock,        \
+               .rcv_sel        = PMUX_PIN_RCV_SEL_##_rcv_sel,  \
+               .ioreset        = PMUX_PIN_IO_RESET_DEFAULT,    \
+       }
+
+#define VI_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _ioreset) \
        {                                                       \
                .pingroup       = PINGRP_##_pingroup,           \
                .func           = PMUX_FUNC_##_mux,             \
                .io             = PMUX_PIN_##_io,               \
                .lock           = PMUX_PIN_LOCK_##_lock,        \
                .od             = PMUX_PIN_OD_DEFAULT,          \
-               .ioreset        = PMUX_PIN_IO_RESET_##_ioreset  \
+               .ioreset        = PMUX_PIN_IO_RESET_##_ioreset  \
+       }
+
+#define CEC_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _od)      \
+       {                                                               \
+               .pingroup   = PINGRP_##_pingroup,                       \
+               .func       = PMUX_FUNC_##_mux,                         \
+               .pull       = PMUX_PULL_##_pull,                        \
+               .tristate   = PMUX_TRI_##_tri,                          \
+               .io         = PMUX_PIN_##_io,                           \
+               .lock       = PMUX_PIN_LOCK_##_lock,                    \
+               .od         = PMUX_PIN_OD_##_od,                        \
+               .ioreset    = PMUX_PIN_IO_RESET_DEFAULT,                \
        }
 
+#define USB_PINMUX CEC_PINMUX
+
 static struct pingroup_config tegra114_pinmux_common[] = {
+       /* EXTPERIPH1 pinmux */
+       DEFAULT_PINMUX(CLK1_OUT,      EXTPERIPH1,  NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2S0 pinmux */
+       DEFAULT_PINMUX(DAP1_DIN,      I2S0,        NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(DAP1_DOUT,     I2S0,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP1_FS,       I2S0,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP1_SCLK,     I2S0,        NORMAL,    NORMAL,   INPUT),
+
+       /* I2S1 pinmux */
+       DEFAULT_PINMUX(DAP2_DIN,      I2S1,        NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(DAP2_DOUT,     I2S1,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP2_FS,       I2S1,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP2_SCLK,     I2S1,        NORMAL,    NORMAL,   INPUT),
+
+       /* I2S3 pinmux */
+       DEFAULT_PINMUX(DAP4_DIN,      I2S3,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP4_DOUT,     I2S3,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP4_FS,       I2S3,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(DAP4_SCLK,     I2S3,        NORMAL,    NORMAL,   INPUT),
+
+       /* CLDVFS pinmux */
+       DEFAULT_PINMUX(DVFS_PWM,      CLDVFS,      NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(DVFS_CLK,      CLDVFS,      NORMAL,    NORMAL,   OUTPUT),
+
+       /* ULPI pinmux */
+       DEFAULT_PINMUX(ULPI_CLK,      ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA0,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA1,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA2,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA3,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA4,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA5,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA6,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DATA7,    ULPI,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(ULPI_DIR,      ULPI,        NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(ULPI_NXT,      ULPI,        NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(ULPI_STP,      ULPI,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2C3 pinmux */
+       I2C_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+       I2C_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+
+       /* VI pinmux */
+       VI_PINMUX(CAM_MCLK, VI_ALT3,  NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT),
+
+       /* VI_ALT1 pinmux */
+       VI_PINMUX(GPIO_PBB0, VI_ALT3, NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT),
+
+       /* VGP4 pinmux */
+       VI_PINMUX(GPIO_PBB4, VGP4,    NORMAL, NORMAL, OUTPUT, DEFAULT, DEFAULT),
+
+       /* I2C2 pinmux */
+       I2C_PINMUX(GEN2_I2C_SCL, I2C2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+       I2C_PINMUX(GEN2_I2C_SDA, I2C2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+
+       /* UARTD pinmux */
+       DEFAULT_PINMUX(GMI_A16,       UARTD,       NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(GMI_A17,       UARTD,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(GMI_A18,       UARTD,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(GMI_A19,       UARTD,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* SPI4 pinmux */
+       DEFAULT_PINMUX(GMI_AD5,       SPI4,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_AD6,       SPI4,        UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_AD7,       SPI4,        UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_AD12,      RSVD1,       NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(GMI_CS6_N,     SPI4,        NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(GMI_WR_N,      SPI4,        NORMAL,    NORMAL,   INPUT),
+
+       /* PWM1 pinmux */
+       DEFAULT_PINMUX(GMI_AD9,       PWM1,        NORMAL,    NORMAL,   OUTPUT),
+
+       /* SOC pinmux */
+       DEFAULT_PINMUX(GMI_CS1_N,     SOC,         NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(GMI_OE_N,      SOC,         NORMAL,    TRISTATE, INPUT),
+
+       /* EXTPERIPH2 pinmux */
+       DEFAULT_PINMUX(CLK2_OUT,      EXTPERIPH2,  NORMAL,    NORMAL,   OUTPUT),
+
        /* SDMMC1 pinmux */
-       DEFAULT_PINMUX(SDMMC1_CLK,      SDMMC1,   NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_CMD,      SDMMC1,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_DAT3,     SDMMC1,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_DAT2,     SDMMC1,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_DAT1,     SDMMC1,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_DAT0,     SDMMC1,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC1_WP_N,     SDMMC1,   UP,     NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_CLK,    SDMMC1,      NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_CMD,    SDMMC1,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT0,   SDMMC1,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT1,   SDMMC1,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT2,   SDMMC1,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC1_DAT3,   SDMMC1,      UP,        NORMAL,   INPUT),
 
        /* SDMMC3 pinmux */
-       DEFAULT_PINMUX(SDMMC3_CLK,      SDMMC3,   NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_CLK_LB_IN, SDMMC3,  NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_CLK_LB_OUT, SDMMC3, NORMAL, NORMAL,   OUTPUT),
-
-       DEFAULT_PINMUX(SDMMC3_CMD,      SDMMC3,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_DAT0,     SDMMC3,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_DAT1,     SDMMC3,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_DAT2,     SDMMC3,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_DAT3,     SDMMC3,   UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(SDMMC3_CD_N,     SDMMC3,   UP,     NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CLK,    SDMMC3,      NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CMD,    SDMMC3,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT0,   SDMMC3,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT1,   SDMMC3,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT2,   SDMMC3,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT3,   SDMMC3,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_CLK_LB_IN,  SDMMC3,  UP,        TRISTATE, INPUT),
+       DEFAULT_PINMUX(SDMMC3_CLK_LB_OUT, SDMMC3,  DOWN,      NORMAL,   INPUT),
 
        /* SDMMC4 pinmux */
-       LV_PINMUX(SDMMC4_CLK,  SDMMC4, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_CMD,  SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT0, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT1, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT2, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT3, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT4, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT5, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT6, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_DAT7, SDMMC4, UP,     NORMAL, INPUT, DISABLE, DISABLE),
-       LV_PINMUX(SDMMC4_RST_N, RSVD1, DOWN,   NORMAL, INPUT, DISABLE, DISABLE),
+       DEFAULT_PINMUX(SDMMC4_CLK,    SDMMC4,      NORMAL,    NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_CMD,    SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT0,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT1,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT2,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT3,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT4,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT5,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT6,   SDMMC4,      UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC4_DAT7,   SDMMC4,      UP,        NORMAL,   INPUT),
+
+       /* BLINK pinmux */
+       DEFAULT_PINMUX(CLK_32K_OUT,   BLINK,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* KBC pinmux */
+       DEFAULT_PINMUX(KB_COL0,       KBC,         UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_COL1,       KBC,         UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_COL2,       KBC,         UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_ROW0,       KBC,         UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_ROW1,       KBC,         UP,        NORMAL,   INPUT),
+       DEFAULT_PINMUX(KB_ROW2,       KBC,         UP,        NORMAL,   INPUT),
+
+       /*Audio Codec*/
+       DEFAULT_PINMUX(DAP3_DIN,      RSVD1,       NORMAL,    TRISTATE, OUTPUT),
+       DEFAULT_PINMUX(DAP3_SCLK,     RSVD1,       NORMAL,    TRISTATE, OUTPUT),
+       DEFAULT_PINMUX(GPIO_PV0,      RSVD1,       NORMAL,    TRISTATE, OUTPUT),
+       DEFAULT_PINMUX(KB_ROW7,       RSVD1,       UP,        NORMAL,   INPUT),
+
+       /* UARTA pinmux */
+       DEFAULT_PINMUX(KB_ROW10,      UARTA,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(KB_ROW9,       UARTA,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* I2CPWR pinmux (I2C5) */
+       I2C_PINMUX(PWR_I2C_SCL, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+       I2C_PINMUX(PWR_I2C_SDA, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+
+       /* SYSCLK pinmux */
+       DEFAULT_PINMUX(SYS_CLK_REQ,   SYSCLK,      NORMAL,    NORMAL,   OUTPUT),
+
+       /* RTCK pinmux */
+       DEFAULT_PINMUX(JTAG_RTCK,     RTCK,        NORMAL,    NORMAL,   INPUT),
+
+       /* CLK pinmux */
+       DEFAULT_PINMUX(CLK_32K_IN,    CLK,         NORMAL,    TRISTATE, INPUT),
+
+       /* PWRON pinmux */
+       DEFAULT_PINMUX(CORE_PWR_REQ,  PWRON,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* CPU pinmux */
+       DEFAULT_PINMUX(CPU_PWR_REQ,   CPU,         NORMAL,    NORMAL,   OUTPUT),
+
+       /* PMI pinmux */
+       DEFAULT_PINMUX(PWR_INT_N,     PMI,         NORMAL,    TRISTATE, INPUT),
+
+       /* RESET_OUT_N pinmux */
+       DEFAULT_PINMUX(RESET_OUT_N,   RESET_OUT_N, NORMAL,    NORMAL,   OUTPUT),
+
+       /* EXTPERIPH3 pinmux */
+       DEFAULT_PINMUX(CLK3_OUT,      EXTPERIPH3,  NORMAL,    NORMAL,   OUTPUT),
 
        /* I2C1 pinmux */
-       I2C_PINMUX(GEN1_I2C_SCL, I2C1, NORMAL,  NORMAL, INPUT, DISABLE, ENABLE),
-       I2C_PINMUX(GEN1_I2C_SDA, I2C1, NORMAL,  NORMAL, INPUT, DISABLE, ENABLE),
+       I2C_PINMUX(GEN1_I2C_SCL, I2C1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
+       I2C_PINMUX(GEN1_I2C_SDA, I2C1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
 
-       /* I2C2 pinmux */
-       I2C_PINMUX(GEN2_I2C_SCL, I2C2, NORMAL,  NORMAL, INPUT, DISABLE, ENABLE),
-       I2C_PINMUX(GEN2_I2C_SDA, I2C2, NORMAL,  NORMAL, INPUT, DISABLE, ENABLE),
+       /* UARTB pinmux */
+       DEFAULT_PINMUX(UART2_CTS_N,   UARTB,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(UART2_RTS_N,   UARTB,       NORMAL,    NORMAL,   OUTPUT),
 
-       /* I2C3 pinmux */
-       I2C_PINMUX(CAM_I2C_SCL, I2C3, NORMAL,   NORMAL, INPUT, DISABLE, ENABLE),
-       I2C_PINMUX(CAM_I2C_SDA, I2C3, NORMAL,   NORMAL, INPUT, DISABLE, ENABLE),
+       /* IRDA pinmux */
+       DEFAULT_PINMUX(UART2_RXD,     UARTB,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(UART2_TXD,     UARTB,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* UARTC pinmux */
+       DEFAULT_PINMUX(UART3_CTS_N,   UARTC,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(UART3_RTS_N,   UARTC,       NORMAL,    NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(UART3_RXD,     UARTC,       NORMAL,    TRISTATE, INPUT),
+       DEFAULT_PINMUX(UART3_TXD,     UARTC,       NORMAL,    NORMAL,   OUTPUT),
+
+       /* OWR pinmux */
+       DEFAULT_PINMUX(OWR,           OWR,         NORMAL,    NORMAL,   INPUT),
+
+       /* CEC pinmux */
+       CEC_PINMUX(HDMI_CEC, CEC, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
 
        /* I2C4 pinmux */
-       I2C_PINMUX(DDC_SCL,     I2C4, NORMAL,   NORMAL, INPUT, DISABLE, ENABLE),
-       I2C_PINMUX(DDC_SDA,     I2C4, NORMAL,   NORMAL, INPUT, DISABLE, ENABLE),
-
-       /* Power I2C pinmux */
-       I2C_PINMUX(PWR_I2C_SCL, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
-       I2C_PINMUX(PWR_I2C_SDA, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
-
-       DEFAULT_PINMUX(ULPI_DATA0,      UARTA,    NORMAL, NORMAL,   OUTPUT),
-       DEFAULT_PINMUX(ULPI_DATA1,      UARTA,    UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(ULPI_DATA2,      UARTA,    NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(ULPI_DATA3,      UARTA,    NORMAL, NORMAL,   INPUT),
-
-       DEFAULT_PINMUX(ULPI_DATA4,      UARTA,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(ULPI_DATA5,      UARTA,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(ULPI_DATA6,      UARTA,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(ULPI_DATA7,      UARTA,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(ULPI_CLK,        UARTD,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(ULPI_DIR,        UARTD,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(ULPI_NXT,        UARTD,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(ULPI_STP,        UARTD,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(DAP3_FS,         I2S2,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP3_DIN,        I2S2,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP3_DOUT,       I2S2,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP3_SCLK,       I2S2,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(CLK2_OUT,        EXTPERIPH2, NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(CLK2_REQ,        DAP,      NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(UART2_RXD,       UARTB,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(UART2_TXD,       UARTB,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(UART2_RTS_N,     UARTB,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(UART2_CTS_N,     UARTB,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(UART3_TXD,       UARTC,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(UART3_RXD,       UARTC,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(UART3_CTS_N,     UARTC,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(UART3_RTS_N,     UARTC,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GPIO_PU0,        RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PU1,        RSVD1,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GPIO_PU2,        RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PU3,        RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PU4,        PWM1,     NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GPIO_PU5,        PWM2,     NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GPIO_PU6,        RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP4_FS,         I2S3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP4_DIN,        I2S3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP4_DOUT,       I2S3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(DAP4_SCLK,       I2S3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(CLK3_OUT,        EXTPERIPH3, NORMAL, NORMAL,   OUTPUT),
-       DEFAULT_PINMUX(CLK3_REQ,        DEV3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GMI_WP_N,        GMI,      NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GMI_CS2_N,       RSVD1,    UP,     NORMAL,     INPUT),
-       DEFAULT_PINMUX(GMI_AD8,         PWM0,     NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GMI_AD10,        NAND,     NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GMI_A16,         UARTD,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(GMI_A17,         UARTD,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GMI_A18,         UARTD,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GMI_A19,         UARTD,    NORMAL, NORMAL,     OUTPUT),
-       DEFAULT_PINMUX(CAM_MCLK,        VI_ALT2,  UP,     NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PCC1,       RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PBB0,       RSVD1,    NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PBB3,       VGP3,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PBB5,       VGP5,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PBB6,       VGP6,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PBB7,       I2S4,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(GPIO_PCC2,       I2S4,     NORMAL, NORMAL,     INPUT),
-       DEFAULT_PINMUX(JTAG_RTCK,       RTCK,     NORMAL, NORMAL,     OUTPUT),
-
-       /*  KBC keys */
-       DEFAULT_PINMUX(KB_ROW0,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW1,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW2,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW3,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW4,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW5,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW6,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW7,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW8,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW9,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_ROW10,   KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL0,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL1,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL2,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL3,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL4,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL5,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL6,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(KB_COL7,    KBC,    UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(GPIO_PV0,   RSVD1,  UP,    NORMAL,    INPUT),
-       DEFAULT_PINMUX(GPIO_PV1,   RSVD1,  UP,    NORMAL,    INPUT),
-
-       DEFAULT_PINMUX(CLK_32K_OUT,     BLINK,    NORMAL, NORMAL,   OUTPUT),
-       DEFAULT_PINMUX(SYS_CLK_REQ,     SYSCLK,   NORMAL, NORMAL,   OUTPUT),
-       DEFAULT_PINMUX(OWR,             OWR,      NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP1_FS,         I2S0,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP1_DIN,        I2S0,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP1_DOUT,       I2S0,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP1_SCLK,       I2S0,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(CLK1_REQ,        DAP,      NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(CLK1_OUT,        EXTPERIPH1, NORMAL, NORMAL, INPUT),
-       DEFAULT_PINMUX(SPDIF_IN,        SPDIF,    NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPDIF_OUT,       SPDIF,    NORMAL, NORMAL,   OUTPUT),
-       DEFAULT_PINMUX(DAP2_FS,         I2S1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP2_DIN,        I2S1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP2_DOUT,       I2S1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(DAP2_SCLK,       I2S1,     NORMAL, NORMAL,   INPUT),
-
-       DEFAULT_PINMUX(SPI1_MOSI,       SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPI1_SCK,        SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPI1_CS0_N,      SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPI1_CS1_N,      SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPI1_CS2_N,      SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(SPI1_MISO,       SPI1,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(HDMI_CEC,        CEC,      NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(HDMI_INT,        RSVD1,    NORMAL, TRISTATE, INPUT),
-
-       /* GPIOs */
-       /* SDMMC1 CD gpio */
-       DEFAULT_PINMUX(GMI_IORDY,       RSVD1,    UP,     NORMAL,   INPUT),
-
-       /* Touch RESET */
-       DEFAULT_PINMUX(GMI_AD14,        NAND,     NORMAL, NORMAL,   OUTPUT),
-
-       /* Power rails GPIO */
-       DEFAULT_PINMUX(SPI2_SCK,        GMI,      NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(GPIO_PBB4,       VGP4,     NORMAL, NORMAL,   INPUT),
-       DEFAULT_PINMUX(KB_ROW8,         KBC,      UP,     NORMAL,   INPUT),
+       DDC_PINMUX(DDC_SCL, I2C4, NORMAL, NORMAL, INPUT, DISABLE, HIGH),
+       DDC_PINMUX(DDC_SDA, I2C4, NORMAL, NORMAL, INPUT, DISABLE, HIGH),
+
+       /* USB pinmux */
+       USB_PINMUX(USB_VBUS_EN0, USB, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
+
+       /* nct */
+       DEFAULT_PINMUX(GPIO_X6_AUD,   SPI6,        UP,        TRISTATE, INPUT),
 };
 
 static struct pingroup_config unused_pins_lowpower[] = {
-       DEFAULT_PINMUX(GMI_CS0_N,       NAND,     UP,     TRISTATE, OUTPUT),
-       DEFAULT_PINMUX(GMI_CS3_N,       NAND,     UP,     TRISTATE, OUTPUT),
-       DEFAULT_PINMUX(GMI_CS4_N,       NAND,     UP,     TRISTATE, OUTPUT),
-       DEFAULT_PINMUX(GMI_CS7_N,       NAND,     UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(GMI_AD0,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD1,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD2,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD3,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD4,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD5,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD6,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD7,         NAND,     NORMAL, TRISTATE, INPUT),
-       DEFAULT_PINMUX(GMI_AD9,         PWM1,     NORMAL, TRISTATE, OUTPUT),
-       DEFAULT_PINMUX(GMI_AD11,        NAND,     NORMAL, TRISTATE, OUTPUT),
-       DEFAULT_PINMUX(GMI_AD13,        NAND,     UP,     NORMAL,   INPUT),
-       DEFAULT_PINMUX(GMI_WR_N,        NAND,     NORMAL, TRISTATE, OUTPUT),
+       DEFAULT_PINMUX(CLK1_REQ,      RSVD3,       DOWN, TRISTATE, OUTPUT),
+       DEFAULT_PINMUX(USB_VBUS_EN1,  RSVD3,       DOWN, TRISTATE, OUTPUT),
 };
 
-#endif /* _PINMUX_CONFIG_DALMORE_H_ */
+/* Initially setting all used GPIO's to non-TRISTATE */
+static struct pingroup_config tegra114_pinmux_set_nontristate[] = {
+       DEFAULT_PINMUX(GPIO_X4_AUD,     RSVD1,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_X5_AUD,     RSVD1,  UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_X6_AUD,     RSVD3,  UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_X7_AUD,     RSVD1,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_W2_AUD,     RSVD1,  UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_W3_AUD,     SPI6,   UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_X1_AUD,     RSVD3,  DOWN,    NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_X3_AUD,     RSVD3,  UP,      NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(DAP3_FS,         I2S2,   DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(DAP3_DIN,        I2S2,   DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(DAP3_DOUT,       I2S2,   DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(DAP3_SCLK,       I2S2,   DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PV0,        RSVD3,  NORMAL,  NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_PV1,        RSVD1,  NORMAL,  NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(GPIO_PBB3,       RSVD3,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PBB5,       RSVD3,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PBB6,       RSVD3,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PBB7,       RSVD3,  DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PCC1,       RSVD3,  DOWN,    NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_PCC2,       RSVD3,  DOWN,    NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(GMI_AD0,         GMI,    NORMAL,  NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_AD1,         GMI,    NORMAL,  NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_AD10,        GMI,    DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_AD11,        GMI,    DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_AD12,        GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_AD13,        GMI,    DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_AD2,         GMI,    NORMAL,  NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_AD3,         GMI,    NORMAL,  NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_AD8,         GMI,    DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_ADV_N,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_CLK,         GMI,    DOWN,    NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_CS0_N,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_CS2_N,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_CS3_N,       GMI,    UP,      NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GMI_CS4_N,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_CS7_N,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_DQS,         GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_IORDY,       GMI,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(GMI_WP_N,        GMI,    UP,      NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(SDMMC1_WP_N,     SPI4,   UP,      NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(CLK2_REQ,        RSVD3,  NORMAL,  NORMAL,    OUTPUT),
+
+       DEFAULT_PINMUX(KB_COL3,         KBC,    UP,      NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(KB_COL4,         SDMMC3, UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(KB_COL5,         KBC,    UP,      NORMAL,    INPUT),
+       DEFAULT_PINMUX(KB_COL6,         KBC,    UP,      NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(KB_COL7,         KBC,    UP,      NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(KB_ROW3,         KBC,    DOWN,    NORMAL,    INPUT),
+       DEFAULT_PINMUX(KB_ROW4,         KBC,    DOWN,    NORMAL,    INPUT),
+       DEFAULT_PINMUX(KB_ROW6,         KBC,    DOWN,    NORMAL,    INPUT),
+       DEFAULT_PINMUX(KB_ROW8,         KBC,    UP,      NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(CLK3_REQ,        RSVD3,  NORMAL,  NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PU4,        RSVD3,  NORMAL,  NORMAL,    OUTPUT),
+       DEFAULT_PINMUX(GPIO_PU5,        RSVD3,  NORMAL,  NORMAL,    INPUT),
+       DEFAULT_PINMUX(GPIO_PU6,        RSVD3,  NORMAL,  NORMAL,    INPUT),
+
+       DEFAULT_PINMUX(HDMI_INT,        RSVD1,   DOWN,    NORMAL,   INPUT),
+
+       DEFAULT_PINMUX(GMI_AD9,         PWM1,   NORMAL,   NORMAL,   OUTPUT),
+       DEFAULT_PINMUX(SPDIF_IN,        USB,    NORMAL,   NORMAL,   INPUT),
+
+       DEFAULT_PINMUX(SDMMC3_CD_N,     SDMMC3, UP,       NORMAL,   INPUT),
+};
+#endif /* PINMUX_CONFIG_COMMON_H */