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

Andrea della Porta andrea.porta at suse.com
Thu Sep 3 06:45:16 PDT 2026


Hi Peter,

On 15:50 Sun 02 Aug     , Peter Robinson wrote:
> 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 {

Please fill in the missing 0 in the unit number. Apart from that, LGTM.

Thanks,
Andrea

> +			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