Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / i2c / i2c-stm32.txt
1 * I2C controller embedded in STMicroelectronics STM32 I2C platform
2
3 Required properties:
4 - compatible: Must be one of the following
5   - "st,stm32f4-i2c"
6   - "st,stm32f7-i2c"
7 - reg: Offset and length of the register set for the device
8 - interrupts: Must contain the interrupt id for I2C event and then the
9   interrupt id for I2C error.
10 - resets: Must contain the phandle to the reset controller.
11 - clocks: Must contain the input clock of the I2C instance.
12 - A pinctrl state named "default" must be defined to set pins in mode of
13   operation for I2C transfer
14 - #address-cells = <1>;
15 - #size-cells = <0>;
16
17 Optional properties:
18 - clock-frequency: Desired I2C bus clock frequency in Hz. If not specified,
19   the default 100 kHz frequency will be used.
20   For STM32F4 SoC Standard-mode and Fast-mode are supported, possible values are
21   100000 and 400000.
22   For STM32F7, STM32H7 and STM32MP1 SoCs, Standard-mode, Fast-mode and Fast-mode
23   Plus are supported, possible values are 100000, 400000 and 1000000.
24 - i2c-scl-rising-time-ns: I2C SCL Rising time for the board (default: 25)
25   For STM32F7, STM32H7 and STM32MP1 only.
26 - i2c-scl-falling-time-ns: I2C SCL Falling time for the board (default: 10)
27   For STM32F7, STM32H7 and STM32MP1 only.
28   I2C Timings are derived from these 2 values
29 - st,syscfg-fmp: Use to set Fast Mode Plus bit within SYSCFG when Fast Mode
30   Plus speed is selected by slave.
31         1st cell: phandle to syscfg
32         2nd cell: register offset within SYSCFG
33         3rd cell: register bitmask for FMP bit
34   For STM32F7, STM32H7 and STM32MP1 only.
35
36 Example:
37
38         i2c@40005400 {
39                 compatible = "st,stm32f4-i2c";
40                 #address-cells = <1>;
41                 #size-cells = <0>;
42                 reg = <0x40005400 0x400>;
43                 interrupts = <31>,
44                              <32>;
45                 resets = <&rcc 277>;
46                 clocks = <&rcc 0 149>;
47                 pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;
48                 pinctrl-names = "default";
49         };
50
51         i2c@40005400 {
52                 compatible = "st,stm32f7-i2c";
53                 #address-cells = <1>;
54                 #size-cells = <0>;
55                 reg = <0x40005400 0x400>;
56                 interrupts = <31>,
57                              <32>;
58                 resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
59                 clocks = <&rcc 1 CLK_I2C1>;
60                 pinctrl-0 = <&i2c1_sda_pin>, <&i2c1_scl_pin>;
61                 pinctrl-names = "default";
62                 st,syscfg-fmp = <&syscfg 0x4 0x1>;
63         };