[SRU][N:raspi][PATCH 12/13] arm64: dts: Sort out CM5 and I/O board I2C ports

Juerg Haefliger juerg.haefliger at canonical.com
Tue Jun 3 07:35:25 UTC 2025


From: Phil Elwell <phil at raspberrypi.com>

BugLink: https://bugs.launchpad.net/bugs/2111928

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 <phil at raspberrypi.com>
(backported from commit 4622323f5c9e540f3356f2229c4d551b31cc234d rpi-6.6.y)
[juergh: Adjusted context.]
Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
---
 .../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 000000000000..1b4c42a61817
--- /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 f89321921f27..96cd7cf735d5 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 47ce4ff5049a..6b5e147d569d 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 c55a1d8d7915..c5b34a2357ce 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 @@ &rp1_usb1 {
 
 #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_dsi0 { }; // 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 000000000000..788fda2fcbfb
--- /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 155f6afe62b1..71259a673d99 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 56c243072088..11a56dfb7b48 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 a3fe7cfa318c..98ac6c113e81 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 {
-- 
2.48.1




More information about the kernel-team mailing list