[PATCH 109/133] [Jaunty SRU] ARM.imx51 Freescale:ENGR00111992 Support multiple ADC channel co-work
Brad Figg
brad.figg at canonical.com
Thu Jul 9 16:49:39 UTC 2009
From: Zhou Jingyu <b02241 at freescale.com>
Support multiple ADC channel co-work at the same time
Signed-off-by: Zhou Jingyu <Jingyu.Zhou at freescale.com>
Signed-off-by: Brad Figg <brad.figg at canonical.com>
---
drivers/mxc/pmic/mc13892/pmic_adc.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/mxc/pmic/mc13892/pmic_adc.c b/drivers/mxc/pmic/mc13892/pmic_adc.c
index eb05c78..f2c0f35 100644
--- a/drivers/mxc/pmic/mc13892/pmic_adc.c
+++ b/drivers/mxc/pmic/mc13892/pmic_adc.c
@@ -83,6 +83,7 @@
#define ADC_MODE_MASK 0x00003F
#define ADC_INT_BISDONEI 0x02
+#define ADC_TSMODE_MASK 0x007000
typedef enum adc_state {
ADC_FREE,
@@ -425,8 +426,7 @@ PMIC_STATUS mc13892_adc_convert(t_adc_param * adc_param)
wait_for_completion_interruptible(&adc_tsi);
wait_ts = false;
}
- if (adc_param->read_ts == false)
- down(&convert_mutex);
+ down(&convert_mutex);
use_bis = mc13892_adc_request(adc_param->read_ts);
if (use_bis < 0) {
pr_debug("process has received a signal and got interrupted\n");
@@ -538,6 +538,8 @@ PMIC_STATUS mc13892_adc_convert(t_adc_param * adc_param)
adc_param->ts_value.y_position1 = adc_param->value[3];
adc_param->ts_value.y_position2 = adc_param->value[4];
adc_param->ts_value.contact_resistance = adc_param->value[6];
+ CHECK_ERROR(pmic_write_reg(REG_ADC0, 0x0,
+ ADC_TSMODE_MASK));
}
/*if (adc_param->read_ts) {
@@ -546,8 +548,7 @@ PMIC_STATUS mc13892_adc_convert(t_adc_param * adc_param)
adc_param->ts_value.contact_resistance = adc_param->value[6];
} */
mc13892_adc_release(use_bis);
- if (adc_param->read_ts == false)
- up(&convert_mutex);
+ up(&convert_mutex);
return PMIC_SUCCESS;
}
--
1.6.0.4
More information about the kernel-team
mailing list