xref: /linux/Documentation/devicetree/bindings/i3c/renesas,i3c.yaml (revision 546b0ad6a87297a4268bc336aea57173008428e8)
1*94e611b5STommaso Merciai# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*94e611b5STommaso Merciai%YAML 1.2
3*94e611b5STommaso Merciai---
4*94e611b5STommaso Merciai$id: http://devicetree.org/schemas/i3c/renesas,i3c.yaml#
5*94e611b5STommaso Merciai$schema: http://devicetree.org/meta-schemas/core.yaml#
6*94e611b5STommaso Merciai
7*94e611b5STommaso Merciaititle: Renesas RZ/G3S and RZ/G3E I3C Bus Interface
8*94e611b5STommaso Merciai
9*94e611b5STommaso Merciaimaintainers:
10*94e611b5STommaso Merciai  - Wolfram Sang <wsa+renesas@sang-engineering.com>
11*94e611b5STommaso Merciai  - Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
12*94e611b5STommaso Merciai
13*94e611b5STommaso Merciaiproperties:
14*94e611b5STommaso Merciai  compatible:
15*94e611b5STommaso Merciai    items:
16*94e611b5STommaso Merciai      - enum:
17*94e611b5STommaso Merciai          - renesas,r9a08g045-i3c # RZ/G3S
18*94e611b5STommaso Merciai          - renesas,r9a09g047-i3c # RZ/G3E
19*94e611b5STommaso Merciai
20*94e611b5STommaso Merciai  reg:
21*94e611b5STommaso Merciai    maxItems: 1
22*94e611b5STommaso Merciai
23*94e611b5STommaso Merciai  interrupts:
24*94e611b5STommaso Merciai    items:
25*94e611b5STommaso Merciai      - description: Non-recoverable internal error interrupt
26*94e611b5STommaso Merciai      - description: Normal transfer error interrupt
27*94e611b5STommaso Merciai      - description: Normal transfer abort interrupt
28*94e611b5STommaso Merciai      - description: Normal response status buffer full interrupt
29*94e611b5STommaso Merciai      - description: Normal command buffer empty interrupt
30*94e611b5STommaso Merciai      - description: Normal IBI status buffer full interrupt
31*94e611b5STommaso Merciai      - description: Normal Rx data buffer full interrupt
32*94e611b5STommaso Merciai      - description: Normal Tx data buffer empty interrupt
33*94e611b5STommaso Merciai      - description: Normal receive status buffer full interrupt
34*94e611b5STommaso Merciai      - description: START condition detection interrupt
35*94e611b5STommaso Merciai      - description: STOP condition detection interrupt
36*94e611b5STommaso Merciai      - description: Transmit end interrupt
37*94e611b5STommaso Merciai      - description: NACK detection interrupt
38*94e611b5STommaso Merciai      - description: Arbitration lost interrupt
39*94e611b5STommaso Merciai      - description: Timeout detection interrupt
40*94e611b5STommaso Merciai      - description: Wake-up condition detection interrupt
41*94e611b5STommaso Merciai      - description: HDR Exit Pattern detection interrupt
42*94e611b5STommaso Merciai    minItems: 16
43*94e611b5STommaso Merciai
44*94e611b5STommaso Merciai  interrupt-names:
45*94e611b5STommaso Merciai    items:
46*94e611b5STommaso Merciai      - const: ierr
47*94e611b5STommaso Merciai      - const: terr
48*94e611b5STommaso Merciai      - const: abort
49*94e611b5STommaso Merciai      - const: resp
50*94e611b5STommaso Merciai      - const: cmd
51*94e611b5STommaso Merciai      - const: ibi
52*94e611b5STommaso Merciai      - const: rx
53*94e611b5STommaso Merciai      - const: tx
54*94e611b5STommaso Merciai      - const: rcv
55*94e611b5STommaso Merciai      - const: st
56*94e611b5STommaso Merciai      - const: sp
57*94e611b5STommaso Merciai      - const: tend
58*94e611b5STommaso Merciai      - const: nack
59*94e611b5STommaso Merciai      - const: al
60*94e611b5STommaso Merciai      - const: tmo
61*94e611b5STommaso Merciai      - const: wu
62*94e611b5STommaso Merciai      - const: exit
63*94e611b5STommaso Merciai    minItems: 16
64*94e611b5STommaso Merciai
65*94e611b5STommaso Merciai  clocks:
66*94e611b5STommaso Merciai    items:
67*94e611b5STommaso Merciai      - description: APB bus clock
68*94e611b5STommaso Merciai      - description: transfer clock
69*94e611b5STommaso Merciai      - description: SFRs clock
70*94e611b5STommaso Merciai    minItems: 2
71*94e611b5STommaso Merciai
72*94e611b5STommaso Merciai  clock-names:
73*94e611b5STommaso Merciai    items:
74*94e611b5STommaso Merciai      - const: pclk
75*94e611b5STommaso Merciai      - const: tclk
76*94e611b5STommaso Merciai      - const: pclkrw
77*94e611b5STommaso Merciai    minItems: 2
78*94e611b5STommaso Merciai
79*94e611b5STommaso Merciai  power-domains:
80*94e611b5STommaso Merciai    maxItems: 1
81*94e611b5STommaso Merciai
82*94e611b5STommaso Merciai  resets:
83*94e611b5STommaso Merciai    items:
84*94e611b5STommaso Merciai      - description: Reset signal
85*94e611b5STommaso Merciai      - description: APB interface reset signal/SCAN reset signal
86*94e611b5STommaso Merciai
87*94e611b5STommaso Merciai  reset-names:
88*94e611b5STommaso Merciai    items:
89*94e611b5STommaso Merciai      - const: presetn
90*94e611b5STommaso Merciai      - const: tresetn
91*94e611b5STommaso Merciai
92*94e611b5STommaso Merciairequired:
93*94e611b5STommaso Merciai  - compatible
94*94e611b5STommaso Merciai  - reg
95*94e611b5STommaso Merciai  - interrupts
96*94e611b5STommaso Merciai  - interrupt-names
97*94e611b5STommaso Merciai  - clock-names
98*94e611b5STommaso Merciai  - clocks
99*94e611b5STommaso Merciai  - power-domains
100*94e611b5STommaso Merciai  - resets
101*94e611b5STommaso Merciai  - reset-names
102*94e611b5STommaso Merciai
103*94e611b5STommaso MerciaiallOf:
104*94e611b5STommaso Merciai  - $ref: i3c.yaml#
105*94e611b5STommaso Merciai
106*94e611b5STommaso Merciai  - if:
107*94e611b5STommaso Merciai      properties:
108*94e611b5STommaso Merciai        compatible:
109*94e611b5STommaso Merciai          contains:
110*94e611b5STommaso Merciai            const: renesas,r9a08g045-i3c
111*94e611b5STommaso Merciai    then:
112*94e611b5STommaso Merciai      properties:
113*94e611b5STommaso Merciai        clocks:
114*94e611b5STommaso Merciai          maxItems: 2
115*94e611b5STommaso Merciai        clock-names:
116*94e611b5STommaso Merciai          maxItems: 2
117*94e611b5STommaso Merciai        interrupts:
118*94e611b5STommaso Merciai          minItems: 17
119*94e611b5STommaso Merciai        interrupt-names:
120*94e611b5STommaso Merciai          minItems: 17
121*94e611b5STommaso Merciai
122*94e611b5STommaso Merciai  - if:
123*94e611b5STommaso Merciai      properties:
124*94e611b5STommaso Merciai        compatible:
125*94e611b5STommaso Merciai          contains:
126*94e611b5STommaso Merciai            const: renesas,r9a09g047-i3c
127*94e611b5STommaso Merciai    then:
128*94e611b5STommaso Merciai      properties:
129*94e611b5STommaso Merciai        clocks:
130*94e611b5STommaso Merciai          minItems: 3
131*94e611b5STommaso Merciai        clock-names:
132*94e611b5STommaso Merciai          minItems: 3
133*94e611b5STommaso Merciai        interrupts:
134*94e611b5STommaso Merciai          maxItems: 16
135*94e611b5STommaso Merciai        interrupt-names:
136*94e611b5STommaso Merciai          maxItems: 16
137*94e611b5STommaso Merciai
138*94e611b5STommaso MerciaiunevaluatedProperties: false
139*94e611b5STommaso Merciai
140*94e611b5STommaso Merciaiexamples:
141*94e611b5STommaso Merciai  - |
142*94e611b5STommaso Merciai    #include <dt-bindings/clock/r9a08g045-cpg.h>
143*94e611b5STommaso Merciai    #include <dt-bindings/interrupt-controller/arm-gic.h>
144*94e611b5STommaso Merciai
145*94e611b5STommaso Merciai    i3c@1005b000 {
146*94e611b5STommaso Merciai        compatible = "renesas,r9a08g045-i3c";
147*94e611b5STommaso Merciai        reg = <0x1005b000 0x1000>;
148*94e611b5STommaso Merciai        clocks = <&cpg CPG_MOD R9A08G045_I3C_PCLK>,
149*94e611b5STommaso Merciai                 <&cpg CPG_MOD R9A08G045_I3C_TCLK>;
150*94e611b5STommaso Merciai        clock-names = "pclk", "tclk";
151*94e611b5STommaso Merciai        interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
152*94e611b5STommaso Merciai                     <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
153*94e611b5STommaso Merciai                     <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
154*94e611b5STommaso Merciai                     <GIC_SPI 294 IRQ_TYPE_EDGE_RISING>,
155*94e611b5STommaso Merciai                     <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>,
156*94e611b5STommaso Merciai                     <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
157*94e611b5STommaso Merciai                     <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
158*94e611b5STommaso Merciai                     <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
159*94e611b5STommaso Merciai                     <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
160*94e611b5STommaso Merciai                     <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
161*94e611b5STommaso Merciai                     <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
162*94e611b5STommaso Merciai                     <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
163*94e611b5STommaso Merciai                     <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
164*94e611b5STommaso Merciai                     <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
165*94e611b5STommaso Merciai                     <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>,
166*94e611b5STommaso Merciai                     <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>,
167*94e611b5STommaso Merciai                     <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
168*94e611b5STommaso Merciai        interrupt-names = "ierr", "terr", "abort", "resp",
169*94e611b5STommaso Merciai                          "cmd", "ibi", "rx", "tx", "rcv",
170*94e611b5STommaso Merciai                          "st", "sp", "tend", "nack",
171*94e611b5STommaso Merciai                          "al", "tmo", "wu", "exit";
172*94e611b5STommaso Merciai        resets = <&cpg R9A08G045_I3C_PRESETN>,
173*94e611b5STommaso Merciai                 <&cpg R9A08G045_I3C_TRESETN>;
174*94e611b5STommaso Merciai        reset-names = "presetn", "tresetn";
175*94e611b5STommaso Merciai        power-domains = <&cpg>;
176*94e611b5STommaso Merciai        #address-cells = <3>;
177*94e611b5STommaso Merciai        #size-cells = <0>;
178*94e611b5STommaso Merciai    };
179*94e611b5STommaso Merciai...
180