]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pinctrl: airoha: convert PWM GPIO to macro
authorChristian Marangi <ansuelsmth@gmail.com>
Thu, 6 Nov 2025 23:57:06 +0000 (00:57 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 10 Nov 2025 23:40:49 +0000 (00:40 +0100)
The PWM GPIO struct definition follow the same pattern for every GPIO
pin hence it can be converted to a macro.

Create 2 macro one for normal mux and one for ext mux and convert all
the entry to these new macro to reduce code size.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mediatek/pinctrl-airoha.c

index cb0edc2a66a1e6439a0fcc2bcd7a54801595a5f9..f3cf48bdd1f83dca2caf8d7991692209ac4fc465 100644 (file)
@@ -1073,404 +1073,75 @@ static const struct airoha_pinctrl_func_group pcie_reset_func_group[] = {
 };
 
 /* PWM */
+#define AIROHA_PINCTRL_PWM(gpio, mux_val)              \
+       {                                               \
+               .name = (gpio),                         \
+               .regmap[0] = {                          \
+                       AIROHA_FUNC_PWM_MUX,            \
+                       REG_GPIO_FLASH_MODE_CFG,        \
+                       (mux_val),                      \
+                       (mux_val)                       \
+               },                                      \
+               .regmap_size = 1,                       \
+       }                                               \
+
+#define AIROHA_PINCTRL_PWM_EXT(gpio, mux_val)          \
+       {                                               \
+               .name = (gpio),                         \
+               .regmap[0] = {                          \
+                       AIROHA_FUNC_PWM_EXT_MUX,        \
+                       REG_GPIO_FLASH_MODE_CFG_EXT,    \
+                       (mux_val),                      \
+                       (mux_val)                       \
+               },                                      \
+               .regmap_size = 1,                       \
+       }                                               \
+
 static const struct airoha_pinctrl_func_group pwm_func_group[] = {
-       {
-               .name = "gpio0",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO0_FLASH_MODE_CFG,
-                       GPIO0_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio1",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO1_FLASH_MODE_CFG,
-                       GPIO1_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio2",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO2_FLASH_MODE_CFG,
-                       GPIO2_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio3",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO3_FLASH_MODE_CFG,
-                       GPIO3_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio4",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO4_FLASH_MODE_CFG,
-                       GPIO4_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio5",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO5_FLASH_MODE_CFG,
-                       GPIO5_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio6",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO6_FLASH_MODE_CFG,
-                       GPIO6_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio7",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO7_FLASH_MODE_CFG,
-                       GPIO7_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio8",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO8_FLASH_MODE_CFG,
-                       GPIO8_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio9",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO9_FLASH_MODE_CFG,
-                       GPIO9_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio10",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO10_FLASH_MODE_CFG,
-                       GPIO10_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio11",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO11_FLASH_MODE_CFG,
-                       GPIO11_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio12",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO12_FLASH_MODE_CFG,
-                       GPIO12_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio13",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO13_FLASH_MODE_CFG,
-                       GPIO13_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio14",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO14_FLASH_MODE_CFG,
-                       GPIO14_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio15",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_MUX,
-                       REG_GPIO_FLASH_MODE_CFG,
-                       GPIO15_FLASH_MODE_CFG,
-                       GPIO15_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio16",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO16_FLASH_MODE_CFG,
-                       GPIO16_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio17",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO17_FLASH_MODE_CFG,
-                       GPIO17_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio18",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO18_FLASH_MODE_CFG,
-                       GPIO18_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio19",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO19_FLASH_MODE_CFG,
-                       GPIO19_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio20",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO20_FLASH_MODE_CFG,
-                       GPIO20_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio21",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO21_FLASH_MODE_CFG,
-                       GPIO21_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio22",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO22_FLASH_MODE_CFG,
-                       GPIO22_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio23",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO23_FLASH_MODE_CFG,
-                       GPIO23_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio24",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO24_FLASH_MODE_CFG,
-                       GPIO24_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio25",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO25_FLASH_MODE_CFG,
-                       GPIO25_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio26",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO26_FLASH_MODE_CFG,
-                       GPIO26_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio27",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO27_FLASH_MODE_CFG,
-                       GPIO27_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio28",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO28_FLASH_MODE_CFG,
-                       GPIO28_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio29",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO29_FLASH_MODE_CFG,
-                       GPIO29_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio30",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO30_FLASH_MODE_CFG,
-                       GPIO30_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio31",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO31_FLASH_MODE_CFG,
-                       GPIO31_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio36",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO36_FLASH_MODE_CFG,
-                       GPIO36_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio37",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO37_FLASH_MODE_CFG,
-                       GPIO37_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio38",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO38_FLASH_MODE_CFG,
-                       GPIO38_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio39",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO39_FLASH_MODE_CFG,
-                       GPIO39_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio40",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO40_FLASH_MODE_CFG,
-                       GPIO40_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio41",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO41_FLASH_MODE_CFG,
-                       GPIO41_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio42",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO42_FLASH_MODE_CFG,
-                       GPIO42_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio43",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO43_FLASH_MODE_CFG,
-                       GPIO43_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio44",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO44_FLASH_MODE_CFG,
-                       GPIO44_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio45",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO45_FLASH_MODE_CFG,
-                       GPIO45_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio46",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO46_FLASH_MODE_CFG,
-                       GPIO46_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       }, {
-               .name = "gpio47",
-               .regmap[0] = {
-                       AIROHA_FUNC_PWM_EXT_MUX,
-                       REG_GPIO_FLASH_MODE_CFG_EXT,
-                       GPIO47_FLASH_MODE_CFG,
-                       GPIO47_FLASH_MODE_CFG
-               },
-               .regmap_size = 1,
-       },
+       AIROHA_PINCTRL_PWM("gpio0", GPIO0_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio1", GPIO1_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio2", GPIO2_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio3", GPIO3_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio4", GPIO4_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio5", GPIO5_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio6", GPIO6_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio7", GPIO7_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio8", GPIO8_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio9", GPIO9_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio10", GPIO10_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio11", GPIO11_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio12", GPIO12_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio13", GPIO13_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio14", GPIO14_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM("gpio15", GPIO15_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio16", GPIO16_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio17", GPIO17_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio18", GPIO18_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio19", GPIO19_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio20", GPIO20_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio21", GPIO21_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio22", GPIO22_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio23", GPIO23_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio24", GPIO24_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio25", GPIO25_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio26", GPIO26_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio27", GPIO27_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio28", GPIO28_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio29", GPIO29_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio30", GPIO30_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio31", GPIO31_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio36", GPIO36_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio37", GPIO37_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio38", GPIO38_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio39", GPIO39_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio40", GPIO40_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio41", GPIO41_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio42", GPIO42_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio43", GPIO43_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio44", GPIO44_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio45", GPIO45_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio46", GPIO46_FLASH_MODE_CFG),
+       AIROHA_PINCTRL_PWM_EXT("gpio47", GPIO47_FLASH_MODE_CFG),
 };
 
 #define AIROHA_PINCTRL_PHY_LED0(gpio, mux_val, map_mask, map_val)      \