summaryrefslogtreecommitdiffstats
path: root/include/linux/mfd
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2011-08-24 15:28:21 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-10-24 14:09:12 +0200
commitfec316d63219f610e5385f5e54e6c3ea459e58e9 (patch)
treec3eb2e6352ccad730f93335edee789c58203b003 /include/linux/mfd
parentf3ca07824f309474b308d859c9a2cc871c6c5ab8 (diff)
downloadblackbird-op-linux-fec316d63219f610e5385f5e54e6c3ea459e58e9.tar.gz
blackbird-op-linux-fec316d63219f610e5385f5e54e6c3ea459e58e9.zip
mfd: Provide a generic version of mc13xxx adc_do_conversion
This is needed to convert the touch driver away from using struct mc13783. Note this patch drops MC13783_ADC0_ADREFMODE. This is unused and doesn't exist on mc13892. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include/linux/mfd')
-rw-r--r--include/linux/mfd/mc13783.h35
-rw-r--r--include/linux/mfd/mc13xxx.h19
2 files changed, 37 insertions, 17 deletions
diff --git a/include/linux/mfd/mc13783.h b/include/linux/mfd/mc13783.h
index 7d0f3d6a0002..e7a3c0169f63 100644
--- a/include/linux/mfd/mc13783.h
+++ b/include/linux/mfd/mc13783.h
@@ -89,18 +89,15 @@ static inline int mc13783_irq_ack(struct mc13783 *mc13783, int irq)
return mc13xxx_irq_ack(mc13783_to_mc13xxx(mc13783), irq);
}
-#define MC13783_ADC0 43
-#define MC13783_ADC0_ADREFEN (1 << 10)
-#define MC13783_ADC0_ADREFMODE (1 << 11)
-#define MC13783_ADC0_TSMOD0 (1 << 12)
-#define MC13783_ADC0_TSMOD1 (1 << 13)
-#define MC13783_ADC0_TSMOD2 (1 << 14)
-#define MC13783_ADC0_ADINC1 (1 << 16)
-#define MC13783_ADC0_ADINC2 (1 << 17)
-
-#define MC13783_ADC0_TSMOD_MASK (MC13783_ADC0_TSMOD0 | \
- MC13783_ADC0_TSMOD1 | \
- MC13783_ADC0_TSMOD2)
+#define MC13783_ADC0 MC13XXX_ADC0
+#define MC13783_ADC0_ADREFEN MC13XXX_ADC0_ADREFEN
+#define MC13783_ADC0_TSMOD0 MC13XXX_ADC0_TSMOD0
+#define MC13783_ADC0_TSMOD1 MC13XXX_ADC0_TSMOD1
+#define MC13783_ADC0_TSMOD2 MC13XXX_ADC0_TSMOD2
+#define MC13783_ADC0_ADINC1 MC13XXX_ADC0_ADINC1
+#define MC13783_ADC0_ADINC2 MC13XXX_ADC0_ADINC2
+
+#define MC13783_ADC0_TSMOD_MASK MC13XXX_ADC0_TSMOD_MASK
#define mc13783_regulator_init_data mc13xxx_regulator_init_data
#define mc13783_regulator_platform_data mc13xxx_regulator_platform_data
@@ -115,12 +112,16 @@ static inline int mc13783_irq_ack(struct mc13783 *mc13783, int irq)
#define MC13783_USE_REGULATOR MC13XXX_USE_REGULATOR
#define MC13783_USE_LED MC13XXX_USE_LED
-#define MC13783_ADC_MODE_TS 1
-#define MC13783_ADC_MODE_SINGLE_CHAN 2
-#define MC13783_ADC_MODE_MULT_CHAN 3
+#define MC13783_ADC_MODE_TS MC13XXX_ADC_MODE_TS
+#define MC13783_ADC_MODE_SINGLE_CHAN MC13XXX_ADC_MODE_SINGLE_CHAN
+#define MC13783_ADC_MODE_MULT_CHAN MC13XXX_ADC_MODE_MULT_CHAN
-int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode,
- unsigned int channel, unsigned int *sample);
+static inline int mc13783_adc_do_conversion(struct mc13783 *mc13783,
+ unsigned int mode, unsigned int channel, unsigned int *sample)
+{
+ return mc13xxx_adc_do_conversion(mc13783_to_mc13xxx(mc13783), mode,
+ channel, sample);
+}
#define MC13783_REG_SW1A 0
diff --git a/include/linux/mfd/mc13xxx.h b/include/linux/mfd/mc13xxx.h
index c064beaaccb7..6e7c0ac36d09 100644
--- a/include/linux/mfd/mc13xxx.h
+++ b/include/linux/mfd/mc13xxx.h
@@ -37,6 +37,9 @@ int mc13xxx_irq_ack(struct mc13xxx *mc13xxx, int irq);
int mc13xxx_get_flags(struct mc13xxx *mc13xxx);
+int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx,
+ unsigned int mode, unsigned int channel, unsigned int *sample);
+
#define MC13XXX_IRQ_ADCDONE 0
#define MC13XXX_IRQ_ADCBISDONE 1
#define MC13XXX_IRQ_TS 2
@@ -150,4 +153,20 @@ struct mc13xxx_platform_data {
struct mc13xxx_leds_platform_data *leds;
};
+#define MC13XXX_ADC_MODE_TS 1
+#define MC13XXX_ADC_MODE_SINGLE_CHAN 2
+#define MC13XXX_ADC_MODE_MULT_CHAN 3
+
+#define MC13XXX_ADC0 43
+#define MC13XXX_ADC0_ADREFEN (1 << 10)
+#define MC13XXX_ADC0_TSMOD0 (1 << 12)
+#define MC13XXX_ADC0_TSMOD1 (1 << 13)
+#define MC13XXX_ADC0_TSMOD2 (1 << 14)
+#define MC13XXX_ADC0_ADINC1 (1 << 16)
+#define MC13XXX_ADC0_ADINC2 (1 << 17)
+
+#define MC13XXX_ADC0_TSMOD_MASK (MC13XXX_ADC0_TSMOD0 | \
+ MC13XXX_ADC0_TSMOD1 | \
+ MC13XXX_ADC0_TSMOD2)
+
#endif /* ifndef __LINUX_MFD_MC13XXX_H */
OpenPOWER on IntegriCloud