xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/i2c-st.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotST SSC binding, for I2C mode operation
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties :
4*c66ec88fSEmmanuel Vadot- compatible : Must be "st,comms-ssc-i2c" or "st,comms-ssc4-i2c"
5*c66ec88fSEmmanuel Vadot- reg : Offset and length of the register set for the device
6*c66ec88fSEmmanuel Vadot- interrupts : the interrupt specifier
7*c66ec88fSEmmanuel Vadot- clock-names: Must contain "ssc".
8*c66ec88fSEmmanuel Vadot- clocks: Must contain an entry for each name in clock-names. See the common
9*c66ec88fSEmmanuel Vadot  clock bindings.
10*c66ec88fSEmmanuel Vadot- A pinctrl state named "default" must be defined to set pins in mode of
11*c66ec88fSEmmanuel Vadot  operation for I2C transfer.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel VadotOptional properties :
14*c66ec88fSEmmanuel Vadot- clock-frequency : Desired I2C bus clock frequency in Hz. If not specified,
15*c66ec88fSEmmanuel Vadot  the default 100 kHz frequency will be used. As only Normal and Fast modes
16*c66ec88fSEmmanuel Vadot  are supported, possible values are 100000 and 400000.
17*c66ec88fSEmmanuel Vadot- st,i2c-min-scl-pulse-width-us : The minimum valid SCL pulse width that is
18*c66ec88fSEmmanuel Vadot  allowed through the deglitch circuit. In units of us.
19*c66ec88fSEmmanuel Vadot- st,i2c-min-sda-pulse-width-us : The minimum valid SDA pulse width that is
20*c66ec88fSEmmanuel Vadot  allowed through the deglitch circuit. In units of us.
21*c66ec88fSEmmanuel Vadot- A pinctrl state named "idle" could be defined to set pins in idle state
22*c66ec88fSEmmanuel Vadot  when I2C instance is not performing a transfer.
23*c66ec88fSEmmanuel Vadot- A pinctrl state named "sleep" could be defined to set pins in sleep state
24*c66ec88fSEmmanuel Vadot  when driver enters in suspend.
25*c66ec88fSEmmanuel Vadot
26*c66ec88fSEmmanuel Vadot
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel VadotExample :
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadoti2c0: i2c@fed40000 {
31*c66ec88fSEmmanuel Vadot	compatible	= "st,comms-ssc4-i2c";
32*c66ec88fSEmmanuel Vadot	reg		= <0xfed40000 0x110>;
33*c66ec88fSEmmanuel Vadot	interrupts	=  <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
34*c66ec88fSEmmanuel Vadot	clocks		= <&clk_s_a0_ls CLK_ICN_REG>;
35*c66ec88fSEmmanuel Vadot	clock-names	= "ssc";
36*c66ec88fSEmmanuel Vadot	clock-frequency = <400000>;
37*c66ec88fSEmmanuel Vadot	pinctrl-names	= "default";
38*c66ec88fSEmmanuel Vadot	pinctrl-0	= <&pinctrl_i2c0_default>;
39*c66ec88fSEmmanuel Vadot	st,i2c-min-scl-pulse-width-us = <0>;
40*c66ec88fSEmmanuel Vadot	st,i2c-min-sda-pulse-width-us = <5>;
41*c66ec88fSEmmanuel Vadot};
42