xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/i2c/marvell,mv64xxx-i2c.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: Marvell MV64XXX I2C Controller Device Tree Bindings
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Gregory CLEMENT <gregory.clement@bootlin.com>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunproperties:
13*4882a593Smuzhiyun  compatible:
14*4882a593Smuzhiyun    oneOf:
15*4882a593Smuzhiyun      - const: allwinner,sun4i-a10-i2c
16*4882a593Smuzhiyun      - items:
17*4882a593Smuzhiyun          - const: allwinner,sun7i-a20-i2c
18*4882a593Smuzhiyun          - const: allwinner,sun4i-a10-i2c
19*4882a593Smuzhiyun      - const: allwinner,sun6i-a31-i2c
20*4882a593Smuzhiyun      - items:
21*4882a593Smuzhiyun          - const: allwinner,sun8i-a23-i2c
22*4882a593Smuzhiyun          - const: allwinner,sun6i-a31-i2c
23*4882a593Smuzhiyun      - items:
24*4882a593Smuzhiyun          - const: allwinner,sun8i-a83t-i2c
25*4882a593Smuzhiyun          - const: allwinner,sun6i-a31-i2c
26*4882a593Smuzhiyun      - items:
27*4882a593Smuzhiyun          - const: allwinner,sun50i-a64-i2c
28*4882a593Smuzhiyun          - const: allwinner,sun6i-a31-i2c
29*4882a593Smuzhiyun      - items:
30*4882a593Smuzhiyun          - const: allwinner,sun50i-a100-i2c
31*4882a593Smuzhiyun          - const: allwinner,sun6i-a31-i2c
32*4882a593Smuzhiyun      - items:
33*4882a593Smuzhiyun          - const: allwinner,sun50i-h6-i2c
34*4882a593Smuzhiyun          - const: allwinner,sun6i-a31-i2c
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun      - const: marvell,mv64xxx-i2c
37*4882a593Smuzhiyun      - const: marvell,mv78230-i2c
38*4882a593Smuzhiyun      - const: marvell,mv78230-a0-i2c
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun    description:
41*4882a593Smuzhiyun      Only use "marvell,mv78230-a0-i2c" for a very rare, initial
42*4882a593Smuzhiyun      version of the SoC which had broken offload support. Linux
43*4882a593Smuzhiyun      auto-detects this and sets it appropriately.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun  reg:
46*4882a593Smuzhiyun    maxItems: 1
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun  interrupts:
49*4882a593Smuzhiyun    maxItems: 1
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun  clocks:
52*4882a593Smuzhiyun    minItems: 1
53*4882a593Smuzhiyun    maxItems: 2
54*4882a593Smuzhiyun    items:
55*4882a593Smuzhiyun      - description: Reference clock for the I2C bus
56*4882a593Smuzhiyun      - description: Bus clock (Only for Armada 7K/8K)
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun  clock-names:
59*4882a593Smuzhiyun    minItems: 1
60*4882a593Smuzhiyun    maxItems: 2
61*4882a593Smuzhiyun    items:
62*4882a593Smuzhiyun      - const: core
63*4882a593Smuzhiyun      - const: reg
64*4882a593Smuzhiyun    description:
65*4882a593Smuzhiyun      Mandatory if two clocks are used (only for Armada 7k and 8k).
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun  resets:
68*4882a593Smuzhiyun    maxItems: 1
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunrequired:
71*4882a593Smuzhiyun  - compatible
72*4882a593Smuzhiyun  - reg
73*4882a593Smuzhiyun  - interrupts
74*4882a593Smuzhiyun
75*4882a593SmuzhiyunallOf:
76*4882a593Smuzhiyun  - $ref: /schemas/i2c/i2c-controller.yaml#
77*4882a593Smuzhiyun  - if:
78*4882a593Smuzhiyun      properties:
79*4882a593Smuzhiyun        compatible:
80*4882a593Smuzhiyun          contains:
81*4882a593Smuzhiyun            enum:
82*4882a593Smuzhiyun              - allwinner,sun4i-a10-i2c
83*4882a593Smuzhiyun              - allwinner,sun6i-a31-i2c
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun    then:
86*4882a593Smuzhiyun      required:
87*4882a593Smuzhiyun        - clocks
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun  - if:
90*4882a593Smuzhiyun      properties:
91*4882a593Smuzhiyun        compatible:
92*4882a593Smuzhiyun          contains:
93*4882a593Smuzhiyun            const: allwinner,sun6i-a31-i2c
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun    then:
96*4882a593Smuzhiyun      required:
97*4882a593Smuzhiyun        - resets
98*4882a593Smuzhiyun
99*4882a593SmuzhiyununevaluatedProperties: false
100*4882a593Smuzhiyun
101*4882a593Smuzhiyunexamples:
102*4882a593Smuzhiyun  - |
103*4882a593Smuzhiyun    i2c@11000 {
104*4882a593Smuzhiyun        compatible = "marvell,mv64xxx-i2c";
105*4882a593Smuzhiyun        reg = <0x11000 0x20>;
106*4882a593Smuzhiyun        interrupts = <29>;
107*4882a593Smuzhiyun        clock-frequency = <100000>;
108*4882a593Smuzhiyun    };
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun  - |
111*4882a593Smuzhiyun    i2c@11000 {
112*4882a593Smuzhiyun        compatible = "marvell,mv78230-i2c";
113*4882a593Smuzhiyun        reg = <0x11000 0x100>;
114*4882a593Smuzhiyun        interrupts = <29>;
115*4882a593Smuzhiyun        clock-frequency = <100000>;
116*4882a593Smuzhiyun    };
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun  - |
119*4882a593Smuzhiyun    i2c@701000 {
120*4882a593Smuzhiyun        compatible = "marvell,mv78230-i2c";
121*4882a593Smuzhiyun        reg = <0x701000 0x20>;
122*4882a593Smuzhiyun        interrupts = <29>;
123*4882a593Smuzhiyun        clock-frequency = <100000>;
124*4882a593Smuzhiyun        clock-names = "core", "reg";
125*4882a593Smuzhiyun        clocks = <&core_clock>, <&reg_clock>;
126*4882a593Smuzhiyun    };
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun...
129