]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: berlin: Make use of struct pinfunction
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 30 May 2024 08:55:10 +0000 (11:55 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 17 Jun 2024 07:23:34 +0000 (09:23 +0200)
Since pin control provides a generic data type for the pin function,
use it in the driver.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20240530085745.1539925-2-andy.shevchenko@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/berlin/berlin.c
drivers/pinctrl/berlin/berlin.h

index 9550cc8095c28720defe729acdf3a0fe29b6d848..c372a2a24be4bb80b1f2475ef8512171c8e1326f 100644 (file)
@@ -27,7 +27,7 @@ struct berlin_pinctrl {
        struct regmap *regmap;
        struct device *dev;
        const struct berlin_pinctrl_desc *desc;
-       struct berlin_pinctrl_function *functions;
+       struct pinfunction *functions;
        unsigned nfunctions;
        struct pinctrl_dev *pctrl_dev;
 };
@@ -120,12 +120,12 @@ static const char *berlin_pinmux_get_function_name(struct pinctrl_dev *pctrl_dev
 static int berlin_pinmux_get_function_groups(struct pinctrl_dev *pctrl_dev,
                                             unsigned function,
                                             const char * const **groups,
-                                            unsigned * const num_groups)
+                                            unsigned * const ngroups)
 {
        struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
 
        *groups = pctrl->functions[function].groups;
-       *num_groups = pctrl->functions[function].ngroups;
+       *ngroups = pctrl->functions[function].ngroups;
 
        return 0;
 }
@@ -153,7 +153,7 @@ static int berlin_pinmux_set(struct pinctrl_dev *pctrl_dev,
 {
        struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
        const struct berlin_desc_group *group_desc = pctrl->desc->groups + group;
-       struct berlin_pinctrl_function *func = pctrl->functions + function;
+       struct pinfunction *func = pctrl->functions + function;
        struct berlin_desc_function *function_desc =
                berlin_pinctrl_find_function_by_name(pctrl, group_desc,
                                                     func->name);
@@ -180,7 +180,7 @@ static const struct pinmux_ops berlin_pinmux_ops = {
 static int berlin_pinctrl_add_function(struct berlin_pinctrl *pctrl,
                                       const char *name)
 {
-       struct berlin_pinctrl_function *function = pctrl->functions;
+       struct pinfunction *function = pctrl->functions;
 
        while (function->name) {
                if (!strcmp(function->name, name)) {
@@ -214,8 +214,7 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
        }
 
        /* we will reallocate later */
-       pctrl->functions = kcalloc(max_functions,
-                                  sizeof(*pctrl->functions), GFP_KERNEL);
+       pctrl->functions = kcalloc(max_functions, sizeof(*pctrl->functions), GFP_KERNEL);
        if (!pctrl->functions)
                return -ENOMEM;
 
@@ -242,8 +241,7 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
                desc_function = desc_group->functions;
 
                while (desc_function->name) {
-                       struct berlin_pinctrl_function
-                               *function = pctrl->functions;
+                       struct pinfunction *function = pctrl->functions;
                        const char **groups;
                        bool found = false;
 
@@ -264,16 +262,15 @@ static int berlin_pinctrl_build_state(struct platform_device *pdev)
                                function->groups =
                                        devm_kcalloc(&pdev->dev,
                                                     function->ngroups,
-                                                    sizeof(char *),
+                                                    sizeof(*function->groups),
                                                     GFP_KERNEL);
-
                                if (!function->groups) {
                                        kfree(pctrl->functions);
                                        return -ENOMEM;
                                }
                        }
 
-                       groups = function->groups;
+                       groups = (const char **)function->groups;
                        while (*groups)
                                groups++;
 
index d7787754d1edf8642b37ef9eed9f8a41264fb7f5..231aab61d4156ed248aa9f053e493ab4d3169581 100644 (file)
@@ -28,12 +28,6 @@ struct berlin_pinctrl_desc {
        unsigned                        ngroups;
 };
 
-struct berlin_pinctrl_function {
-       const char      *name;
-       const char      **groups;
-       unsigned        ngroups;
-};
-
 #define BERLIN_PINCTRL_GROUP(_name, _offset, _width, _lsb, ...)                \
        {                                                               \
                .name = _name,                                          \