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