[PATCH 3/3] arm64: dts: broadcom: bcm2712: Add USB OTG port

Peter Robinson pbrobinson at gmail.com
Sun Aug 2 07:50:54 PDT 2026


The Raspberry Pi 5 has a USB2 OTG port wired up to the
Type-C that uses the same IP in earlier generations so
wire this up so it can be used.

Signed-off-by: Peter Robinson <pbrobinson at gmail.com>
Cc: Florian Fainelli <florian.fainelli at broadcom.com>
Cc: Dave Stevenson <dave.stevenson at raspberrypi.com
---
 .../dts/broadcom/bcm2712-rpi-5-b-base.dtsi    |  6 +++++
 arch/arm64/boot/dts/broadcom/bcm2712.dtsi     | 25 +++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
index d998bfae91acb..e5030da60f9e7 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
@@ -3,6 +3,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/power/raspberrypi-power.h>
 #include "bcm2712.dtsi"
 
 / {
@@ -239,6 +240,11 @@ bluetooth: bluetooth {
 	};
 };
 
+&usb {
+	power-domains = <&power RPI_POWER_DOMAIN_USB>;
+	status = "okay";
+};
+
 &hvs {
 	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
 	clock-names = "core", "disp";
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
index c73ed9e066662..f650a5cd8462d 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
@@ -55,6 +55,13 @@ clk_sw_baud: clk-sw-baud {
 			clock-frequency = <96000000>;
 			clock-output-names = "sw-baud";
 		};
+
+		clk_usb: clk-usb {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <480000000>;
+			clock-output-names = "otg";
+		};
 	};
 
 	cpus: cpus {
@@ -693,6 +700,19 @@ v3d: gpu at 1002000000 {
 			interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
 				     <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
 		};
+
+		usb: usb at 100480000 {
+			compatible = "brcm,bcm2835-usb";
+			reg = <0x10 0x00480000  0x0 0x10000>;
+			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			clocks = <&clk_usb>;
+			clock-names = "otg";
+			phys = <&usbphy>;
+			phy-names = "usb2-phy";
+			status = "disabled";
+		};
 	};
 
 	vc4: gpu {
@@ -756,4 +776,9 @@ cooling_maps: cooling-maps {
 			};
 		};
 	};
+
+	usbphy: phy {
+		compatible = "usb-nop-xceiv";
+		#phy-cells = <0>;
+	};
 };
-- 
2.55.0




More information about the linux-arm-kernel mailing list