1f33dabf5SAlain Volmat# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2f33dabf5SAlain Volmat%YAML 1.2 3f33dabf5SAlain Volmat--- 4f33dabf5SAlain Volmat$id: http://devicetree.org/schemas/i2c/st,stm32-i2c.yaml# 5f33dabf5SAlain Volmat$schema: http://devicetree.org/meta-schemas/core.yaml# 6f33dabf5SAlain Volmat 7f33dabf5SAlain Volmattitle: I2C controller embedded in STMicroelectronics STM32 I2C platform 8f33dabf5SAlain Volmat 9f33dabf5SAlain Volmatmaintainers: 10f4eedebdSPatrice Chotard - Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com> 11f33dabf5SAlain Volmat 12f33dabf5SAlain VolmatallOf: 13f33dabf5SAlain Volmat - $ref: /schemas/i2c/i2c-controller.yaml# 14f33dabf5SAlain Volmat - if: 15f33dabf5SAlain Volmat properties: 16f33dabf5SAlain Volmat compatible: 17f33dabf5SAlain Volmat contains: 18f33dabf5SAlain Volmat enum: 19f33dabf5SAlain Volmat - st,stm32f7-i2c 20c80cb510SAlain Volmat - st,stm32mp13-i2c 21d074684aSAlain Volmat - st,stm32mp15-i2c 22f33dabf5SAlain Volmat then: 23f33dabf5SAlain Volmat properties: 24f33dabf5SAlain Volmat i2c-scl-rising-time-ns: 25f33dabf5SAlain Volmat default: 25 26f33dabf5SAlain Volmat 27f33dabf5SAlain Volmat i2c-scl-falling-time-ns: 28f33dabf5SAlain Volmat default: 10 29b1809ee9SRob Herring else: 30b1809ee9SRob Herring properties: 31b1809ee9SRob Herring st,syscfg-fmp: false 32f33dabf5SAlain Volmat 33f33dabf5SAlain Volmat - if: 34f33dabf5SAlain Volmat properties: 35f33dabf5SAlain Volmat compatible: 36f33dabf5SAlain Volmat contains: 37f33dabf5SAlain Volmat enum: 38f33dabf5SAlain Volmat - st,stm32f4-i2c 39f33dabf5SAlain Volmat then: 40f33dabf5SAlain Volmat properties: 41f33dabf5SAlain Volmat clock-frequency: 42f33dabf5SAlain Volmat enum: [100000, 400000] 43f33dabf5SAlain Volmat 44f33dabf5SAlain Volmatproperties: 45f33dabf5SAlain Volmat compatible: 46f33dabf5SAlain Volmat enum: 47f33dabf5SAlain Volmat - st,stm32f4-i2c 48f33dabf5SAlain Volmat - st,stm32f7-i2c 49c80cb510SAlain Volmat - st,stm32mp13-i2c 50d074684aSAlain Volmat - st,stm32mp15-i2c 51f33dabf5SAlain Volmat 52f33dabf5SAlain Volmat reg: 53f33dabf5SAlain Volmat maxItems: 1 54f33dabf5SAlain Volmat 55f33dabf5SAlain Volmat interrupts: 56f33dabf5SAlain Volmat items: 57f33dabf5SAlain Volmat - description: interrupt ID for I2C event 58f33dabf5SAlain Volmat - description: interrupt ID for I2C error 59f33dabf5SAlain Volmat 60f938a529SMarek Vasut interrupt-names: 61f938a529SMarek Vasut items: 62f938a529SMarek Vasut - const: event 63f938a529SMarek Vasut - const: error 64f938a529SMarek Vasut 65f33dabf5SAlain Volmat resets: 66f33dabf5SAlain Volmat maxItems: 1 67f33dabf5SAlain Volmat 68f33dabf5SAlain Volmat clocks: 69f33dabf5SAlain Volmat maxItems: 1 70f33dabf5SAlain Volmat 71f33dabf5SAlain Volmat dmas: 72f33dabf5SAlain Volmat items: 73f33dabf5SAlain Volmat - description: RX DMA Channel phandle 74f33dabf5SAlain Volmat - description: TX DMA Channel phandle 75f33dabf5SAlain Volmat 76f33dabf5SAlain Volmat dma-names: 77f33dabf5SAlain Volmat items: 78f33dabf5SAlain Volmat - const: rx 79f33dabf5SAlain Volmat - const: tx 80f33dabf5SAlain Volmat 81f33dabf5SAlain Volmat clock-frequency: 82f33dabf5SAlain Volmat description: Desired I2C bus clock frequency in Hz. If not specified, 83f33dabf5SAlain Volmat the default 100 kHz frequency will be used. 84dd16163eSAlain Volmat For STM32F7, STM32H7 and STM32MP1 SoCs, if timing parameters 85dd16163eSAlain Volmat match, the bus clock frequency can be from 1Hz to 1MHz. 86f33dabf5SAlain Volmat default: 100000 87dd16163eSAlain Volmat minimum: 1 88dd16163eSAlain Volmat maximum: 1000000 89f33dabf5SAlain Volmat 90b1809ee9SRob Herring st,syscfg-fmp: 91b1809ee9SRob Herring description: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode 92b1809ee9SRob Herring Plus speed is selected by slave. 93*fc114c75SRob Herring $ref: /schemas/types.yaml#/definitions/phandle-array 94b1809ee9SRob Herring items: 95b1809ee9SRob Herring - items: 96b1809ee9SRob Herring - description: phandle to syscfg 97b1809ee9SRob Herring - description: register offset within syscfg 98b1809ee9SRob Herring - description: register bitmask for FMP bit 99b1809ee9SRob Herring 100367d4c88SMarek Vasut wakeup-source: true 101367d4c88SMarek Vasut 102f33dabf5SAlain Volmatrequired: 103f33dabf5SAlain Volmat - compatible 104f33dabf5SAlain Volmat - reg 105f33dabf5SAlain Volmat - interrupts 106f33dabf5SAlain Volmat - resets 107f33dabf5SAlain Volmat - clocks 108f33dabf5SAlain Volmat 1096fdc6e23SRob HerringunevaluatedProperties: false 1106fdc6e23SRob Herring 111f33dabf5SAlain Volmatexamples: 112f33dabf5SAlain Volmat - | 113f33dabf5SAlain Volmat #include <dt-bindings/mfd/stm32f7-rcc.h> 114f33dabf5SAlain Volmat #include <dt-bindings/clock/stm32fx-clock.h> 115f33dabf5SAlain Volmat //Example 1 (with st,stm32f4-i2c compatible) 116f33dabf5SAlain Volmat i2c@40005400 { 117f33dabf5SAlain Volmat compatible = "st,stm32f4-i2c"; 118f33dabf5SAlain Volmat #address-cells = <1>; 119f33dabf5SAlain Volmat #size-cells = <0>; 120f33dabf5SAlain Volmat reg = <0x40005400 0x400>; 121f33dabf5SAlain Volmat interrupts = <31>, 122f33dabf5SAlain Volmat <32>; 123f33dabf5SAlain Volmat resets = <&rcc 277>; 124f33dabf5SAlain Volmat clocks = <&rcc 0 149>; 125f33dabf5SAlain Volmat }; 126f33dabf5SAlain Volmat 127f364d2c6SRob Herring - | 128f364d2c6SRob Herring #include <dt-bindings/mfd/stm32f7-rcc.h> 129f364d2c6SRob Herring #include <dt-bindings/clock/stm32fx-clock.h> 130f33dabf5SAlain Volmat //Example 2 (with st,stm32f7-i2c compatible) 131f33dabf5SAlain Volmat i2c@40005800 { 132f33dabf5SAlain Volmat compatible = "st,stm32f7-i2c"; 133f33dabf5SAlain Volmat #address-cells = <1>; 134f33dabf5SAlain Volmat #size-cells = <0>; 135f33dabf5SAlain Volmat reg = <0x40005800 0x400>; 136f33dabf5SAlain Volmat interrupts = <31>, 137f33dabf5SAlain Volmat <32>; 138f33dabf5SAlain Volmat resets = <&rcc STM32F7_APB1_RESET(I2C1)>; 139f33dabf5SAlain Volmat clocks = <&rcc 1 CLK_I2C1>; 140f33dabf5SAlain Volmat }; 141f33dabf5SAlain Volmat 142f364d2c6SRob Herring - | 143f364d2c6SRob Herring #include <dt-bindings/mfd/stm32f7-rcc.h> 144f364d2c6SRob Herring #include <dt-bindings/clock/stm32fx-clock.h> 145d074684aSAlain Volmat //Example 3 (with st,stm32mp15-i2c compatible on stm32mp) 146f33dabf5SAlain Volmat #include <dt-bindings/interrupt-controller/arm-gic.h> 147f33dabf5SAlain Volmat #include <dt-bindings/clock/stm32mp1-clks.h> 148f33dabf5SAlain Volmat #include <dt-bindings/reset/stm32mp1-resets.h> 149f33dabf5SAlain Volmat i2c@40013000 { 150d074684aSAlain Volmat compatible = "st,stm32mp15-i2c"; 151f33dabf5SAlain Volmat #address-cells = <1>; 152f33dabf5SAlain Volmat #size-cells = <0>; 153f33dabf5SAlain Volmat reg = <0x40013000 0x400>; 154f33dabf5SAlain Volmat interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, 155f33dabf5SAlain Volmat <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 156f33dabf5SAlain Volmat clocks = <&rcc I2C2_K>; 157f33dabf5SAlain Volmat resets = <&rcc I2C2_R>; 158f33dabf5SAlain Volmat i2c-scl-rising-time-ns = <185>; 159f33dabf5SAlain Volmat i2c-scl-falling-time-ns = <20>; 160f33dabf5SAlain Volmat st,syscfg-fmp = <&syscfg 0x4 0x2>; 161f33dabf5SAlain Volmat }; 162