pinctrl: baytrail: reuse common functions from pinctrl-intel
authorRaag Jadav <raag.jadav@intel.com>
Mon, 14 Aug 2023 06:03:09 +0000 (11:33 +0530)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 15 Aug 2023 14:33:42 +0000 (17:33 +0300)
Reuse common functions from pinctrl-intel driver.

Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Link: https://lore.kernel.org/r/20230814060311.15945-3-raag.jadav@intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/pinctrl/intel/pinctrl-baytrail.c

index 27aef62..7ce10e1 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/interrupt.h>
 #include <linux/io.h>
 #include <linux/kernel.h>
+#include <linux/module.h>
 #include <linux/types.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
@@ -551,25 +552,10 @@ static const struct intel_pinctrl_soc_data *byt_soc_data[] = {
 
 static DEFINE_RAW_SPINLOCK(byt_lock);
 
-static struct intel_community *byt_get_community(struct intel_pinctrl *vg,
-                                                unsigned int pin)
-{
-       struct intel_community *comm;
-       int i;
-
-       for (i = 0; i < vg->ncommunities; i++) {
-               comm = vg->communities + i;
-               if (pin < comm->pin_base + comm->npins && pin >= comm->pin_base)
-                       return comm;
-       }
-
-       return NULL;
-}
-
 static void __iomem *byt_gpio_reg(struct intel_pinctrl *vg, unsigned int offset,
                                  int reg)
 {
-       struct intel_community *comm = byt_get_community(vg, offset);
+       struct intel_community *comm = intel_get_community(vg, offset);
        u32 reg_offset;
 
        if (!comm)
@@ -591,68 +577,12 @@ static void __iomem *byt_gpio_reg(struct intel_pinctrl *vg, unsigned int offset,
        return comm->pad_regs + reg_offset + reg;
 }
 
-static int byt_get_groups_count(struct pinctrl_dev *pctldev)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       return vg->soc->ngroups;
-}
-
-static const char *byt_get_group_name(struct pinctrl_dev *pctldev,
-                                     unsigned int selector)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       return vg->soc->groups[selector].grp.name;
-}
-
-static int byt_get_group_pins(struct pinctrl_dev *pctldev,
-                             unsigned int selector,
-                             const unsigned int **pins,
-                             unsigned int *num_pins)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       *pins           = vg->soc->groups[selector].grp.pins;
-       *num_pins       = vg->soc->groups[selector].grp.npins;
-
-       return 0;
-}
-
 static const struct pinctrl_ops byt_pinctrl_ops = {
-       .get_groups_count       = byt_get_groups_count,
-       .get_group_name         = byt_get_group_name,
-       .get_group_pins         = byt_get_group_pins,
+       .get_groups_count       = intel_get_groups_count,
+       .get_group_name         = intel_get_group_name,
+       .get_group_pins         = intel_get_group_pins,
 };
 
-static int byt_get_functions_count(struct pinctrl_dev *pctldev)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       return vg->soc->nfunctions;
-}
-
-static const char *byt_get_function_name(struct pinctrl_dev *pctldev,
-                                        unsigned int selector)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       return vg->soc->functions[selector].func.name;
-}
-
-static int byt_get_function_groups(struct pinctrl_dev *pctldev,
-                                  unsigned int selector,
-                                  const char * const **groups,
-                                  unsigned int *ngroups)
-{
-       struct intel_pinctrl *vg = pinctrl_dev_get_drvdata(pctldev);
-
-       *groups         = vg->soc->functions[selector].func.groups;
-       *ngroups        = vg->soc->functions[selector].func.ngroups;
-
-       return 0;
-}
-
 static void byt_set_group_simple_mux(struct intel_pinctrl *vg,
                                     const struct intel_pingroup group,
                                     unsigned int func)
@@ -851,9 +781,9 @@ static int byt_gpio_set_direction(struct pinctrl_dev *pctl_dev,
 }
 
 static const struct pinmux_ops byt_pinmux_ops = {
-       .get_functions_count    = byt_get_functions_count,
-       .get_function_name      = byt_get_function_name,
-       .get_function_groups    = byt_get_function_groups,
+       .get_functions_count    = intel_get_functions_count,
+       .get_function_name      = intel_get_function_name,
+       .get_function_groups    = intel_get_function_groups,
        .set_mux                = byt_set_mux,
        .gpio_request_enable    = byt_gpio_request_enable,
        .gpio_disable_free      = byt_gpio_disable_free,
@@ -1265,7 +1195,7 @@ static void byt_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
                val = readl(val_reg);
                raw_spin_unlock_irqrestore(&byt_lock, flags);
 
-               comm = byt_get_community(vg, pin);
+               comm = intel_get_community(vg, pin);
                if (!comm) {
                        seq_printf(s, "Pin %i: can't retrieve community\n", pin);
                        continue;
@@ -1852,3 +1782,5 @@ static int __init byt_gpio_init(void)
        return platform_driver_register(&byt_gpio_driver);
 }
 subsys_initcall(byt_gpio_init);
+
+MODULE_IMPORT_NS(PINCTRL_INTEL);