pinctrl: aw9523: Make use of struct pinfunction and PINCTRL_PINFUNCTION()

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>
This commit is contained in:
Andy Shevchenko 2024-03-29 12:55:18 +02:00 committed by Linus Walleij
parent 091655b928
commit 418ee9488f

View 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;
}