pinctrl: aw9523: Make use of struct pinfunction and PINCTRL_PINFUNCTION()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 29 Mar 2024 10:55:18 +0000 (12:55 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 4 Apr 2024 11:16:46 +0000 (13:16 +0200)
Since pin control provides a generic data type and a macro for
the pin function definition, use them in the driver.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Message-ID: <20240329105634.712457-5-andy.shevchenko@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-aw9523.c

index d93640a02d1d3ff12e35cb759175c99523f6fe22..7db901216a94ce016d2fcd38be1c4ee227e353f5 100644 (file)
@@ -66,18 +66,6 @@ struct aw9523_irq {
        u16 cached_gpio;
 };
 
-/*
- * struct aw9523_pinmux - Pin mux params
- * @name: Name of the mux
- * @grps: Groups of the mux
- * @num_grps: Number of groups (sizeof array grps)
- */
-struct aw9523_pinmux {
-       const char *name;
-       const char * const *grps;
-       const u8 num_grps;
-};
-
 /*
  * struct aw9523 - Main driver structure
  * @dev: device handle
@@ -158,17 +146,9 @@ static const char * const gpio_pwm_groups[] = {
 };
 
 /* Warning: Do NOT reorder this array */
-static const struct aw9523_pinmux aw9523_pmx[] = {
-       {
-               .name = "pwm",
-               .grps = gpio_pwm_groups,
-               .num_grps = ARRAY_SIZE(gpio_pwm_groups),
-       },
-       {
-               .name = "gpio",
-               .grps = gpio_pwm_groups,
-               .num_grps = ARRAY_SIZE(gpio_pwm_groups),
-       },
+static const struct pinfunction aw9523_pmx[] = {
+       PINCTRL_PINFUNCTION("pwm", gpio_pwm_groups, ARRAY_SIZE(gpio_pwm_groups)),
+       PINCTRL_PINFUNCTION("gpio", gpio_pwm_groups, ARRAY_SIZE(gpio_pwm_groups)),
 };
 
 static int aw9523_pmx_get_funcs_count(struct pinctrl_dev *pctl)
@@ -184,10 +164,10 @@ static const char *aw9523_pmx_get_fname(struct pinctrl_dev *pctl,
 
 static int aw9523_pmx_get_groups(struct pinctrl_dev *pctl, unsigned int sel,
                                 const char * const **groups,
-                                unsigned int * const num_groups)
+                                unsigned int * const ngroups)
 {
-       *groups = aw9523_pmx[sel].grps;
-       *num_groups = aw9523_pmx[sel].num_grps;
+       *groups = aw9523_pmx[sel].groups;
+       *ngroups = aw9523_pmx[sel].ngroups;
        return 0;
 }