xref: /openbmc/linux/Documentation/devicetree/bindings/i2c/renesas,rmobile-iic.yaml (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1*632ce677SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*632ce677SGeert Uytterhoeven%YAML 1.2
3*632ce677SGeert Uytterhoeven---
4*632ce677SGeert Uytterhoeven$id: http://devicetree.org/schemas/i2c/renesas,rmobile-iic.yaml#
5*632ce677SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6*632ce677SGeert Uytterhoeven
7*632ce677SGeert Uytterhoeventitle: Renesas R-Mobile I2C Bus Interface (IIC)
8*632ce677SGeert Uytterhoeven
9*632ce677SGeert Uytterhoevenmaintainers:
10*632ce677SGeert Uytterhoeven  - Wolfram Sang <wsa+renesas@sang-engineering.com>
11*632ce677SGeert Uytterhoeven
12*632ce677SGeert Uytterhoevenproperties:
13*632ce677SGeert Uytterhoeven  compatible:
14*632ce677SGeert Uytterhoeven    oneOf:
15*632ce677SGeert Uytterhoeven      - items:
16*632ce677SGeert Uytterhoeven          - enum:
17*632ce677SGeert Uytterhoeven              - renesas,iic-r8a73a4      # R-Mobile APE6
18*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7740      # R-Mobile A1
19*632ce677SGeert Uytterhoeven              - renesas,iic-sh73a0       # SH-Mobile AG5
20*632ce677SGeert Uytterhoeven          - const: renesas,rmobile-iic   # Generic
21*632ce677SGeert Uytterhoeven
22*632ce677SGeert Uytterhoeven      - items:
23*632ce677SGeert Uytterhoeven          - enum:
24*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7742      # RZ/G1H
25*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7743      # RZ/G1M
26*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7744      # RZ/G1N
27*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7745      # RZ/G1E
28*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7790      # R-Car H2
29*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7791      # R-Car M2-W
30*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7792      # R-Car V2H
31*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7793      # R-Car M2-N
32*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7794      # R-Car E2
33*632ce677SGeert Uytterhoeven          - const: renesas,rcar-gen2-iic # R-Car Gen2 and RZ/G1
34*632ce677SGeert Uytterhoeven          - const: renesas,rmobile-iic   # Generic
35*632ce677SGeert Uytterhoeven
36*632ce677SGeert Uytterhoeven      - items:
37*632ce677SGeert Uytterhoeven          - enum:
38*632ce677SGeert Uytterhoeven              - renesas,iic-r8a774a1     # RZ/G2M
39*632ce677SGeert Uytterhoeven              - renesas,iic-r8a774b1     # RZ/G2N
40*632ce677SGeert Uytterhoeven              - renesas,iic-r8a774c0     # RZ/G2E
41*632ce677SGeert Uytterhoeven              - renesas,iic-r8a774e1     # RZ/G2H
42*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7795      # R-Car H3
43*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7796      # R-Car M3-W
44*632ce677SGeert Uytterhoeven              - renesas,iic-r8a77961     # R-Car M3-W+
45*632ce677SGeert Uytterhoeven              - renesas,iic-r8a77965     # R-Car M3-N
46*632ce677SGeert Uytterhoeven              - renesas,iic-r8a77990     # R-Car E3
47*632ce677SGeert Uytterhoeven          - const: renesas,rcar-gen3-iic # R-Car Gen3 and RZ/G2
48*632ce677SGeert Uytterhoeven          - const: renesas,rmobile-iic   # Generic
49*632ce677SGeert Uytterhoeven
50*632ce677SGeert Uytterhoeven  reg:
51*632ce677SGeert Uytterhoeven    maxItems: 1
52*632ce677SGeert Uytterhoeven
53*632ce677SGeert Uytterhoeven  interrupts: true
54*632ce677SGeert Uytterhoeven
55*632ce677SGeert Uytterhoeven  clock-frequency:
56*632ce677SGeert Uytterhoeven    description:
57*632ce677SGeert Uytterhoeven      Desired I2C bus clock frequency in Hz. The absence of this property
58*632ce677SGeert Uytterhoeven      indicates the default frequency 100 kHz.
59*632ce677SGeert Uytterhoeven
60*632ce677SGeert Uytterhoeven  clocks:
61*632ce677SGeert Uytterhoeven    maxItems: 1
62*632ce677SGeert Uytterhoeven
63*632ce677SGeert Uytterhoeven  power-domains:
64*632ce677SGeert Uytterhoeven    maxItems: 1
65*632ce677SGeert Uytterhoeven
66*632ce677SGeert Uytterhoeven  resets:
67*632ce677SGeert Uytterhoeven    maxItems: 1
68*632ce677SGeert Uytterhoeven
69*632ce677SGeert Uytterhoeven  dmas:
70*632ce677SGeert Uytterhoeven    minItems: 2
71*632ce677SGeert Uytterhoeven    maxItems: 4
72*632ce677SGeert Uytterhoeven    description:
73*632ce677SGeert Uytterhoeven      Must contain a list of pairs of references to DMA specifiers, one for
74*632ce677SGeert Uytterhoeven      transmission, and one for reception.
75*632ce677SGeert Uytterhoeven
76*632ce677SGeert Uytterhoeven  dma-names:
77*632ce677SGeert Uytterhoeven    minItems: 2
78*632ce677SGeert Uytterhoeven    maxItems: 4
79*632ce677SGeert Uytterhoeven    items:
80*632ce677SGeert Uytterhoeven      enum:
81*632ce677SGeert Uytterhoeven        - tx
82*632ce677SGeert Uytterhoeven        - rx
83*632ce677SGeert Uytterhoeven
84*632ce677SGeert Uytterhoevenrequired:
85*632ce677SGeert Uytterhoeven  - compatible
86*632ce677SGeert Uytterhoeven  - reg
87*632ce677SGeert Uytterhoeven  - interrupts
88*632ce677SGeert Uytterhoeven  - clocks
89*632ce677SGeert Uytterhoeven  - power-domains
90*632ce677SGeert Uytterhoeven  - '#address-cells'
91*632ce677SGeert Uytterhoeven  - '#size-cells'
92*632ce677SGeert Uytterhoeven
93*632ce677SGeert UytterhoevenallOf:
94*632ce677SGeert Uytterhoeven  - $ref: /schemas/i2c/i2c-controller.yaml#
95*632ce677SGeert Uytterhoeven
96*632ce677SGeert Uytterhoeven  - if:
97*632ce677SGeert Uytterhoeven      properties:
98*632ce677SGeert Uytterhoeven        compatible:
99*632ce677SGeert Uytterhoeven          contains:
100*632ce677SGeert Uytterhoeven            enum:
101*632ce677SGeert Uytterhoeven              - renesas,iic-r8a7740
102*632ce677SGeert Uytterhoeven              - renesas,iic-sh73a0
103*632ce677SGeert Uytterhoeven    then:
104*632ce677SGeert Uytterhoeven      properties:
105*632ce677SGeert Uytterhoeven        interrupts:
106*632ce677SGeert Uytterhoeven          items:
107*632ce677SGeert Uytterhoeven            - description: Arbitration Lost Interrupt (ALI)
108*632ce677SGeert Uytterhoeven            - description: Non-acknowledge Detection Interrupt (TACKI)
109*632ce677SGeert Uytterhoeven            - description: Wait Interrupt (WAITI)
110*632ce677SGeert Uytterhoeven            - description: Data Transmit Enable interrupt (DTEI)
111*632ce677SGeert Uytterhoeven    else:
112*632ce677SGeert Uytterhoeven      properties:
113*632ce677SGeert Uytterhoeven        interrupts:
114*632ce677SGeert Uytterhoeven          items:
115*632ce677SGeert Uytterhoeven            - description: Single combined interrupt
116*632ce677SGeert Uytterhoeven
117*632ce677SGeert Uytterhoeven  - if:
118*632ce677SGeert Uytterhoeven      properties:
119*632ce677SGeert Uytterhoeven        compatible:
120*632ce677SGeert Uytterhoeven          contains:
121*632ce677SGeert Uytterhoeven            enum:
122*632ce677SGeert Uytterhoeven              - renesas,rcar-gen2-iic
123*632ce677SGeert Uytterhoeven              - renesas,rcar-gen3-iic
124*632ce677SGeert Uytterhoeven    then:
125*632ce677SGeert Uytterhoeven      required:
126*632ce677SGeert Uytterhoeven        - resets
127*632ce677SGeert Uytterhoeven
128*632ce677SGeert UytterhoevenunevaluatedProperties: false
129*632ce677SGeert Uytterhoeven
130*632ce677SGeert Uytterhoevenexamples:
131*632ce677SGeert Uytterhoeven  - |
132*632ce677SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
133*632ce677SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
134*632ce677SGeert Uytterhoeven    #include <dt-bindings/power/r8a7790-sysc.h>
135*632ce677SGeert Uytterhoeven
136*632ce677SGeert Uytterhoeven    iic0: i2c@e6500000 {
137*632ce677SGeert Uytterhoeven            compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
138*632ce677SGeert Uytterhoeven                         "renesas,rmobile-iic";
139*632ce677SGeert Uytterhoeven            reg = <0xe6500000 0x425>;
140*632ce677SGeert Uytterhoeven            interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
141*632ce677SGeert Uytterhoeven            clocks = <&cpg CPG_MOD 318>;
142*632ce677SGeert Uytterhoeven            clock-frequency = <400000>;
143*632ce677SGeert Uytterhoeven            dmas = <&dmac0 0x61>, <&dmac0 0x62>, <&dmac1 0x61>, <&dmac1 0x62>;
144*632ce677SGeert Uytterhoeven            dma-names = "tx", "rx", "tx", "rx";
145*632ce677SGeert Uytterhoeven            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
146*632ce677SGeert Uytterhoeven            resets = <&cpg 318>;
147*632ce677SGeert Uytterhoeven            #address-cells = <1>;
148*632ce677SGeert Uytterhoeven            #size-cells = <0>;
149*632ce677SGeert Uytterhoeven    };
150