lkml.org 
[lkml]   [2020]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 050/101] pinctrl: intel: Set default bias in case no particular value given
    Date
    From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

    [ Upstream commit f3c75e7a9349d1d33eb53ddc1b31640994969f73 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pinctrl/intel/pinctrl-intel.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
    index 89ff2795a8b55..5e0adb00b4307 100644
    --- a/drivers/pinctrl/intel/pinctrl-intel.c
    +++ b/drivers/pinctrl/intel/pinctrl-intel.c
    @@ -621,6 +621,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned 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;
    @@ -643,6 +647,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned 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;
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-17 14:21    [W:4.243 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site