summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/i2c/i2c-imx.yaml
blob: 810536953177fb344824ff35f7d501930dff5bb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/i2c-imx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX

maintainers:
  - Wolfram Sang <wolfram@the-dreams.de>

properties:
  compatible:
    oneOf:
      - const: fsl,imx1-i2c
      - const: fsl,imx21-i2c
      - const: fsl,vf610-i2c
      - items:
          - const: fsl,imx35-i2c
          - const: fsl,imx1-i2c
      - items:
          - enum:
              - fsl,imx25-i2c
              - fsl,imx27-i2c
              - fsl,imx31-i2c
              - fsl,imx50-i2c
              - fsl,imx51-i2c
              - fsl,imx53-i2c
              - fsl,imx6q-i2c
              - fsl,imx6sl-i2c
              - fsl,imx6sx-i2c
              - fsl,imx6sll-i2c
              - fsl,imx6ul-i2c
              - fsl,imx7s-i2c
              - fsl,imx8mq-i2c
              - fsl,imx8mm-i2c
              - fsl,imx8mn-i2c
              - fsl,imx8mp-i2c
          - const: fsl,imx21-i2c

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    const: ipg

  clock-frequency:
    enum: [ 100000, 400000 ]

  dmas:
    items:
      - description: DMA controller phandle and request line for RX
      - description: DMA controller phandle and request line for TX

  dma-names:
    items:
      - const: rx
      - const: tx

  sda-gpios:
    maxItems: 1

  scl-gpios:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/imx5-clock.h>
    #include <dt-bindings/clock/vf610-clock.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    i2c@83fc4000 {
        compatible = "fsl,imx51-i2c", "fsl,imx21-i2c";
        reg = <0x83fc4000 0x4000>;
        interrupts = <63>;
        clocks = <&clks IMX5_CLK_I2C2_GATE>;
    };

    i2c@40066000 {
        compatible = "fsl,vf610-i2c";
        reg = <0x40066000 0x1000>;
        interrupts = <71 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clks VF610_CLK_I2C0>;
        clock-names = "ipg";
        dmas = <&edma0 0 50>,
               <&edma0 0 51>;
        dma-names = "rx", "tx";
    };