# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/i2c/marvell,mv64xxx-i2c.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Marvell MV64XXX I2C Controller maintainers: - Gregory CLEMENT <gregory.clement@bootlin.com> properties: compatible: oneOf: - const: allwinner,sun4i-a10-i2c - items: - const: allwinner,sun7i-a20-i2c - const: allwinner,sun4i-a10-i2c - const: allwinner,sun6i-a31-i2c - items: - enum: - allwinner,suniv-f1c100s-i2c - allwinner,sun8i-a23-i2c - allwinner,sun8i-a83t-i2c - allwinner,sun8i-v536-i2c - allwinner,sun50i-a64-i2c - allwinner,sun50i-h6-i2c - const: allwinner,sun6i-a31-i2c - description: Allwinner SoCs with offload support items: - enum: - allwinner,sun20i-d1-i2c - allwinner,sun50i-a100-i2c - allwinner,sun50i-h616-i2c - allwinner,sun50i-r329-i2c - const: allwinner,sun8i-v536-i2c - const: allwinner,sun6i-a31-i2c - const: marvell,mv64xxx-i2c - const: marvell,mv78230-i2c - const: marvell,mv78230-a0-i2c description: Only use "marvell,mv78230-a0-i2c" for a very rare, initial version of the SoC which had broken offload support. Linux auto-detects this and sets it appropriately. reg: maxItems: 1 interrupts: maxItems: 1 clocks: minItems: 1 items: - description: Reference clock for the I2C bus - description: Bus clock (Only for Armada 7K/8K) clock-names: minItems: 1 items: - const: core - const: reg description: Mandatory if two clocks are used (only for Armada 7k and 8k). resets: maxItems: 1 dmas: items: - description: RX DMA Channel - description: TX DMA Channel dma-names: items: - const: rx - const: tx dependencies: dmas: [ dma-names ] required: - compatible - reg - interrupts allOf: - $ref: /schemas/i2c/i2c-controller.yaml# - if: properties: compatible: contains: enum: - allwinner,sun4i-a10-i2c - allwinner,sun6i-a31-i2c then: required: - clocks - if: properties: compatible: contains: const: allwinner,sun6i-a31-i2c then: required: - resets unevaluatedProperties: false examples: - | i2c@11000 { compatible = "marvell,mv64xxx-i2c"; reg = <0x11000 0x20>; interrupts = <29>; clock-frequency = <100000>; }; - | i2c@11000 { compatible = "marvell,mv78230-i2c"; reg = <0x11000 0x100>; interrupts = <29>; clock-frequency = <100000>; }; - | i2c@701000 { compatible = "marvell,mv78230-i2c"; reg = <0x701000 0x20>; interrupts = <29>; clock-frequency = <100000>; clock-names = "core", "reg"; clocks = <&core_clock>, <®_clock>; }; ...