[PATCH 1/6] arm64: dts: broadcom: rp1: add i2c controller

From: Gregor Herburger

Date: Thu Feb 26 2026 - 04:00:53 EST


The RaspberryPi 5 has 7 designware-i2c I2C controller on the RP1
chipset.

Add the relevant nodes to the devicetree.

Signed-off-by: Gregor Herburger <gregor.herburger@xxxxxxxxxxxxx>
---
arch/arm64/boot/dts/broadcom/rp1-common.dtsi | 77 ++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)

diff --git a/arch/arm64/boot/dts/broadcom/rp1-common.dtsi b/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
index 5a815c379794524de542a62e7b157fbefe4b4b59..58179094e30e7e0eb6242de9edc460fd4a0b7685 100644
--- a/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
+++ b/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
@@ -26,6 +26,83 @@ rp1_clocks: clocks@40018000 {
<200000000>; // RP1_CLK_SYS
};

+ rp1_i2c0: i2c@40070000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40070000 0x0 0x1000>;
+ interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c1: i2c@40074000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40074000 0x0 0x1000>;
+ interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c2: i2c@40078000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40078000 0x0 0x1000>;
+ interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c3: i2c@4007c000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x4007c000 0x0 0x1000>;
+ interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c4: i2c@40080000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40080000 0x0 0x1000>;
+ interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c5: i2c@40084000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40084000 0x0 0x1000>;
+ interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c6: i2c@40088000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40088000 0x0 0x1000>;
+ interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
rp1_gpio: pinctrl@400d0000 {
compatible = "raspberrypi,rp1-gpio";
reg = <0x00 0x400d0000 0x0 0xc000>,

--
2.47.3