Message ID | 20240517-i2c-th1520-v2-3-d364d135ccc6@bootlin.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Conor Dooley |
Headers | show |
Series | Add I2C support on TH1520 | expand |
Context | Check | Description |
---|---|---|
conchuod/vmtest-fixes-PR | fail | merge-conflict |
Thomas Bonnefille wrote: > This commit enables the I2C0 controller of the TH1520, together with > the FT24C32A EEPROM that is connected to it. > In addition, this commit also enables the I2C controllers I2C2, I2C4 > and I2C5 as they are all three exposed on headers (P9 19 and 20 for I2C2, > P9 17 and 18 for I2C5 and MikroBus 7 and 5 for I2C4). > It also defined the required pinctrl nodes. > > Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com> > --- > arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts | 84 ++++++++++++++++++++++ > 1 file changed, 84 insertions(+) > > diff --git a/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts b/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts > index 57a2578123eb..aeb04f5159d5 100644 > --- a/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts > +++ b/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts > @@ -121,6 +121,47 @@ led-pins { > }; > }; > > +&padctrl1_apsys { These node references should be ordered alphabetically, so please put this below &padctrl0_apsys. > + i2c0_pins: i2c0-0 { > + i2c-pins { > + pins = "I2C0_SDA", > + "I2C0_SCL"; > + function = "i2c"; > + bias-pull-up = <2100>; Are you sure the strong pull-up is needed here and below? > + drive-strength = <7>; > + input-enable; > + input-schmitt-enable; > + slew-rate = <0>; > + }; > + }; > + > + i2c4_pins: i2c4-0 { > + i2c-pins { > + pins = "GPIO0_19", /*I2C4_SDA*/ > + "GPIO0_18"; /*I2C4_SCL*/ Please add spaces here like other kernel comments. Eg. /* I2C4_SDA */ > + function = "i2c"; > + bias-pull-up = <2100>; > + drive-strength = <7>; > + input-enable; > + input-schmitt-enable; > + slew-rate = <0>; > + }; > + }; > + > + i2c5_pins: i2c5-0 { > + i2c-pins { > + pins = "QSPI1_D0_MOSI", /*I2C5_SDA*/ > + "QSPI1_CSN0"; /*I2C5_SCL*/ Same here. > + function = "i2c"; > + bias-pull-up = <2100>; > + drive-strength = <7>; > + input-enable; > + input-schmitt-enable; > + slew-rate = <0>; > + }; > + }; > +}; > + > &padctrl0_apsys { > uart0_pins: uart0-0 { > tx-pins { > @@ -143,6 +184,19 @@ rx-pins { > slew-rate = <0>; > }; > }; > + > + i2c2_pins: i2c2-0 { i2c2-0 sorts before uart0-0 alphabetically. > + i2c-pins { > + pins = "I2C2_SDA", > + "I2C2_SCL"; > + function = "i2c"; > + bias-pull-up = <2100>; > + drive-strength = <7>; > + input-enable; > + input-schmitt-enable; > + slew-rate = <0>; > + }; > + }; > }; > > &uart0 { > @@ -150,3 +204,33 @@ &uart0 { > pinctrl-0 = <&uart0_pins>; > status = "okay"; > }; > + > +&i2c0 { Again please sort these references alphabetically. > + status = "okay"; And the properties. Eg. move status below pinctrl-0. > + clock-frequency = <100000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c0_pins>; > + > + eeprom@50 { > + compatible = "atmel,24c32"; > + reg = <0x50>; > + }; > +}; > + > +&i2c2 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c2_pins>; > +}; > + > +&i2c4 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c4_pins>; > +}; > + > +&i2c5 { > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c5_pins>; > +}; > > -- > 2.45.1 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
diff --git a/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts b/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts index 57a2578123eb..aeb04f5159d5 100644 --- a/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts +++ b/arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts @@ -121,6 +121,47 @@ led-pins { }; }; +&padctrl1_apsys { + i2c0_pins: i2c0-0 { + i2c-pins { + pins = "I2C0_SDA", + "I2C0_SCL"; + function = "i2c"; + bias-pull-up = <2100>; + drive-strength = <7>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; + + i2c4_pins: i2c4-0 { + i2c-pins { + pins = "GPIO0_19", /*I2C4_SDA*/ + "GPIO0_18"; /*I2C4_SCL*/ + function = "i2c"; + bias-pull-up = <2100>; + drive-strength = <7>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; + + i2c5_pins: i2c5-0 { + i2c-pins { + pins = "QSPI1_D0_MOSI", /*I2C5_SDA*/ + "QSPI1_CSN0"; /*I2C5_SCL*/ + function = "i2c"; + bias-pull-up = <2100>; + drive-strength = <7>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; +}; + &padctrl0_apsys { uart0_pins: uart0-0 { tx-pins { @@ -143,6 +184,19 @@ rx-pins { slew-rate = <0>; }; }; + + i2c2_pins: i2c2-0 { + i2c-pins { + pins = "I2C2_SDA", + "I2C2_SCL"; + function = "i2c"; + bias-pull-up = <2100>; + drive-strength = <7>; + input-enable; + input-schmitt-enable; + slew-rate = <0>; + }; + }; }; &uart0 { @@ -150,3 +204,33 @@ &uart0 { pinctrl-0 = <&uart0_pins>; status = "okay"; }; + +&i2c0 { + status = "okay"; + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&i2c0_pins>; + + eeprom@50 { + compatible = "atmel,24c32"; + reg = <0x50>; + }; +}; + +&i2c2 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c2_pins>; +}; + +&i2c4 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c4_pins>; +}; + +&i2c5 { + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&i2c5_pins>; +};
This commit enables the I2C0 controller of the TH1520, together with the FT24C32A EEPROM that is connected to it. In addition, this commit also enables the I2C controllers I2C2, I2C4 and I2C5 as they are all three exposed on headers (P9 19 and 20 for I2C2, P9 17 and 18 for I2C5 and MikroBus 7 and 5 for I2C4). It also defined the required pinctrl nodes. Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com> --- arch/riscv/boot/dts/thead/th1520-beaglev-ahead.dts | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+)