1*59f031c0SMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2*59f031c0SMaxime Ripard%YAML 1.2
3*59f031c0SMaxime Ripard---
4*59f031c0SMaxime Ripard$id: "http://devicetree.org/schemas/mfd/x-powers,ac100.yaml#"
5*59f031c0SMaxime Ripard$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6*59f031c0SMaxime Ripard
7*59f031c0SMaxime Ripardtitle: X-Powers AC100 Device Tree Bindings
8*59f031c0SMaxime Ripard
9*59f031c0SMaxime Ripardmaintainers:
10*59f031c0SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
11*59f031c0SMaxime Ripard
12*59f031c0SMaxime Ripardproperties:
13*59f031c0SMaxime Ripard  compatible:
14*59f031c0SMaxime Ripard    const: x-powers,ac100
15*59f031c0SMaxime Ripard
16*59f031c0SMaxime Ripard  reg:
17*59f031c0SMaxime Ripard    maxItems: 1
18*59f031c0SMaxime Ripard
19*59f031c0SMaxime Ripard  codec:
20*59f031c0SMaxime Ripard    type: object
21*59f031c0SMaxime Ripard
22*59f031c0SMaxime Ripard    properties:
23*59f031c0SMaxime Ripard      "#clock-cells":
24*59f031c0SMaxime Ripard        const: 0
25*59f031c0SMaxime Ripard
26*59f031c0SMaxime Ripard      compatible:
27*59f031c0SMaxime Ripard        const: x-powers,ac100-codec
28*59f031c0SMaxime Ripard
29*59f031c0SMaxime Ripard      interrupts:
30*59f031c0SMaxime Ripard        maxItems: 1
31*59f031c0SMaxime Ripard
32*59f031c0SMaxime Ripard      clock-output-names:
33*59f031c0SMaxime Ripard        maxItems: 1
34*59f031c0SMaxime Ripard        description: >
35*59f031c0SMaxime Ripard          Name of the 4M_adda clock exposed by the codec
36*59f031c0SMaxime Ripard
37*59f031c0SMaxime Ripard    required:
38*59f031c0SMaxime Ripard      - "#clock-cells"
39*59f031c0SMaxime Ripard      - compatible
40*59f031c0SMaxime Ripard      - interrupts
41*59f031c0SMaxime Ripard      - clock-output-names
42*59f031c0SMaxime Ripard
43*59f031c0SMaxime Ripard    additionalProperties: false
44*59f031c0SMaxime Ripard
45*59f031c0SMaxime Ripard  rtc:
46*59f031c0SMaxime Ripard    type: object
47*59f031c0SMaxime Ripard
48*59f031c0SMaxime Ripard    properties:
49*59f031c0SMaxime Ripard      "#clock-cells":
50*59f031c0SMaxime Ripard        const: 1
51*59f031c0SMaxime Ripard
52*59f031c0SMaxime Ripard      compatible:
53*59f031c0SMaxime Ripard        const: x-powers,ac100-rtc
54*59f031c0SMaxime Ripard
55*59f031c0SMaxime Ripard      interrupts:
56*59f031c0SMaxime Ripard        maxItems: 1
57*59f031c0SMaxime Ripard
58*59f031c0SMaxime Ripard      clocks:
59*59f031c0SMaxime Ripard        maxItems: 1
60*59f031c0SMaxime Ripard        description: >
61*59f031c0SMaxime Ripard           A phandle to the codec's "4M_adda" clock
62*59f031c0SMaxime Ripard
63*59f031c0SMaxime Ripard      clock-output-names:
64*59f031c0SMaxime Ripard        maxItems: 3
65*59f031c0SMaxime Ripard        description: >
66*59f031c0SMaxime Ripard          Name of the cko1, cko2 and cko3 clocks exposed by the codec
67*59f031c0SMaxime Ripard
68*59f031c0SMaxime Ripard    required:
69*59f031c0SMaxime Ripard      - "#clock-cells"
70*59f031c0SMaxime Ripard      - compatible
71*59f031c0SMaxime Ripard      - interrupts
72*59f031c0SMaxime Ripard      - clocks
73*59f031c0SMaxime Ripard      - clock-output-names
74*59f031c0SMaxime Ripard
75*59f031c0SMaxime Ripard    additionalProperties: false
76*59f031c0SMaxime Ripard
77*59f031c0SMaxime Ripardrequired:
78*59f031c0SMaxime Ripard  - compatible
79*59f031c0SMaxime Ripard  - reg
80*59f031c0SMaxime Ripard  - codec
81*59f031c0SMaxime Ripard  - rtc
82*59f031c0SMaxime Ripard
83*59f031c0SMaxime RipardadditionalProperties: false
84*59f031c0SMaxime Ripard
85*59f031c0SMaxime Ripardexamples:
86*59f031c0SMaxime Ripard  - |
87*59f031c0SMaxime Ripard    #include <dt-bindings/interrupt-controller/irq.h>
88*59f031c0SMaxime Ripard
89*59f031c0SMaxime Ripard    rsb {
90*59f031c0SMaxime Ripard        #address-cells = <1>;
91*59f031c0SMaxime Ripard        #size-cells = <0>;
92*59f031c0SMaxime Ripard
93*59f031c0SMaxime Ripard        codec@e89 {
94*59f031c0SMaxime Ripard            compatible = "x-powers,ac100";
95*59f031c0SMaxime Ripard            reg = <0xe89>;
96*59f031c0SMaxime Ripard
97*59f031c0SMaxime Ripard            ac100_codec: codec {
98*59f031c0SMaxime Ripard                compatible = "x-powers,ac100-codec";
99*59f031c0SMaxime Ripard                interrupt-parent = <&r_pio>;
100*59f031c0SMaxime Ripard                interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
101*59f031c0SMaxime Ripard                #clock-cells = <0>;
102*59f031c0SMaxime Ripard                clock-output-names = "4M_adda";
103*59f031c0SMaxime Ripard            };
104*59f031c0SMaxime Ripard
105*59f031c0SMaxime Ripard            ac100_rtc: rtc {
106*59f031c0SMaxime Ripard                compatible = "x-powers,ac100-rtc";
107*59f031c0SMaxime Ripard                interrupt-parent = <&nmi_intc>;
108*59f031c0SMaxime Ripard                interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
109*59f031c0SMaxime Ripard                clocks = <&ac100_codec>;
110*59f031c0SMaxime Ripard                #clock-cells = <1>;
111*59f031c0SMaxime Ripard                clock-output-names = "cko1_rtc", "cko2_rtc", "cko3_rtc";
112*59f031c0SMaxime Ripard            };
113*59f031c0SMaxime Ripard        };
114*59f031c0SMaxime Ripard    };
115*59f031c0SMaxime Ripard
116*59f031c0SMaxime Ripard...
117