Message ID | 20201014104638.84043-2-andriy.shevchenko@linux.intel.com |
---|---|
State | Accepted |
Commit | f3c75e7a9349d1d33eb53ddc1b31640994969f73 |
Headers | show |
Series | [v1,1/2] pinctrl: intel: Fix 2 kOhm bias which is 833 Ohm | expand |
On Wed, Oct 14, 2020 at 01:46:38PM +0300, Andy Shevchenko wrote: > When GPIO library asks pin control to set the bias, it doesn't pass > any value of it and argument is considered boolean (and this is true > for ACPI GpioIo() / GpioInt() resources, by the way). Thus, individual > drivers must behave well, when they got the resistance value of 1 Ohm, > i.e. transforming it to sane default. > > In case of Intel pin control hardware the 5 kOhm sounds plausible > because on one hand it's a minimum of resistors present in all > hardware generations and at the same time it's high enough to minimize > leakage current (will be only 200 uA with the above choice). > > Fixes: e57725eabf87 ("pinctrl: intel: Add support for hardware debouncer") > Reported-by: Jamie McClymont <jamie@kwiius.com> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index df626643f9e4..6d23137489c1 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -693,6 +693,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, value |= PADCFG1_TERM_UP; + /* Set default strength value in case none is given */ + if (arg == 1) + arg = 5000; + switch (arg) { case 20000: value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; @@ -715,6 +719,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, case PIN_CONFIG_BIAS_PULL_DOWN: value &= ~(PADCFG1_TERM_UP | PADCFG1_TERM_MASK); + /* Set default strength value in case none is given */ + if (arg == 1) + arg = 5000; + switch (arg) { case 20000: value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT;
When GPIO library asks pin control to set the bias, it doesn't pass any value of it and argument is considered boolean (and this is true for ACPI GpioIo() / GpioInt() resources, by the way). Thus, individual drivers must behave well, when they got the resistance value of 1 Ohm, i.e. transforming it to sane default. In case of Intel pin control hardware the 5 kOhm sounds plausible because on one hand it's a minimum of resistors present in all hardware generations and at the same time it's high enough to minimize leakage current (will be only 200 uA with the above choice). Fixes: e57725eabf87 ("pinctrl: intel: Add support for hardware debouncer") Reported-by: Jamie McClymont <jamie@kwiius.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/pinctrl/intel/pinctrl-intel.c | 8 ++++++++ 1 file changed, 8 insertions(+)