pinctrl: pxa2xx: Make use of struct pinfunction
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 11 Mar 2024 14:08:33 +0000 (16:08 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 28 Mar 2024 08:43:28 +0000 (09:43 +0100)
Since pin control provides a generic data type for the pin function,
use it in the driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Message-ID: <20240311140833.1168742-1-andriy.shevchenko@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pxa/pinctrl-pxa2xx.c
drivers/pinctrl/pxa/pinctrl-pxa2xx.h

index d2568dab8c7827ef26ef8d8768c841b5cb339bdf..f24bf49fa82bca887191739453663c792aafa0ec 100644 (file)
@@ -109,7 +109,7 @@ static const char *pxa2xx_pmx_get_func_name(struct pinctrl_dev *pctldev,
                                            unsigned function)
 {
        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;
 }
@@ -127,7 +127,7 @@ static int pxa2xx_pmx_get_func_groups(struct pinctrl_dev *pctldev,
                                      unsigned * const num_groups)
 {
        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;
        *num_groups = pf->ngroups;
@@ -249,11 +249,11 @@ static struct pinctrl_desc pxa2xx_pinctrl_desc = {
        .pmxops         = &pxa2xx_pinmux_ops,
 };
 
-static const struct pxa_pinctrl_function *
-pxa2xx_find_function(struct pxa_pinctrl *pctl, const char *fname,
-                    const struct pxa_pinctrl_function *functions)
+static const struct pinfunction *pxa2xx_find_function(struct pxa_pinctrl *pctl,
+                                                     const char *fname,
+                                                     const struct pinfunction *functions)
 {
-       const struct pxa_pinctrl_function *func;
+       const struct pinfunction *func;
 
        for (func = functions; func->name; func++)
                if (!strcmp(fname, func->name))
@@ -264,8 +264,8 @@ pxa2xx_find_function(struct pxa_pinctrl *pctl, const char *fname,
 
 static int pxa2xx_build_functions(struct pxa_pinctrl *pctl)
 {
+       struct pinfunction *functions;
        int i;
-       struct pxa_pinctrl_function *functions;
        struct pxa_desc_function *df;
 
        /*
@@ -296,9 +296,9 @@ static int pxa2xx_build_functions(struct pxa_pinctrl *pctl)
 static int pxa2xx_build_groups(struct pxa_pinctrl *pctl)
 {
        int i, j, ngroups;
-       struct pxa_pinctrl_function *func;
        struct pxa_desc_function *df;
-       char **gtmp;
+       struct pinfunction *func;
+       const char **gtmp;
 
        gtmp = devm_kmalloc_array(pctl->dev, pctl->npins, sizeof(*gtmp),
                                  GFP_KERNEL);
@@ -316,13 +316,9 @@ static int pxa2xx_build_groups(struct pxa_pinctrl *pctl)
                                                pctl->ppins[j].pin.name;
                func = pctl->functions + i;
                func->ngroups = ngroups;
-               func->groups =
-                       devm_kmalloc_array(pctl->dev, ngroups,
-                                          sizeof(char *), GFP_KERNEL);
+               func->groups = devm_kmemdup(pctl->dev, gtmp, ngroups * sizeof(*gtmp), GFP_KERNEL);
                if (!func->groups)
                        return -ENOMEM;
-
-               memcpy(func->groups, gtmp, ngroups * sizeof(*gtmp));
        }
 
        devm_kfree(pctl->dev, gtmp);
index d86d47dbbc947a793c23bb1212de37b116b211be..a0bdcec5515859e80ec96a21d26494488ad87ffe 100644 (file)
@@ -57,12 +57,6 @@ struct pxa_pinctrl_group {
        unsigned        pin;
 };
 
-struct pxa_pinctrl_function {
-       const char      *name;
-       const char      **groups;
-       unsigned        ngroups;
-};
-
 struct pxa_pinctrl {
        spinlock_t                      lock;
        void __iomem                    **base_gafr;
@@ -76,7 +70,7 @@ struct pxa_pinctrl {
        unsigned                        ngroups;
        struct pxa_pinctrl_group        *groups;
        unsigned                        nfuncs;
-       struct pxa_pinctrl_function     *functions;
+       struct pinfunction              *functions;
        char                            *name;
 };