Commit caa5bac3 authored by Laurent Pinchart's avatar Laurent Pinchart

sh-pfc: Replace SoC info data and mark ranges with a number of pins

The data and mark ranges are only used to check whether a GPIO
corresponds to a real pin or a function. As pins come first in the list
of GPIOs and in the platform-specific GPIO enumerations, we can replace
the data and mark ranges by a number of pins.

Add an nr_pins field to struct sh_pfc_soc_info to store the number of
pins implemented by the SoC, remove the data and mark range fields and
introduce sh_pfc_gpio_is_pin() and sh_pfc_gpio_is_function() functions
to replace range-based checks.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent d7a7ca57
...@@ -89,6 +89,18 @@ static int sh_pfc_enum_in_range(pinmux_enum_t enum_id, struct pinmux_range *r) ...@@ -89,6 +89,18 @@ static int sh_pfc_enum_in_range(pinmux_enum_t enum_id, struct pinmux_range *r)
return 1; return 1;
} }
static bool sh_pfc_gpio_is_pin(struct sh_pfc *pfc, unsigned int gpio)
{
return (gpio < pfc->info->nr_pins) &&
(pfc->info->gpios[gpio].enum_id != 0);
}
static bool sh_pfc_gpio_is_function(struct sh_pfc *pfc, unsigned int gpio)
{
return (gpio >= pfc->info->nr_pins) && (gpio < pfc->info->nr_gpios) &&
(pfc->info->gpios[gpio].enum_id != 0);
}
static unsigned long sh_pfc_read_raw_reg(void __iomem *mapped_reg, static unsigned long sh_pfc_read_raw_reg(void __iomem *mapped_reg,
unsigned long reg_width) unsigned long reg_width)
{ {
...@@ -226,7 +238,7 @@ static int sh_pfc_setup_data_reg(struct sh_pfc *pfc, unsigned gpio) ...@@ -226,7 +238,7 @@ static int sh_pfc_setup_data_reg(struct sh_pfc *pfc, unsigned gpio)
struct pinmux_data_reg *data_reg; struct pinmux_data_reg *data_reg;
int k, n; int k, n;
if (!sh_pfc_enum_in_range(gpiop->enum_id, &pfc->info->data)) if (!sh_pfc_gpio_is_pin(pfc, gpio))
return -1; return -1;
k = 0; k = 0;
...@@ -260,7 +272,7 @@ static void sh_pfc_setup_data_regs(struct sh_pfc *pfc) ...@@ -260,7 +272,7 @@ static void sh_pfc_setup_data_regs(struct sh_pfc *pfc)
struct pinmux_data_reg *drp; struct pinmux_data_reg *drp;
int k; int k;
for (k = 0; k < pfc->info->nr_gpios; k++) for (k = 0; k < pfc->info->nr_pins; k++)
sh_pfc_setup_data_reg(pfc, k); sh_pfc_setup_data_reg(pfc, k);
k = 0; k = 0;
...@@ -282,7 +294,7 @@ int sh_pfc_get_data_reg(struct sh_pfc *pfc, unsigned gpio, ...@@ -282,7 +294,7 @@ int sh_pfc_get_data_reg(struct sh_pfc *pfc, unsigned gpio,
struct pinmux_gpio *gpiop = &pfc->info->gpios[gpio]; struct pinmux_gpio *gpiop = &pfc->info->gpios[gpio];
int k, n; int k, n;
if (!sh_pfc_enum_in_range(gpiop->enum_id, &pfc->info->data)) if (!sh_pfc_gpio_is_pin(pfc, gpio))
return -1; return -1;
k = (gpiop->flags & PINMUX_FLAG_DREG) >> PINMUX_FLAG_DREG_SHIFT; k = (gpiop->flags & PINMUX_FLAG_DREG) >> PINMUX_FLAG_DREG_SHIFT;
...@@ -344,11 +356,10 @@ int sh_pfc_gpio_to_enum(struct sh_pfc *pfc, unsigned gpio, int pos, ...@@ -344,11 +356,10 @@ int sh_pfc_gpio_to_enum(struct sh_pfc *pfc, unsigned gpio, int pos,
pinmux_enum_t *data = pfc->info->gpio_data; pinmux_enum_t *data = pfc->info->gpio_data;
int k; int k;
if (!sh_pfc_enum_in_range(enum_id, &pfc->info->data)) { if (!sh_pfc_gpio_is_pin(pfc, gpio) &&
if (!sh_pfc_enum_in_range(enum_id, &pfc->info->mark)) { !sh_pfc_gpio_is_function(pfc, gpio)) {
pr_err("non data/mark enum_id for gpio %d\n", gpio); pr_err("non data/mark enum_id for gpio %d\n", gpio);
return -1; return -1;
}
} }
if (pos) { if (pos) {
......
...@@ -2582,8 +2582,6 @@ static struct pinmux_irq pinmux_irqs[] = { ...@@ -2582,8 +2582,6 @@ static struct pinmux_irq pinmux_irqs[] = {
struct sh_pfc_soc_info r8a7740_pinmux_info = { struct sh_pfc_soc_info r8a7740_pinmux_info = {
.name = "r8a7740_pfc", .name = "r8a7740_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN,
PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, .input = { PINMUX_INPUT_BEGIN,
PINMUX_INPUT_END }, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN,
...@@ -2592,12 +2590,11 @@ struct sh_pfc_soc_info r8a7740_pinmux_info = { ...@@ -2592,12 +2590,11 @@ struct sh_pfc_soc_info r8a7740_pinmux_info = {
PINMUX_INPUT_PULLDOWN_END }, PINMUX_INPUT_PULLDOWN_END },
.output = { PINMUX_OUTPUT_BEGIN, .output = { PINMUX_OUTPUT_BEGIN,
PINMUX_OUTPUT_END }, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN,
PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, .function = { PINMUX_FUNCTION_BEGIN,
PINMUX_FUNCTION_END }, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PORT211 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2606,13 +2606,12 @@ struct sh_pfc_soc_info r8a7779_pinmux_info = { ...@@ -2606,13 +2606,12 @@ struct sh_pfc_soc_info r8a7779_pinmux_info = {
.unlock_reg = 0xfffc0000, /* PMMR */ .unlock_reg = 0xfffc0000, /* PMMR */
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_GP_6_8 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1574,13 +1574,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -1574,13 +1574,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7203_pinmux_info = { struct sh_pfc_soc_info sh7203_pinmux_info = {
.name = "sh7203_pfc", .name = "sh7203_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PF0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2113,13 +2113,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -2113,13 +2113,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7264_pinmux_info = { struct sh_pfc_soc_info sh7264_pinmux_info = {
.name = "sh7264_pfc", .name = "sh7264_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PK0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2816,13 +2816,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -2816,13 +2816,12 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7269_pinmux_info = { struct sh_pfc_soc_info sh7269_pinmux_info = {
.name = "sh7269_pfc", .name = "sh7269_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END, FORCE_IN },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END, FORCE_OUT },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PJ0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1635,15 +1635,14 @@ static struct pinmux_irq pinmux_irqs[] = { ...@@ -1635,15 +1635,14 @@ static struct pinmux_irq pinmux_irqs[] = {
struct sh_pfc_soc_info sh7372_pinmux_info = { struct sh_pfc_soc_info sh7372_pinmux_info = {
.name = "sh7372_pfc", .name = "sh7372_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END }, .input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PORT190 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2771,15 +2771,14 @@ static struct pinmux_irq pinmux_irqs[] = { ...@@ -2771,15 +2771,14 @@ static struct pinmux_irq pinmux_irqs[] = {
struct sh_pfc_soc_info sh73a0_pinmux_info = { struct sh_pfc_soc_info sh73a0_pinmux_info = {
.name = "sh73a0_pfc", .name = "sh73a0_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END }, .input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PORT309 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1216,14 +1216,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -1216,14 +1216,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7720_pinmux_info = { struct sh_pfc_soc_info sh7720_pinmux_info = {
.name = "sh7720_pfc", .name = "sh7720_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PTV0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1759,15 +1759,14 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -1759,15 +1759,14 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7722_pinmux_info = { struct sh_pfc_soc_info sh7722_pinmux_info = {
.name = "sh7722_pfc", .name = "sh7722_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END }, .input_pd = { PINMUX_INPUT_PULLDOWN_BEGIN, PINMUX_INPUT_PULLDOWN_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PTZ1 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1884,14 +1884,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -1884,14 +1884,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7723_pinmux_info = { struct sh_pfc_soc_info sh7723_pinmux_info = {
.name = "sh7723_pfc", .name = "sh7723_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PTZ0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2206,14 +2206,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -2206,14 +2206,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7724_pinmux_info = { struct sh_pfc_soc_info sh7724_pinmux_info = {
.name = "sh7724_pfc", .name = "sh7724_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PTZ0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2457,13 +2457,12 @@ struct sh_pfc_soc_info sh7734_pinmux_info = { ...@@ -2457,13 +2457,12 @@ struct sh_pfc_soc_info sh7734_pinmux_info = {
.unlock_reg = 0xFFFC0000, .unlock_reg = 0xFFFC0000,
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_GP_5_11 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -2263,14 +2263,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -2263,14 +2263,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7757_pinmux_info = { struct sh_pfc_soc_info sh7757_pinmux_info = {
.name = "sh7757_pfc", .name = "sh7757_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PTZ7 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -1285,14 +1285,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -1285,14 +1285,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7785_pinmux_info = { struct sh_pfc_soc_info sh7785_pinmux_info = {
.name = "sh7785_pfc", .name = "sh7785_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PR0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -818,14 +818,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = { ...@@ -818,14 +818,13 @@ static struct pinmux_data_reg pinmux_data_regs[] = {
struct sh_pfc_soc_info sh7786_pinmux_info = { struct sh_pfc_soc_info sh7786_pinmux_info = {
.name = "sh7786_pfc", .name = "sh7786_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END }, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = pinmux_gpios, .gpios = pinmux_gpios,
.nr_pins = GPIO_PJ0 + 1,
.nr_gpios = ARRAY_SIZE(pinmux_gpios), .nr_gpios = ARRAY_SIZE(pinmux_gpios),
.cfg_regs = pinmux_config_regs, .cfg_regs = pinmux_config_regs,
......
...@@ -565,14 +565,13 @@ static struct pinmux_data_reg shx3_pinmux_data_regs[] = { ...@@ -565,14 +565,13 @@ static struct pinmux_data_reg shx3_pinmux_data_regs[] = {
struct sh_pfc_soc_info shx3_pinmux_info = { struct sh_pfc_soc_info shx3_pinmux_info = {
.name = "shx3_pfc", .name = "shx3_pfc",
.reserved_id = PINMUX_RESERVED, .reserved_id = PINMUX_RESERVED,
.data = { PINMUX_DATA_BEGIN, PINMUX_DATA_END },
.input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END }, .input = { PINMUX_INPUT_BEGIN, PINMUX_INPUT_END },
.input_pu = { PINMUX_INPUT_PULLUP_BEGIN, .input_pu = { PINMUX_INPUT_PULLUP_BEGIN,
PINMUX_INPUT_PULLUP_END }, PINMUX_INPUT_PULLUP_END },
.output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END }, .output = { PINMUX_OUTPUT_BEGIN, PINMUX_OUTPUT_END },
.mark = { PINMUX_MARK_BEGIN, PINMUX_MARK_END },
.function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END }, .function = { PINMUX_FUNCTION_BEGIN, PINMUX_FUNCTION_END },
.gpios = shx3_pinmux_gpios, .gpios = shx3_pinmux_gpios,
.nr_pins = GPIO_PH0 + 1,
.nr_gpios = ARRAY_SIZE(shx3_pinmux_gpios), .nr_gpios = ARRAY_SIZE(shx3_pinmux_gpios),
.gpio_data = shx3_pinmux_data, .gpio_data = shx3_pinmux_data,
.gpio_data_size = ARRAY_SIZE(shx3_pinmux_data), .gpio_data_size = ARRAY_SIZE(shx3_pinmux_data),
......
...@@ -91,15 +91,14 @@ struct pinmux_range { ...@@ -91,15 +91,14 @@ struct pinmux_range {
struct sh_pfc_soc_info { struct sh_pfc_soc_info {
char *name; char *name;
pinmux_enum_t reserved_id; pinmux_enum_t reserved_id;
struct pinmux_range data;
struct pinmux_range input; struct pinmux_range input;
struct pinmux_range input_pd; struct pinmux_range input_pd;
struct pinmux_range input_pu; struct pinmux_range input_pu;
struct pinmux_range output; struct pinmux_range output;
struct pinmux_range mark;
struct pinmux_range function; struct pinmux_range function;
struct pinmux_gpio *gpios; struct pinmux_gpio *gpios;
unsigned int nr_pins;
unsigned int nr_gpios; unsigned int nr_gpios;
struct pinmux_cfg_reg *cfg_regs; struct pinmux_cfg_reg *cfg_regs;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment