pinctrl: intel: Add ~4k bias support
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 19 Dec 2022 12:32:08 +0000 (14:32 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 28 Dec 2022 12:20:18 +0000 (14:20 +0200)
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>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pinctrl/intel/pinctrl-intel.c

index f72db30..ad32e3c 100644 (file)
@@ -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;
@@ -712,6 +718,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;
@@ -734,6 +743,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;