Line data Source code
1 0 : /*
2 : * Copyright (c) 2024 STMicroelectronics
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_STM32_GPIO_H_
8 : #define ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_STM32_GPIO_H_
9 :
10 : /**
11 : * @brief STM32 GPIO specific flags
12 : * @defgroup gpio_interface_stm32 STM32 GPIO specific flags
13 : * @ingroup gpio_interface_ext
14 : *
15 : * The driver flags are encoded in the 8 upper bits of @ref gpio_dt_flags_t as
16 : * follows:
17 : *
18 : * - Bit 8: Configure a GPIO pin to power on the system after Poweroff.
19 : * - Bit 10..9: Configure the output speed of a GPIO pin.
20 : *
21 : * @{
22 : */
23 :
24 : /**
25 : * Configures a GPIO pin to power on the system after Poweroff.
26 : * This flag is reserved to GPIO pins that are associated with wake-up pins
27 : * in STM32 PWR devicetree node, through the property "wkup-gpios".
28 : */
29 1 : #define STM32_GPIO_WKUP (1 << 8)
30 :
31 : /** @cond INTERNAL_HIDDEN */
32 : #define STM32_GPIO_SPEED_SHIFT 9
33 : #define STM32_GPIO_SPEED_MASK 0x3
34 : /** @endcond */
35 :
36 : /** Configure the GPIO pin output speed to be low */
37 1 : #define STM32_GPIO_LOW_SPEED (0x0 << STM32_GPIO_SPEED_SHIFT)
38 :
39 : /** Configure the GPIO pin output speed to be medium */
40 1 : #define STM32_GPIO_MEDIUM_SPEED (0x1 << STM32_GPIO_SPEED_SHIFT)
41 :
42 : /** Configure the GPIO pin output speed to be high */
43 1 : #define STM32_GPIO_HIGH_SPEED (0x2 << STM32_GPIO_SPEED_SHIFT)
44 :
45 : /** Configure the GPIO pin output speed to be very high */
46 1 : #define STM32_GPIO_VERY_HIGH_SPEED (0x3 << STM32_GPIO_SPEED_SHIFT)
47 :
48 : /** @} */
49 :
50 : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_STM32_GPIO_H_ */
|