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 - description: Baikal-T1 SoC System I2C controller 35 const: baikal,bt1-sys-i2c 36 - description: T-HEAD TH1520 SoCs I2C controller 37 items: 38 - const: thead,th1520-i2c 39 - const: snps,designware-i2c 40 41 reg: 42 minItems: 1 43 items: 44 - description: DW APB I2C controller memory mapped registers 45 - description: | 46 ICPU_CFG:TWI_DELAY registers to setup the SDA hold time. 47 This registers are specific to the Ocelot I2C-controller. 48 49 interrupts: 50 maxItems: 1 51 52 clocks: 53 minItems: 1 54 items: 55 - description: I2C controller reference clock source 56 - description: APB interface clock source 57 58 clock-names: 59 minItems: 1 60 items: 61 - const: ref 62 - const: pclk 63 64 resets: 65 maxItems: 1 66 67 clock-frequency: 68 description: Desired I2C bus clock frequency in Hz 69 enum: [100000, 400000, 1000000, 3400000] 70 default: 400000 71 72 i2c-sda-hold-time-ns: 73 description: | 74 The property should contain the SDA hold time in nanoseconds. This option 75 is only supported in hardware blocks version 1.11a or newer or on 76 Microsemi SoCs. 77 78 i2c-scl-falling-time-ns: 79 description: | 80 The property should contain the SCL falling time in nanoseconds. 81 This value is used to compute the tLOW period. 82 default: 300 83 84 i2c-sda-falling-time-ns: 85 description: | 86 The property should contain the SDA falling time in nanoseconds. 87 This value is used to compute the tHIGH period. 88 default: 300 89 90 dmas: 91 items: 92 - description: TX DMA Channel 93 - description: RX DMA Channel 94 95 dma-names: 96 items: 97 - const: tx 98 - const: rx 99 100 snps,bus-capacitance-pf: 101 $ref: /schemas/types.yaml#/definitions/uint32 102 description: 103 This property indicates the bus capacitance in picofarads (pF). 104 This value is used to compute the tHIGH and tLOW periods for high speed 105 mode. 106 enum: [100, 400] 107 default: 100 108 109 snps,clk-freq-optimized: 110 description: 111 This property indicates whether the hardware reduce its clock frequency 112 by reducing the internal latency required to generate the high period and 113 low period of SCL line. 114 type: boolean 115 116unevaluatedProperties: false 117 118required: 119 - compatible 120 - reg 121 - interrupts 122 123examples: 124 - | 125 i2c@f0000 { 126 compatible = "snps,designware-i2c"; 127 reg = <0xf0000 0x1000>; 128 interrupts = <11>; 129 clock-frequency = <400000>; 130 }; 131 - | 132 i2c@1120000 { 133 compatible = "snps,designware-i2c"; 134 reg = <0x1120000 0x1000>; 135 interrupts = <12 1>; 136 clock-frequency = <400000>; 137 i2c-sda-hold-time-ns = <300>; 138 i2c-sda-falling-time-ns = <300>; 139 i2c-scl-falling-time-ns = <300>; 140 snps,bus-capacitance-pf = <400>; 141 snps,clk-freq-optimized; 142 }; 143 - | 144 i2c@2000 { 145 compatible = "snps,designware-i2c"; 146 reg = <0x2000 0x100>; 147 #address-cells = <1>; 148 #size-cells = <0>; 149 clock-frequency = <400000>; 150 clocks = <&i2cclk>; 151 interrupts = <0>; 152 153 eeprom@64 { 154 compatible = "atmel,24c02"; 155 reg = <0x64>; 156 }; 157 }; 158 - | 159 i2c@100400 { 160 compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 161 reg = <0x100400 0x100>, <0x198 0x8>; 162 pinctrl-0 = <&i2c_pins>; 163 pinctrl-names = "default"; 164 interrupts = <8>; 165 clocks = <&ahb_clk>; 166 }; 167... 168