pinctrl: intel: Introduce new flag to force GPIO base to be 0
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 13 Apr 2020 11:18:24 +0000 (14:18 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 14 Apr 2020 13:17:13 +0000 (16:17 +0300)
In some cases not the first group would like to have GPIO base to be 0.
It's not possible right now due to 0 has special meaning already. Thus,
introduce a new flag to allow drivers to force GPIO base to be 0 on
a certain group. It's assumed that it can be only one group per device
with such flag enabled.

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
drivers/pinctrl/intel/pinctrl-intel.h

index a1b286d..6a274e2 100644 (file)
@@ -1281,6 +1281,9 @@ static int intel_pinctrl_add_padgroups(struct intel_pinctrl *pctrl,
                        case INTEL_GPIO_BASE_MATCH:
                                gpps[i].gpio_base = gpps[i].base;
                                break;
+                       case INTEL_GPIO_BASE_ZERO:
+                               gpps[i].gpio_base = 0;
+                               break;
                        case INTEL_GPIO_BASE_NOMAP:
                        default:
                                break;
index 89f38fa..87fc055 100644 (file)
@@ -70,10 +70,12 @@ struct intel_padgroup {
 /**
  * enum - Special treatment for GPIO base in pad group
  *
+ * @INTEL_GPIO_BASE_ZERO:      force GPIO base to be 0
  * @INTEL_GPIO_BASE_NOMAP:     no GPIO mapping should be created
  * @INTEL_GPIO_BASE_MATCH:     matches with starting pin number
  */
 enum {
+       INTEL_GPIO_BASE_ZERO    = -2,
        INTEL_GPIO_BASE_NOMAP   = -1,
        INTEL_GPIO_BASE_MATCH   = 0,
 };