Commit ea217fef authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Walleij

pinctrl: pxa2xx: Make use of struct pinfunction

Since pin control provides a generic data type for the pin function,
use it in the driver.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Message-ID: <20240311140833.1168742-1-andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 4cece764
...@@ -109,7 +109,7 @@ static const char *pxa2xx_pmx_get_func_name(struct pinctrl_dev *pctldev, ...@@ -109,7 +109,7 @@ static const char *pxa2xx_pmx_get_func_name(struct pinctrl_dev *pctldev,
unsigned function) unsigned function)
{ {
struct pxa_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); struct pxa_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
struct pxa_pinctrl_function *pf = pctl->functions + function; struct pinfunction *pf = pctl->functions + function;
return pf->name; return pf->name;
} }
...@@ -127,7 +127,7 @@ static int pxa2xx_pmx_get_func_groups(struct pinctrl_dev *pctldev, ...@@ -127,7 +127,7 @@ static int pxa2xx_pmx_get_func_groups(struct pinctrl_dev *pctldev,
unsigned * const num_groups) unsigned * const num_groups)
{ {
struct pxa_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev); struct pxa_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
struct pxa_pinctrl_function *pf = pctl->functions + function; struct pinfunction *pf = pctl->functions + function;
*groups = pf->groups; *groups = pf->groups;
*num_groups = pf->ngroups; *num_groups = pf->ngroups;
...@@ -249,11 +249,11 @@ static struct pinctrl_desc pxa2xx_pinctrl_desc = { ...@@ -249,11 +249,11 @@ static struct pinctrl_desc pxa2xx_pinctrl_desc = {
.pmxops = &pxa2xx_pinmux_ops, .pmxops = &pxa2xx_pinmux_ops,
}; };
static const struct pxa_pinctrl_function * static const struct pinfunction *pxa2xx_find_function(struct pxa_pinctrl *pctl,
pxa2xx_find_function(struct pxa_pinctrl *pctl, const char *fname, const char *fname,
const struct pxa_pinctrl_function *functions) const struct pinfunction *functions)
{ {
const struct pxa_pinctrl_function *func; const struct pinfunction *func;
for (func = functions; func->name; func++) for (func = functions; func->name; func++)
if (!strcmp(fname, func->name)) if (!strcmp(fname, func->name))
...@@ -264,8 +264,8 @@ pxa2xx_find_function(struct pxa_pinctrl *pctl, const char *fname, ...@@ -264,8 +264,8 @@ pxa2xx_find_function(struct pxa_pinctrl *pctl, const char *fname,
static int pxa2xx_build_functions(struct pxa_pinctrl *pctl) static int pxa2xx_build_functions(struct pxa_pinctrl *pctl)
{ {
struct pinfunction *functions;
int i; int i;
struct pxa_pinctrl_function *functions;
struct pxa_desc_function *df; struct pxa_desc_function *df;
/* /*
...@@ -296,9 +296,9 @@ static int pxa2xx_build_functions(struct pxa_pinctrl *pctl) ...@@ -296,9 +296,9 @@ static int pxa2xx_build_functions(struct pxa_pinctrl *pctl)
static int pxa2xx_build_groups(struct pxa_pinctrl *pctl) static int pxa2xx_build_groups(struct pxa_pinctrl *pctl)
{ {
int i, j, ngroups; int i, j, ngroups;
struct pxa_pinctrl_function *func;
struct pxa_desc_function *df; struct pxa_desc_function *df;
char **gtmp; struct pinfunction *func;
const char **gtmp;
gtmp = devm_kmalloc_array(pctl->dev, pctl->npins, sizeof(*gtmp), gtmp = devm_kmalloc_array(pctl->dev, pctl->npins, sizeof(*gtmp),
GFP_KERNEL); GFP_KERNEL);
...@@ -316,13 +316,9 @@ static int pxa2xx_build_groups(struct pxa_pinctrl *pctl) ...@@ -316,13 +316,9 @@ static int pxa2xx_build_groups(struct pxa_pinctrl *pctl)
pctl->ppins[j].pin.name; pctl->ppins[j].pin.name;
func = pctl->functions + i; func = pctl->functions + i;
func->ngroups = ngroups; func->ngroups = ngroups;
func->groups = func->groups = devm_kmemdup(pctl->dev, gtmp, ngroups * sizeof(*gtmp), GFP_KERNEL);
devm_kmalloc_array(pctl->dev, ngroups,
sizeof(char *), GFP_KERNEL);
if (!func->groups) if (!func->groups)
return -ENOMEM; return -ENOMEM;
memcpy(func->groups, gtmp, ngroups * sizeof(*gtmp));
} }
devm_kfree(pctl->dev, gtmp); devm_kfree(pctl->dev, gtmp);
......
...@@ -57,12 +57,6 @@ struct pxa_pinctrl_group { ...@@ -57,12 +57,6 @@ struct pxa_pinctrl_group {
unsigned pin; unsigned pin;
}; };
struct pxa_pinctrl_function {
const char *name;
const char **groups;
unsigned ngroups;
};
struct pxa_pinctrl { struct pxa_pinctrl {
spinlock_t lock; spinlock_t lock;
void __iomem **base_gafr; void __iomem **base_gafr;
...@@ -76,7 +70,7 @@ struct pxa_pinctrl { ...@@ -76,7 +70,7 @@ struct pxa_pinctrl {
unsigned ngroups; unsigned ngroups;
struct pxa_pinctrl_group *groups; struct pxa_pinctrl_group *groups;
unsigned nfuncs; unsigned nfuncs;
struct pxa_pinctrl_function *functions; struct pinfunction *functions;
char *name; char *name;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment