tps6586x.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef __LINUX_MFD_TPS6586X_H
  2. #define __LINUX_MFD_TPS6586X_H
  3. #define TPS6586X_SLEW_RATE_INSTANTLY 0x00
  4. #define TPS6586X_SLEW_RATE_110UV 0x01
  5. #define TPS6586X_SLEW_RATE_220UV 0x02
  6. #define TPS6586X_SLEW_RATE_440UV 0x03
  7. #define TPS6586X_SLEW_RATE_880UV 0x04
  8. #define TPS6586X_SLEW_RATE_1760UV 0x05
  9. #define TPS6586X_SLEW_RATE_3520UV 0x06
  10. #define TPS6586X_SLEW_RATE_7040UV 0x07
  11. #define TPS6586X_SLEW_RATE_SET 0x08
  12. #define TPS6586X_SLEW_RATE_MASK 0x07
  13. enum {
  14. TPS6586X_ID_SM_0,
  15. TPS6586X_ID_SM_1,
  16. TPS6586X_ID_SM_2,
  17. TPS6586X_ID_LDO_0,
  18. TPS6586X_ID_LDO_1,
  19. TPS6586X_ID_LDO_2,
  20. TPS6586X_ID_LDO_3,
  21. TPS6586X_ID_LDO_4,
  22. TPS6586X_ID_LDO_5,
  23. TPS6586X_ID_LDO_6,
  24. TPS6586X_ID_LDO_7,
  25. TPS6586X_ID_LDO_8,
  26. TPS6586X_ID_LDO_9,
  27. TPS6586X_ID_LDO_RTC,
  28. };
  29. enum {
  30. TPS6586X_INT_PLDO_0,
  31. TPS6586X_INT_PLDO_1,
  32. TPS6586X_INT_PLDO_2,
  33. TPS6586X_INT_PLDO_3,
  34. TPS6586X_INT_PLDO_4,
  35. TPS6586X_INT_PLDO_5,
  36. TPS6586X_INT_PLDO_6,
  37. TPS6586X_INT_PLDO_7,
  38. TPS6586X_INT_COMP_DET,
  39. TPS6586X_INT_ADC,
  40. TPS6586X_INT_PLDO_8,
  41. TPS6586X_INT_PLDO_9,
  42. TPS6586X_INT_PSM_0,
  43. TPS6586X_INT_PSM_1,
  44. TPS6586X_INT_PSM_2,
  45. TPS6586X_INT_PSM_3,
  46. TPS6586X_INT_RTC_ALM1,
  47. TPS6586X_INT_ACUSB_OVP,
  48. TPS6586X_INT_USB_DET,
  49. TPS6586X_INT_AC_DET,
  50. TPS6586X_INT_BAT_DET,
  51. TPS6586X_INT_CHG_STAT,
  52. TPS6586X_INT_CHG_TEMP,
  53. TPS6586X_INT_PP,
  54. TPS6586X_INT_RESUME,
  55. TPS6586X_INT_LOW_SYS,
  56. TPS6586X_INT_RTC_ALM2,
  57. };
  58. struct tps6586x_settings {
  59. int slew_rate;
  60. };
  61. struct tps6586x_subdev_info {
  62. int id;
  63. const char *name;
  64. void *platform_data;
  65. struct device_node *of_node;
  66. };
  67. struct tps6586x_platform_data {
  68. int num_subdevs;
  69. struct tps6586x_subdev_info *subdevs;
  70. int gpio_base;
  71. int irq_base;
  72. };
  73. /*
  74. * NOTE: the functions below are not intended for use outside
  75. * of the TPS6586X sub-device drivers
  76. */
  77. extern int tps6586x_write(struct device *dev, int reg, uint8_t val);
  78. extern int tps6586x_writes(struct device *dev, int reg, int len, uint8_t *val);
  79. extern int tps6586x_read(struct device *dev, int reg, uint8_t *val);
  80. extern int tps6586x_reads(struct device *dev, int reg, int len, uint8_t *val);
  81. extern int tps6586x_set_bits(struct device *dev, int reg, uint8_t bit_mask);
  82. extern int tps6586x_clr_bits(struct device *dev, int reg, uint8_t bit_mask);
  83. extern int tps6586x_update(struct device *dev, int reg, uint8_t val,
  84. uint8_t mask);
  85. #endif /*__LINUX_MFD_TPS6586X_H */