All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull()
@ 2022-12-19 12:32 Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull() Andy Shevchenko
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-19 12:32 UTC (permalink / raw)
  To: Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Mika Westerberg, Andy Shevchenko, Linus Walleij

For the sake of symmetry with intel_config_get_pull(), add
a default case to the outer switch.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-intel.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 8181a65fb815..4b1d5a21aa68 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -758,6 +758,10 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 		}
 
 		break;
+
+	default:
+		ret = -EINVAL;
+		break;
 	}
 
 	if (!ret)
-- 
2.35.1


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

* [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull()
  2022-12-19 12:32 [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
@ 2022-12-19 12:32 ` Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 3/4] pinctrl: intel: Add definitions to all possible biases Andy Shevchenko
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-19 12:32 UTC (permalink / raw)
  To: Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Mika Westerberg, Andy Shevchenko, Linus Walleij

First part is to assign default argument for all cases, since
bias disablement doesn't use it anyway.

Second part is to clear all bits in the bias setting and
depending on the argument and parameter set them as asked.

While at it, add break statement to the default cases.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-intel.c | 26 ++++++++------------------
 1 file changed, 8 insertions(+), 18 deletions(-)

diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 4b1d5a21aa68..6926f64b68d4 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -691,21 +691,14 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 	raw_spin_lock_irqsave(&pctrl->lock, flags);
 
 	value = readl(padcfg1);
+	value &= ~(PADCFG1_TERM_MASK | PADCFG1_TERM_UP);
 
-	switch (param) {
-	case PIN_CONFIG_BIAS_DISABLE:
-		value &= ~(PADCFG1_TERM_MASK | PADCFG1_TERM_UP);
-		break;
+	/* Set default strength value in case none is given */
+	if (arg == 1)
+		arg = 5000;
 
+	switch (param) {
 	case PIN_CONFIG_BIAS_PULL_UP:
-		value &= ~PADCFG1_TERM_MASK;
-
-		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;
@@ -721,17 +714,13 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 			break;
 		default:
 			ret = -EINVAL;
+			break;
 		}
 
+		value |= PADCFG1_TERM_UP;
 		break;
 
 	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;
@@ -755,6 +744,7 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 			break;
 		default:
 			ret = -EINVAL;
+			break;
 		}
 
 		break;
-- 
2.35.1


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

* [PATCH v1 3/4] pinctrl: intel: Add definitions to all possible biases
  2022-12-19 12:32 [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull() Andy Shevchenko
@ 2022-12-19 12:32 ` Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 4/4] pinctrl: intel: Add ~4k bias support Andy Shevchenko
  2022-12-19 14:41 ` [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
  3 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-19 12:32 UTC (permalink / raw)
  To: Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Mika Westerberg, Andy Shevchenko, Linus Walleij

Add definitions to all possible biases, i.e. add ~800 Ohms,
~952 Ohms, ~4 kOhms.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-intel.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 6926f64b68d4..8ecb7ca7fbac 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -81,8 +81,11 @@
 #define PADCFG1_TERM_MASK		GENMASK(12, 10)
 #define PADCFG1_TERM_20K		BIT(2)
 #define PADCFG1_TERM_5K			BIT(1)
+#define PADCFG1_TERM_4K			(BIT(2) | BIT(1))
 #define PADCFG1_TERM_1K			BIT(0)
+#define PADCFG1_TERM_952		(BIT(2) | BIT(0))
 #define PADCFG1_TERM_833		(BIT(1) | BIT(0))
+#define PADCFG1_TERM_800		(BIT(2) | BIT(1) | BIT(0))
 
 #define PADCFG2				0x008
 #define PADCFG2_DEBEN			BIT(0)
-- 
2.35.1


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

* [PATCH v1 4/4] pinctrl: intel: Add ~4k bias support
  2022-12-19 12:32 [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull() Andy Shevchenko
  2022-12-19 12:32 ` [PATCH v1 3/4] pinctrl: intel: Add definitions to all possible biases Andy Shevchenko
@ 2022-12-19 12:32 ` Andy Shevchenko
  2022-12-19 14:41 ` [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
  3 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-19 12:32 UTC (permalink / raw)
  To: Andy Shevchenko, linux-gpio, linux-kernel
  Cc: Mika Westerberg, Andy Shevchenko, Linus Walleij

All versions that have 20k and 5k resistance, i.e. all that
the driver supports, may support ~4k when the above mentioned
are connected in parallel. Add such a support.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-intel.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 8ecb7ca7fbac..5e21b0a96efe 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -577,6 +577,9 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 		case PADCFG1_TERM_1K:
 			*arg = 1000;
 			break;
+		case PADCFG1_TERM_4K:
+			*arg = 4000;
+			break;
 		case PADCFG1_TERM_5K:
 			*arg = 5000;
 			break;
@@ -602,6 +605,9 @@ static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 				return -EINVAL;
 			*arg = 1000;
 			break;
+		case PADCFG1_TERM_4K:
+			*arg = 4000;
+			break;
 		case PADCFG1_TERM_5K:
 			*arg = 5000;
 			break;
@@ -709,6 +715,9 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 		case 5000:
 			value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT;
 			break;
+		case 4000:
+			value |= PADCFG1_TERM_4K << PADCFG1_TERM_SHIFT;
+			break;
 		case 1000:
 			value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT;
 			break;
@@ -731,6 +740,9 @@ static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin,
 		case 5000:
 			value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT;
 			break;
+		case 4000:
+			value |= PADCFG1_TERM_4K << PADCFG1_TERM_SHIFT;
+			break;
 		case 1000:
 			if (!(community->features & PINCTRL_FEATURE_1K_PD)) {
 				ret = -EINVAL;
-- 
2.35.1


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

* Re: [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull()
  2022-12-19 12:32 [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
                   ` (2 preceding siblings ...)
  2022-12-19 12:32 ` [PATCH v1 4/4] pinctrl: intel: Add ~4k bias support Andy Shevchenko
@ 2022-12-19 14:41 ` Andy Shevchenko
  2022-12-20  6:18   ` Mika Westerberg
  3 siblings, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-19 14:41 UTC (permalink / raw)
  To: linux-gpio, linux-kernel; +Cc: Mika Westerberg, Linus Walleij

On Mon, Dec 19, 2022 at 02:32:05PM +0200, Andy Shevchenko wrote:
> For the sake of symmetry with intel_config_get_pull(), add
> a default case to the outer switch.

The stats for the entire series:

 drivers/pinctrl/intel/pinctrl-intel.c | 45 +++++++++++++++++++++++++++------------------
  1 file changed, 27 insertions(+), 18 deletions(-)

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull()
  2022-12-19 14:41 ` [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
@ 2022-12-20  6:18   ` Mika Westerberg
  2022-12-27 19:24     ` Andy Shevchenko
  0 siblings, 1 reply; 7+ messages in thread
From: Mika Westerberg @ 2022-12-20  6:18 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: linux-gpio, linux-kernel, Linus Walleij

On Mon, Dec 19, 2022 at 04:41:34PM +0200, Andy Shevchenko wrote:
> On Mon, Dec 19, 2022 at 02:32:05PM +0200, Andy Shevchenko wrote:
> > For the sake of symmetry with intel_config_get_pull(), add
> > a default case to the outer switch.
> 
> The stats for the entire series:
> 
>  drivers/pinctrl/intel/pinctrl-intel.c | 45 +++++++++++++++++++++++++++------------------
>   1 file changed, 27 insertions(+), 18 deletions(-)

Thanks!

For the series,

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>

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

* Re: [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull()
  2022-12-20  6:18   ` Mika Westerberg
@ 2022-12-27 19:24     ` Andy Shevchenko
  0 siblings, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-12-27 19:24 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-gpio, linux-kernel, Linus Walleij

On Tue, Dec 20, 2022 at 08:18:42AM +0200, Mika Westerberg wrote:
> On Mon, Dec 19, 2022 at 04:41:34PM +0200, Andy Shevchenko wrote:
> > On Mon, Dec 19, 2022 at 02:32:05PM +0200, Andy Shevchenko wrote:
> > > For the sake of symmetry with intel_config_get_pull(), add
> > > a default case to the outer switch.
> > 
> > The stats for the entire series:
> > 
> >  drivers/pinctrl/intel/pinctrl-intel.c | 45 +++++++++++++++++++++++++++------------------
> >   1 file changed, 27 insertions(+), 18 deletions(-)
> 
> Thanks!
> 
> For the series,
> 
> 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] 7+ messages in thread

end of thread, other threads:[~2022-12-27 19:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-19 12:32 [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
2022-12-19 12:32 ` [PATCH v1 2/4] pinctrl: intel: Deduplicate some code in intel_config_set_pull() Andy Shevchenko
2022-12-19 12:32 ` [PATCH v1 3/4] pinctrl: intel: Add definitions to all possible biases Andy Shevchenko
2022-12-19 12:32 ` [PATCH v1 4/4] pinctrl: intel: Add ~4k bias support Andy Shevchenko
2022-12-19 14:41 ` [PATCH v1 1/4] pinctrl: intel: Add default case to intel_config_set_pull() Andy Shevchenko
2022-12-20  6:18   ` Mika Westerberg
2022-12-27 19:24     ` 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.