1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/rtc/st,stm32-rtc.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: STMicroelectronics STM32 Real Time Clock 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 108cc087a1SEmmanuel Vadot - Gabriel Fernandez <gabriel.fernandez@foss.st.com> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel Vadotproperties: 13c66ec88fSEmmanuel Vadot compatible: 14c66ec88fSEmmanuel Vadot enum: 15c66ec88fSEmmanuel Vadot - st,stm32-rtc 16c66ec88fSEmmanuel Vadot - st,stm32h7-rtc 17c66ec88fSEmmanuel Vadot - st,stm32mp1-rtc 180e8011faSEmmanuel Vadot - st,stm32mp25-rtc 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel Vadot reg: 21c66ec88fSEmmanuel Vadot maxItems: 1 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot clocks: 24c66ec88fSEmmanuel Vadot minItems: 1 25c66ec88fSEmmanuel Vadot maxItems: 2 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot clock-names: 28c66ec88fSEmmanuel Vadot items: 29c66ec88fSEmmanuel Vadot - const: pclk 30c66ec88fSEmmanuel Vadot - const: rtc_ck 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot interrupts: 33c66ec88fSEmmanuel Vadot maxItems: 1 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot st,syscfg: 36fac71e4eSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 37c66ec88fSEmmanuel Vadot items: 38c66ec88fSEmmanuel Vadot minItems: 3 39c66ec88fSEmmanuel Vadot maxItems: 3 40c66ec88fSEmmanuel Vadot description: | 41c66ec88fSEmmanuel Vadot Phandle/offset/mask triplet. The phandle to pwrcfg used to 42c66ec88fSEmmanuel Vadot access control register at offset, and change the dbp (Disable Backup 43c66ec88fSEmmanuel Vadot Protection) bit represented by the mask, mandatory to disable/enable backup 44c66ec88fSEmmanuel Vadot domain (RTC registers) write protection. 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot assigned-clocks: 47c66ec88fSEmmanuel Vadot description: | 48c66ec88fSEmmanuel Vadot override default rtc_ck parent clock reference to the rtc_ck clock entry 49c66ec88fSEmmanuel Vadot maxItems: 1 50c66ec88fSEmmanuel Vadot 51c66ec88fSEmmanuel Vadot assigned-clock-parents: 52c66ec88fSEmmanuel Vadot description: | 53c66ec88fSEmmanuel Vadot override default rtc_ck parent clock phandle of the new parent clock of rtc_ck 54c66ec88fSEmmanuel Vadot maxItems: 1 55c66ec88fSEmmanuel Vadot 56*b2d2a78aSEmmanuel VadotpatternProperties: 57*b2d2a78aSEmmanuel Vadot "^rtc-[a-z]+-[0-9]+$": 58*b2d2a78aSEmmanuel Vadot type: object 59*b2d2a78aSEmmanuel Vadot $ref: /schemas/pinctrl/pinmux-node.yaml 60*b2d2a78aSEmmanuel Vadot description: | 61*b2d2a78aSEmmanuel Vadot Configuration of STM32 RTC pins description. STM32 RTC is able to output 62*b2d2a78aSEmmanuel Vadot some signals on specific pins: 63*b2d2a78aSEmmanuel Vadot - LSCO (Low Speed Clock Output) that allow to output LSE clock on a pin. 64*b2d2a78aSEmmanuel Vadot - Alarm out that allow to send a pulse on a pin when alarm A of the RTC 65*b2d2a78aSEmmanuel Vadot expires. 66*b2d2a78aSEmmanuel Vadot additionalProperties: false 67*b2d2a78aSEmmanuel Vadot properties: 68*b2d2a78aSEmmanuel Vadot function: 69*b2d2a78aSEmmanuel Vadot enum: 70*b2d2a78aSEmmanuel Vadot - lsco 71*b2d2a78aSEmmanuel Vadot - alarm-a 72*b2d2a78aSEmmanuel Vadot pins: 73*b2d2a78aSEmmanuel Vadot enum: 74*b2d2a78aSEmmanuel Vadot - out1 75*b2d2a78aSEmmanuel Vadot - out2 76*b2d2a78aSEmmanuel Vadot - out2_rmp 77*b2d2a78aSEmmanuel Vadot 78c66ec88fSEmmanuel VadotallOf: 79c66ec88fSEmmanuel Vadot - if: 80c66ec88fSEmmanuel Vadot properties: 81c66ec88fSEmmanuel Vadot compatible: 82c66ec88fSEmmanuel Vadot contains: 83c66ec88fSEmmanuel Vadot const: st,stm32-rtc 84c66ec88fSEmmanuel Vadot 85c66ec88fSEmmanuel Vadot then: 86c66ec88fSEmmanuel Vadot properties: 87c66ec88fSEmmanuel Vadot clocks: 88c66ec88fSEmmanuel Vadot minItems: 1 89c66ec88fSEmmanuel Vadot maxItems: 1 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot clock-names: false 92c66ec88fSEmmanuel Vadot 93*b2d2a78aSEmmanuel Vadot patternProperties: 94*b2d2a78aSEmmanuel Vadot "^rtc-[a-z]+-[0-9]+$": false 95*b2d2a78aSEmmanuel Vadot 96c66ec88fSEmmanuel Vadot required: 97c66ec88fSEmmanuel Vadot - st,syscfg 98c66ec88fSEmmanuel Vadot 99c66ec88fSEmmanuel Vadot - if: 100c66ec88fSEmmanuel Vadot properties: 101c66ec88fSEmmanuel Vadot compatible: 102c66ec88fSEmmanuel Vadot contains: 103c66ec88fSEmmanuel Vadot const: st,stm32h7-rtc 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot then: 106c66ec88fSEmmanuel Vadot properties: 107c66ec88fSEmmanuel Vadot clocks: 108c66ec88fSEmmanuel Vadot minItems: 2 109c66ec88fSEmmanuel Vadot maxItems: 2 110c66ec88fSEmmanuel Vadot 111*b2d2a78aSEmmanuel Vadot patternProperties: 112*b2d2a78aSEmmanuel Vadot "^rtc-[a-z]+-[0-9]+$": false 113*b2d2a78aSEmmanuel Vadot 114c66ec88fSEmmanuel Vadot required: 115c66ec88fSEmmanuel Vadot - clock-names 116c66ec88fSEmmanuel Vadot - st,syscfg 117c66ec88fSEmmanuel Vadot 118c66ec88fSEmmanuel Vadot - if: 119c66ec88fSEmmanuel Vadot properties: 120c66ec88fSEmmanuel Vadot compatible: 121c66ec88fSEmmanuel Vadot contains: 1220e8011faSEmmanuel Vadot enum: 1230e8011faSEmmanuel Vadot - st,stm32mp1-rtc 1240e8011faSEmmanuel Vadot - st,stm32mp25-rtc 125c66ec88fSEmmanuel Vadot 126c66ec88fSEmmanuel Vadot then: 127c66ec88fSEmmanuel Vadot properties: 128c66ec88fSEmmanuel Vadot clocks: 129c66ec88fSEmmanuel Vadot minItems: 2 130c66ec88fSEmmanuel Vadot maxItems: 2 131c66ec88fSEmmanuel Vadot 132c66ec88fSEmmanuel Vadot assigned-clocks: false 133c66ec88fSEmmanuel Vadot assigned-clock-parents: false 134c66ec88fSEmmanuel Vadot 135c66ec88fSEmmanuel Vadot required: 136c66ec88fSEmmanuel Vadot - clock-names 137c66ec88fSEmmanuel Vadot 138c66ec88fSEmmanuel Vadotrequired: 139c66ec88fSEmmanuel Vadot - compatible 140c66ec88fSEmmanuel Vadot - reg 141c66ec88fSEmmanuel Vadot - clocks 142c66ec88fSEmmanuel Vadot - interrupts 143c66ec88fSEmmanuel Vadot 144c66ec88fSEmmanuel VadotadditionalProperties: false 145c66ec88fSEmmanuel Vadot 146c66ec88fSEmmanuel Vadotexamples: 147c66ec88fSEmmanuel Vadot - | 148c66ec88fSEmmanuel Vadot #include <dt-bindings/mfd/stm32f4-rcc.h> 149c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/stm32fx-clock.h> 150c66ec88fSEmmanuel Vadot rtc@40002800 { 151c66ec88fSEmmanuel Vadot compatible = "st,stm32-rtc"; 152c66ec88fSEmmanuel Vadot reg = <0x40002800 0x400>; 153c66ec88fSEmmanuel Vadot clocks = <&rcc 1 CLK_RTC>; 154c66ec88fSEmmanuel Vadot assigned-clocks = <&rcc 1 CLK_RTC>; 155c66ec88fSEmmanuel Vadot assigned-clock-parents = <&rcc 1 CLK_LSE>; 156c66ec88fSEmmanuel Vadot interrupt-parent = <&exti>; 157c66ec88fSEmmanuel Vadot interrupts = <17 1>; 158c66ec88fSEmmanuel Vadot st,syscfg = <&pwrcfg 0x00 0x100>; 159c66ec88fSEmmanuel Vadot }; 160c66ec88fSEmmanuel Vadot 161e67e8565SEmmanuel Vadot - | 162c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 163c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/stm32mp1-clks.h> 164c66ec88fSEmmanuel Vadot rtc@5c004000 { 165c66ec88fSEmmanuel Vadot compatible = "st,stm32mp1-rtc"; 166c66ec88fSEmmanuel Vadot reg = <0x5c004000 0x400>; 167c66ec88fSEmmanuel Vadot clocks = <&rcc RTCAPB>, <&rcc RTC>; 168c66ec88fSEmmanuel Vadot clock-names = "pclk", "rtc_ck"; 169c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 170c66ec88fSEmmanuel Vadot }; 171c66ec88fSEmmanuel Vadot 172c66ec88fSEmmanuel Vadot... 173