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      - items:
22          - enum:
23              - fsl,ls1012a-i2c
24              - fsl,ls1021a-i2c
25              - fsl,ls1028a-i2c
26              - fsl,ls1043a-i2c
27              - fsl,ls1046a-i2c
28              - fsl,ls1088a-i2c
29              - fsl,ls208xa-i2c
30              - fsl,lx2160a-i2c
31          - const: fsl,vf610-i2c
32      - items:
33          - const: fsl,imx35-i2c
34          - const: fsl,imx1-i2c
35      - items:
36          - const: fsl,imx7d-i2c
37          - const: fsl,imx21-i2c
38      - items:
39          - enum:
40              - fsl,imx25-i2c
41              - fsl,imx27-i2c
42              - fsl,imx31-i2c
43              - fsl,imx50-i2c
44              - fsl,imx51-i2c
45              - fsl,imx53-i2c
46              - fsl,imx6q-i2c
47              - fsl,imx6sl-i2c
48              - fsl,imx6sx-i2c
49              - fsl,imx6sll-i2c
50              - fsl,imx6ul-i2c
51              - fsl,imx7s-i2c
52              - fsl,imx8mq-i2c
53              - fsl,imx8mm-i2c
54              - fsl,imx8mn-i2c
55              - fsl,imx8mp-i2c
56          - const: fsl,imx21-i2c
57
58  reg:
59    maxItems: 1
60
61  interrupts:
62    maxItems: 1
63
64  clocks:
65    maxItems: 1
66
67  clock-names:
68    const: ipg
69
70  clock-frequency:
71    minimum: 1
72    default: 100000
73    maximum: 400000
74
75  dmas:
76    items:
77      - description: DMA controller phandle and request line for RX
78      - description: DMA controller phandle and request line for TX
79
80  dma-names:
81    items:
82      - const: rx
83      - const: tx
84
85  sda-gpios:
86    maxItems: 1
87
88  scl-gpios:
89    maxItems: 1
90
91required:
92  - compatible
93  - reg
94  - interrupts
95  - clocks
96
97unevaluatedProperties: false
98
99examples:
100  - |
101    #include <dt-bindings/clock/imx5-clock.h>
102    #include <dt-bindings/interrupt-controller/irq.h>
103
104    i2c@83fc4000 {
105        compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
106        reg = <0x83fc4000 0x4000>;
107        interrupts = <63>;
108        clocks = <&clks IMX5_CLK_I2C2_GATE>;
109    };
110
111  - |
112    #include <dt-bindings/clock/vf610-clock.h>
113
114    i2c@40066000 {
115        compatible = "fsl,vf610-i2c";
116        reg = <0x40066000 0x1000>;
117        interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
118        clocks = <&clks VF610_CLK_I2C0>;
119        clock-names = "ipg";
120        dmas = <&edma0 0 50>,
121               <&edma0 0 51>;
122        dma-names = "rx", "tx";
123    };
124