Messages in this thread | | | Date | Wed, 03 Sep 2014 15:39:02 +0900 | From | jonghwa3.lee@samsung ... | Subject | Re: [PATCH] extcon: max77693: Fix a bug occured at changing ADC debounce time. |
| |
On 2014년 09월 03일 14:55, Chanwoo Choi wrote:
> On 09/03/2014 02:50 PM, Jonghwa Lee wrote: >> When it writes some value other than 0 to BTLDset and JIGset, muic device >> will be reset automatically. And it happens during updating ADC debounce time, >> because it shares same register. To update ADC debounce time without reset, >> set value only to ADCDbset and 0 to BTLDset and JIGset. >> >> Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com> >> --- >> drivers/extcon/extcon-max77693.c | 11 ++++++++--- >> 1 file changed, 8 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/extcon/extcon-max77693.c b/drivers/extcon/extcon-max77693.c >> index 77460f2..661a3bb 100644 >> --- a/drivers/extcon/extcon-max77693.c >> +++ b/drivers/extcon/extcon-max77693.c >> @@ -255,10 +255,15 @@ static int max77693_muic_set_debounce_time(struct max77693_muic_info *info, >> case ADC_DEBOUNCE_TIME_10MS: >> case ADC_DEBOUNCE_TIME_25MS: >> case ADC_DEBOUNCE_TIME_38_62MS: >> - ret = regmap_update_bits(info->max77693->regmap_muic, >> + /* >> + * Don't touch BTLDset, JIGset when you want to change adc >> + * debounce time. BTLDset, JIGset reflects actual pin status >> + * and are not configurable. >> + */ >> + ret = regmap_write_bits(info->max77693->regmap_muic, >> MAX77693_MUIC_REG_CTRL3, >> - CONTROL3_ADCDBSET_MASK, >> - time << CONTROL3_ADCDBSET_SHIFT); >> + (CONTROL3_ADCDBSET_MASK & >> + time << CONTROL3_ADCDBSET_SHIFT)); > > Do you make this patch on extcon-next branch? > > The max77693_muic_set_debounce_time() of extcon-max77693.c > use regmap_update_bits instead of regmap_write_bits as following:
This patch intends to use 'regmap_write_bits()' not 'regmap_update_bits()'. With using regmap_update_bits(), it would writes some value to BTLDset and JIGset then muic device will loose current state.
Thanks, Jonghwa
> > switch (time) { > case ADC_DEBOUNCE_TIME_5MS: > case ADC_DEBOUNCE_TIME_10MS: > case ADC_DEBOUNCE_TIME_25MS: > case ADC_DEBOUNCE_TIME_38_62MS: > ret = regmap_update_bits(info->max77693->regmap_muic, > MAX77693_MUIC_REG_CTRL3, > CONTROL3_ADCDBSET_MASK, > time << CONTROL3_ADCDBSET_SHIFT); > if (ret) { > dev_err(info->dev, "failed to set ADC debounce time\n"); > return ret; > } > > > Thanks, > Chanwoo Choi > > >
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |