Hi Uli, On Mon, Dec 21, 2020 at 5:55 PM Ulrich Hecht <uli+renesas@xxxxxxxx> wrote: > This patch adds config macros describing the voltage levels available on > a pin. The current default (3.3V/1.8V) maps to zero to avoid having to > change existing PFC implementations. > > Signed-off-by: Ulrich Hecht <uli+renesas@xxxxxxxx> > --- a/drivers/pinctrl/renesas/pinctrl.c > +++ b/drivers/pinctrl/renesas/pinctrl.c > @@ -634,6 +634,9 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, > } > > case PIN_CONFIG_POWER_SOURCE: { > + int idx = sh_pfc_get_pin_index(pfc, _pin); > + const struct sh_pfc_pin *pin = &pfc->info->pins[idx]; > + int lower_voltage; > u32 pocctrl, val; > int bit; > > @@ -648,7 +651,10 @@ static int sh_pfc_pinconf_get(struct pinctrl_dev *pctldev, unsigned _pin, > val = sh_pfc_read(pfc, pocctrl); > spin_unlock_irqrestore(&pfc->lock, flags); > > - arg = (val & BIT(bit)) ? 3300 : 1800; > + lower_voltage = (pin->configs & SH_PFC_PIN_VOLTAGE_25_33) ? > + 2500 : 1800; > + > + arg = (val & BIT(bit)) ? 3300 : lower_voltage; Alternatively, .pin_to_pocctrl() could return mV_low and mV_high? That would require updating all subdrivers, though. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds