diff options
Diffstat (limited to 'drivers/pinctrl/pinctrl-st.c')
-rw-r--r-- | drivers/pinctrl/pinctrl-st.c | 14 |
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 | ||
463 | static 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 | |||
463 | static unsigned long st_pinconf_delay_to_bit(unsigned int delay, | 477 | static 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 | { |