All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] pinctrl: merrifield: Set default bias in case no particular value given
@ 2020-11-11 12:06 Andy Shevchenko
  2020-11-12  8:06 ` Mika Westerberg
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2020-11-11 12:06 UTC (permalink / raw)
  To: Mika Westerberg, linux-gpio, Linus Walleij; +Cc: Andy Shevchenko

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: 4e80c8f50574 ("pinctrl: intel: Add Intel Merrifield pin controller support")
Depends-on: 2956b5d94a76 ("pinctrl / gpio: Introduce .set_config() callback for GPIO chips")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-merrifield.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c
index e4ff8da1b894..3ae141e0b421 100644
--- a/drivers/pinctrl/intel/pinctrl-merrifield.c
+++ b/drivers/pinctrl/intel/pinctrl-merrifield.c
@@ -745,6 +745,10 @@ static int mrfld_config_set_pin(struct mrfld_pinctrl *mp, unsigned int pin,
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PU_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			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,
 		mask |= BUFCFG_Px_EN_MASK | BUFCFG_PUPD_VAL_MASK;
 		bits |= BUFCFG_PD_EN;
 
+		/* Set default strength value in case none is given */
+		if (arg == 1)
+			arg = 20000;
+
 		switch (arg) {
 		case 50000:
 			bits |= BUFCFG_PUPD_VAL_50K << BUFCFG_PUPD_VAL_SHIFT;
-- 
2.28.0


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

* Re: [PATCH v1] pinctrl: merrifield: Set default bias in case no particular value given
  2020-11-11 12:06 [PATCH v1] pinctrl: merrifield: Set default bias in case no particular value given Andy Shevchenko
@ 2020-11-12  8:06 ` Mika Westerberg
  2020-11-12 13:59   ` Andy Shevchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Mika Westerberg @ 2020-11-12  8:06 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-gpio, Linus Walleij

On Wed, Nov 11, 2020 at 02:06:05PM +0200, 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 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: 4e80c8f50574 ("pinctrl: intel: Add Intel Merrifield pin controller support")
> Depends-on: 2956b5d94a76 ("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>

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

* Re: [PATCH v1] pinctrl: merrifield: Set default bias in case no particular value given
  2020-11-12  8:06 ` Mika Westerberg
@ 2020-11-12 13:59   ` Andy Shevchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2020-11-12 13:59 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-gpio, Linus Walleij

On Thu, Nov 12, 2020 at 10:06:50AM +0200, Mika Westerberg wrote:
> On Wed, Nov 11, 2020 at 02:06:05PM +0200, 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 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: 4e80c8f50574 ("pinctrl: intel: Add Intel Merrifield pin controller support")
> > Depends-on: 2956b5d94a76 ("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>

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-12 13:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-11 12:06 [PATCH v1] pinctrl: merrifield: Set default bias in case no particular value given Andy Shevchenko
2020-11-12  8:06 ` Mika Westerberg
2020-11-12 13:59   ` Andy Shevchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.