1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (c) 2011 The Chromium OS Authors. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* Tegra20 pin multiplexing functions */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <common.h> 10*4882a593Smuzhiyun #include <asm/io.h> 11*4882a593Smuzhiyun #include <asm/arch/pinmux.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun /* 14*4882a593Smuzhiyun * This defines the order of the pin mux control bits in the registers. For 15*4882a593Smuzhiyun * some reason there is no correspendence between the tristate, pin mux and 16*4882a593Smuzhiyun * pullup/pulldown registers. 17*4882a593Smuzhiyun */ 18*4882a593Smuzhiyun enum pmux_ctlid { 19*4882a593Smuzhiyun /* 0: APB_MISC_PP_PIN_MUX_CTL_A_0 */ 20*4882a593Smuzhiyun MUXCTL_UAA, 21*4882a593Smuzhiyun MUXCTL_UAB, 22*4882a593Smuzhiyun MUXCTL_UAC, 23*4882a593Smuzhiyun MUXCTL_UAD, 24*4882a593Smuzhiyun MUXCTL_UDA, 25*4882a593Smuzhiyun MUXCTL_RESERVED5, 26*4882a593Smuzhiyun MUXCTL_ATE, 27*4882a593Smuzhiyun MUXCTL_RM, 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun MUXCTL_ATB, 30*4882a593Smuzhiyun MUXCTL_RESERVED9, 31*4882a593Smuzhiyun MUXCTL_ATD, 32*4882a593Smuzhiyun MUXCTL_ATC, 33*4882a593Smuzhiyun MUXCTL_ATA, 34*4882a593Smuzhiyun MUXCTL_KBCF, 35*4882a593Smuzhiyun MUXCTL_KBCE, 36*4882a593Smuzhiyun MUXCTL_SDMMC1, 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun /* 16: APB_MISC_PP_PIN_MUX_CTL_B_0 */ 39*4882a593Smuzhiyun MUXCTL_GMA, 40*4882a593Smuzhiyun MUXCTL_GMC, 41*4882a593Smuzhiyun MUXCTL_HDINT, 42*4882a593Smuzhiyun MUXCTL_SLXA, 43*4882a593Smuzhiyun MUXCTL_OWC, 44*4882a593Smuzhiyun MUXCTL_SLXC, 45*4882a593Smuzhiyun MUXCTL_SLXD, 46*4882a593Smuzhiyun MUXCTL_SLXK, 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun MUXCTL_UCA, 49*4882a593Smuzhiyun MUXCTL_UCB, 50*4882a593Smuzhiyun MUXCTL_DTA, 51*4882a593Smuzhiyun MUXCTL_DTB, 52*4882a593Smuzhiyun MUXCTL_RESERVED28, 53*4882a593Smuzhiyun MUXCTL_DTC, 54*4882a593Smuzhiyun MUXCTL_DTD, 55*4882a593Smuzhiyun MUXCTL_DTE, 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun /* 32: APB_MISC_PP_PIN_MUX_CTL_C_0 */ 58*4882a593Smuzhiyun MUXCTL_DDC, 59*4882a593Smuzhiyun MUXCTL_CDEV1, 60*4882a593Smuzhiyun MUXCTL_CDEV2, 61*4882a593Smuzhiyun MUXCTL_CSUS, 62*4882a593Smuzhiyun MUXCTL_I2CP, 63*4882a593Smuzhiyun MUXCTL_KBCA, 64*4882a593Smuzhiyun MUXCTL_KBCB, 65*4882a593Smuzhiyun MUXCTL_KBCC, 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun MUXCTL_IRTX, 68*4882a593Smuzhiyun MUXCTL_IRRX, 69*4882a593Smuzhiyun MUXCTL_DAP1, 70*4882a593Smuzhiyun MUXCTL_DAP2, 71*4882a593Smuzhiyun MUXCTL_DAP3, 72*4882a593Smuzhiyun MUXCTL_DAP4, 73*4882a593Smuzhiyun MUXCTL_GMB, 74*4882a593Smuzhiyun MUXCTL_GMD, 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun /* 48: APB_MISC_PP_PIN_MUX_CTL_D_0 */ 77*4882a593Smuzhiyun MUXCTL_GME, 78*4882a593Smuzhiyun MUXCTL_GPV, 79*4882a593Smuzhiyun MUXCTL_GPU, 80*4882a593Smuzhiyun MUXCTL_SPDO, 81*4882a593Smuzhiyun MUXCTL_SPDI, 82*4882a593Smuzhiyun MUXCTL_SDB, 83*4882a593Smuzhiyun MUXCTL_SDC, 84*4882a593Smuzhiyun MUXCTL_SDD, 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun MUXCTL_SPIH, 87*4882a593Smuzhiyun MUXCTL_SPIG, 88*4882a593Smuzhiyun MUXCTL_SPIF, 89*4882a593Smuzhiyun MUXCTL_SPIE, 90*4882a593Smuzhiyun MUXCTL_SPID, 91*4882a593Smuzhiyun MUXCTL_SPIC, 92*4882a593Smuzhiyun MUXCTL_SPIB, 93*4882a593Smuzhiyun MUXCTL_SPIA, 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun /* 64: APB_MISC_PP_PIN_MUX_CTL_E_0 */ 96*4882a593Smuzhiyun MUXCTL_LPW0, 97*4882a593Smuzhiyun MUXCTL_LPW1, 98*4882a593Smuzhiyun MUXCTL_LPW2, 99*4882a593Smuzhiyun MUXCTL_LSDI, 100*4882a593Smuzhiyun MUXCTL_LSDA, 101*4882a593Smuzhiyun MUXCTL_LSPI, 102*4882a593Smuzhiyun MUXCTL_LCSN, 103*4882a593Smuzhiyun MUXCTL_LDC, 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun MUXCTL_LSCK, 106*4882a593Smuzhiyun MUXCTL_LSC0, 107*4882a593Smuzhiyun MUXCTL_LSC1, 108*4882a593Smuzhiyun MUXCTL_LHS, 109*4882a593Smuzhiyun MUXCTL_LVS, 110*4882a593Smuzhiyun MUXCTL_LM0, 111*4882a593Smuzhiyun MUXCTL_LM1, 112*4882a593Smuzhiyun MUXCTL_LVP0, 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun /* 80: APB_MISC_PP_PIN_MUX_CTL_F_0 */ 115*4882a593Smuzhiyun MUXCTL_LD0, 116*4882a593Smuzhiyun MUXCTL_LD1, 117*4882a593Smuzhiyun MUXCTL_LD2, 118*4882a593Smuzhiyun MUXCTL_LD3, 119*4882a593Smuzhiyun MUXCTL_LD4, 120*4882a593Smuzhiyun MUXCTL_LD5, 121*4882a593Smuzhiyun MUXCTL_LD6, 122*4882a593Smuzhiyun MUXCTL_LD7, 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun MUXCTL_LD8, 125*4882a593Smuzhiyun MUXCTL_LD9, 126*4882a593Smuzhiyun MUXCTL_LD10, 127*4882a593Smuzhiyun MUXCTL_LD11, 128*4882a593Smuzhiyun MUXCTL_LD12, 129*4882a593Smuzhiyun MUXCTL_LD13, 130*4882a593Smuzhiyun MUXCTL_LD14, 131*4882a593Smuzhiyun MUXCTL_LD15, 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun /* 96: APB_MISC_PP_PIN_MUX_CTL_G_0 */ 134*4882a593Smuzhiyun MUXCTL_LD16, 135*4882a593Smuzhiyun MUXCTL_LD17, 136*4882a593Smuzhiyun MUXCTL_LHP1, 137*4882a593Smuzhiyun MUXCTL_LHP2, 138*4882a593Smuzhiyun MUXCTL_LVP1, 139*4882a593Smuzhiyun MUXCTL_LHP0, 140*4882a593Smuzhiyun MUXCTL_RESERVED102, 141*4882a593Smuzhiyun MUXCTL_LPP, 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun MUXCTL_LDI, 144*4882a593Smuzhiyun MUXCTL_PMC, 145*4882a593Smuzhiyun MUXCTL_CRTP, 146*4882a593Smuzhiyun MUXCTL_PTA, 147*4882a593Smuzhiyun MUXCTL_RESERVED108, 148*4882a593Smuzhiyun MUXCTL_KBCD, 149*4882a593Smuzhiyun MUXCTL_GPU7, 150*4882a593Smuzhiyun MUXCTL_DTF, 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun MUXCTL_NONE = -1, 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun /* 156*4882a593Smuzhiyun * And this defines the order of the pullup/pulldown controls which are again 157*4882a593Smuzhiyun * in a different order 158*4882a593Smuzhiyun */ 159*4882a593Smuzhiyun enum pmux_pullid { 160*4882a593Smuzhiyun /* 0: APB_MISC_PP_PULLUPDOWN_REG_A_0 */ 161*4882a593Smuzhiyun PUCTL_ATA, 162*4882a593Smuzhiyun PUCTL_ATB, 163*4882a593Smuzhiyun PUCTL_ATC, 164*4882a593Smuzhiyun PUCTL_ATD, 165*4882a593Smuzhiyun PUCTL_ATE, 166*4882a593Smuzhiyun PUCTL_DAP1, 167*4882a593Smuzhiyun PUCTL_DAP2, 168*4882a593Smuzhiyun PUCTL_DAP3, 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun PUCTL_DAP4, 171*4882a593Smuzhiyun PUCTL_DTA, 172*4882a593Smuzhiyun PUCTL_DTB, 173*4882a593Smuzhiyun PUCTL_DTC, 174*4882a593Smuzhiyun PUCTL_DTD, 175*4882a593Smuzhiyun PUCTL_DTE, 176*4882a593Smuzhiyun PUCTL_DTF, 177*4882a593Smuzhiyun PUCTL_GPV, 178*4882a593Smuzhiyun 179*4882a593Smuzhiyun /* 16: APB_MISC_PP_PULLUPDOWN_REG_B_0 */ 180*4882a593Smuzhiyun PUCTL_RM, 181*4882a593Smuzhiyun PUCTL_I2CP, 182*4882a593Smuzhiyun PUCTL_PTA, 183*4882a593Smuzhiyun PUCTL_GPU7, 184*4882a593Smuzhiyun PUCTL_KBCA, 185*4882a593Smuzhiyun PUCTL_KBCB, 186*4882a593Smuzhiyun PUCTL_KBCC, 187*4882a593Smuzhiyun PUCTL_KBCD, 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun PUCTL_SPDI, 190*4882a593Smuzhiyun PUCTL_SPDO, 191*4882a593Smuzhiyun PUCTL_GPSLXAU, 192*4882a593Smuzhiyun PUCTL_CRTP, 193*4882a593Smuzhiyun PUCTL_SLXC, 194*4882a593Smuzhiyun PUCTL_SLXD, 195*4882a593Smuzhiyun PUCTL_SLXK, 196*4882a593Smuzhiyun 197*4882a593Smuzhiyun /* 32: APB_MISC_PP_PULLUPDOWN_REG_C_0 */ 198*4882a593Smuzhiyun PUCTL_CDEV1, 199*4882a593Smuzhiyun PUCTL_CDEV2, 200*4882a593Smuzhiyun PUCTL_SPIA, 201*4882a593Smuzhiyun PUCTL_SPIB, 202*4882a593Smuzhiyun PUCTL_SPIC, 203*4882a593Smuzhiyun PUCTL_SPID, 204*4882a593Smuzhiyun PUCTL_SPIE, 205*4882a593Smuzhiyun PUCTL_SPIF, 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun PUCTL_SPIG, 208*4882a593Smuzhiyun PUCTL_SPIH, 209*4882a593Smuzhiyun PUCTL_IRTX, 210*4882a593Smuzhiyun PUCTL_IRRX, 211*4882a593Smuzhiyun PUCTL_GME, 212*4882a593Smuzhiyun PUCTL_RESERVED45, 213*4882a593Smuzhiyun PUCTL_XM2D, 214*4882a593Smuzhiyun PUCTL_XM2C, 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun /* 48: APB_MISC_PP_PULLUPDOWN_REG_D_0 */ 217*4882a593Smuzhiyun PUCTL_UAA, 218*4882a593Smuzhiyun PUCTL_UAB, 219*4882a593Smuzhiyun PUCTL_UAC, 220*4882a593Smuzhiyun PUCTL_UAD, 221*4882a593Smuzhiyun PUCTL_UCA, 222*4882a593Smuzhiyun PUCTL_UCB, 223*4882a593Smuzhiyun PUCTL_LD17, 224*4882a593Smuzhiyun PUCTL_LD19_18, 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun PUCTL_LD21_20, 227*4882a593Smuzhiyun PUCTL_LD23_22, 228*4882a593Smuzhiyun PUCTL_LS, 229*4882a593Smuzhiyun PUCTL_LC, 230*4882a593Smuzhiyun PUCTL_CSUS, 231*4882a593Smuzhiyun PUCTL_DDRC, 232*4882a593Smuzhiyun PUCTL_SDC, 233*4882a593Smuzhiyun PUCTL_SDD, 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun /* 64: APB_MISC_PP_PULLUPDOWN_REG_E_0 */ 236*4882a593Smuzhiyun PUCTL_KBCF, 237*4882a593Smuzhiyun PUCTL_KBCE, 238*4882a593Smuzhiyun PUCTL_PMCA, 239*4882a593Smuzhiyun PUCTL_PMCB, 240*4882a593Smuzhiyun PUCTL_PMCC, 241*4882a593Smuzhiyun PUCTL_PMCD, 242*4882a593Smuzhiyun PUCTL_PMCE, 243*4882a593Smuzhiyun PUCTL_CK32, 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun PUCTL_UDA, 246*4882a593Smuzhiyun PUCTL_SDMMC1, 247*4882a593Smuzhiyun PUCTL_GMA, 248*4882a593Smuzhiyun PUCTL_GMB, 249*4882a593Smuzhiyun PUCTL_GMC, 250*4882a593Smuzhiyun PUCTL_GMD, 251*4882a593Smuzhiyun PUCTL_DDC, 252*4882a593Smuzhiyun PUCTL_OWC, 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun PUCTL_NONE = -1 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun /* Convenient macro for defining pin group properties */ 258*4882a593Smuzhiyun #define PINALL(pingrp, f0, f1, f2, f3, mux, pupd) \ 259*4882a593Smuzhiyun { \ 260*4882a593Smuzhiyun .funcs = { \ 261*4882a593Smuzhiyun PMUX_FUNC_ ## f0, \ 262*4882a593Smuzhiyun PMUX_FUNC_ ## f1, \ 263*4882a593Smuzhiyun PMUX_FUNC_ ## f2, \ 264*4882a593Smuzhiyun PMUX_FUNC_ ## f3, \ 265*4882a593Smuzhiyun }, \ 266*4882a593Smuzhiyun .ctl_id = mux, \ 267*4882a593Smuzhiyun .pull_id = pupd \ 268*4882a593Smuzhiyun } 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun /* A normal pin group where the mux name and pull-up name match */ 271*4882a593Smuzhiyun #define PIN(pingrp, f0, f1, f2, f3) \ 272*4882a593Smuzhiyun PINALL(pingrp, f0, f1, f2, f3, MUXCTL_##pingrp, PUCTL_##pingrp) 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun /* A pin group where the pull-up name doesn't have a 1-1 mapping */ 275*4882a593Smuzhiyun #define PINP(pingrp, f0, f1, f2, f3, pupd) \ 276*4882a593Smuzhiyun PINALL(pingrp, f0, f1, f2, f3, MUXCTL_##pingrp, PUCTL_##pupd) 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun /* A pin group number which is not used */ 279*4882a593Smuzhiyun #define PIN_RESERVED \ 280*4882a593Smuzhiyun PIN(NONE, RSVD1, RSVD2, RSVD3, RSVD4) 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun #define DRVGRP(drvgrp) \ 283*4882a593Smuzhiyun PINALL(drvgrp, RSVD1, RSVD2, RSVD3, RSVD4, MUXCTL_NONE, PUCTL_NONE) 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun static const struct pmux_pingrp_desc tegra20_pingroups[] = { 286*4882a593Smuzhiyun PIN(ATA, IDE, NAND, GMI, RSVD4), 287*4882a593Smuzhiyun PIN(ATB, IDE, NAND, GMI, SDIO4), 288*4882a593Smuzhiyun PIN(ATC, IDE, NAND, GMI, SDIO4), 289*4882a593Smuzhiyun PIN(ATD, IDE, NAND, GMI, SDIO4), 290*4882a593Smuzhiyun PIN(CDEV1, OSC, PLLA_OUT, PLLM_OUT1, AUDIO_SYNC), 291*4882a593Smuzhiyun PIN(CDEV2, OSC, AHB_CLK, APB_CLK, PLLP_OUT4), 292*4882a593Smuzhiyun PIN(CSUS, PLLC_OUT1, PLLP_OUT2, PLLP_OUT3, VI_SENSOR_CLK), 293*4882a593Smuzhiyun PIN(DAP1, DAP1, RSVD2, GMI, SDIO2), 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun PIN(DAP2, DAP2, TWC, RSVD3, GMI), 296*4882a593Smuzhiyun PIN(DAP3, DAP3, RSVD2, RSVD3, RSVD4), 297*4882a593Smuzhiyun PIN(DAP4, DAP4, RSVD2, GMI, RSVD4), 298*4882a593Smuzhiyun PIN(DTA, RSVD1, SDIO2, VI, RSVD4), 299*4882a593Smuzhiyun PIN(DTB, RSVD1, RSVD2, VI, SPI1), 300*4882a593Smuzhiyun PIN(DTC, RSVD1, RSVD2, VI, RSVD4), 301*4882a593Smuzhiyun PIN(DTD, RSVD1, SDIO2, VI, RSVD4), 302*4882a593Smuzhiyun PIN(DTE, RSVD1, RSVD2, VI, SPI1), 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun PINP(GPU, PWM, UARTA, GMI, RSVD4, GPSLXAU), 305*4882a593Smuzhiyun PIN(GPV, PCIE, RSVD2, RSVD3, RSVD4), 306*4882a593Smuzhiyun PIN(I2CP, I2C, RSVD2, RSVD3, RSVD4), 307*4882a593Smuzhiyun PIN(IRTX, UARTA, UARTB, GMI, SPI4), 308*4882a593Smuzhiyun PIN(IRRX, UARTA, UARTB, GMI, SPI4), 309*4882a593Smuzhiyun PIN(KBCB, KBC, NAND, SDIO2, MIO), 310*4882a593Smuzhiyun PIN(KBCA, KBC, NAND, SDIO2, EMC_TEST0_DLL), 311*4882a593Smuzhiyun PINP(PMC, PWR_ON, PWR_INTR, RSVD3, RSVD4, NONE), 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun PIN(PTA, I2C2, HDMI, GMI, RSVD4), 314*4882a593Smuzhiyun PIN(RM, I2C, RSVD2, RSVD3, RSVD4), 315*4882a593Smuzhiyun PIN(KBCE, KBC, NAND, OWR, RSVD4), 316*4882a593Smuzhiyun PIN(KBCF, KBC, NAND, TRACE, MIO), 317*4882a593Smuzhiyun PIN(GMA, UARTE, SPI3, GMI, SDIO4), 318*4882a593Smuzhiyun PIN(GMC, UARTD, SPI4, GMI, SFLASH), 319*4882a593Smuzhiyun PIN(SDMMC1, SDIO1, RSVD2, UARTE, UARTA), 320*4882a593Smuzhiyun PIN(OWC, OWR, RSVD2, RSVD3, RSVD4), 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun PIN(GME, RSVD1, DAP5, GMI, SDIO4), 323*4882a593Smuzhiyun PIN(SDC, PWM, TWC, SDIO3, SPI3), 324*4882a593Smuzhiyun PIN(SDD, UARTA, PWM, SDIO3, SPI3), 325*4882a593Smuzhiyun PIN_RESERVED, 326*4882a593Smuzhiyun PINP(SLXA, PCIE, SPI4, SDIO3, SPI2, CRTP), 327*4882a593Smuzhiyun PIN(SLXC, SPDIF, SPI4, SDIO3, SPI2), 328*4882a593Smuzhiyun PIN(SLXD, SPDIF, SPI4, SDIO3, SPI2), 329*4882a593Smuzhiyun PIN(SLXK, PCIE, SPI4, SDIO3, SPI2), 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun PIN(SPDI, SPDIF, RSVD2, I2C, SDIO2), 332*4882a593Smuzhiyun PIN(SPDO, SPDIF, RSVD2, I2C, SDIO2), 333*4882a593Smuzhiyun PIN(SPIA, SPI1, SPI2, SPI3, GMI), 334*4882a593Smuzhiyun PIN(SPIB, SPI1, SPI2, SPI3, GMI), 335*4882a593Smuzhiyun PIN(SPIC, SPI1, SPI2, SPI3, GMI), 336*4882a593Smuzhiyun PIN(SPID, SPI2, SPI1, SPI2_ALT, GMI), 337*4882a593Smuzhiyun PIN(SPIE, SPI2, SPI1, SPI2_ALT, GMI), 338*4882a593Smuzhiyun PIN(SPIF, SPI3, SPI1, SPI2, RSVD4), 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun PIN(SPIG, SPI3, SPI2, SPI2_ALT, I2C), 341*4882a593Smuzhiyun PIN(SPIH, SPI3, SPI2, SPI2_ALT, I2C), 342*4882a593Smuzhiyun PIN(UAA, SPI3, MIPI_HS, UARTA, ULPI), 343*4882a593Smuzhiyun PIN(UAB, SPI2, MIPI_HS, UARTA, ULPI), 344*4882a593Smuzhiyun PIN(UAC, OWR, RSVD2, RSVD3, RSVD4), 345*4882a593Smuzhiyun PIN(UAD, UARTB, SPDIF, UARTA, SPI4), 346*4882a593Smuzhiyun PIN(UCA, UARTC, RSVD2, GMI, RSVD4), 347*4882a593Smuzhiyun PIN(UCB, UARTC, PWM, GMI, RSVD4), 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun PIN_RESERVED, 350*4882a593Smuzhiyun PIN(ATE, IDE, NAND, GMI, RSVD4), 351*4882a593Smuzhiyun PIN(KBCC, KBC, NAND, TRACE, EMC_TEST1_DLL), 352*4882a593Smuzhiyun PIN_RESERVED, 353*4882a593Smuzhiyun PIN_RESERVED, 354*4882a593Smuzhiyun PIN(GMB, IDE, NAND, GMI, GMI_INT), 355*4882a593Smuzhiyun PIN(GMD, RSVD1, NAND, GMI, SFLASH), 356*4882a593Smuzhiyun PIN(DDC, I2C2, RSVD2, RSVD3, RSVD4), 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun /* 64 */ 359*4882a593Smuzhiyun PINP(LD0, DISPA, DISPB, XIO, RSVD4, LD17), 360*4882a593Smuzhiyun PINP(LD1, DISPA, DISPB, XIO, RSVD4, LD17), 361*4882a593Smuzhiyun PINP(LD2, DISPA, DISPB, XIO, RSVD4, LD17), 362*4882a593Smuzhiyun PINP(LD3, DISPA, DISPB, XIO, RSVD4, LD17), 363*4882a593Smuzhiyun PINP(LD4, DISPA, DISPB, XIO, RSVD4, LD17), 364*4882a593Smuzhiyun PINP(LD5, DISPA, DISPB, XIO, RSVD4, LD17), 365*4882a593Smuzhiyun PINP(LD6, DISPA, DISPB, XIO, RSVD4, LD17), 366*4882a593Smuzhiyun PINP(LD7, DISPA, DISPB, XIO, RSVD4, LD17), 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun PINP(LD8, DISPA, DISPB, XIO, RSVD4, LD17), 369*4882a593Smuzhiyun PINP(LD9, DISPA, DISPB, XIO, RSVD4, LD17), 370*4882a593Smuzhiyun PINP(LD10, DISPA, DISPB, XIO, RSVD4, LD17), 371*4882a593Smuzhiyun PINP(LD11, DISPA, DISPB, XIO, RSVD4, LD17), 372*4882a593Smuzhiyun PINP(LD12, DISPA, DISPB, XIO, RSVD4, LD17), 373*4882a593Smuzhiyun PINP(LD13, DISPA, DISPB, XIO, RSVD4, LD17), 374*4882a593Smuzhiyun PINP(LD14, DISPA, DISPB, XIO, RSVD4, LD17), 375*4882a593Smuzhiyun PINP(LD15, DISPA, DISPB, XIO, RSVD4, LD17), 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun PINP(LD16, DISPA, DISPB, XIO, RSVD4, LD17), 378*4882a593Smuzhiyun PINP(LD17, DISPA, DISPB, RSVD3, RSVD4, LD17), 379*4882a593Smuzhiyun PINP(LHP0, DISPA, DISPB, RSVD3, RSVD4, LD21_20), 380*4882a593Smuzhiyun PINP(LHP1, DISPA, DISPB, RSVD3, RSVD4, LD19_18), 381*4882a593Smuzhiyun PINP(LHP2, DISPA, DISPB, RSVD3, RSVD4, LD19_18), 382*4882a593Smuzhiyun PINP(LVP0, DISPA, DISPB, RSVD3, RSVD4, LC), 383*4882a593Smuzhiyun PINP(LVP1, DISPA, DISPB, RSVD3, RSVD4, LD21_20), 384*4882a593Smuzhiyun PINP(HDINT, HDMI, RSVD2, RSVD3, RSVD4, LC), 385*4882a593Smuzhiyun 386*4882a593Smuzhiyun PINP(LM0, DISPA, DISPB, SPI3, RSVD4, LC), 387*4882a593Smuzhiyun PINP(LM1, DISPA, DISPB, RSVD3, CRT, LC), 388*4882a593Smuzhiyun PINP(LVS, DISPA, DISPB, XIO, RSVD4, LC), 389*4882a593Smuzhiyun PINP(LSC0, DISPA, DISPB, XIO, RSVD4, LC), 390*4882a593Smuzhiyun PINP(LSC1, DISPA, DISPB, SPI3, HDMI, LS), 391*4882a593Smuzhiyun PINP(LSCK, DISPA, DISPB, SPI3, HDMI, LS), 392*4882a593Smuzhiyun PINP(LDC, DISPA, DISPB, RSVD3, RSVD4, LS), 393*4882a593Smuzhiyun PINP(LCSN, DISPA, DISPB, SPI3, RSVD4, LS), 394*4882a593Smuzhiyun 395*4882a593Smuzhiyun /* 96 */ 396*4882a593Smuzhiyun PINP(LSPI, DISPA, DISPB, XIO, HDMI, LC), 397*4882a593Smuzhiyun PINP(LSDA, DISPA, DISPB, SPI3, HDMI, LS), 398*4882a593Smuzhiyun PINP(LSDI, DISPA, DISPB, SPI3, RSVD4, LS), 399*4882a593Smuzhiyun PINP(LPW0, DISPA, DISPB, SPI3, HDMI, LS), 400*4882a593Smuzhiyun PINP(LPW1, DISPA, DISPB, RSVD3, RSVD4, LS), 401*4882a593Smuzhiyun PINP(LPW2, DISPA, DISPB, SPI3, HDMI, LS), 402*4882a593Smuzhiyun PINP(LDI, DISPA, DISPB, RSVD3, RSVD4, LD23_22), 403*4882a593Smuzhiyun PINP(LHS, DISPA, DISPB, XIO, RSVD4, LC), 404*4882a593Smuzhiyun 405*4882a593Smuzhiyun PINP(LPP, DISPA, DISPB, RSVD3, RSVD4, LD23_22), 406*4882a593Smuzhiyun PIN_RESERVED, 407*4882a593Smuzhiyun PIN(KBCD, KBC, NAND, SDIO2, MIO), 408*4882a593Smuzhiyun PIN(GPU7, RTCK, RSVD2, RSVD3, RSVD4), 409*4882a593Smuzhiyun PIN(DTF, I2C3, RSVD2, VI, RSVD4), 410*4882a593Smuzhiyun PIN(UDA, SPI1, RSVD2, UARTD, ULPI), 411*4882a593Smuzhiyun PIN(CRTP, CRT, RSVD2, RSVD3, RSVD4), 412*4882a593Smuzhiyun PINP(SDB, UARTA, PWM, SDIO3, SPI2, NONE), 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun /* these pin groups only have pullup and pull down control */ 415*4882a593Smuzhiyun DRVGRP(CK32), 416*4882a593Smuzhiyun DRVGRP(DDRC), 417*4882a593Smuzhiyun DRVGRP(PMCA), 418*4882a593Smuzhiyun DRVGRP(PMCB), 419*4882a593Smuzhiyun DRVGRP(PMCC), 420*4882a593Smuzhiyun DRVGRP(PMCD), 421*4882a593Smuzhiyun DRVGRP(PMCE), 422*4882a593Smuzhiyun DRVGRP(XM2C), 423*4882a593Smuzhiyun DRVGRP(XM2D), 424*4882a593Smuzhiyun }; 425*4882a593Smuzhiyun const struct pmux_pingrp_desc *tegra_soc_pingroups = tegra20_pingroups; 426