Documentation / devicetree / bindings / i2c / marvell,mv64xxx-i2c.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
# 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>, <&reg_clock>;
    };

...