All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] extcon: max77693: Fix a bug occured at changing ADC debounce time.
@ 2014-09-03  6:47 Jonghwa Lee
  2014-09-03  7:09 ` Chanwoo Choi
  0 siblings, 1 reply; 2+ messages in thread
From: Jonghwa Lee @ 2014-09-03  6:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: myungjoo.ham, cw00.choi, r.baldyga, Jonghwa Lee

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>
---
Changes in v2
 - Fix comments.

 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..171f35a 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. If it writes other than 0 to BTLDset, JIGset
+		 * muic device will be reset and loose current state.
+		 */
+		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));
 		if (ret) {
 			dev_err(info->dev, "failed to set ADC debounce time\n");
 			return ret;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] extcon: max77693: Fix a bug occured at changing ADC debounce time.
  2014-09-03  6:47 [PATCH v2] extcon: max77693: Fix a bug occured at changing ADC debounce time Jonghwa Lee
@ 2014-09-03  7:09 ` Chanwoo Choi
  0 siblings, 0 replies; 2+ messages in thread
From: Chanwoo Choi @ 2014-09-03  7:09 UTC (permalink / raw)
  To: Jonghwa Lee; +Cc: linux-kernel, myungjoo.ham, r.baldyga

Hi Jonghwa,

On 09/03/2014 03:47 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>
> ---
> Changes in v2
>  - Fix comments.
> 
>  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..171f35a 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. If it writes other than 0 to BTLDset, JIGset
> +		 * muic device will be reset and loose current state.
> +		 */
> +		ret = regmap_write_bits(info->max77693->regmap_muic,

regmap_write_bits() is wrong. You have to use regmap_write().

>  					  MAX77693_MUIC_REG_CTRL3,
> -					  CONTROL3_ADCDBSET_MASK,
> -					  time << CONTROL3_ADCDBSET_SHIFT);
> +					  (CONTROL3_ADCDBSET_MASK &
> +					  time << CONTROL3_ADCDBSET_SHIFT));

I think you don't need to mask with CONTROL3_ADCDBSET_MASK.
You can just write following statement wihtout masking operation
because of using regmap_write() function.

		ret = regmap_write(info->max77693->regmap_muic,			
  				  MAX77693_MUIC_REG_CTRL3,
				  time << CONTROL3_ADCDBSET_SHIFT);

Thanks,
Chanwoo Choi

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-09-03  7:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-03  6:47 [PATCH v2] extcon: max77693: Fix a bug occured at changing ADC debounce time Jonghwa Lee
2014-09-03  7:09 ` Chanwoo Choi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.