/*
 * (C) Copyright 2013
 * NVIDIA Corporation <www.nvidia.com>
 *
 * SPDX-License-Identifier:     GPL-2.0+
 */

#ifndef _TEGRA124_GPIO_H_
#define _TEGRA124_GPIO_H_

/*
 * The Tegra124 GPIO controller has 256 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,
	GPIO_PFF0,	/* pin 248 */
	GPIO_PFF1,
	GPIO_PFF2,
	GPIO_PFF3,
	GPIO_PFF4,
	GPIO_PFF5,
	GPIO_PFF6,
	GPIO_PFF7,	/* pin 255 */
};

#endif	/* _TEGRA124_GPIO_H_ */
