mc13783.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. /*
  2. * Copyright 2010 Yong Shen <yong.shen@linaro.org>
  3. * Copyright 2009-2010 Pengutronix
  4. * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
  5. *
  6. * This program is free software; you can redistribute it and/or modify it under
  7. * the terms of the GNU General Public License version 2 as published by the
  8. * Free Software Foundation.
  9. */
  10. #ifndef __LINUX_MFD_MC13783_H
  11. #define __LINUX_MFD_MC13783_H
  12. #include <linux/mfd/mc13xxx.h>
  13. struct mc13783;
  14. struct mc13xxx *mc13783_to_mc13xxx(struct mc13783 *mc13783);
  15. static inline void mc13783_lock(struct mc13783 *mc13783)
  16. {
  17. mc13xxx_lock(mc13783_to_mc13xxx(mc13783));
  18. }
  19. static inline void mc13783_unlock(struct mc13783 *mc13783)
  20. {
  21. mc13xxx_unlock(mc13783_to_mc13xxx(mc13783));
  22. }
  23. static inline int mc13783_reg_read(struct mc13783 *mc13783,
  24. unsigned int offset, u32 *val)
  25. {
  26. return mc13xxx_reg_read(mc13783_to_mc13xxx(mc13783), offset, val);
  27. }
  28. static inline int mc13783_reg_write(struct mc13783 *mc13783,
  29. unsigned int offset, u32 val)
  30. {
  31. return mc13xxx_reg_write(mc13783_to_mc13xxx(mc13783), offset, val);
  32. }
  33. static inline int mc13783_reg_rmw(struct mc13783 *mc13783,
  34. unsigned int offset, u32 mask, u32 val)
  35. {
  36. return mc13xxx_reg_rmw(mc13783_to_mc13xxx(mc13783), offset, mask, val);
  37. }
  38. static inline int mc13783_get_flags(struct mc13783 *mc13783)
  39. {
  40. return mc13xxx_get_flags(mc13783_to_mc13xxx(mc13783));
  41. }
  42. static inline int mc13783_irq_request(struct mc13783 *mc13783, int irq,
  43. irq_handler_t handler, const char *name, void *dev)
  44. {
  45. return mc13xxx_irq_request(mc13783_to_mc13xxx(mc13783), irq,
  46. handler, name, dev);
  47. }
  48. static inline int mc13783_irq_request_nounmask(struct mc13783 *mc13783, int irq,
  49. irq_handler_t handler, const char *name, void *dev)
  50. {
  51. return mc13xxx_irq_request_nounmask(mc13783_to_mc13xxx(mc13783), irq,
  52. handler, name, dev);
  53. }
  54. static inline int mc13783_irq_free(struct mc13783 *mc13783, int irq, void *dev)
  55. {
  56. return mc13xxx_irq_free(mc13783_to_mc13xxx(mc13783), irq, dev);
  57. }
  58. static inline int mc13783_irq_mask(struct mc13783 *mc13783, int irq)
  59. {
  60. return mc13xxx_irq_mask(mc13783_to_mc13xxx(mc13783), irq);
  61. }
  62. static inline int mc13783_irq_unmask(struct mc13783 *mc13783, int irq)
  63. {
  64. return mc13xxx_irq_unmask(mc13783_to_mc13xxx(mc13783), irq);
  65. }
  66. static inline int mc13783_irq_status(struct mc13783 *mc13783, int irq,
  67. int *enabled, int *pending)
  68. {
  69. return mc13xxx_irq_status(mc13783_to_mc13xxx(mc13783),
  70. irq, enabled, pending);
  71. }
  72. static inline int mc13783_irq_ack(struct mc13783 *mc13783, int irq)
  73. {
  74. return mc13xxx_irq_ack(mc13783_to_mc13xxx(mc13783), irq);
  75. }
  76. #define MC13783_ADC0 MC13XXX_ADC0
  77. #define MC13783_ADC0_ADREFEN MC13XXX_ADC0_ADREFEN
  78. #define MC13783_ADC0_TSMOD0 MC13XXX_ADC0_TSMOD0
  79. #define MC13783_ADC0_TSMOD1 MC13XXX_ADC0_TSMOD1
  80. #define MC13783_ADC0_TSMOD2 MC13XXX_ADC0_TSMOD2
  81. #define MC13783_ADC0_ADINC1 MC13XXX_ADC0_ADINC1
  82. #define MC13783_ADC0_ADINC2 MC13XXX_ADC0_ADINC2
  83. #define MC13783_ADC0_TSMOD_MASK MC13XXX_ADC0_TSMOD_MASK
  84. #define mc13783_regulator_init_data mc13xxx_regulator_init_data
  85. #define mc13783_regulator_platform_data mc13xxx_regulator_platform_data
  86. #define mc13783_led_platform_data mc13xxx_led_platform_data
  87. #define mc13783_leds_platform_data mc13xxx_leds_platform_data
  88. #define mc13783_platform_data mc13xxx_platform_data
  89. #define MC13783_USE_TOUCHSCREEN MC13XXX_USE_TOUCHSCREEN
  90. #define MC13783_USE_CODEC MC13XXX_USE_CODEC
  91. #define MC13783_USE_ADC MC13XXX_USE_ADC
  92. #define MC13783_USE_RTC MC13XXX_USE_RTC
  93. #define MC13783_USE_REGULATOR MC13XXX_USE_REGULATOR
  94. #define MC13783_USE_LED MC13XXX_USE_LED
  95. #define MC13783_ADC_MODE_TS MC13XXX_ADC_MODE_TS
  96. #define MC13783_ADC_MODE_SINGLE_CHAN MC13XXX_ADC_MODE_SINGLE_CHAN
  97. #define MC13783_ADC_MODE_MULT_CHAN MC13XXX_ADC_MODE_MULT_CHAN
  98. static inline int mc13783_adc_do_conversion(struct mc13783 *mc13783,
  99. unsigned int mode, unsigned int channel, unsigned int *sample)
  100. {
  101. return mc13xxx_adc_do_conversion(mc13783_to_mc13xxx(mc13783), mode,
  102. channel, sample);
  103. }
  104. #define MC13783_REG_SW1A 0
  105. #define MC13783_REG_SW1B 1
  106. #define MC13783_REG_SW2A 2
  107. #define MC13783_REG_SW2B 3
  108. #define MC13783_REG_SW3 4
  109. #define MC13783_REG_PLL 5
  110. #define MC13783_REG_VAUDIO 6
  111. #define MC13783_REG_VIOHI 7
  112. #define MC13783_REG_VIOLO 8
  113. #define MC13783_REG_VDIG 9
  114. #define MC13783_REG_VGEN 10
  115. #define MC13783_REG_VRFDIG 11
  116. #define MC13783_REG_VRFREF 12
  117. #define MC13783_REG_VRFCP 13
  118. #define MC13783_REG_VSIM 14
  119. #define MC13783_REG_VESIM 15
  120. #define MC13783_REG_VCAM 16
  121. #define MC13783_REG_VRFBG 17
  122. #define MC13783_REG_VVIB 18
  123. #define MC13783_REG_VRF1 19
  124. #define MC13783_REG_VRF2 20
  125. #define MC13783_REG_VMMC1 21
  126. #define MC13783_REG_VMMC2 22
  127. #define MC13783_REG_GPO1 23
  128. #define MC13783_REG_GPO2 24
  129. #define MC13783_REG_GPO3 25
  130. #define MC13783_REG_GPO4 26
  131. #define MC13783_REG_V1 27
  132. #define MC13783_REG_V2 28
  133. #define MC13783_REG_V3 29
  134. #define MC13783_REG_V4 30
  135. #define MC13783_REG_PWGT1SPI 31
  136. #define MC13783_REG_PWGT2SPI 32
  137. #define MC13783_IRQ_ADCDONE MC13XXX_IRQ_ADCDONE
  138. #define MC13783_IRQ_ADCBISDONE MC13XXX_IRQ_ADCBISDONE
  139. #define MC13783_IRQ_TS MC13XXX_IRQ_TS
  140. #define MC13783_IRQ_WHIGH 3
  141. #define MC13783_IRQ_WLOW 4
  142. #define MC13783_IRQ_CHGDET MC13XXX_IRQ_CHGDET
  143. #define MC13783_IRQ_CHGOV 7
  144. #define MC13783_IRQ_CHGREV MC13XXX_IRQ_CHGREV
  145. #define MC13783_IRQ_CHGSHORT MC13XXX_IRQ_CHGSHORT
  146. #define MC13783_IRQ_CCCV MC13XXX_IRQ_CCCV
  147. #define MC13783_IRQ_CHGCURR MC13XXX_IRQ_CHGCURR
  148. #define MC13783_IRQ_BPON MC13XXX_IRQ_BPON
  149. #define MC13783_IRQ_LOBATL MC13XXX_IRQ_LOBATL
  150. #define MC13783_IRQ_LOBATH MC13XXX_IRQ_LOBATH
  151. #define MC13783_IRQ_UDP 15
  152. #define MC13783_IRQ_USB 16
  153. #define MC13783_IRQ_ID 19
  154. #define MC13783_IRQ_SE1 21
  155. #define MC13783_IRQ_CKDET 22
  156. #define MC13783_IRQ_UDM 23
  157. #define MC13783_IRQ_1HZ MC13XXX_IRQ_1HZ
  158. #define MC13783_IRQ_TODA MC13XXX_IRQ_TODA
  159. #define MC13783_IRQ_ONOFD1 27
  160. #define MC13783_IRQ_ONOFD2 28
  161. #define MC13783_IRQ_ONOFD3 29
  162. #define MC13783_IRQ_SYSRST MC13XXX_IRQ_SYSRST
  163. #define MC13783_IRQ_RTCRST MC13XXX_IRQ_RTCRST
  164. #define MC13783_IRQ_PC MC13XXX_IRQ_PC
  165. #define MC13783_IRQ_WARM MC13XXX_IRQ_WARM
  166. #define MC13783_IRQ_MEMHLD MC13XXX_IRQ_MEMHLD
  167. #define MC13783_IRQ_PWRRDY 35
  168. #define MC13783_IRQ_THWARNL MC13XXX_IRQ_THWARNL
  169. #define MC13783_IRQ_THWARNH MC13XXX_IRQ_THWARNH
  170. #define MC13783_IRQ_CLK MC13XXX_IRQ_CLK
  171. #define MC13783_IRQ_SEMAF 39
  172. #define MC13783_IRQ_MC2B 41
  173. #define MC13783_IRQ_HSDET 42
  174. #define MC13783_IRQ_HSL 43
  175. #define MC13783_IRQ_ALSPTH 44
  176. #define MC13783_IRQ_AHSSHORT 45
  177. #define MC13783_NUM_IRQ MC13XXX_NUM_IRQ
  178. #endif /* ifndef __LINUX_MFD_MC13783_H */