gpio.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2013
  4. * NVIDIA Corporation <www.nvidia.com>
  5. */
  6. #ifndef _TEGRA124_GPIO_H_
  7. #define _TEGRA124_GPIO_H_
  8. /*
  9. * The Tegra124 GPIO controller has 256 GPIOS in 8 banks of 4 ports,
  10. * each with 8 GPIOs.
  11. */
  12. #define TEGRA_GPIO_PORTS 4 /* number of ports per bank */
  13. #define TEGRA_GPIO_BANKS 8 /* number of banks */
  14. #include <asm/arch-tegra/gpio.h>
  15. /* GPIO Controller registers for a single bank */
  16. struct gpio_ctlr_bank {
  17. uint gpio_config[TEGRA_GPIO_PORTS];
  18. uint gpio_dir_out[TEGRA_GPIO_PORTS];
  19. uint gpio_out[TEGRA_GPIO_PORTS];
  20. uint gpio_in[TEGRA_GPIO_PORTS];
  21. uint gpio_int_status[TEGRA_GPIO_PORTS];
  22. uint gpio_int_enable[TEGRA_GPIO_PORTS];
  23. uint gpio_int_level[TEGRA_GPIO_PORTS];
  24. uint gpio_int_clear[TEGRA_GPIO_PORTS];
  25. uint gpio_masked_config[TEGRA_GPIO_PORTS];
  26. uint gpio_masked_dir_out[TEGRA_GPIO_PORTS];
  27. uint gpio_masked_out[TEGRA_GPIO_PORTS];
  28. uint gpio_masked_in[TEGRA_GPIO_PORTS];
  29. uint gpio_masked_int_status[TEGRA_GPIO_PORTS];
  30. uint gpio_masked_int_enable[TEGRA_GPIO_PORTS];
  31. uint gpio_masked_int_level[TEGRA_GPIO_PORTS];
  32. uint gpio_masked_int_clear[TEGRA_GPIO_PORTS];
  33. };
  34. struct gpio_ctlr {
  35. struct gpio_ctlr_bank gpio_bank[TEGRA_GPIO_BANKS];
  36. };
  37. #endif /* _TEGRA124_GPIO_H_ */