:orphan: .. raw:: html .. dtcompatible:: st,stm32f1-pwr-wkupctrl .. _dtbinding_st_stm32f1_pwr_wkupctrl: st,stm32f1-pwr-wkupctrl ####################### .. sidebar:: Overview :Name: ``st,stm32f1-pwr-wkupctrl`` :Vendor: :ref:`STMicroelectronics N.V. ` :Used in: :zephyr:board-catalog:`List of boards <#compatibles=st,stm32f1-pwr-wkupctrl>` using this compatible Description *********** .. code-block:: none STM32F1-like wake-up pins controller Control logic for wake-up pins found in STM32F1 and other series. On series such as STM32F1, enabling a pin as wake-up pin forces it into "input pull-down" mode and the polarity of wake-up pins is fixed to "rising edge detection", unlike the implementation found in other series where these parameters (PU/PD and polarity) can be configured arbitrarily by software. Note that the term "wake-up pin" is used instead of "wake-up line" in this binding because each wake-up line in these series is hardwired to a specific GPIO pin (no source selection is possible). Examples ******** .. code-block:: dts /* Example: STM32WBA series */ power@46020800 { /* ...PWR properties omitted for brevity... */ wakeup-controller { compatible = "st,stm32-pwr-wkupctrl"; #address-cells = <1>; #size-cells = <0>; st,max-wkup-line-idx = <8>; st,has-multi-source-lines; wkup@1 { /* * Wake-up line 1, triggerable by two different GPIOs: * - source 0: PA0 * - source 1: PB2 */ reg = <0x1>; wkup-gpios = <&gpioa 0 STM32_PWR_WKUP_EVT_SRC_0>, <&gpiob 2 STM32_PWR_WKUP_EVT_SRC_1>; }; wkup@2 { /* * Wake-up line 2, triggerable by only one GPIO: PC13. * Regardless, the appropriate `STM32_PWR_WKUP_EVT_SRC_n` * value must still be set in the `flags` cell. */ reg = <0x2>; wkup-gpios = <&gpioc 13 STM32_PWR_WKUP_EVT_SRC_1>; }; /* ...other lines omitted for brevity... */ }; }; ---- .. code-block:: dts /* Example: STM32F1 series */ pwr: power@40007000 { /* ...PWR properties omitted for brevity... */ wakeup-controller { compatible = "st,stm32f1-pwr-wkupctrl", "st,stm32-pwr-wkupctrl"; #address-cells = <1>; #size-cells = <0>; st,max-wkup-line-idx = <1>; /* Note the absence of `st,has-multi-source-lines` property... */ wkup@1 { /* ...and use of the `STM32_PWR_WKUP_PIN_NOT_MUXED` value. */ reg = <0x1>; wkup-gpios = <&gpioa 0 STM32_PWR_WKUP_PIN_NOT_MUXED>; }; }; Properties ********** Top level properties ==================== These property descriptions apply to "st,stm32f1-pwr-wkupctrl" nodes themselves. This page also describes child node properties in the following sections. .. tabs:: .. group-tab:: Node specific properties Properties not inherited from the base binding file. .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``st,max-wkup-line-idx`` - ``int`` - .. code-block:: none Index of the highest wake-up line `WKUPn` supported by the SoC. NOTE: only wake-up lines connected to a GPIO pin, which are usually named `WKUPn`, should be taken into account for this property, and lines connected only to internal sources should be ignored. For example, this property should be set equal to 8 on a series where WKUP8 is the highest wake-up line connected to a GPIO pin. This property is **required**. * - ``st,has-pwr-full-pupd`` - ``boolean`` - .. code-block:: none If present, indicates that the Power Controller is capable of managing the internal pull-up/pull-down resistors of all GPIO pins in the SoC. This feature can be identified by the presence of a pair of registers (`PWR_PUCRx`/`PWR_PDCRx`, `x` = A/B/C/...) in the PWR register map for each GPIO port in the SoC. Note that there are some series where some of these registers exist, but not for all GPIO ports: in this case, the property must NOT be present. .. group-tab:: Deprecated node specific properties Deprecated properties not inherited from the base binding file. (None) .. group-tab:: Base properties Properties inherited from the base binding file, which defines common properties that may be set on many nodes. Not all of these may apply to the "st,stm32f1-pwr-wkupctrl" compatible. (None) Child node properties ===================== .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``reg`` - ``array`` - .. code-block:: none Wake-up line index This property is **required**. See :ref:`zephyr:dt-important-props` for more information. * - ``wkup-gpios`` - ``phandle-array`` - .. code-block:: none Specifies which GPIO pin(s) can trigger this wake-up line. The `flags` cell of each entry in this property has a particular meaning: - if the property `st,has-multi-source-lines` is present in the parent node, it indicates which of the line's wake-up sources corresponds to the specific GPIO pin (`STM32_PWR_WKUP_EVT_SRC_n`) - otherwise, it must be set to `STM32_PWR_WKUP_PIN_NOT_MUXED` to indicate that the wake-up source selection is hardwired. Refer to `include/zephyr/dt-bindings/power/stm32_pwr.h` for more details and see the examples below for an overview of the different use cases.