2 * Copyright 2010 Yong Shen <yong.shen@linaro.org>
3 * Copyright 2009-2010 Pengutronix
4 * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
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.
10 #ifndef __LINUX_MFD_MC13783_H
11 #define __LINUX_MFD_MC13783_H
13 #include <linux/mfd/mc13xxx.h>
17 struct mc13xxx *mc13783_to_mc13xxx(struct mc13783 *mc13783);
19 static inline void mc13783_lock(struct mc13783 *mc13783)
21 mc13xxx_lock(mc13783_to_mc13xxx(mc13783));
24 static inline void mc13783_unlock(struct mc13783 *mc13783)
26 mc13xxx_unlock(mc13783_to_mc13xxx(mc13783));
29 static inline int mc13783_reg_read(struct mc13783 *mc13783,
30 unsigned int offset, u32 *val)
32 return mc13xxx_reg_read(mc13783_to_mc13xxx(mc13783), offset, val);
35 static inline int mc13783_reg_write(struct mc13783 *mc13783,
36 unsigned int offset, u32 val)
38 return mc13xxx_reg_write(mc13783_to_mc13xxx(mc13783), offset, val);
41 static inline int mc13783_reg_rmw(struct mc13783 *mc13783,
42 unsigned int offset, u32 mask, u32 val)
44 return mc13xxx_reg_rmw(mc13783_to_mc13xxx(mc13783), offset, mask, val);
47 static inline int mc13783_get_flags(struct mc13783 *mc13783)
49 return mc13xxx_get_flags(mc13783_to_mc13xxx(mc13783));
52 static inline int mc13783_irq_request(struct mc13783 *mc13783, int irq,
53 irq_handler_t handler, const char *name, void *dev)
55 return mc13xxx_irq_request(mc13783_to_mc13xxx(mc13783), irq,
59 static inline int mc13783_irq_request_nounmask(struct mc13783 *mc13783, int irq,
60 irq_handler_t handler, const char *name, void *dev)
62 return mc13xxx_irq_request_nounmask(mc13783_to_mc13xxx(mc13783), irq,
66 static inline int mc13783_irq_free(struct mc13783 *mc13783, int irq, void *dev)
68 return mc13xxx_irq_free(mc13783_to_mc13xxx(mc13783), irq, dev);
71 static inline int mc13783_irq_mask(struct mc13783 *mc13783, int irq)
73 return mc13xxx_irq_mask(mc13783_to_mc13xxx(mc13783), irq);
76 static inline int mc13783_irq_unmask(struct mc13783 *mc13783, int irq)
78 return mc13xxx_irq_unmask(mc13783_to_mc13xxx(mc13783), irq);
80 static inline int mc13783_irq_status(struct mc13783 *mc13783, int irq,
81 int *enabled, int *pending)
83 return mc13xxx_irq_status(mc13783_to_mc13xxx(mc13783),
84 irq, enabled, pending);
87 static inline int mc13783_irq_ack(struct mc13783 *mc13783, int irq)
89 return mc13xxx_irq_ack(mc13783_to_mc13xxx(mc13783), irq);
92 #define MC13783_ADC0 MC13XXX_ADC0
93 #define MC13783_ADC0_ADREFEN MC13XXX_ADC0_ADREFEN
94 #define MC13783_ADC0_TSMOD0 MC13XXX_ADC0_TSMOD0
95 #define MC13783_ADC0_TSMOD1 MC13XXX_ADC0_TSMOD1
96 #define MC13783_ADC0_TSMOD2 MC13XXX_ADC0_TSMOD2
97 #define MC13783_ADC0_ADINC1 MC13XXX_ADC0_ADINC1
98 #define MC13783_ADC0_ADINC2 MC13XXX_ADC0_ADINC2
100 #define MC13783_ADC0_TSMOD_MASK MC13XXX_ADC0_TSMOD_MASK
102 #define mc13783_regulator_init_data mc13xxx_regulator_init_data
103 #define mc13783_regulator_platform_data mc13xxx_regulator_platform_data
104 #define mc13783_led_platform_data mc13xxx_led_platform_data
105 #define mc13783_leds_platform_data mc13xxx_leds_platform_data
107 #define mc13783_platform_data mc13xxx_platform_data
108 #define MC13783_USE_TOUCHSCREEN MC13XXX_USE_TOUCHSCREEN
109 #define MC13783_USE_CODEC MC13XXX_USE_CODEC
110 #define MC13783_USE_ADC MC13XXX_USE_ADC
111 #define MC13783_USE_RTC MC13XXX_USE_RTC
112 #define MC13783_USE_REGULATOR MC13XXX_USE_REGULATOR
113 #define MC13783_USE_LED MC13XXX_USE_LED
115 #define MC13783_ADC_MODE_TS MC13XXX_ADC_MODE_TS
116 #define MC13783_ADC_MODE_SINGLE_CHAN MC13XXX_ADC_MODE_SINGLE_CHAN
117 #define MC13783_ADC_MODE_MULT_CHAN MC13XXX_ADC_MODE_MULT_CHAN
119 static inline int mc13783_adc_do_conversion(struct mc13783 *mc13783,
120 unsigned int mode, unsigned int channel, unsigned int *sample)
122 return mc13xxx_adc_do_conversion(mc13783_to_mc13xxx(mc13783), mode,
127 #define MC13783_REG_SW1A 0
128 #define MC13783_REG_SW1B 1
129 #define MC13783_REG_SW2A 2
130 #define MC13783_REG_SW2B 3
131 #define MC13783_REG_SW3 4
132 #define MC13783_REG_PLL 5
133 #define MC13783_REG_VAUDIO 6
134 #define MC13783_REG_VIOHI 7
135 #define MC13783_REG_VIOLO 8
136 #define MC13783_REG_VDIG 9
137 #define MC13783_REG_VGEN 10
138 #define MC13783_REG_VRFDIG 11
139 #define MC13783_REG_VRFREF 12
140 #define MC13783_REG_VRFCP 13
141 #define MC13783_REG_VSIM 14
142 #define MC13783_REG_VESIM 15
143 #define MC13783_REG_VCAM 16
144 #define MC13783_REG_VRFBG 17
145 #define MC13783_REG_VVIB 18
146 #define MC13783_REG_VRF1 19
147 #define MC13783_REG_VRF2 20
148 #define MC13783_REG_VMMC1 21
149 #define MC13783_REG_VMMC2 22
150 #define MC13783_REG_GPO1 23
151 #define MC13783_REG_GPO2 24
152 #define MC13783_REG_GPO3 25
153 #define MC13783_REG_GPO4 26
154 #define MC13783_REG_V1 27
155 #define MC13783_REG_V2 28
156 #define MC13783_REG_V3 29
157 #define MC13783_REG_V4 30
158 #define MC13783_REG_PWGT1SPI 31
159 #define MC13783_REG_PWGT2SPI 32
161 #define MC13783_IRQ_ADCDONE MC13XXX_IRQ_ADCDONE
162 #define MC13783_IRQ_ADCBISDONE MC13XXX_IRQ_ADCBISDONE
163 #define MC13783_IRQ_TS MC13XXX_IRQ_TS
164 #define MC13783_IRQ_WHIGH 3
165 #define MC13783_IRQ_WLOW 4
166 #define MC13783_IRQ_CHGDET MC13XXX_IRQ_CHGDET
167 #define MC13783_IRQ_CHGOV 7
168 #define MC13783_IRQ_CHGREV MC13XXX_IRQ_CHGREV
169 #define MC13783_IRQ_CHGSHORT MC13XXX_IRQ_CHGSHORT
170 #define MC13783_IRQ_CCCV MC13XXX_IRQ_CCCV
171 #define MC13783_IRQ_CHGCURR MC13XXX_IRQ_CHGCURR
172 #define MC13783_IRQ_BPON MC13XXX_IRQ_BPON
173 #define MC13783_IRQ_LOBATL MC13XXX_IRQ_LOBATL
174 #define MC13783_IRQ_LOBATH MC13XXX_IRQ_LOBATH
175 #define MC13783_IRQ_UDP 15
176 #define MC13783_IRQ_USB 16
177 #define MC13783_IRQ_ID 19
178 #define MC13783_IRQ_SE1 21
179 #define MC13783_IRQ_CKDET 22
180 #define MC13783_IRQ_UDM 23
181 #define MC13783_IRQ_1HZ MC13XXX_IRQ_1HZ
182 #define MC13783_IRQ_TODA MC13XXX_IRQ_TODA
183 #define MC13783_IRQ_ONOFD1 27
184 #define MC13783_IRQ_ONOFD2 28
185 #define MC13783_IRQ_ONOFD3 29
186 #define MC13783_IRQ_SYSRST MC13XXX_IRQ_SYSRST
187 #define MC13783_IRQ_RTCRST MC13XXX_IRQ_RTCRST
188 #define MC13783_IRQ_PC MC13XXX_IRQ_PC
189 #define MC13783_IRQ_WARM MC13XXX_IRQ_WARM
190 #define MC13783_IRQ_MEMHLD MC13XXX_IRQ_MEMHLD
191 #define MC13783_IRQ_PWRRDY 35
192 #define MC13783_IRQ_THWARNL MC13XXX_IRQ_THWARNL
193 #define MC13783_IRQ_THWARNH MC13XXX_IRQ_THWARNH
194 #define MC13783_IRQ_CLK MC13XXX_IRQ_CLK
195 #define MC13783_IRQ_SEMAF 39
196 #define MC13783_IRQ_MC2B 41
197 #define MC13783_IRQ_HSDET 42
198 #define MC13783_IRQ_HSL 43
199 #define MC13783_IRQ_ALSPTH 44
200 #define MC13783_IRQ_AHSSHORT 45
201 #define MC13783_NUM_IRQ MC13XXX_NUM_IRQ
203 #endif /* ifndef __LINUX_MFD_MC13783_H */