linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] pinctrl: baytrail: Avoid clearing debounce value when turning it off
@ 2020-11-12 19:03 Andy Shevchenko
  2020-11-13  9:36 ` Mika Westerberg
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2020-11-12 19:03 UTC (permalink / raw)
  To: Mika Westerberg, linux-gpio, Linus Walleij; +Cc: Andy Shevchenko

Baytrail pin control has a common register to set up debounce timeout.
When a pin configuration requested debounce to be disabled, the rest
of the pins may still want to have debounce enabled and thus rely on
the common timeout value. Avoid clearing debounce value when turning
it off for one pin while others may still use it.

Fixes: 658b476c742f ("pinctrl: baytrail: Add debounce configuration")
Depends-on: 04ff5a095d66 ("pinctrl: baytrail: Rectify debounce support")
Depends-on: 827e1579e1d5 ("pinctrl: baytrail: Rectify debounce support (part 2)")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-baytrail.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c
index d49aab3cfbaa..394a421a19d5 100644
--- a/drivers/pinctrl/intel/pinctrl-baytrail.c
+++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
@@ -1049,7 +1049,6 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
 			break;
 		case PIN_CONFIG_INPUT_DEBOUNCE:
 			debounce = readl(db_reg);
-			debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 
 			if (arg)
 				conf |= BYT_DEBOUNCE_EN;
@@ -1058,24 +1057,31 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
 
 			switch (arg) {
 			case 375:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_375US;
 				break;
 			case 750:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_750US;
 				break;
 			case 1500:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_1500US;
 				break;
 			case 3000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_3MS;
 				break;
 			case 6000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_6MS;
 				break;
 			case 12000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_12MS;
 				break;
 			case 24000:
+				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
 				debounce |= BYT_DEBOUNCE_PULSE_24MS;
 				break;
 			default:
-- 
2.28.0


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

* Re: [PATCH v1] pinctrl: baytrail: Avoid clearing debounce value when turning it off
  2020-11-12 19:03 [PATCH v1] pinctrl: baytrail: Avoid clearing debounce value when turning it off Andy Shevchenko
@ 2020-11-13  9:36 ` Mika Westerberg
  2020-11-16 10:04   ` Andy Shevchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Mika Westerberg @ 2020-11-13  9:36 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-gpio, Linus Walleij

On Thu, Nov 12, 2020 at 09:03:01PM +0200, Andy Shevchenko wrote:
> Baytrail pin control has a common register to set up debounce timeout.
> When a pin configuration requested debounce to be disabled, the rest
> of the pins may still want to have debounce enabled and thus rely on
> the common timeout value. Avoid clearing debounce value when turning
> it off for one pin while others may still use it.
> 
> Fixes: 658b476c742f ("pinctrl: baytrail: Add debounce configuration")
> Depends-on: 04ff5a095d66 ("pinctrl: baytrail: Rectify debounce support")
> Depends-on: 827e1579e1d5 ("pinctrl: baytrail: Rectify debounce support (part 2)")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>

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

* Re: [PATCH v1] pinctrl: baytrail: Avoid clearing debounce value when turning it off
  2020-11-13  9:36 ` Mika Westerberg
@ 2020-11-16 10:04   ` Andy Shevchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2020-11-16 10:04 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-gpio, Linus Walleij

On Fri, Nov 13, 2020 at 11:36:11AM +0200, Mika Westerberg wrote:
> On Thu, Nov 12, 2020 at 09:03:01PM +0200, Andy Shevchenko wrote:
> > Baytrail pin control has a common register to set up debounce timeout.
> > When a pin configuration requested debounce to be disabled, the rest
> > of the pins may still want to have debounce enabled and thus rely on
> > the common timeout value. Avoid clearing debounce value when turning
> > it off for one pin while others may still use it.
> > 
> > Fixes: 658b476c742f ("pinctrl: baytrail: Add debounce configuration")
> > Depends-on: 04ff5a095d66 ("pinctrl: baytrail: Rectify debounce support")
> > Depends-on: 827e1579e1d5 ("pinctrl: baytrail: Rectify debounce support (part 2)")
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>

Pushed to my review and testing queue, thanks!

-- 
With Best Regards,
Andy Shevchenko



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

end of thread, other threads:[~2020-11-16 10:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-12 19:03 [PATCH v1] pinctrl: baytrail: Avoid clearing debounce value when turning it off Andy Shevchenko
2020-11-13  9:36 ` Mika Westerberg
2020-11-16 10:04   ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).