drivers/pinctrl: stm32: Allow plain GPIO configuration
Based on introduction of plain GPIO configurations in STM32 pinctrl bindings, update STM32 pinctrl/gpio drivers to make this functionality available. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
79ba037891
commit
48039bc555
5 changed files with 65 additions and 17 deletions
|
@ -224,6 +224,8 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt,
|
|||
} else {
|
||||
pin_cgf = pin_cgf | STM32_CNF_IN_PUPD;
|
||||
}
|
||||
} else if (STM32_DT_PINMUX_FUNC(mux) == GPIO_OUT) {
|
||||
pin_cgf = pins[i].pincfg | STM32_MODE_OUTPUT | STM32_CNF_GP_OUTPUT;
|
||||
} else {
|
||||
/* Not supported */
|
||||
__ASSERT_NO_MSG(STM32_DT_PINMUX_FUNC(mux));
|
||||
|
@ -233,6 +235,14 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt,
|
|||
pin_cgf = pins[i].pincfg | STM32_MODER_ALT_MODE;
|
||||
} else if (STM32_DT_PINMUX_FUNC(mux) == STM32_ANALOG) {
|
||||
pin_cgf = STM32_MODER_ANALOG_MODE;
|
||||
} else if (STM32_DT_PINMUX_FUNC(mux) == STM32_GPIO) {
|
||||
uint32_t gpio_out = pins[i].pincfg &
|
||||
(STM32_ODR_MASK << STM32_ODR_SHIFT);
|
||||
if (gpio_out != 0) {
|
||||
pin_cgf = pins[i].pincfg | STM32_MODER_OUTPUT_MODE;
|
||||
} else {
|
||||
pin_cgf = pins[i].pincfg | STM32_MODER_INPUT_MODE;
|
||||
}
|
||||
} else {
|
||||
/* Not supported */
|
||||
__ASSERT_NO_MSG(STM32_DT_PINMUX_FUNC(mux));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue