162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/i2c/marvell,mv64xxx-i2c.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Marvell MV64XXX I2C Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Gregory CLEMENT <gregory.clement@bootlin.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  compatible:
1462306a36Sopenharmony_ci    oneOf:
1562306a36Sopenharmony_ci      - const: allwinner,sun4i-a10-i2c
1662306a36Sopenharmony_ci      - items:
1762306a36Sopenharmony_ci          - const: allwinner,sun7i-a20-i2c
1862306a36Sopenharmony_ci          - const: allwinner,sun4i-a10-i2c
1962306a36Sopenharmony_ci      - const: allwinner,sun6i-a31-i2c
2062306a36Sopenharmony_ci      - items:
2162306a36Sopenharmony_ci          - enum:
2262306a36Sopenharmony_ci              - allwinner,suniv-f1c100s-i2c
2362306a36Sopenharmony_ci              - allwinner,sun8i-a23-i2c
2462306a36Sopenharmony_ci              - allwinner,sun8i-a83t-i2c
2562306a36Sopenharmony_ci              - allwinner,sun8i-v536-i2c
2662306a36Sopenharmony_ci              - allwinner,sun50i-a64-i2c
2762306a36Sopenharmony_ci              - allwinner,sun50i-h6-i2c
2862306a36Sopenharmony_ci          - const: allwinner,sun6i-a31-i2c
2962306a36Sopenharmony_ci      - description: Allwinner SoCs with offload support
3062306a36Sopenharmony_ci        items:
3162306a36Sopenharmony_ci          - enum:
3262306a36Sopenharmony_ci              - allwinner,sun20i-d1-i2c
3362306a36Sopenharmony_ci              - allwinner,sun50i-a100-i2c
3462306a36Sopenharmony_ci              - allwinner,sun50i-h616-i2c
3562306a36Sopenharmony_ci              - allwinner,sun50i-r329-i2c
3662306a36Sopenharmony_ci          - const: allwinner,sun8i-v536-i2c
3762306a36Sopenharmony_ci          - const: allwinner,sun6i-a31-i2c
3862306a36Sopenharmony_ci      - const: marvell,mv64xxx-i2c
3962306a36Sopenharmony_ci      - const: marvell,mv78230-i2c
4062306a36Sopenharmony_ci      - const: marvell,mv78230-a0-i2c
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci    description:
4362306a36Sopenharmony_ci      Only use "marvell,mv78230-a0-i2c" for a very rare, initial
4462306a36Sopenharmony_ci      version of the SoC which had broken offload support. Linux
4562306a36Sopenharmony_ci      auto-detects this and sets it appropriately.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci  reg:
4862306a36Sopenharmony_ci    maxItems: 1
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  interrupts:
5162306a36Sopenharmony_ci    maxItems: 1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  clocks:
5462306a36Sopenharmony_ci    minItems: 1
5562306a36Sopenharmony_ci    items:
5662306a36Sopenharmony_ci      - description: Reference clock for the I2C bus
5762306a36Sopenharmony_ci      - description: Bus clock (Only for Armada 7K/8K)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  clock-names:
6062306a36Sopenharmony_ci    minItems: 1
6162306a36Sopenharmony_ci    items:
6262306a36Sopenharmony_ci      - const: core
6362306a36Sopenharmony_ci      - const: reg
6462306a36Sopenharmony_ci    description:
6562306a36Sopenharmony_ci      Mandatory if two clocks are used (only for Armada 7k and 8k).
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci  resets:
6862306a36Sopenharmony_ci    maxItems: 1
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  dmas:
7162306a36Sopenharmony_ci    items:
7262306a36Sopenharmony_ci      - description: RX DMA Channel
7362306a36Sopenharmony_ci      - description: TX DMA Channel
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  dma-names:
7662306a36Sopenharmony_ci    items:
7762306a36Sopenharmony_ci      - const: rx
7862306a36Sopenharmony_ci      - const: tx
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_cidependencies:
8162306a36Sopenharmony_ci  dmas: [ dma-names ]
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_cirequired:
8462306a36Sopenharmony_ci  - compatible
8562306a36Sopenharmony_ci  - reg
8662306a36Sopenharmony_ci  - interrupts
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciallOf:
8962306a36Sopenharmony_ci  - $ref: /schemas/i2c/i2c-controller.yaml#
9062306a36Sopenharmony_ci  - if:
9162306a36Sopenharmony_ci      properties:
9262306a36Sopenharmony_ci        compatible:
9362306a36Sopenharmony_ci          contains:
9462306a36Sopenharmony_ci            enum:
9562306a36Sopenharmony_ci              - allwinner,sun4i-a10-i2c
9662306a36Sopenharmony_ci              - allwinner,sun6i-a31-i2c
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci    then:
9962306a36Sopenharmony_ci      required:
10062306a36Sopenharmony_ci        - clocks
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci  - if:
10362306a36Sopenharmony_ci      properties:
10462306a36Sopenharmony_ci        compatible:
10562306a36Sopenharmony_ci          contains:
10662306a36Sopenharmony_ci            const: allwinner,sun6i-a31-i2c
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci    then:
10962306a36Sopenharmony_ci      required:
11062306a36Sopenharmony_ci        - resets
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciunevaluatedProperties: false
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ciexamples:
11562306a36Sopenharmony_ci  - |
11662306a36Sopenharmony_ci    i2c@11000 {
11762306a36Sopenharmony_ci        compatible = "marvell,mv64xxx-i2c";
11862306a36Sopenharmony_ci        reg = <0x11000 0x20>;
11962306a36Sopenharmony_ci        interrupts = <29>;
12062306a36Sopenharmony_ci        clock-frequency = <100000>;
12162306a36Sopenharmony_ci    };
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci  - |
12462306a36Sopenharmony_ci    i2c@11000 {
12562306a36Sopenharmony_ci        compatible = "marvell,mv78230-i2c";
12662306a36Sopenharmony_ci        reg = <0x11000 0x100>;
12762306a36Sopenharmony_ci        interrupts = <29>;
12862306a36Sopenharmony_ci        clock-frequency = <100000>;
12962306a36Sopenharmony_ci    };
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci  - |
13262306a36Sopenharmony_ci    i2c@701000 {
13362306a36Sopenharmony_ci        compatible = "marvell,mv78230-i2c";
13462306a36Sopenharmony_ci        reg = <0x701000 0x20>;
13562306a36Sopenharmony_ci        interrupts = <29>;
13662306a36Sopenharmony_ci        clock-frequency = <100000>;
13762306a36Sopenharmony_ci        clock-names = "core", "reg";
13862306a36Sopenharmony_ci        clocks = <&core_clock>, <&reg_clock>;
13962306a36Sopenharmony_ci    };
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci...
142