0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/i2c/marvell,mv64xxx-i2c.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Marvell MV64XXX I2C Controller Device Tree Bindings
0008
0009 maintainers:
0010 - Gregory CLEMENT <gregory.clement@bootlin.com>
0011
0012 properties:
0013 compatible:
0014 oneOf:
0015 - const: allwinner,sun4i-a10-i2c
0016 - items:
0017 - const: allwinner,sun7i-a20-i2c
0018 - const: allwinner,sun4i-a10-i2c
0019 - const: allwinner,sun6i-a31-i2c
0020 - items:
0021 - enum:
0022 - allwinner,sun8i-a23-i2c
0023 - allwinner,sun8i-a83t-i2c
0024 - allwinner,sun8i-v536-i2c
0025 - allwinner,sun50i-a64-i2c
0026 - allwinner,sun50i-h6-i2c
0027 - const: allwinner,sun6i-a31-i2c
0028 - description: Allwinner SoCs with offload support
0029 items:
0030 - enum:
0031 - allwinner,sun20i-d1-i2c
0032 - allwinner,sun50i-a100-i2c
0033 - allwinner,sun50i-h616-i2c
0034 - allwinner,sun50i-r329-i2c
0035 - const: allwinner,sun8i-v536-i2c
0036 - const: allwinner,sun6i-a31-i2c
0037 - const: marvell,mv64xxx-i2c
0038 - const: marvell,mv78230-i2c
0039 - const: marvell,mv78230-a0-i2c
0040
0041 description:
0042 Only use "marvell,mv78230-a0-i2c" for a very rare, initial
0043 version of the SoC which had broken offload support. Linux
0044 auto-detects this and sets it appropriately.
0045
0046 reg:
0047 maxItems: 1
0048
0049 interrupts:
0050 maxItems: 1
0051
0052 clocks:
0053 minItems: 1
0054 items:
0055 - description: Reference clock for the I2C bus
0056 - description: Bus clock (Only for Armada 7K/8K)
0057
0058 clock-names:
0059 minItems: 1
0060 items:
0061 - const: core
0062 - const: reg
0063 description:
0064 Mandatory if two clocks are used (only for Armada 7k and 8k).
0065
0066 resets:
0067 maxItems: 1
0068
0069 required:
0070 - compatible
0071 - reg
0072 - interrupts
0073
0074 allOf:
0075 - $ref: /schemas/i2c/i2c-controller.yaml#
0076 - if:
0077 properties:
0078 compatible:
0079 contains:
0080 enum:
0081 - allwinner,sun4i-a10-i2c
0082 - allwinner,sun6i-a31-i2c
0083
0084 then:
0085 required:
0086 - clocks
0087
0088 - if:
0089 properties:
0090 compatible:
0091 contains:
0092 const: allwinner,sun6i-a31-i2c
0093
0094 then:
0095 required:
0096 - resets
0097
0098 unevaluatedProperties: false
0099
0100 examples:
0101 - |
0102 i2c@11000 {
0103 compatible = "marvell,mv64xxx-i2c";
0104 reg = <0x11000 0x20>;
0105 interrupts = <29>;
0106 clock-frequency = <100000>;
0107 };
0108
0109 - |
0110 i2c@11000 {
0111 compatible = "marvell,mv78230-i2c";
0112 reg = <0x11000 0x100>;
0113 interrupts = <29>;
0114 clock-frequency = <100000>;
0115 };
0116
0117 - |
0118 i2c@701000 {
0119 compatible = "marvell,mv78230-i2c";
0120 reg = <0x701000 0x20>;
0121 interrupts = <29>;
0122 clock-frequency = <100000>;
0123 clock-names = "core", "reg";
0124 clocks = <&core_clock>, <®_clock>;
0125 };
0126
0127 ...