Message ID | 20210303132619.3938128-2-geert+renesas@glider.be |
---|---|
State | New |
Headers | show |
Series | pinctrl: renesas: Bias improvements and r8a7791 support | expand |
Hi Geert, Thanks for your work. On 2021-03-03 14:26:14 +0100, Geert Uytterhoeven wrote: > Now all R-Car pin control drivers have been converted to the common > R-Car bias handling, sh_pfc_pin_to_bias_reg() is only called from a > single place. Move it from core.c to pinctrl.c, make it static, and > rename it to rcar_pin_to_bias_reg(), as it is specific to R-Car SoCs. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > --- > drivers/pinctrl/renesas/core.c | 20 -------------------- > drivers/pinctrl/renesas/core.h | 4 ---- > drivers/pinctrl/renesas/pinctrl.c | 24 ++++++++++++++++++++++-- > 3 files changed, 22 insertions(+), 26 deletions(-) > > diff --git a/drivers/pinctrl/renesas/core.c b/drivers/pinctrl/renesas/core.c > index 2bfd3006f6fda445..5ccc49b387f17eb9 100644 > --- a/drivers/pinctrl/renesas/core.c > +++ b/drivers/pinctrl/renesas/core.c > @@ -394,26 +394,6 @@ int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type) > return 0; > } > > -const struct pinmux_bias_reg * > -sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, > - unsigned int *bit) > -{ > - unsigned int i, j; > - > - for (i = 0; pfc->info->bias_regs[i].puen; i++) { > - for (j = 0; j < ARRAY_SIZE(pfc->info->bias_regs[i].pins); j++) { > - if (pfc->info->bias_regs[i].pins[j] == pin) { > - *bit = j; > - return &pfc->info->bias_regs[i]; > - } > - } > - } > - > - WARN_ONCE(1, "Pin %u is not in bias info list\n", pin); > - > - return NULL; > -} > - > static int sh_pfc_init_ranges(struct sh_pfc *pfc) > { > struct sh_pfc_pin_range *range; > diff --git a/drivers/pinctrl/renesas/core.h b/drivers/pinctrl/renesas/core.h > index 5ca7e0830ae9de38..19f7b4308fac7a8f 100644 > --- a/drivers/pinctrl/renesas/core.h > +++ b/drivers/pinctrl/renesas/core.h > @@ -29,10 +29,6 @@ void sh_pfc_write(struct sh_pfc *pfc, u32 reg, u32 data); > int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin); > int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); > > -const struct pinmux_bias_reg * > -sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, > - unsigned int *bit); > - > unsigned int rcar_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin); > void rcar_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, > unsigned int bias); > diff --git a/drivers/pinctrl/renesas/pinctrl.c b/drivers/pinctrl/renesas/pinctrl.c > index a49f74730272312e..963d217b940372b9 100644 > --- a/drivers/pinctrl/renesas/pinctrl.c > +++ b/drivers/pinctrl/renesas/pinctrl.c > @@ -840,12 +840,32 @@ int sh_pfc_register_pinctrl(struct sh_pfc *pfc) > return pinctrl_enable(pmx->pctl); > } > > +static const struct pinmux_bias_reg * > +rcar_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, > + unsigned int *bit) > +{ > + unsigned int i, j; > + > + for (i = 0; pfc->info->bias_regs[i].puen; i++) { > + for (j = 0; j < ARRAY_SIZE(pfc->info->bias_regs[i].pins); j++) { > + if (pfc->info->bias_regs[i].pins[j] == pin) { > + *bit = j; > + return &pfc->info->bias_regs[i]; > + } > + } > + } > + > + WARN_ONCE(1, "Pin %u is not in bias info list\n", pin); > + > + return NULL; > +} > + > unsigned int rcar_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin) > { > const struct pinmux_bias_reg *reg; > unsigned int bit; > > - reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit); > + reg = rcar_pin_to_bias_reg(pfc, pin, &bit); > if (!reg) > return PIN_CONFIG_BIAS_DISABLE; > > @@ -864,7 +884,7 @@ void rcar_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, > u32 enable, updown; > unsigned int bit; > > - reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit); > + reg = rcar_pin_to_bias_reg(pfc, pin, &bit); > if (!reg) > return; > > -- > 2.25.1 >
diff --git a/drivers/pinctrl/renesas/core.c b/drivers/pinctrl/renesas/core.c index 2bfd3006f6fda445..5ccc49b387f17eb9 100644 --- a/drivers/pinctrl/renesas/core.c +++ b/drivers/pinctrl/renesas/core.c @@ -394,26 +394,6 @@ int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type) return 0; } -const struct pinmux_bias_reg * -sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, - unsigned int *bit) -{ - unsigned int i, j; - - for (i = 0; pfc->info->bias_regs[i].puen; i++) { - for (j = 0; j < ARRAY_SIZE(pfc->info->bias_regs[i].pins); j++) { - if (pfc->info->bias_regs[i].pins[j] == pin) { - *bit = j; - return &pfc->info->bias_regs[i]; - } - } - } - - WARN_ONCE(1, "Pin %u is not in bias info list\n", pin); - - return NULL; -} - static int sh_pfc_init_ranges(struct sh_pfc *pfc) { struct sh_pfc_pin_range *range; diff --git a/drivers/pinctrl/renesas/core.h b/drivers/pinctrl/renesas/core.h index 5ca7e0830ae9de38..19f7b4308fac7a8f 100644 --- a/drivers/pinctrl/renesas/core.h +++ b/drivers/pinctrl/renesas/core.h @@ -29,10 +29,6 @@ void sh_pfc_write(struct sh_pfc *pfc, u32 reg, u32 data); int sh_pfc_get_pin_index(struct sh_pfc *pfc, unsigned int pin); int sh_pfc_config_mux(struct sh_pfc *pfc, unsigned mark, int pinmux_type); -const struct pinmux_bias_reg * -sh_pfc_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, - unsigned int *bit); - unsigned int rcar_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin); void rcar_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, unsigned int bias); diff --git a/drivers/pinctrl/renesas/pinctrl.c b/drivers/pinctrl/renesas/pinctrl.c index a49f74730272312e..963d217b940372b9 100644 --- a/drivers/pinctrl/renesas/pinctrl.c +++ b/drivers/pinctrl/renesas/pinctrl.c @@ -840,12 +840,32 @@ int sh_pfc_register_pinctrl(struct sh_pfc *pfc) return pinctrl_enable(pmx->pctl); } +static const struct pinmux_bias_reg * +rcar_pin_to_bias_reg(const struct sh_pfc *pfc, unsigned int pin, + unsigned int *bit) +{ + unsigned int i, j; + + for (i = 0; pfc->info->bias_regs[i].puen; i++) { + for (j = 0; j < ARRAY_SIZE(pfc->info->bias_regs[i].pins); j++) { + if (pfc->info->bias_regs[i].pins[j] == pin) { + *bit = j; + return &pfc->info->bias_regs[i]; + } + } + } + + WARN_ONCE(1, "Pin %u is not in bias info list\n", pin); + + return NULL; +} + unsigned int rcar_pinmux_get_bias(struct sh_pfc *pfc, unsigned int pin) { const struct pinmux_bias_reg *reg; unsigned int bit; - reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit); + reg = rcar_pin_to_bias_reg(pfc, pin, &bit); if (!reg) return PIN_CONFIG_BIAS_DISABLE; @@ -864,7 +884,7 @@ void rcar_pinmux_set_bias(struct sh_pfc *pfc, unsigned int pin, u32 enable, updown; unsigned int bit; - reg = sh_pfc_pin_to_bias_reg(pfc, pin, &bit); + reg = rcar_pin_to_bias_reg(pfc, pin, &bit); if (!reg) return;
Now all R-Car pin control drivers have been converted to the common R-Car bias handling, sh_pfc_pin_to_bias_reg() is only called from a single place. Move it from core.c to pinctrl.c, make it static, and rename it to rcar_pin_to_bias_reg(), as it is specific to R-Car SoCs. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- drivers/pinctrl/renesas/core.c | 20 -------------------- drivers/pinctrl/renesas/core.h | 4 ---- drivers/pinctrl/renesas/pinctrl.c | 24 ++++++++++++++++++++++-- 3 files changed, 22 insertions(+), 26 deletions(-)