Skip to content

Commit 03a61f1

Browse files
committed
pinctrl: merrifield: Set default bias in case no particular value given
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 Merrifield pin control hardware the 20 kOhm sounds plausible because it gives a good trade off between weakness and minimization of leakage current (will be only 50 uA with the above choice). Fixes: 4e80c8f ("pinctrl: intel: Add Intel Merrifield pin controller support") Depends-on: 2956b5d ("pinctrl / gpio: Introduce .set_config() callback for GPIO chips") Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
1 parent cdd8fc2 commit 03a61f1

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

drivers/pinctrl/intel/pinctrl-merrifield.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,6 +745,10 @@ static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin,
745745
mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
746746
bits |= BUFCFG_PU_EN;
747747

748+
/* Set default strength value in case none is given */
749+
if (arg == 1)
750+
arg = 20000;
751+
748752
switch (arg) {
749753
case 50000:
750754
bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
@@ -765,6 +769,10 @@ static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin,
765769
mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
766770
bits |= BUFCFG_PD_EN;
767771

772+
/* Set default strength value in case none is given */
773+
if (arg == 1)
774+
arg = 20000;
775+
768776
switch (arg) {
769777
case 50000:
770778
bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;

0 commit comments

Comments
 (0)