pinctrl: airoha: replace struct function_desc with struct pinfunction
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 2 Sep 2025 11:59:13 +0000 (13:59 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 8 Sep 2025 12:21:40 +0000 (14:21 +0200)
struct function_desc is a wrapper around struct pinfunction with an
additional void *data pointer. This driver doesn't use the data pointer.
We're also working towards reducing the usage of struct function_desc in
pinctrl drivers - they should only be created by pinmux core and
accessed by drivers using pinmux_generic_get_function(). Replace the
struct function_desc objects in this driver with smaller struct
pinfunction instances.

Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mediatek/pinctrl-airoha.c

index 5f1ec9e..eb6cd27 100644 (file)
 
 #define PINCTRL_FUNC_DESC(id)                                          \
        {                                                               \
-               .desc = {                                               \
-                       .func = {                                       \
-                               .name = #id,                            \
-                               .groups = id##_groups,                  \
-                               .ngroups = ARRAY_SIZE(id##_groups),     \
-                       }                                               \
-               },                                                      \
+               .desc = PINCTRL_PINFUNCTION(#id, id##_groups,           \
+                                           ARRAY_SIZE(id##_groups)),   \
                .groups = id##_func_group,                              \
                .group_size = ARRAY_SIZE(id##_func_group),              \
        }
@@ -334,7 +329,7 @@ struct airoha_pinctrl_func_group {
 };
 
 struct airoha_pinctrl_func {
-       const struct function_desc desc;
+       const struct pinfunction desc;
        const struct airoha_pinctrl_func_group *groups;
        u8 group_size;
 };
@@ -2908,11 +2903,11 @@ static int airoha_pinctrl_probe(struct platform_device *pdev)
 
                func = &airoha_pinctrl_funcs[i];
                err = pinmux_generic_add_pinfunction(pinctrl->ctrl,
-                                                    &func->desc.func,
+                                                    &func->desc,
                                                     (void *)func);
                if (err < 0) {
                        dev_err(dev, "Failed to register function %s\n",
-                               func->desc.func.name);
+                               func->desc.name);
                        return err;
                }
        }