3 * Yuri Tikhonov, Emcraft Systems, yur@emcraft.com
6 * Kamil Lulko, <rev13@wp.pl>
8 * SPDX-License-Identifier: GPL-2.0+
11 #ifndef _STM32_GPIO_H_
12 #define _STM32_GPIO_H_
14 enum stm32_gpio_port {
15 STM32_GPIO_PORT_A = 0,
45 enum stm32_gpio_mode {
46 STM32_GPIO_MODE_IN = 0,
52 enum stm32_gpio_otype {
53 STM32_GPIO_OTYPE_PP = 0,
57 enum stm32_gpio_speed {
58 STM32_GPIO_SPEED_2M = 0,
64 enum stm32_gpio_pupd {
65 STM32_GPIO_PUPD_NO = 0,
89 struct stm32_gpio_dsc {
90 enum stm32_gpio_port port;
91 enum stm32_gpio_pin pin;
94 struct stm32_gpio_ctl {
95 enum stm32_gpio_mode mode;
96 enum stm32_gpio_otype otype;
97 enum stm32_gpio_speed speed;
98 enum stm32_gpio_pupd pupd;
99 enum stm32_gpio_af af;
102 static inline unsigned stm32_gpio_to_port(unsigned gpio)
107 static inline unsigned stm32_gpio_to_pin(unsigned gpio)
112 int stm32_gpio_config(const struct stm32_gpio_dsc *gpio_dsc,
113 const struct stm32_gpio_ctl *gpio_ctl);
114 int stm32_gpout_set(const struct stm32_gpio_dsc *gpio_dsc, int state);
116 #endif /* _STM32_GPIO_H_ */