1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/rtc/ingenic,rtc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Ingenic SoCs Real-Time Clock
8
9maintainers:
10  - Paul Cercueil <paul@crapouillou.net>
11
12allOf:
13  - $ref: rtc.yaml#
14  - if:
15      not:
16        properties:
17          compatible:
18            contains:
19              enum:
20                - ingenic,jz4770-rtc
21                - ingenic,jz4780-rtc
22    then:
23      properties:
24        "#clock-cells": false
25
26properties:
27  compatible:
28    oneOf:
29      - enum:
30          - ingenic,jz4740-rtc
31          - ingenic,jz4760-rtc
32      - items:
33          - const: ingenic,jz4725b-rtc
34          - const: ingenic,jz4740-rtc
35      - items:
36          - enum:
37              - ingenic,jz4770-rtc
38              - ingenic,jz4780-rtc
39          - const: ingenic,jz4760-rtc
40
41  reg:
42    maxItems: 1
43
44  interrupts:
45    maxItems: 1
46
47  clocks:
48    maxItems: 1
49
50  clock-names:
51    const: rtc
52
53  "#clock-cells":
54    const: 0
55
56  system-power-controller:
57    description: |
58      Indicates that the RTC is responsible for powering OFF
59      the system.
60    type: boolean
61
62  ingenic,reset-pin-assert-time-ms:
63    minimum: 0
64    maximum: 125
65    default: 60
66    description: |
67      Reset pin low-level assertion time after wakeup
68      (assuming RTC clock at 32 kHz)
69
70  ingenic,min-wakeup-pin-assert-time-ms:
71    minimum: 0
72    maximum: 2000
73    default: 100
74    description: |
75      Minimum wakeup pin assertion time
76      (assuming RTC clock at 32 kHz)
77
78required:
79  - compatible
80  - reg
81  - interrupts
82  - clocks
83  - clock-names
84
85unevaluatedProperties: false
86
87examples:
88  - |
89    #include <dt-bindings/clock/ingenic,jz4740-cgu.h>
90    rtc_dev: rtc@10003000 {
91      compatible = "ingenic,jz4740-rtc";
92      reg = <0x10003000 0x40>;
93
94      interrupt-parent = <&intc>;
95      interrupts = <15>;
96
97      clocks = <&cgu JZ4740_CLK_RTC>;
98      clock-names = "rtc";
99    };
100
101  - |
102    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
103    rtc: rtc@10003000 {
104      compatible = "ingenic,jz4780-rtc", "ingenic,jz4760-rtc";
105      reg = <0x10003000 0x4c>;
106
107      interrupt-parent = <&intc>;
108      interrupts = <32>;
109
110      clocks = <&cgu JZ4780_CLK_RTCLK>;
111      clock-names = "rtc";
112
113      #clock-cells = <0>;
114    };
115