mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
pinctrl: baytrail: reuse common functions from pinctrl-intel
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>
This commit is contained in:
parent
25018ace79
commit
4d01688fdf
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user