1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/i2c/st,stm32-i2c.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: I2C controller embedded in STMicroelectronics STM32 I2C platform
10 - Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
13 - $ref: /schemas/i2c/i2c-controller.yaml#
25 i2c-scl-rising-time-ns:
28 i2c-scl-falling-time-ns:
43 enum: [100000, 400000]
83 - description: interrupt ID for I2C event
84 - description: interrupt ID for I2C error
101 - description: RX DMA Channel phandle
102 - description: TX DMA Channel phandle
110 description: Desired I2C bus clock frequency in Hz. If not specified,
111 the default 100 kHz frequency will be used.
112 For STM32F7, STM32H7 and STM32MP1 SoCs, if timing parameters
113 match, the bus clock frequency can be from 1Hz to 1MHz.
119 description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
120 Plus speed is selected by slave.
121 $ref: /schemas/types.yaml#/definitions/phandle-array
124 - description: phandle to syscfg
125 - description: register offset within syscfg
126 - description: register bitmask for FMP bit
141 unevaluatedProperties: false
145 #include <dt-bindings/mfd/stm32f7-rcc.h>
146 #include <dt-bindings/clock/stm32fx-clock.h>
147 //Example 1 (with st,stm32f4-i2c compatible)
149 compatible = "st,stm32f4-i2c";
150 reg = <0x40005400 0x400>;
154 clocks = <&rcc 0 149>;
155 #address-cells = <1>;
160 #include <dt-bindings/mfd/stm32f7-rcc.h>
161 #include <dt-bindings/clock/stm32fx-clock.h>
162 //Example 2 (with st,stm32f7-i2c compatible)
164 compatible = "st,stm32f7-i2c";
165 reg = <0x40005800 0x400>;
168 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
169 clocks = <&rcc 1 CLK_I2C1>;
170 #address-cells = <1>;
175 #include <dt-bindings/mfd/stm32f7-rcc.h>
176 #include <dt-bindings/clock/stm32fx-clock.h>
177 //Example 3 (with st,stm32mp15-i2c compatible on stm32mp)
178 #include <dt-bindings/interrupt-controller/arm-gic.h>
179 #include <dt-bindings/clock/stm32mp1-clks.h>
180 #include <dt-bindings/reset/stm32mp1-resets.h>
182 compatible = "st,stm32mp15-i2c";
183 reg = <0x40013000 0x400>;
184 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
185 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
186 clocks = <&rcc I2C2_K>;
187 resets = <&rcc I2C2_R>;
188 i2c-scl-rising-time-ns = <185>;
189 i2c-scl-falling-time-ns = <20>;
190 st,syscfg-fmp = <&syscfg 0x4 0x2>;
191 #address-cells = <1>;