From bd69720ec84a342ad24ad33b931c730711da822f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Thu, 24 Oct 2024 15:38:36 +0100 Subject: [PATCH] arm64: dts: Sort out CM5 and I/O board I2C ports There is a difference in I2C usage between CM4IO and CM5IO. Present a simple, consistent view of the world by moving the assignment of the bus IDs into carrier-specific files. CM5 has reduced connectivity on CM4IO - the DPHYs are connected to CAM1 and DISP1. Keep i2c-10 for use with that pair, as is the case for CM4 on CM4IO. Fixes: 36faab69e8ee ("dts: bcm2712-rpi: Add aliases for the CSI/DSI I2Cs") See: https://github.com/raspberrypi/linux/pull/6421 Signed-off-by: Phil Elwell --- .../boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi | 28 +++++++++++++++++++ .../dts/broadcom/bcm2712-rpi-cm5-cm4io.dts | 17 +---------- .../dts/broadcom/bcm2712-rpi-cm5-cm5io.dts | 7 +---- .../boot/dts/broadcom/bcm2712-rpi-cm5.dtsi | 13 --------- .../boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi | 14 ++++++++++ .../dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts | 17 +---------- .../dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts | 7 +---- .../boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi | 4 --- 8 files changed, 46 insertions(+), 61 deletions(-) create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi new file mode 100644 index 00000000000000..1b4c42a61817cd --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm4io.dtsi @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-2.0 + +i2c_csi_dsi0: &i2c0 { // Note: For CAM0 and DISP0 connectors +}; + +i2c_csi_dsi1: &i2c6 { // Note: For CAM1, DISP1, on-board RTC, and fan controller + pinctrl-0 = <&rp1_i2c6_38_39>; + pinctrl-names = "default"; + clock-frequency = <100000>; + symlink = "i2c-6"; +}; + +i2c_csi_dsi: &i2c_csi_dsi1 { }; // The connector that needs no jumper to enable + +&aliases { + /delete-property/ i2c11; + i2c10 = &i2c_csi_dsi; +}; + +// The RP1 USB3 interfaces are not usable on CM4IO + +&rp1_usb0 { + status = "disabled"; +}; + +&rp1_usb1 { + status = "disabled"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts index f89321921f27f9..96cd7cf735d58c 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts @@ -2,19 +2,4 @@ /dts-v1/; #include "bcm2712-rpi-cm5.dtsi" - -// The RP1 USB3 interfaces are not usable on CM4IO - -&rp1_usb0 { - status = "disabled"; -}; - -&rp1_usb1 { - status = "disabled"; -}; - -/ { - __overrides__ { - i2c_csi_dsi = <&i2c_csi_dsi>, "status"; - }; -}; +#include "bcm2712-rpi-cm4io.dtsi" diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts index 47ce4ff5049ada..6b5e147d569d2f 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts @@ -2,9 +2,4 @@ /dts-v1/; #include "bcm2712-rpi-cm5.dtsi" - -/ { - __overrides__ { - i2c_csi_dsi = <&i2c_csi_dsi>, "status"; - }; -}; +#include "bcm2712-rpi-cm5io.dtsi" diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi index ade671fa0e6ded..1a293249ac438d 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi @@ -234,19 +234,6 @@ aux: &dummy {}; #include "bcm2712-rpi.dtsi" -i2c_csi_dsi0: &i2c6 { // Note: This is for MIPI0 connector only - pinctrl-0 = <&rp1_i2c6_38_39>; - pinctrl-names = "default"; - clock-frequency = <100000>; - symlink = "i2c-6"; -}; - -i2c_csi_dsi1: &i2c0 { // Note: This is for MIPI1 connector - symlink = "i2c-11"; -}; - -i2c_csi_dsi: &i2c_csi_dsi1 { }; // An alias for compatibility - cam1_reg: &cam0_reg { // Shares CAM_GPIO with cam0_reg }; diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi new file mode 100644 index 00000000000000..788fda2fcbfba0 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5io.dtsi @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0 + +i2c_csi_dsi1: &i2c0 { // Note: This is for CAM/DISP 1 connector + symlink = "i2c-11"; +}; + +i2c_csi_dsi0: &i2c6 { // Note: This is for CAM/DISP 0 connector + pinctrl-0 = <&rp1_i2c6_38_39>; + pinctrl-names = "default"; + clock-frequency = <100000>; + symlink = "i2c-6"; +}; + +i2c_csi_dsi: &i2c_csi_dsi0 { }; // The connector that needs no jumper to enable diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts index 155f6afe62b125..71259a673d999a 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm4io.dts @@ -2,19 +2,4 @@ /dts-v1/; #include "bcm2712-rpi-cm5l.dtsi" - -// The RP1 USB3 interfaces are not usable on CM4IO - -&rp1_usb0 { - status = "disabled"; -}; - -&rp1_usb1 { - status = "disabled"; -}; - -/ { - __overrides__ { - i2c_csi_dsi = <&i2c_csi_dsi>, "status"; - }; -}; +#include "bcm2712-rpi-cm4io.dtsi" diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts index 56c24307208849..11a56dfb7b484b 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l-cm5io.dts @@ -2,9 +2,4 @@ /dts-v1/; #include "bcm2712-rpi-cm5l.dtsi" - -/ { - __overrides__ { - i2c_csi_dsi = <&i2c_csi_dsi>, "status"; - }; -}; +#include "bcm2712-rpi-cm5io.dtsi" diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi index a3fe7cfa318cec..98ac6c113e811b 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5l.dtsi @@ -5,10 +5,6 @@ / { model = "Raspberry Pi Compute Module 5 Lite"; - - __overrides__ { - i2c_csi_dsi = <&i2c_csi_dsi>, "status"; - }; }; &sd_io_1v8_reg {