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