diff options
Diffstat (limited to 'arch/arm/include/asm/arch-tegra30/gpio.h')
| -rw-r--r-- | arch/arm/include/asm/arch-tegra30/gpio.h | 304 | 
1 files changed, 304 insertions, 0 deletions
| diff --git a/arch/arm/include/asm/arch-tegra30/gpio.h b/arch/arm/include/asm/arch-tegra30/gpio.h new file mode 100644 index 000000000..f1c89f5a8 --- /dev/null +++ b/arch/arm/include/asm/arch-tegra30/gpio.h @@ -0,0 +1,304 @@ +/* + * Copyright (c) 2010-2012, NVIDIA CORPORATION.  All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _TEGRA30_GPIO_H_ +#define _TEGRA30_GPIO_H_ + +/* + * The Tegra 3x GPIO controller has 246 GPIOS in 8 banks of 4 ports, + * each with 8 GPIOs. + */ +#define TEGRA_GPIO_PORTS	4	/* number of ports per bank */ +#define TEGRA_GPIO_BANKS	8	/* number of banks */ + +#include <asm/arch-tegra/gpio.h> + +/* GPIO Controller registers for a single bank */ +struct gpio_ctlr_bank { +	uint gpio_config[TEGRA_GPIO_PORTS]; +	uint gpio_dir_out[TEGRA_GPIO_PORTS]; +	uint gpio_out[TEGRA_GPIO_PORTS]; +	uint gpio_in[TEGRA_GPIO_PORTS]; +	uint gpio_int_status[TEGRA_GPIO_PORTS]; +	uint gpio_int_enable[TEGRA_GPIO_PORTS]; +	uint gpio_int_level[TEGRA_GPIO_PORTS]; +	uint gpio_int_clear[TEGRA_GPIO_PORTS]; +	uint gpio_masked_config[TEGRA_GPIO_PORTS]; +	uint gpio_masked_dir_out[TEGRA_GPIO_PORTS]; +	uint gpio_masked_out[TEGRA_GPIO_PORTS]; +	uint gpio_masked_in[TEGRA_GPIO_PORTS]; +	uint gpio_masked_int_status[TEGRA_GPIO_PORTS]; +	uint gpio_masked_int_enable[TEGRA_GPIO_PORTS]; +	uint gpio_masked_int_level[TEGRA_GPIO_PORTS]; +	uint gpio_masked_int_clear[TEGRA_GPIO_PORTS]; +}; + +struct gpio_ctlr { +	struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS]; +}; + +enum gpio_pin { +	GPIO_PA0 = 0,	/* pin 0 */ +	GPIO_PA1, +	GPIO_PA2, +	GPIO_PA3, +	GPIO_PA4, +	GPIO_PA5, +	GPIO_PA6, +	GPIO_PA7, +	GPIO_PB0,	/* pin 8 */ +	GPIO_PB1, +	GPIO_PB2, +	GPIO_PB3, +	GPIO_PB4, +	GPIO_PB5, +	GPIO_PB6, +	GPIO_PB7, +	GPIO_PC0,	/* pin 16 */ +	GPIO_PC1, +	GPIO_PC2, +	GPIO_PC3, +	GPIO_PC4, +	GPIO_PC5, +	GPIO_PC6, +	GPIO_PC7, +	GPIO_PD0,	/* pin 24 */ +	GPIO_PD1, +	GPIO_PD2, +	GPIO_PD3, +	GPIO_PD4, +	GPIO_PD5, +	GPIO_PD6, +	GPIO_PD7, +	GPIO_PE0,	/* pin 32 */ +	GPIO_PE1, +	GPIO_PE2, +	GPIO_PE3, +	GPIO_PE4, +	GPIO_PE5, +	GPIO_PE6, +	GPIO_PE7, +	GPIO_PF0,	/* pin 40 */ +	GPIO_PF1, +	GPIO_PF2, +	GPIO_PF3, +	GPIO_PF4, +	GPIO_PF5, +	GPIO_PF6, +	GPIO_PF7, +	GPIO_PG0,	/* pin 48 */ +	GPIO_PG1, +	GPIO_PG2, +	GPIO_PG3, +	GPIO_PG4, +	GPIO_PG5, +	GPIO_PG6, +	GPIO_PG7, +	GPIO_PH0,	/* pin 56 */ +	GPIO_PH1, +	GPIO_PH2, +	GPIO_PH3, +	GPIO_PH4, +	GPIO_PH5, +	GPIO_PH6, +	GPIO_PH7, +	GPIO_PI0,	/* pin 64 */ +	GPIO_PI1, +	GPIO_PI2, +	GPIO_PI3, +	GPIO_PI4, +	GPIO_PI5, +	GPIO_PI6, +	GPIO_PI7, +	GPIO_PJ0,	/* pin 72 */ +	GPIO_PJ1, +	GPIO_PJ2, +	GPIO_PJ3, +	GPIO_PJ4, +	GPIO_PJ5, +	GPIO_PJ6, +	GPIO_PJ7, +	GPIO_PK0,	/* pin 80 */ +	GPIO_PK1, +	GPIO_PK2, +	GPIO_PK3, +	GPIO_PK4, +	GPIO_PK5, +	GPIO_PK6, +	GPIO_PK7, +	GPIO_PL0,	/* pin 88 */ +	GPIO_PL1, +	GPIO_PL2, +	GPIO_PL3, +	GPIO_PL4, +	GPIO_PL5, +	GPIO_PL6, +	GPIO_PL7, +	GPIO_PM0,	/* pin 96 */ +	GPIO_PM1, +	GPIO_PM2, +	GPIO_PM3, +	GPIO_PM4, +	GPIO_PM5, +	GPIO_PM6, +	GPIO_PM7, +	GPIO_PN0,	/* pin 104 */ +	GPIO_PN1, +	GPIO_PN2, +	GPIO_PN3, +	GPIO_PN4, +	GPIO_PN5, +	GPIO_PN6, +	GPIO_PN7, +	GPIO_PO0,	/* pin 112 */ +	GPIO_PO1, +	GPIO_PO2, +	GPIO_PO3, +	GPIO_PO4, +	GPIO_PO5, +	GPIO_PO6, +	GPIO_PO7, +	GPIO_PP0,	/* pin 120 */ +	GPIO_PP1, +	GPIO_PP2, +	GPIO_PP3, +	GPIO_PP4, +	GPIO_PP5, +	GPIO_PP6, +	GPIO_PP7, +	GPIO_PQ0,	/* pin 128 */ +	GPIO_PQ1, +	GPIO_PQ2, +	GPIO_PQ3, +	GPIO_PQ4, +	GPIO_PQ5, +	GPIO_PQ6, +	GPIO_PQ7, +	GPIO_PR0,	/* pin 136 */ +	GPIO_PR1, +	GPIO_PR2, +	GPIO_PR3, +	GPIO_PR4, +	GPIO_PR5, +	GPIO_PR6, +	GPIO_PR7, +	GPIO_PS0,	/* pin 144 */ +	GPIO_PS1, +	GPIO_PS2, +	GPIO_PS3, +	GPIO_PS4, +	GPIO_PS5, +	GPIO_PS6, +	GPIO_PS7, +	GPIO_PT0,	/* pin 152 */ +	GPIO_PT1, +	GPIO_PT2, +	GPIO_PT3, +	GPIO_PT4, +	GPIO_PT5, +	GPIO_PT6, +	GPIO_PT7, +	GPIO_PU0,	/* pin 160 */ +	GPIO_PU1, +	GPIO_PU2, +	GPIO_PU3, +	GPIO_PU4, +	GPIO_PU5, +	GPIO_PU6, +	GPIO_PU7, +	GPIO_PV0,	/* pin 168 */ +	GPIO_PV1, +	GPIO_PV2, +	GPIO_PV3, +	GPIO_PV4, +	GPIO_PV5, +	GPIO_PV6, +	GPIO_PV7, +	GPIO_PW0,	/* pin 176 */ +	GPIO_PW1, +	GPIO_PW2, +	GPIO_PW3, +	GPIO_PW4, +	GPIO_PW5, +	GPIO_PW6, +	GPIO_PW7, +	GPIO_PX0,	/* pin 184 */ +	GPIO_PX1, +	GPIO_PX2, +	GPIO_PX3, +	GPIO_PX4, +	GPIO_PX5, +	GPIO_PX6, +	GPIO_PX7, +	GPIO_PY0,	/* pin 192 */ +	GPIO_PY1, +	GPIO_PY2, +	GPIO_PY3, +	GPIO_PY4, +	GPIO_PY5, +	GPIO_PY6, +	GPIO_PY7, +	GPIO_PZ0,	/* pin 200 */ +	GPIO_PZ1, +	GPIO_PZ2, +	GPIO_PZ3, +	GPIO_PZ4, +	GPIO_PZ5, +	GPIO_PZ6, +	GPIO_PZ7, +	GPIO_PAA0,	/* pin 208 */ +	GPIO_PAA1, +	GPIO_PAA2, +	GPIO_PAA3, +	GPIO_PAA4, +	GPIO_PAA5, +	GPIO_PAA6, +	GPIO_PAA7, +	GPIO_PBB0,	/* pin 216 */ +	GPIO_PBB1, +	GPIO_PBB2, +	GPIO_PBB3, +	GPIO_PBB4, +	GPIO_PBB5, +	GPIO_PBB6, +	GPIO_PBB7, +	GPIO_PCC0,	/* pin 224 */ +	GPIO_PCC1, +	GPIO_PCC2, +	GPIO_PCC3, +	GPIO_PCC4, +	GPIO_PCC5, +	GPIO_PCC6, +	GPIO_PCC7, +	GPIO_PDD0,	/* pin 232 */ +	GPIO_PDD1, +	GPIO_PDD2, +	GPIO_PDD3, +	GPIO_PDD4, +	GPIO_PDD5, +	GPIO_PDD6, +	GPIO_PDD7, +	GPIO_PEE0,	/* pin 240 */ +	GPIO_PEE1, +	GPIO_PEE2, +	GPIO_PEE3, +	GPIO_PEE4, +	GPIO_PEE5, +	GPIO_PEE6, +	GPIO_PEE7,	/* pin 247 */ +}; + +#endif	/* _TEGRA30_GPIO_H_ */ |