1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/i2c/snps,designware-i2c.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Synopsys DesignWare APB I2C Controller 8 9maintainers: 10 - Jarkko Nikula <jarkko.nikula@linux.intel.com> 11 12allOf: 13 - $ref: /schemas/i2c/i2c-controller.yaml# 14 - if: 15 properties: 16 compatible: 17 not: 18 contains: 19 const: mscc,ocelot-i2c 20 then: 21 properties: 22 reg: 23 maxItems: 1 24 25properties: 26 compatible: 27 oneOf: 28 - description: Generic Synopsys DesignWare I2C controller 29 const: snps,designware-i2c 30 - description: Microsemi Ocelot SoCs I2C controller 31 items: 32 - const: mscc,ocelot-i2c 33 - const: snps,designware-i2c 34 35 reg: 36 minItems: 1 37 items: 38 - description: DW APB I2C controller memory mapped registers 39 - description: | 40 ICPU_CFG:TWI_DELAY registers to setup the SDA hold time. 41 This registers are specific to the Ocelot I2C-controller. 42 43 interrupts: 44 maxItems: 1 45 46 clocks: 47 minItems: 1 48 items: 49 - description: I2C controller reference clock source 50 - description: APB interface clock source 51 52 clock-names: 53 minItems: 1 54 items: 55 - const: ref 56 - const: pclk 57 58 resets: 59 maxItems: 1 60 61 clock-frequency: 62 description: Desired I2C bus clock frequency in Hz 63 enum: [100000, 400000, 1000000, 3400000] 64 default: 400000 65 66 i2c-sda-hold-time-ns: 67 maxItems: 1 68 description: | 69 The property should contain the SDA hold time in nanoseconds. This option 70 is only supported in hardware blocks version 1.11a or newer or on 71 Microsemi SoCs. 72 73 i2c-scl-falling-time-ns: 74 maxItems: 1 75 description: | 76 The property should contain the SCL falling time in nanoseconds. 77 This value is used to compute the tLOW period. 78 default: 300 79 80 i2c-sda-falling-time-ns: 81 maxItems: 1 82 description: | 83 The property should contain the SDA falling time in nanoseconds. 84 This value is used to compute the tHIGH period. 85 default: 300 86 87 dmas: 88 items: 89 - description: TX DMA Channel 90 - description: RX DMA Channel 91 92 dma-names: 93 items: 94 - const: tx 95 - const: rx 96 97unevaluatedProperties: false 98 99required: 100 - compatible 101 - reg 102 - "#address-cells" 103 - "#size-cells" 104 - interrupts 105 106examples: 107 - | 108 i2c@f0000 { 109 compatible = "snps,designware-i2c"; 110 reg = <0xf0000 0x1000>; 111 #address-cells = <1>; 112 #size-cells = <0>; 113 interrupts = <11>; 114 clock-frequency = <400000>; 115 }; 116 - | 117 i2c@1120000 { 118 compatible = "snps,designware-i2c"; 119 reg = <0x1120000 0x1000>; 120 #address-cells = <1>; 121 #size-cells = <0>; 122 interrupts = <12 1>; 123 clock-frequency = <400000>; 124 i2c-sda-hold-time-ns = <300>; 125 i2c-sda-falling-time-ns = <300>; 126 i2c-scl-falling-time-ns = <300>; 127 }; 128 - | 129 i2c@2000 { 130 compatible = "snps,designware-i2c"; 131 reg = <0x2000 0x100>; 132 #address-cells = <1>; 133 #size-cells = <0>; 134 clock-frequency = <400000>; 135 clocks = <&i2cclk>; 136 interrupts = <0>; 137 138 eeprom@64 { 139 compatible = "linux,slave-24c02"; 140 reg = <0x40000064>; 141 }; 142 }; 143 - | 144 i2c@100400 { 145 compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 146 reg = <0x100400 0x100>, <0x198 0x8>; 147 pinctrl-0 = <&i2c_pins>; 148 pinctrl-names = "default"; 149 #address-cells = <1>; 150 #size-cells = <0>; 151 interrupts = <8>; 152 clocks = <&ahb_clk>; 153 }; 154... 155