summaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-st.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/pinctrl-st.c')
-rw-r--r--drivers/pinctrl/pinctrl-st.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 9e5ec00084bb..5362e45e8cd5 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -460,6 +460,20 @@ static void st_pctl_set_function(struct st_pio_control *pc,
460 regmap_field_write(alt, val); 460 regmap_field_write(alt, val);
461} 461}
462 462
463static unsigned int st_pctl_get_pin_function(struct st_pio_control *pc, int pin)
464{
465 struct regmap_field *alt = pc->alt;
466 unsigned int val;
467 int offset = pin * 4;
468
469 if (!alt)
470 return 0;
471
472 regmap_field_read(alt, &val);
473
474 return (val >> offset) & 0xf;
475}
476
463static unsigned long st_pinconf_delay_to_bit(unsigned int delay, 477static unsigned long st_pinconf_delay_to_bit(unsigned int delay,
464 const struct st_pctl_data *data, unsigned long config) 478 const struct st_pctl_data *data, unsigned long config)
465{ 479{