mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values
When trying to read any MC13892 ADC channel on a imx51-babbage board: The MC13892 PMIC shutdowns completely. After debugging this issue and comparing the MC13892 and MC13783 initializations done in the vendor kernel, it was noticed that the CHRGRAWDIV bit of the ADC0 register was not being set. This bit is set by default after power on, but the driver was clearing it. After setting this bit it is possible to read the ADC values correctly. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Tested-by: Chris Healy <cphealy@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
6360e40f42
commit
55143439b7
|
@ -276,7 +276,8 @@ int mc13xxx_adc_do_conversion(struct mc13xxx *mc13xxx, unsigned int mode,
|
||||||
|
|
||||||
mc13xxx_reg_read(mc13xxx, MC13XXX_ADC0, &old_adc0);
|
mc13xxx_reg_read(mc13xxx, MC13XXX_ADC0, &old_adc0);
|
||||||
|
|
||||||
adc0 = MC13XXX_ADC0_ADINC1 | MC13XXX_ADC0_ADINC2;
|
adc0 = MC13XXX_ADC0_ADINC1 | MC13XXX_ADC0_ADINC2 |
|
||||||
|
MC13XXX_ADC0_CHRGRAWDIV;
|
||||||
adc1 = MC13XXX_ADC1_ADEN | MC13XXX_ADC1_ADTRIGIGN | MC13XXX_ADC1_ASC;
|
adc1 = MC13XXX_ADC1_ADEN | MC13XXX_ADC1_ADTRIGIGN | MC13XXX_ADC1_ASC;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -249,6 +249,7 @@ struct mc13xxx_platform_data {
|
||||||
#define MC13XXX_ADC0_TSMOD0 (1 << 12)
|
#define MC13XXX_ADC0_TSMOD0 (1 << 12)
|
||||||
#define MC13XXX_ADC0_TSMOD1 (1 << 13)
|
#define MC13XXX_ADC0_TSMOD1 (1 << 13)
|
||||||
#define MC13XXX_ADC0_TSMOD2 (1 << 14)
|
#define MC13XXX_ADC0_TSMOD2 (1 << 14)
|
||||||
|
#define MC13XXX_ADC0_CHRGRAWDIV (1 << 15)
|
||||||
#define MC13XXX_ADC0_ADINC1 (1 << 16)
|
#define MC13XXX_ADC0_ADINC1 (1 << 16)
|
||||||
#define MC13XXX_ADC0_ADINC2 (1 << 17)
|
#define MC13XXX_ADC0_ADINC2 (1 << 17)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue