# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/rtc/st,stm32-rtc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: STMicroelectronics STM32 Real Time Clock maintainers: - Gabriel Fernandez properties: compatible: enum: - st,stm32-rtc - st,stm32h7-rtc - st,stm32mp1-rtc - st,stm32mp25-rtc reg: maxItems: 1 clocks: minItems: 1 maxItems: 2 clock-names: items: - const: pclk - const: rtc_ck interrupts: maxItems: 1 st,syscfg: $ref: /schemas/types.yaml#/definitions/phandle-array items: minItems: 3 maxItems: 3 description: | Phandle/offset/mask triplet. The phandle to pwrcfg used to access control register at offset, and change the dbp (Disable Backup Protection) bit represented by the mask, mandatory to disable/enable backup domain (RTC registers) write protection. assigned-clocks: description: | override default rtc_ck parent clock reference to the rtc_ck clock entry maxItems: 1 assigned-clock-parents: description: | override default rtc_ck parent clock phandle of the new parent clock of rtc_ck maxItems: 1 patternProperties: "^rtc-[a-z]+-[0-9]+$": type: object $ref: /schemas/pinctrl/pinmux-node.yaml description: | Configuration of STM32 RTC pins description. STM32 RTC is able to output some signals on specific pins: - LSCO (Low Speed Clock Output) that allow to output LSE clock on a pin. - Alarm out that allow to send a pulse on a pin when alarm A of the RTC expires. additionalProperties: false properties: function: enum: - lsco - alarm-a pins: enum: - out1 - out2 - out2_rmp allOf: - if: properties: compatible: contains: const: st,stm32-rtc then: properties: clocks: minItems: 1 maxItems: 1 clock-names: false patternProperties: "^rtc-[a-z]+-[0-9]+$": false required: - st,syscfg - if: properties: compatible: contains: const: st,stm32h7-rtc then: properties: clocks: minItems: 2 maxItems: 2 patternProperties: "^rtc-[a-z]+-[0-9]+$": false required: - clock-names - st,syscfg - if: properties: compatible: contains: enum: - st,stm32mp1-rtc - st,stm32mp25-rtc then: properties: clocks: minItems: 2 maxItems: 2 assigned-clocks: false assigned-clock-parents: false required: - clock-names required: - compatible - reg - clocks - interrupts additionalProperties: false examples: - | #include #include rtc@40002800 { compatible = "st,stm32-rtc"; reg = <0x40002800 0x400>; clocks = <&rcc 1 CLK_RTC>; assigned-clocks = <&rcc 1 CLK_RTC>; assigned-clock-parents = <&rcc 1 CLK_LSE>; interrupt-parent = <&exti>; interrupts = <17 1>; st,syscfg = <&pwrcfg 0x00 0x100>; }; - | #include #include rtc@5c004000 { compatible = "st,stm32mp1-rtc"; reg = <0x5c004000 0x400>; clocks = <&rcc RTCAPB>, <&rcc RTC>; clock-names = "pclk", "rtc_ck"; interrupts = ; }; ...