1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/renesas,riic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Renesas RZ/A and RZ/G2L I2C Bus Interface (RIIC)
8
9maintainers:
10  - Chris Brandt <[email protected]>
11  - Wolfram Sang <[email protected]>
12
13allOf:
14  - $ref: /schemas/i2c/i2c-controller.yaml#
15
16properties:
17  compatible:
18    oneOf:
19      - items:
20          - enum:
21              - renesas,riic-r7s72100   # RZ/A1H
22              - renesas,riic-r7s9210    # RZ/A2M
23              - renesas,riic-r9a07g043  # RZ/G2UL and RZ/Five
24              - renesas,riic-r9a07g044  # RZ/G2{L,LC}
25              - renesas,riic-r9a07g054  # RZ/V2L
26          - const: renesas,riic-rz      # RZ/A or RZ/G2L
27
28      - items:
29          - enum:
30              - renesas,riic-r9a08g045   # RZ/G3S
31              - renesas,riic-r9a09g047   # RZ/G3E
32          - const: renesas,riic-r9a09g057   # RZ/V2H(P)
33
34      - const: renesas,riic-r9a09g057   # RZ/V2H(P)
35
36  reg:
37    maxItems: 1
38
39  interrupts:
40    items:
41      - description: Transmit End Interrupt
42      - description: Receive Data Full Interrupt
43      - description: Transmit Data Empty Interrupt
44      - description: Stop Condition Detection Interrupt
45      - description: Start Condition Detection Interrupt
46      - description: NACK Reception Interrupt
47      - description: Arbitration-Lost Interrupt
48      - description: Timeout Interrupt
49
50  interrupt-names:
51    items:
52      - const: tei
53      - const: ri
54      - const: ti
55      - const: spi
56      - const: sti
57      - const: naki
58      - const: ali
59      - const: tmoi
60
61  clock-frequency:
62    description:
63      Desired I2C bus clock frequency in Hz. The absence of this property
64      indicates the default frequency 100 kHz.
65
66  clocks:
67    maxItems: 1
68
69  power-domains:
70    maxItems: 1
71
72  resets:
73    maxItems: 1
74
75required:
76  - compatible
77  - reg
78  - interrupts
79  - interrupt-names
80  - clocks
81  - clock-frequency
82  - power-domains
83  - '#address-cells'
84  - '#size-cells'
85
86if:
87  properties:
88    compatible:
89      contains:
90        enum:
91          - renesas,riic-r9a07g043
92          - renesas,riic-r9a07g044
93          - renesas,riic-r9a07g054
94          - renesas,riic-r9a09g057
95then:
96  required:
97    - resets
98
99unevaluatedProperties: false
100
101examples:
102  - |
103    #include <dt-bindings/clock/r7s72100-clock.h>
104    #include <dt-bindings/interrupt-controller/arm-gic.h>
105
106    i2c0: i2c@fcfee000 {
107        compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
108        reg = <0xfcfee000 0x44>;
109        interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
110                     <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
111                     <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
112                     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
113                     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
114                     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
115                     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
116                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
117        interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali",
118                          "tmoi";
119        clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
120        clock-frequency = <100000>;
121        power-domains = <&cpg_clocks>;
122        #address-cells = <1>;
123        #size-cells = <0>;
124    };
125