[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