1*6c43f6c8STom Warren /* 2*6c43f6c8STom Warren * (C) Copyright 2013-2015 3*6c43f6c8STom Warren * NVIDIA Corporation <www.nvidia.com> 4*6c43f6c8STom Warren * 5*6c43f6c8STom Warren * SPDX-License-Identifier: GPL-2.0+ 6*6c43f6c8STom Warren */ 7*6c43f6c8STom Warren 8*6c43f6c8STom Warren #ifndef _TEGRA210_GPIO_H_ 9*6c43f6c8STom Warren #define _TEGRA210_GPIO_H_ 10*6c43f6c8STom Warren 11*6c43f6c8STom Warren /* 12*6c43f6c8STom Warren * The Tegra210 GPIO controller has 256 GPIOS in 8 banks of 4 ports, 13*6c43f6c8STom Warren * each with 8 GPIOs. 14*6c43f6c8STom Warren */ 15*6c43f6c8STom Warren #define TEGRA_GPIO_PORTS 4 /* number of ports per bank */ 16*6c43f6c8STom Warren #define TEGRA_GPIO_BANKS 8 /* number of banks */ 17*6c43f6c8STom Warren 18*6c43f6c8STom Warren #include <asm/arch-tegra/gpio.h> 19*6c43f6c8STom Warren 20*6c43f6c8STom Warren /* GPIO Controller registers for a single bank */ 21*6c43f6c8STom Warren struct gpio_ctlr_bank { 22*6c43f6c8STom Warren uint gpio_config[TEGRA_GPIO_PORTS]; 23*6c43f6c8STom Warren uint gpio_dir_out[TEGRA_GPIO_PORTS]; 24*6c43f6c8STom Warren uint gpio_out[TEGRA_GPIO_PORTS]; 25*6c43f6c8STom Warren uint gpio_in[TEGRA_GPIO_PORTS]; 26*6c43f6c8STom Warren uint gpio_int_status[TEGRA_GPIO_PORTS]; 27*6c43f6c8STom Warren uint gpio_int_enable[TEGRA_GPIO_PORTS]; 28*6c43f6c8STom Warren uint gpio_int_level[TEGRA_GPIO_PORTS]; 29*6c43f6c8STom Warren uint gpio_int_clear[TEGRA_GPIO_PORTS]; 30*6c43f6c8STom Warren uint gpio_masked_config[TEGRA_GPIO_PORTS]; 31*6c43f6c8STom Warren uint gpio_masked_dir_out[TEGRA_GPIO_PORTS]; 32*6c43f6c8STom Warren uint gpio_masked_out[TEGRA_GPIO_PORTS]; 33*6c43f6c8STom Warren uint gpio_masked_in[TEGRA_GPIO_PORTS]; 34*6c43f6c8STom Warren uint gpio_masked_int_status[TEGRA_GPIO_PORTS]; 35*6c43f6c8STom Warren uint gpio_masked_int_enable[TEGRA_GPIO_PORTS]; 36*6c43f6c8STom Warren uint gpio_masked_int_level[TEGRA_GPIO_PORTS]; 37*6c43f6c8STom Warren uint gpio_masked_int_clear[TEGRA_GPIO_PORTS]; 38*6c43f6c8STom Warren }; 39*6c43f6c8STom Warren 40*6c43f6c8STom Warren struct gpio_ctlr { 41*6c43f6c8STom Warren struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS]; 42*6c43f6c8STom Warren }; 43*6c43f6c8STom Warren 44*6c43f6c8STom Warren enum gpio_pin { 45*6c43f6c8STom Warren GPIO_PA0 = 0, /* pin 0 */ 46*6c43f6c8STom Warren GPIO_PA1, 47*6c43f6c8STom Warren GPIO_PA2, 48*6c43f6c8STom Warren GPIO_PA3, 49*6c43f6c8STom Warren GPIO_PA4, 50*6c43f6c8STom Warren GPIO_PA5, 51*6c43f6c8STom Warren GPIO_PA6, 52*6c43f6c8STom Warren GPIO_PA7, 53*6c43f6c8STom Warren GPIO_PB0, /* pin 8 */ 54*6c43f6c8STom Warren GPIO_PB1, 55*6c43f6c8STom Warren GPIO_PB2, 56*6c43f6c8STom Warren GPIO_PB3, 57*6c43f6c8STom Warren GPIO_PB4, 58*6c43f6c8STom Warren GPIO_PB5, 59*6c43f6c8STom Warren GPIO_PB6, 60*6c43f6c8STom Warren GPIO_PB7, 61*6c43f6c8STom Warren GPIO_PC0, /* pin 16 */ 62*6c43f6c8STom Warren GPIO_PC1, 63*6c43f6c8STom Warren GPIO_PC2, 64*6c43f6c8STom Warren GPIO_PC3, 65*6c43f6c8STom Warren GPIO_PC4, 66*6c43f6c8STom Warren GPIO_PC5, 67*6c43f6c8STom Warren GPIO_PC6, 68*6c43f6c8STom Warren GPIO_PC7, 69*6c43f6c8STom Warren GPIO_PD0, /* pin 24 */ 70*6c43f6c8STom Warren GPIO_PD1, 71*6c43f6c8STom Warren GPIO_PD2, 72*6c43f6c8STom Warren GPIO_PD3, 73*6c43f6c8STom Warren GPIO_PD4, 74*6c43f6c8STom Warren GPIO_PD5, 75*6c43f6c8STom Warren GPIO_PD6, 76*6c43f6c8STom Warren GPIO_PD7, 77*6c43f6c8STom Warren GPIO_PE0, /* pin 32 */ 78*6c43f6c8STom Warren GPIO_PE1, 79*6c43f6c8STom Warren GPIO_PE2, 80*6c43f6c8STom Warren GPIO_PE3, 81*6c43f6c8STom Warren GPIO_PE4, 82*6c43f6c8STom Warren GPIO_PE5, 83*6c43f6c8STom Warren GPIO_PE6, 84*6c43f6c8STom Warren GPIO_PE7, 85*6c43f6c8STom Warren GPIO_PF0, /* pin 40 */ 86*6c43f6c8STom Warren GPIO_PF1, 87*6c43f6c8STom Warren GPIO_PF2, 88*6c43f6c8STom Warren GPIO_PF3, 89*6c43f6c8STom Warren GPIO_PF4, 90*6c43f6c8STom Warren GPIO_PF5, 91*6c43f6c8STom Warren GPIO_PF6, 92*6c43f6c8STom Warren GPIO_PF7, 93*6c43f6c8STom Warren GPIO_PG0, /* pin 48 */ 94*6c43f6c8STom Warren GPIO_PG1, 95*6c43f6c8STom Warren GPIO_PG2, 96*6c43f6c8STom Warren GPIO_PG3, 97*6c43f6c8STom Warren GPIO_PG4, 98*6c43f6c8STom Warren GPIO_PG5, 99*6c43f6c8STom Warren GPIO_PG6, 100*6c43f6c8STom Warren GPIO_PG7, 101*6c43f6c8STom Warren GPIO_PH0, /* pin 56 */ 102*6c43f6c8STom Warren GPIO_PH1, 103*6c43f6c8STom Warren GPIO_PH2, 104*6c43f6c8STom Warren GPIO_PH3, 105*6c43f6c8STom Warren GPIO_PH4, 106*6c43f6c8STom Warren GPIO_PH5, 107*6c43f6c8STom Warren GPIO_PH6, 108*6c43f6c8STom Warren GPIO_PH7, 109*6c43f6c8STom Warren GPIO_PI0, /* pin 64 */ 110*6c43f6c8STom Warren GPIO_PI1, 111*6c43f6c8STom Warren GPIO_PI2, 112*6c43f6c8STom Warren GPIO_PI3, 113*6c43f6c8STom Warren GPIO_PI4, 114*6c43f6c8STom Warren GPIO_PI5, 115*6c43f6c8STom Warren GPIO_PI6, 116*6c43f6c8STom Warren GPIO_PI7, 117*6c43f6c8STom Warren GPIO_PJ0, /* pin 72 */ 118*6c43f6c8STom Warren GPIO_PJ1, 119*6c43f6c8STom Warren GPIO_PJ2, 120*6c43f6c8STom Warren GPIO_PJ3, 121*6c43f6c8STom Warren GPIO_PJ4, 122*6c43f6c8STom Warren GPIO_PJ5, 123*6c43f6c8STom Warren GPIO_PJ6, 124*6c43f6c8STom Warren GPIO_PJ7, 125*6c43f6c8STom Warren GPIO_PK0, /* pin 80 */ 126*6c43f6c8STom Warren GPIO_PK1, 127*6c43f6c8STom Warren GPIO_PK2, 128*6c43f6c8STom Warren GPIO_PK3, 129*6c43f6c8STom Warren GPIO_PK4, 130*6c43f6c8STom Warren GPIO_PK5, 131*6c43f6c8STom Warren GPIO_PK6, 132*6c43f6c8STom Warren GPIO_PK7, 133*6c43f6c8STom Warren GPIO_PL0, /* pin 88 */ 134*6c43f6c8STom Warren GPIO_PL1, 135*6c43f6c8STom Warren GPIO_PL2, 136*6c43f6c8STom Warren GPIO_PL3, 137*6c43f6c8STom Warren GPIO_PL4, 138*6c43f6c8STom Warren GPIO_PL5, 139*6c43f6c8STom Warren GPIO_PL6, 140*6c43f6c8STom Warren GPIO_PL7, 141*6c43f6c8STom Warren GPIO_PM0, /* pin 96 */ 142*6c43f6c8STom Warren GPIO_PM1, 143*6c43f6c8STom Warren GPIO_PM2, 144*6c43f6c8STom Warren GPIO_PM3, 145*6c43f6c8STom Warren GPIO_PM4, 146*6c43f6c8STom Warren GPIO_PM5, 147*6c43f6c8STom Warren GPIO_PM6, 148*6c43f6c8STom Warren GPIO_PM7, 149*6c43f6c8STom Warren GPIO_PN0, /* pin 104 */ 150*6c43f6c8STom Warren GPIO_PN1, 151*6c43f6c8STom Warren GPIO_PN2, 152*6c43f6c8STom Warren GPIO_PN3, 153*6c43f6c8STom Warren GPIO_PN4, 154*6c43f6c8STom Warren GPIO_PN5, 155*6c43f6c8STom Warren GPIO_PN6, 156*6c43f6c8STom Warren GPIO_PN7, 157*6c43f6c8STom Warren GPIO_PO0, /* pin 112 */ 158*6c43f6c8STom Warren GPIO_PO1, 159*6c43f6c8STom Warren GPIO_PO2, 160*6c43f6c8STom Warren GPIO_PO3, 161*6c43f6c8STom Warren GPIO_PO4, 162*6c43f6c8STom Warren GPIO_PO5, 163*6c43f6c8STom Warren GPIO_PO6, 164*6c43f6c8STom Warren GPIO_PO7, 165*6c43f6c8STom Warren GPIO_PP0, /* pin 120 */ 166*6c43f6c8STom Warren GPIO_PP1, 167*6c43f6c8STom Warren GPIO_PP2, 168*6c43f6c8STom Warren GPIO_PP3, 169*6c43f6c8STom Warren GPIO_PP4, 170*6c43f6c8STom Warren GPIO_PP5, 171*6c43f6c8STom Warren GPIO_PP6, 172*6c43f6c8STom Warren GPIO_PP7, 173*6c43f6c8STom Warren GPIO_PQ0, /* pin 128 */ 174*6c43f6c8STom Warren GPIO_PQ1, 175*6c43f6c8STom Warren GPIO_PQ2, 176*6c43f6c8STom Warren GPIO_PQ3, 177*6c43f6c8STom Warren GPIO_PQ4, 178*6c43f6c8STom Warren GPIO_PQ5, 179*6c43f6c8STom Warren GPIO_PQ6, 180*6c43f6c8STom Warren GPIO_PQ7, 181*6c43f6c8STom Warren GPIO_PR0, /* pin 136 */ 182*6c43f6c8STom Warren GPIO_PR1, 183*6c43f6c8STom Warren GPIO_PR2, 184*6c43f6c8STom Warren GPIO_PR3, 185*6c43f6c8STom Warren GPIO_PR4, 186*6c43f6c8STom Warren GPIO_PR5, 187*6c43f6c8STom Warren GPIO_PR6, 188*6c43f6c8STom Warren GPIO_PR7, 189*6c43f6c8STom Warren GPIO_PS0, /* pin 144 */ 190*6c43f6c8STom Warren GPIO_PS1, 191*6c43f6c8STom Warren GPIO_PS2, 192*6c43f6c8STom Warren GPIO_PS3, 193*6c43f6c8STom Warren GPIO_PS4, 194*6c43f6c8STom Warren GPIO_PS5, 195*6c43f6c8STom Warren GPIO_PS6, 196*6c43f6c8STom Warren GPIO_PS7, 197*6c43f6c8STom Warren GPIO_PT0, /* pin 152 */ 198*6c43f6c8STom Warren GPIO_PT1, 199*6c43f6c8STom Warren GPIO_PT2, 200*6c43f6c8STom Warren GPIO_PT3, 201*6c43f6c8STom Warren GPIO_PT4, 202*6c43f6c8STom Warren GPIO_PT5, 203*6c43f6c8STom Warren GPIO_PT6, 204*6c43f6c8STom Warren GPIO_PT7, 205*6c43f6c8STom Warren GPIO_PU0, /* pin 160 */ 206*6c43f6c8STom Warren GPIO_PU1, 207*6c43f6c8STom Warren GPIO_PU2, 208*6c43f6c8STom Warren GPIO_PU3, 209*6c43f6c8STom Warren GPIO_PU4, 210*6c43f6c8STom Warren GPIO_PU5, 211*6c43f6c8STom Warren GPIO_PU6, 212*6c43f6c8STom Warren GPIO_PU7, 213*6c43f6c8STom Warren GPIO_PV0, /* pin 168 */ 214*6c43f6c8STom Warren GPIO_PV1, 215*6c43f6c8STom Warren GPIO_PV2, 216*6c43f6c8STom Warren GPIO_PV3, 217*6c43f6c8STom Warren GPIO_PV4, 218*6c43f6c8STom Warren GPIO_PV5, 219*6c43f6c8STom Warren GPIO_PV6, 220*6c43f6c8STom Warren GPIO_PV7, 221*6c43f6c8STom Warren GPIO_PW0, /* pin 176 */ 222*6c43f6c8STom Warren GPIO_PW1, 223*6c43f6c8STom Warren GPIO_PW2, 224*6c43f6c8STom Warren GPIO_PW3, 225*6c43f6c8STom Warren GPIO_PW4, 226*6c43f6c8STom Warren GPIO_PW5, 227*6c43f6c8STom Warren GPIO_PW6, 228*6c43f6c8STom Warren GPIO_PW7, 229*6c43f6c8STom Warren GPIO_PX0, /* pin 184 */ 230*6c43f6c8STom Warren GPIO_PX1, 231*6c43f6c8STom Warren GPIO_PX2, 232*6c43f6c8STom Warren GPIO_PX3, 233*6c43f6c8STom Warren GPIO_PX4, 234*6c43f6c8STom Warren GPIO_PX5, 235*6c43f6c8STom Warren GPIO_PX6, 236*6c43f6c8STom Warren GPIO_PX7, 237*6c43f6c8STom Warren GPIO_PY0, /* pin 192 */ 238*6c43f6c8STom Warren GPIO_PY1, 239*6c43f6c8STom Warren GPIO_PY2, 240*6c43f6c8STom Warren GPIO_PY3, 241*6c43f6c8STom Warren GPIO_PY4, 242*6c43f6c8STom Warren GPIO_PY5, 243*6c43f6c8STom Warren GPIO_PY6, 244*6c43f6c8STom Warren GPIO_PY7, 245*6c43f6c8STom Warren GPIO_PZ0, /* pin 200 */ 246*6c43f6c8STom Warren GPIO_PZ1, 247*6c43f6c8STom Warren GPIO_PZ2, 248*6c43f6c8STom Warren GPIO_PZ3, 249*6c43f6c8STom Warren GPIO_PZ4, 250*6c43f6c8STom Warren GPIO_PZ5, 251*6c43f6c8STom Warren GPIO_PZ6, 252*6c43f6c8STom Warren GPIO_PZ7, 253*6c43f6c8STom Warren GPIO_PAA0, /* pin 208 */ 254*6c43f6c8STom Warren GPIO_PAA1, 255*6c43f6c8STom Warren GPIO_PAA2, 256*6c43f6c8STom Warren GPIO_PAA3, 257*6c43f6c8STom Warren GPIO_PAA4, 258*6c43f6c8STom Warren GPIO_PAA5, 259*6c43f6c8STom Warren GPIO_PAA6, 260*6c43f6c8STom Warren GPIO_PAA7, 261*6c43f6c8STom Warren GPIO_PBB0, /* pin 216 */ 262*6c43f6c8STom Warren GPIO_PBB1, 263*6c43f6c8STom Warren GPIO_PBB2, 264*6c43f6c8STom Warren GPIO_PBB3, 265*6c43f6c8STom Warren GPIO_PBB4, 266*6c43f6c8STom Warren GPIO_PBB5, 267*6c43f6c8STom Warren GPIO_PBB6, 268*6c43f6c8STom Warren GPIO_PBB7, 269*6c43f6c8STom Warren GPIO_PCC0, /* pin 224 */ 270*6c43f6c8STom Warren GPIO_PCC1, 271*6c43f6c8STom Warren GPIO_PCC2, 272*6c43f6c8STom Warren GPIO_PCC3, 273*6c43f6c8STom Warren GPIO_PCC4, 274*6c43f6c8STom Warren GPIO_PCC5, 275*6c43f6c8STom Warren GPIO_PCC6, 276*6c43f6c8STom Warren GPIO_PCC7, 277*6c43f6c8STom Warren GPIO_PDD0, /* pin 232 */ 278*6c43f6c8STom Warren GPIO_PDD1, 279*6c43f6c8STom Warren GPIO_PDD2, 280*6c43f6c8STom Warren GPIO_PDD3, 281*6c43f6c8STom Warren GPIO_PDD4, 282*6c43f6c8STom Warren GPIO_PDD5, 283*6c43f6c8STom Warren GPIO_PDD6, 284*6c43f6c8STom Warren GPIO_PDD7, 285*6c43f6c8STom Warren GPIO_PEE0, /* pin 240 */ 286*6c43f6c8STom Warren GPIO_PEE1, 287*6c43f6c8STom Warren GPIO_PEE2, 288*6c43f6c8STom Warren GPIO_PEE3, 289*6c43f6c8STom Warren GPIO_PEE4, 290*6c43f6c8STom Warren GPIO_PEE5, 291*6c43f6c8STom Warren GPIO_PEE6, 292*6c43f6c8STom Warren GPIO_PEE7, 293*6c43f6c8STom Warren GPIO_PFF0, /* pin 248 */ 294*6c43f6c8STom Warren GPIO_PFF1, 295*6c43f6c8STom Warren GPIO_PFF2, 296*6c43f6c8STom Warren GPIO_PFF3, 297*6c43f6c8STom Warren GPIO_PFF4, 298*6c43f6c8STom Warren GPIO_PFF5, 299*6c43f6c8STom Warren GPIO_PFF6, 300*6c43f6c8STom Warren GPIO_PFF7, /* pin 255 */ 301*6c43f6c8STom Warren }; 302*6c43f6c8STom Warren 303*6c43f6c8STom Warren #endif /* _TEGRA210_GPIO_H_ */ 304