axp-gpio.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * gpio.h -- GPIO Driver for Krosspower axp199 PMIC
  3. *
  4. * Copyright 2011 Krosspower Microelectronics PLC
  5. *
  6. * This program is free software; you can redistribute it and/or modify it
  7. * under the terms of the GNU General Public License as published by the
  8. * Free Software Foundation; either version 2 of the License, or (at your
  9. * option) any later version.
  10. *
  11. */
  12. #ifndef _LINUX_AXP_GPIO_H_
  13. #define _LINUX_AXP_GPIO_H_
  14. /*
  15. * GPIO Registers.
  16. */
  17. /* AXP19 */
  18. #define AXP19_GPIO0_CFG (POWER19_GPIO0_CTL)
  19. #define AXP19_GPIO1_CFG (POWER19_GPIO1_CTL)
  20. #define AXP19_GPIO2_CFG (POWER19_GPIO2_CTL)
  21. #define AXP19_GPIO34_CFG (POWER19_SENSE_CTL)
  22. #define AXP19_GPIO5_CFG (POWER19_RSTO_CTL)
  23. #define AXP19_GPIO67_CFG0 (POWER19_GPIO67_CFG)
  24. #define AXP19_GPIO67_CFG1 (POWER19_GPIO67_CTL)
  25. #define AXP19_GPIO012_STATE (POWER19_GPIO012_SIGNAL)
  26. #define AXP19_GPIO34_STATE (POWER19_SENSE_SIGNAL)
  27. #define AXP19_GPIO5_STATE (POWER19_RSTO_CTL)
  28. #define AXP19_GPIO67_STATE (POWER19_GPIO67_CTL)
  29. /* AXP20 */
  30. #define AXP20_GPIO0_CFG (POWER20_GPIO0_CTL)
  31. #define AXP20_GPIO1_CFG (POWER20_GPIO1_CTL)
  32. #define AXP20_GPIO2_CFG (POWER20_GPIO2_CTL)
  33. #define AXP20_GPIO3_CFG (POWER20_GPIO3_CTL)
  34. #define AXP20_GPIO012_STATE (POWER20_GPIO012_SIGNAL)
  35. extern int axp_gpio_set_io(int gpio, int io_state);
  36. extern int axp_gpio_get_io(int gpio, int *io_state);
  37. extern int axp_gpio_set_value(int gpio, int value);
  38. extern int axp_gpio_get_value(int gpio, int *value);
  39. typedef enum {
  40. AXP_GPIO0 = 0,
  41. AXP_GPIO1,
  42. AXP_GPIO2,
  43. AXP_GPIO3,
  44. AXP_GPIO_NULL,
  45. } axp_gpio;
  46. typedef enum {
  47. AXP_GPIO_INPUT = 0,
  48. AXP_GPIO_OUTPUT,
  49. } axp_gpio_dir;
  50. typedef enum {
  51. AXP_GPIO_LOW= 0,
  52. AXP_GPIO_HIGH,
  53. } axp_gpio_level;
  54. typedef struct axp_gpio_cfg{
  55. axp_gpio gpio;
  56. axp_gpio_dir dir;
  57. axp_gpio_level level;
  58. }axp_gpio_cfg_t;
  59. #define AXPGPIO_CFG_END_ITEM {.gpio=AXP_GPIO_NULL}
  60. #endif