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#
24 i2c-scl-rising-time-ns:
27 i2c-scl-falling-time-ns:
42 enum: [100000, 400000]
57 - description: interrupt ID for I2C event
58 - description: interrupt ID for I2C error
73 - description: RX DMA Channel phandle
74 - description: TX DMA Channel phandle
82 description: Desired I2C bus clock frequency in Hz. If not specified,
83 the default 100 kHz frequency will be used.
84 For STM32F7, STM32H7 and STM32MP1 SoCs, if timing parameters
85 match, the bus clock frequency can be from 1Hz to 1MHz.
91 description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
92 Plus speed is selected by slave.
93 $ref: "/schemas/types.yaml#/definitions/phandle-array"
96 - description: phandle to syscfg
97 - description: register offset within syscfg
98 - description: register bitmask for FMP bit
109 unevaluatedProperties: false
113 #include <dt-bindings/mfd/stm32f7-rcc.h>
114 #include <dt-bindings/clock/stm32fx-clock.h>
115 //Example 1 (with st,stm32f4-i2c compatible)
117 compatible = "st,stm32f4-i2c";
118 #address-cells = <1>;
120 reg = <0x40005400 0x400>;
124 clocks = <&rcc 0 149>;
128 #include <dt-bindings/mfd/stm32f7-rcc.h>
129 #include <dt-bindings/clock/stm32fx-clock.h>
130 //Example 2 (with st,stm32f7-i2c compatible)
132 compatible = "st,stm32f7-i2c";
133 #address-cells = <1>;
135 reg = <0x40005800 0x400>;
138 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
139 clocks = <&rcc 1 CLK_I2C1>;
143 #include <dt-bindings/mfd/stm32f7-rcc.h>
144 #include <dt-bindings/clock/stm32fx-clock.h>
145 //Example 3 (with st,stm32mp15-i2c compatible on stm32mp)
146 #include <dt-bindings/interrupt-controller/arm-gic.h>
147 #include <dt-bindings/clock/stm32mp1-clks.h>
148 #include <dt-bindings/reset/stm32mp1-resets.h>
150 compatible = "st,stm32mp15-i2c";
151 #address-cells = <1>;
153 reg = <0x40013000 0x400>;
154 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
155 <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
156 clocks = <&rcc I2C2_K>;
157 resets = <&rcc I2C2_R>;
158 i2c-scl-rising-time-ns = <185>;
159 i2c-scl-falling-time-ns = <20>;
160 st,syscfg-fmp = <&syscfg 0x4 0x2>;