xref: /linux/Documentation/devicetree/bindings/i2c/st,stm32-i2c.yaml (revision 6fdc6e23a7d13e4f7f7908b42d39595195716a61)
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:
10f33dabf5SAlain Volmat  - Pierre-Yves MORDRET <pierre-yves.mordret@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
20d074684aSAlain Volmat              - st,stm32mp15-i2c
21f33dabf5SAlain Volmat    then:
22f33dabf5SAlain Volmat      properties:
23f33dabf5SAlain Volmat        i2c-scl-rising-time-ns:
24f33dabf5SAlain Volmat          default: 25
25f33dabf5SAlain Volmat
26f33dabf5SAlain Volmat        i2c-scl-falling-time-ns:
27f33dabf5SAlain Volmat          default: 10
28f33dabf5SAlain Volmat
29f33dabf5SAlain Volmat        st,syscfg-fmp:
30f33dabf5SAlain Volmat          description: Use to set Fast Mode Plus bit within SYSCFG when
31f33dabf5SAlain Volmat                       Fast Mode Plus speed is selected by slave.
32f33dabf5SAlain Volmat                       Format is phandle to syscfg / register offset within
33f33dabf5SAlain Volmat                       syscfg / register bitmask for FMP bit.
343d21a460SRob Herring          $ref: "/schemas/types.yaml#/definitions/phandle-array"
353d21a460SRob Herring          items:
36f33dabf5SAlain Volmat            minItems: 3
37f33dabf5SAlain Volmat            maxItems: 3
38f33dabf5SAlain Volmat
39f33dabf5SAlain Volmat  - if:
40f33dabf5SAlain Volmat      properties:
41f33dabf5SAlain Volmat        compatible:
42f33dabf5SAlain Volmat          contains:
43f33dabf5SAlain Volmat            enum:
44f33dabf5SAlain Volmat              - st,stm32f4-i2c
45f33dabf5SAlain Volmat    then:
46f33dabf5SAlain Volmat      properties:
47f33dabf5SAlain Volmat        clock-frequency:
48f33dabf5SAlain Volmat          enum: [100000, 400000]
49f33dabf5SAlain Volmat
50f33dabf5SAlain Volmatproperties:
51f33dabf5SAlain Volmat  compatible:
52f33dabf5SAlain Volmat    enum:
53f33dabf5SAlain Volmat      - st,stm32f4-i2c
54f33dabf5SAlain Volmat      - st,stm32f7-i2c
55d074684aSAlain Volmat      - st,stm32mp15-i2c
56f33dabf5SAlain Volmat
57f33dabf5SAlain Volmat  reg:
58f33dabf5SAlain Volmat    maxItems: 1
59f33dabf5SAlain Volmat
60f33dabf5SAlain Volmat  interrupts:
61f33dabf5SAlain Volmat    items:
62f33dabf5SAlain Volmat      - description: interrupt ID for I2C event
63f33dabf5SAlain Volmat      - description: interrupt ID for I2C error
64f33dabf5SAlain Volmat
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
90f33dabf5SAlain Volmatrequired:
91f33dabf5SAlain Volmat  - compatible
92f33dabf5SAlain Volmat  - reg
93f33dabf5SAlain Volmat  - interrupts
94f33dabf5SAlain Volmat  - resets
95f33dabf5SAlain Volmat  - clocks
96f33dabf5SAlain Volmat
97*6fdc6e23SRob HerringunevaluatedProperties: false
98*6fdc6e23SRob Herring
99f33dabf5SAlain Volmatexamples:
100f33dabf5SAlain Volmat  - |
101f33dabf5SAlain Volmat    #include <dt-bindings/mfd/stm32f7-rcc.h>
102f33dabf5SAlain Volmat    #include <dt-bindings/clock/stm32fx-clock.h>
103f33dabf5SAlain Volmat    //Example 1 (with st,stm32f4-i2c compatible)
104f33dabf5SAlain Volmat      i2c@40005400 {
105f33dabf5SAlain Volmat          compatible = "st,stm32f4-i2c";
106f33dabf5SAlain Volmat          #address-cells = <1>;
107f33dabf5SAlain Volmat          #size-cells = <0>;
108f33dabf5SAlain Volmat          reg = <0x40005400 0x400>;
109f33dabf5SAlain Volmat          interrupts = <31>,
110f33dabf5SAlain Volmat                       <32>;
111f33dabf5SAlain Volmat          resets = <&rcc 277>;
112f33dabf5SAlain Volmat          clocks = <&rcc 0 149>;
113f33dabf5SAlain Volmat      };
114f33dabf5SAlain Volmat
115f33dabf5SAlain Volmat    //Example 2 (with st,stm32f7-i2c compatible)
116f33dabf5SAlain Volmat      i2c@40005800 {
117f33dabf5SAlain Volmat          compatible = "st,stm32f7-i2c";
118f33dabf5SAlain Volmat          #address-cells = <1>;
119f33dabf5SAlain Volmat          #size-cells = <0>;
120f33dabf5SAlain Volmat          reg = <0x40005800 0x400>;
121f33dabf5SAlain Volmat          interrupts = <31>,
122f33dabf5SAlain Volmat                       <32>;
123f33dabf5SAlain Volmat          resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
124f33dabf5SAlain Volmat          clocks = <&rcc 1 CLK_I2C1>;
125f33dabf5SAlain Volmat      };
126f33dabf5SAlain Volmat
127d074684aSAlain Volmat    //Example 3 (with st,stm32mp15-i2c compatible on stm32mp)
128f33dabf5SAlain Volmat    #include <dt-bindings/interrupt-controller/arm-gic.h>
129f33dabf5SAlain Volmat    #include <dt-bindings/clock/stm32mp1-clks.h>
130f33dabf5SAlain Volmat    #include <dt-bindings/reset/stm32mp1-resets.h>
131f33dabf5SAlain Volmat      i2c@40013000 {
132d074684aSAlain Volmat          compatible = "st,stm32mp15-i2c";
133f33dabf5SAlain Volmat          #address-cells = <1>;
134f33dabf5SAlain Volmat          #size-cells = <0>;
135f33dabf5SAlain Volmat          reg = <0x40013000 0x400>;
136f33dabf5SAlain Volmat          interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
137f33dabf5SAlain Volmat                       <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
138f33dabf5SAlain Volmat          clocks = <&rcc I2C2_K>;
139f33dabf5SAlain Volmat          resets = <&rcc I2C2_R>;
140f33dabf5SAlain Volmat          i2c-scl-rising-time-ns = <185>;
141f33dabf5SAlain Volmat          i2c-scl-falling-time-ns = <20>;
142f33dabf5SAlain Volmat          st,syscfg-fmp = <&syscfg 0x4 0x2>;
143f33dabf5SAlain Volmat      };
144f33dabf5SAlain Volmat...
145