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