xref: /freebsd/sys/contrib/device-tree/Bindings/rtc/st,stm32-rtc.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
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