pinctrl: baytrail: Avoid clearing debounce value when turning it off
Subsystems (3)
PATCH 1/1 pinctrl: baytrail: Avoid clearing debounce value when turning it off
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.
Depends-on: 04ff5a095d66 ("pinctrl: baytrail: Rectify debounce support")
Depends-on: 827e1579e1d5 ("pinctrl: baytrail: Rectify debounce support (part 2)")
--- drivers/pinctrl/intel/pinctrl-baytrail.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/pinctrl/intel/pinctrl-baytrail.c +7 -1
@@ -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 :
Signature · 1 line
2.28.0
Quoted 10 lines · 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 <[email protected]>
Quoted 7 lines · Mika Westerberg
Quoted 6 lines · 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.
Quoted 6 lines
Quoted 4 lines
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 <[email protected]>Acked-by Mika Westerberg <[email protected]>
Pushed to my review and testing queue, thanks!
Signature · 2 lines
With Best Regards, Andy Shevchenko