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