0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/i2c/renesas,rmobile-iic.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Renesas R-Mobile I2C Bus Interface (IIC)
0008
0009 maintainers:
0010 - Wolfram Sang <wsa+renesas@sang-engineering.com>
0011
0012 properties:
0013 compatible:
0014 oneOf:
0015 - items:
0016 - enum:
0017 - renesas,iic-r8a73a4 # R-Mobile APE6
0018 - renesas,iic-r8a7740 # R-Mobile A1
0019 - renesas,iic-sh73a0 # SH-Mobile AG5
0020 - const: renesas,rmobile-iic # Generic
0021
0022 - items:
0023 - enum:
0024 - renesas,iic-r8a7742 # RZ/G1H
0025 - renesas,iic-r8a7743 # RZ/G1M
0026 - renesas,iic-r8a7744 # RZ/G1N
0027 - renesas,iic-r8a7745 # RZ/G1E
0028 - renesas,iic-r8a7790 # R-Car H2
0029 - renesas,iic-r8a7791 # R-Car M2-W
0030 - renesas,iic-r8a7792 # R-Car V2H
0031 - renesas,iic-r8a7793 # R-Car M2-N
0032 - renesas,iic-r8a7794 # R-Car E2
0033 - const: renesas,rcar-gen2-iic # R-Car Gen2 and RZ/G1
0034 - const: renesas,rmobile-iic # Generic
0035
0036 - items:
0037 - enum:
0038 - renesas,iic-r8a774a1 # RZ/G2M
0039 - renesas,iic-r8a774b1 # RZ/G2N
0040 - renesas,iic-r8a774c0 # RZ/G2E
0041 - renesas,iic-r8a774e1 # RZ/G2H
0042 - renesas,iic-r8a7795 # R-Car H3
0043 - renesas,iic-r8a7796 # R-Car M3-W
0044 - renesas,iic-r8a77961 # R-Car M3-W+
0045 - renesas,iic-r8a77965 # R-Car M3-N
0046 - renesas,iic-r8a77990 # R-Car E3
0047 - const: renesas,rcar-gen3-iic # R-Car Gen3 and RZ/G2
0048 - const: renesas,rmobile-iic # Generic
0049
0050 reg:
0051 maxItems: 1
0052
0053 interrupts: true
0054
0055 clock-frequency:
0056 description:
0057 Desired I2C bus clock frequency in Hz. The absence of this property
0058 indicates the default frequency 100 kHz.
0059
0060 clocks:
0061 maxItems: 1
0062
0063 power-domains:
0064 maxItems: 1
0065
0066 resets:
0067 maxItems: 1
0068
0069 dmas:
0070 minItems: 2
0071 maxItems: 4
0072 description:
0073 Must contain a list of pairs of references to DMA specifiers, one for
0074 transmission, and one for reception.
0075
0076 dma-names:
0077 minItems: 2
0078 maxItems: 4
0079 items:
0080 enum:
0081 - tx
0082 - rx
0083
0084 required:
0085 - compatible
0086 - reg
0087 - interrupts
0088 - clocks
0089 - power-domains
0090 - '#address-cells'
0091 - '#size-cells'
0092
0093 allOf:
0094 - $ref: /schemas/i2c/i2c-controller.yaml#
0095
0096 - if:
0097 properties:
0098 compatible:
0099 contains:
0100 enum:
0101 - renesas,iic-r8a7740
0102 - renesas,iic-sh73a0
0103 then:
0104 properties:
0105 interrupts:
0106 items:
0107 - description: Arbitration Lost Interrupt (ALI)
0108 - description: Non-acknowledge Detection Interrupt (TACKI)
0109 - description: Wait Interrupt (WAITI)
0110 - description: Data Transmit Enable interrupt (DTEI)
0111 else:
0112 properties:
0113 interrupts:
0114 items:
0115 - description: Single combined interrupt
0116
0117 - if:
0118 properties:
0119 compatible:
0120 contains:
0121 enum:
0122 - renesas,rcar-gen2-iic
0123 - renesas,rcar-gen3-iic
0124 then:
0125 required:
0126 - resets
0127
0128 unevaluatedProperties: false
0129
0130 examples:
0131 - |
0132 #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
0133 #include <dt-bindings/interrupt-controller/arm-gic.h>
0134 #include <dt-bindings/power/r8a7790-sysc.h>
0135
0136 iic0: i2c@e6500000 {
0137 compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
0138 "renesas,rmobile-iic";
0139 reg = <0xe6500000 0x425>;
0140 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
0141 clocks = <&cpg CPG_MOD 318>;
0142 clock-frequency = <400000>;
0143 dmas = <&dmac0 0x61>, <&dmac0 0x62>, <&dmac1 0x61>, <&dmac1 0x62>;
0144 dma-names = "tx", "rx", "tx", "rx";
0145 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0146 resets = <&cpg 318>;
0147 #address-cells = <1>;
0148 #size-cells = <0>;
0149 };