pinctrl: intel: Introduce INTEL_COMMUNITY_*() to unify community macros
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 19 Dec 2022 12:26:27 +0000 (14:26 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 27 Dec 2022 19:17:53 +0000 (21:17 +0200)
Now it becomes visible that we can deduplicate SoC specific
*_COMMUNITY() macros across the Intel pin control drivers.
For that, introduce a common INTEL_COMMUNITY_GPPS() and
INTEL_COMMUNITY_SIZE() macros in the pinctrl-intel.h.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pinctrl/intel/pinctrl-intel.h

index 6562842..b0f2be4 100644 (file)
@@ -143,6 +143,28 @@ struct intel_community {
 #define PINCTRL_FEATURE_BLINK          BIT(4)
 #define PINCTRL_FEATURE_EXP            BIT(5)
 
+#define __INTEL_COMMUNITY(b, s, e, g, n, gs, gn, soc)          \
+       {                                                       \
+               .barno = (b),                                   \
+               .padown_offset = soc ## _PAD_OWN,               \
+               .padcfglock_offset = soc ## _PADCFGLOCK,        \
+               .hostown_offset = soc ## _HOSTSW_OWN,           \
+               .is_offset = soc ## _GPI_IS,                    \
+               .ie_offset = soc ## _GPI_IE,                    \
+               .gpp_size = (gs),                               \
+               .gpp_num_padown_regs = (gn),                    \
+               .pin_base = (s),                                \
+               .npins = ((e) - (s) + 1),                       \
+               .gpps = (g),                                    \
+               .ngpps = (n),                                   \
+       }
+
+#define INTEL_COMMUNITY_GPPS(b, s, e, g, soc)                  \
+       __INTEL_COMMUNITY(b, s, e, g, ARRAY_SIZE(g), 0, 0, soc)
+
+#define INTEL_COMMUNITY_SIZE(b, s, e, gs, gn, soc)             \
+       __INTEL_COMMUNITY(b, s, e, NULL, 0, gs, gn, soc)
+
 /**
  * PIN_GROUP - Declare a pin group
  * @n: Name of the group