xref: /linux/Documentation/devicetree/bindings/i2c/i2c-imx.yaml (revision 7f4f3b14e8079ecde096bd734af10e30d40c27b7)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/i2c-imx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX
8
9maintainers:
10  - Oleksij Rempel <o.rempel@pengutronix.de>
11
12allOf:
13  - $ref: /schemas/i2c/i2c-controller.yaml#
14
15properties:
16  compatible:
17    oneOf:
18      - const: fsl,imx1-i2c
19      - const: fsl,imx21-i2c
20      - const: fsl,vf610-i2c
21      - const: nxp,s32g2-i2c
22      - items:
23          - enum:
24              - fsl,ls1012a-i2c
25              - fsl,ls1021a-i2c
26              - fsl,ls1028a-i2c
27              - fsl,ls1043a-i2c
28              - fsl,ls1046a-i2c
29              - fsl,ls1088a-i2c
30              - fsl,ls208xa-i2c
31              - fsl,lx2160a-i2c
32          - const: fsl,vf610-i2c
33      - items:
34          - const: fsl,imx35-i2c
35          - const: fsl,imx1-i2c
36      - items:
37          - const: fsl,imx7d-i2c
38          - const: fsl,imx21-i2c
39      - items:
40          - enum:
41              - fsl,imx25-i2c
42              - fsl,imx27-i2c
43              - fsl,imx31-i2c
44              - fsl,imx50-i2c
45              - fsl,imx51-i2c
46              - fsl,imx53-i2c
47              - fsl,imx6q-i2c
48              - fsl,imx6sl-i2c
49              - fsl,imx6sx-i2c
50              - fsl,imx6sll-i2c
51              - fsl,imx6ul-i2c
52              - fsl,imx7s-i2c
53              - fsl,imx8mq-i2c
54              - fsl,imx8mm-i2c
55              - fsl,imx8mn-i2c
56              - fsl,imx8mp-i2c
57          - const: fsl,imx21-i2c
58      - items:
59          - const: nxp,s32g3-i2c
60          - const: nxp,s32g2-i2c
61
62  reg:
63    maxItems: 1
64
65  interrupts:
66    maxItems: 1
67
68  clocks:
69    maxItems: 1
70
71  clock-names:
72    const: ipg
73
74  clock-frequency:
75    minimum: 1
76    default: 100000
77    maximum: 400000
78
79  dmas:
80    items:
81      - description: DMA controller phandle and request line for RX
82      - description: DMA controller phandle and request line for TX
83
84  dma-names:
85    items:
86      - const: rx
87      - const: tx
88
89  sda-gpios:
90    maxItems: 1
91
92  scl-gpios:
93    maxItems: 1
94
95required:
96  - compatible
97  - reg
98  - interrupts
99  - clocks
100
101unevaluatedProperties: false
102
103examples:
104  - |
105    #include <dt-bindings/clock/imx5-clock.h>
106    #include <dt-bindings/interrupt-controller/irq.h>
107
108    i2c@83fc4000 {
109        compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
110        reg = <0x83fc4000 0x4000>;
111        interrupts = <63>;
112        clocks = <&clks IMX5_CLK_I2C2_GATE>;
113    };
114
115  - |
116    #include <dt-bindings/clock/vf610-clock.h>
117
118    i2c@40066000 {
119        compatible = "fsl,vf610-i2c";
120        reg = <0x40066000 0x1000>;
121        interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
122        clocks = <&clks VF610_CLK_I2C0>;
123        clock-names = "ipg";
124        dmas = <&edma0 0 50>,
125               <&edma0 0 51>;
126        dma-names = "rx", "tx";
127    };
128