diff options
| -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 | { |
