ARM: dts: bcm2835-rpi: Avoid conflicts on i2c0
Subsystems (3)
PATCH 1/1 ARM: dts: bcm2835-rpi: Avoid conflicts on i2c0
The GPU firmware of the Raspberry Pi 3 uses i2c0 to communicate to the FXL6408 gpio expander. It's a bad idea to use the same interface from the ARM side. Since this interface isn't used by the other RPi boards, it's save to remove the complete node and avoid this conflict.
--- arch/arm/boot/dts/bcm2835-rpi.dtsi | 7 ------- 1 file changed, 7 deletions(-)
arch/arm/boot/dts/bcm2835-rpi.dtsi +0 -7
@@ -44,13 +44,6 @@ }; }; -&i2c0 { - pinctrl-names = "default"; - pinctrl-0 = <&i2c0_gpio0>; - status = "okay"; - clock-frequency = <100000>; -}; - &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_gpio2>;
Signature · 1 line
2.7.4
PATCH 1/1 ARM: dts: bcm2835-rpi: Avoid conflicts on i2c0
Quoted 5 lines · Stefan Wahren
The GPU firmware of the Raspberry Pi 3 uses i2c0 to communicate to the FXL6408 gpio expander. It's a bad idea to use the same interface from the ARM side. Since this interface isn't used by the other RPi boards, it's save to remove the complete node and avoid this conflict.
It's not used by other kernel drivers currently, but should we leave it
in for the pi0/1/2 folks that might have userspace I2C stuff using it?
That's a thing people do, right? I actually don't know.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20171116/1a4866da/attachment-0001.sig>
PATCH 1/1 ARM: dts: bcm2835-rpi: Avoid conflicts on i2c0
Quoted 11 lines · Eric Anholt
Quoted 5 lines · Stefan Wahren
The GPU firmware of the Raspberry Pi 3 uses i2c0 to communicate to the FXL6408 gpio expander. It's a bad idea to use the same interface from the ARM side. Since this interface isn't used by the other RPi boards, it's save to remove the complete node and avoid this conflict.
It's not used by other kernel drivers currently, but should we leave it in for the pi0/1/2 folks that might have userspace I2C stuff using it? That's a thing people do, right? I actually don't know.
The firmware hasn't used BSC0 for the GPIO expander since the end of January. It now bit bashes it. Sorry if that information hadn't filtered through.
I've got a patch I was about to send to rpi-linux for comment which sets up the i2c-mux-pinctrl driver on BSC0 so that it can be used either on GPIOs 0&1, or the GPIOs connected to the DSI and CSI connectors (I want it to talk to the camera module, and I guess Eric won't complain for talking to the DSI display). I'll aim to sort it on Monday.
Dave
PATCH 1/1 ARM: dts: bcm2835-rpi: Avoid conflicts on i2c0
Quoted 17 lines · Dave Stevenson
Quoted 11 lines · Eric Anholt
Quoted 5 lines · Stefan Wahren
The GPU firmware of the Raspberry Pi 3 uses i2c0 to communicate to the FXL6408 gpio expander. It's a bad idea to use the same interface from the ARM side. Since this interface isn't used by the other RPi boards, it's save to remove the complete node and avoid this conflict.
It's not used by other kernel drivers currently, but should we leave it in for the pi0/1/2 folks that might have userspace I2C stuff using it? That's a thing people do, right? I actually don't know.
The firmware hasn't used BSC0 for the GPIO expander since the end of January. It now bit bashes it. Sorry if that information hadn't filtered through.
Quoted 6 lines
I've got a patch I was about to send to rpi-linux for comment which sets up the i2c-mux-pinctrl driver on BSC0 so that it can be used either on GPIOs 0&1, or the GPIOs connected to the DSI and CSI connectors (I want it to talk to the camera module, and I guess Eric won't complain for talking to the DSI display). I'll aim to sort it on Monday.
Regardless of the use (or not) of i2c0 by the VPU on Pi 3, i2c0 is the I2C interface intended for the ARM on early Pi Model Bs. The enabling or not of the I2C interfaces should be left to the model-specific DTS files.
Regards,
Phil