[SRU][N:raspi][PATCH 01/13] arm64: dts: Move bcm2712 and rp1 here

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


From: Phil Elwell <phil at raspberrypi.com>

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

It is pointless having the bcm2712 family of dts files and rp1.dtsi
in the arch/arm directory tree, since they then require placeholders
to include them in arch/arm64 where they are built. The files have
no dependencies on other files in the arch/arm tree, so simply move
them here.

Signed-off-by: Phil Elwell <phil at raspberrypi.com>
(backported from commit 10c77e119eaaa2677009dea58cf69a8e5383925b rpi-6.6.y)
[juergh: Remove stray arm dts files.]
Signed-off-by: Juerg Haefliger <juerg.haefliger at canonical.com>
---
 .../arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 864 ------------------
 .../dts/broadcom/bcm2712-rpi-cm5-cm4io.dts    |  22 -
 .../dts/broadcom/bcm2712-rpi-cm5-cm5io.dts    |  12 -
 .../boot/dts/broadcom/bcm2712d0-rpi-5-b.dts   | 107 ---
 .../boot/dts/broadcom/bcm2712-rpi-5-b.dts     | 864 +++++++++++++++++-
 .../dts/broadcom/bcm2712-rpi-cm5-cm4io.dts    |  20 +-
 .../dts/broadcom/bcm2712-rpi-cm5-cm5io.dts    |  10 +-
 .../boot/dts/broadcom/bcm2712-rpi-cm5.dtsi    |  10 +-
 .../boot/dts/broadcom/bcm2712-rpi.dtsi        |   0
 .../boot/dts/broadcom/bcm2712.dtsi            |   0
 .../boot/dts/broadcom/bcm2712d0-rpi-5-b.dts   | 107 ++-
 .../{arm => arm64}/boot/dts/broadcom/rp1.dtsi |   0
 12 files changed, 999 insertions(+), 1017 deletions(-)
 delete mode 100644 arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
 delete mode 100644 arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts
 delete mode 100644 arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts
 delete mode 100644 arch/arm/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
 rename arch/{arm => arm64}/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi (98%)
 rename arch/{arm => arm64}/boot/dts/broadcom/bcm2712-rpi.dtsi (100%)
 rename arch/{arm => arm64}/boot/dts/broadcom/bcm2712.dtsi (100%)
 rename arch/{arm => arm64}/boot/dts/broadcom/rp1.dtsi (100%)

diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
deleted file mode 100644
index 89a6426b7ac2..000000000000
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ /dev/null
@@ -1,864 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/clock/rp1.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/mfd/rp1.h>
-#include <dt-bindings/pwm/pwm.h>
-#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
-
-#define i2c0 _i2c0
-#define i2c3 _i2c3
-#define i2c4 _i2c4
-#define i2c5 _i2c5
-#define i2c6 _i2c6
-#define i2c8 _i2c8
-#define i2s _i2s
-#define pwm0 _pwm0
-#define pwm1 _pwm1
-#define spi0 _spi0
-#define spi3 _spi3
-#define spi4 _spi4
-#define spi5 _spi5
-#define spi6 _spi6
-#define uart0 _uart0
-#define uart2 _uart2
-#define uart5 _uart5
-
-#include "bcm2712.dtsi"
-
-#undef i2c0
-#undef i2c3
-#undef i2c4
-#undef i2c5
-#undef i2c6
-#undef i2c8
-#undef i2s
-#undef pwm0
-#undef pwm1
-#undef spi0
-#undef spi3
-#undef spi4
-#undef spi5
-#undef spi6
-#undef uart0
-#undef uart2
-#undef uart3
-#undef uart4
-#undef uart5
-
-/ {
-	compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
-	model = "Raspberry Pi 5";
-
-	/* Will be filled by the bootloader */
-	memory at 0 {
-		device_type = "memory";
-		reg = <0 0 0x28000000>;
-	};
-
-	leds: leds {
-		compatible = "gpio-leds";
-
-		led_pwr: led-pwr {
-			label = "PWR";
-			gpios = <&rp1_gpio 44 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-			linux,default-trigger = "none";
-		};
-
-		led_act: led-act {
-			label = "ACT";
-			gpios = <&gio_aon 9 GPIO_ACTIVE_LOW>;
-			default-state = "off";
-			linux,default-trigger = "mmc0";
-		};
-	};
-
-	sd_io_1v8_reg: sd_io_1v8_reg {
-		compatible = "regulator-gpio";
-		regulator-name = "vdd-sd-io";
-		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		regulator-always-on;
-		regulator-settling-time-us = <5000>;
-		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
-		states = <1800000 0x1
-			  3300000 0x0>;
-		status = "okay";
-	};
-
-	sd_vcc_reg: sd_vcc_reg {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc-sd";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
-		enable-active-high;
-		gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
-		status = "okay";
-	};
-
-	wl_on_reg: wl_on_reg {
-		compatible = "regulator-fixed";
-		regulator-name = "wl-on-regulator";
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		pinctrl-0 = <&wl_on_pins>;
-		pinctrl-names = "default";
-
-		gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
-
-		startup-delay-us = <150000>;
-		enable-active-high;
-	};
-
-	clocks: clocks {
-	};
-
-	cam1_clk: cam1_clk {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		status = "disabled";
-	};
-
-	cam0_clk: cam0_clk {
-		compatible = "fixed-clock";
-		#clock-cells = <0>;
-		status = "disabled";
-	};
-
-	cam0_reg: cam0_reg {
-		compatible = "regulator-fixed";
-		regulator-name = "cam0_reg";
-		enable-active-high;
-		status = "okay";
-		gpio = <&rp1_gpio 34 0>;  // CD0_IO0_MICCLK, to MIPI 0 connector
-	};
-
-	cam1_reg: cam1_reg {
-		compatible = "regulator-fixed";
-		regulator-name = "cam1_reg";
-		enable-active-high;
-		status = "okay";
-		gpio = <&rp1_gpio 46 0>;  // CD1_IO0_MICCLK, to MIPI 1 connector
-	};
-
-	cam_dummy_reg: cam_dummy_reg {
-		compatible = "regulator-fixed";
-		regulator-name = "cam-dummy-reg";
-		status = "okay";
-	};
-
-	dummy: dummy {
-		// A target for unwanted overlay fragments
-	};
-
-
-	// A few extra labels to keep overlays happy
-
-	i2c0if: i2c0if {};
-	i2c0mux: i2c0mux {};
-};
-
-rp1_target: &pcie2 {
-	brcm,enable-mps-rcb;
-	brcm,vdm-qos-map = <0xbbaa9888>;
-	aspm-no-l0s;
-	status = "okay";
-};
-
-// Add some labels to 2712 device
-
-// The system UART
-uart10: &_uart0 { status = "okay"; };
-
-// The system SPI for the bootloader EEPROM
-spi10: &_spi0 { status = "okay"; };
-
-i2c_rp1boot: &_i2c3 { };
-
-#include "rp1.dtsi"
-
-&rp1 {
-	// PCIe address space layout:
-	// 00_00000000-00_00xxxxxx = RP1 peripherals
-	// 10_00000000-1x_xxxxxxxx = up to 64GB system RAM
-
-	// outbound access aimed at PCIe 0_00xxxxxx -> RP1 c0_40xxxxxx
-	// This is the RP1 peripheral space
-	ranges = <0xc0 0x40000000
-		  0x02000000 0x00 0x00000000
-		  0x00 0x00400000>;
-
-	dma-ranges =
-	// inbound RP1 1x_xxxxxxxx -> PCIe 1x_xxxxxxxx
-		     <0x10 0x00000000
-		      0x43000000 0x10 0x00000000
-		      0x10 0x00000000>,
-
-	// inbound RP1 c0_40xxxxxx -> PCIe 00_00xxxxxx
-	// This allows the RP1 DMA controller to address RP1 hardware
-		     <0xc0 0x40000000
-		      0x02000000 0x0 0x00000000
-		      0x0 0x00400000>,
-
-	// inbound RP1 0x_xxxxxxxx -> PCIe 1x_xxxxxxxx
-		     <0x00 0x00000000
-		      0x02000000 0x10 0x00000000
-		      0x10 0x00000000>;
-};
-
-// Expose RP1 nodes as system nodes with labels
-
-&rp1_dma  {
-	status = "okay";
-};
-
-&rp1_eth {
-	status = "okay";
-	phy-handle = <&phy1>;
-	phy-reset-gpios = <&rp1_gpio 32 GPIO_ACTIVE_LOW>;
-	phy-reset-duration = <5>;
-
-	phy1: ethernet-phy at 1 {
-		reg = <0x1>;
-		brcm,powerdown-enable;
-	};
-};
-
-gpio: &rp1_gpio {
-	status = "okay";
-};
-
-aux: &dummy {};
-
-&rp1_usb0 {
-	pinctrl-0 = <&usb_vbus_pins>;
-	pinctrl-names = "default";
-	status = "okay";
-};
-
-&rp1_usb1 {
-	status = "okay";
-};
-
-#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>;
-};
-
-i2c_csi_dsi1: &i2c4 { // Note: This is for MIPI1 connector only
-	pinctrl-0 = <&rp1_i2c4_40_41>;
-	pinctrl-names = "default";
-	clock-frequency = <100000>;
-};
-
-i2c_csi_dsi: &i2c_csi_dsi1 { }; // An alias for compatibility
-
-csi0: &rp1_csi0 { };
-csi1: &rp1_csi1 { };
-dsi0: &rp1_dsi0 { };
-dsi1: &rp1_dsi1 { };
-dpi: &rp1_dpi { };
-vec: &rp1_vec { };
-dpi_gpio0:              &rp1_dpi_24bit_gpio0        { };
-dpi_gpio1:              &rp1_dpi_24bit_gpio2        { };
-dpi_18bit_cpadhi_gpio0: &rp1_dpi_18bit_cpadhi_gpio0 { };
-dpi_18bit_cpadhi_gpio2: &rp1_dpi_18bit_cpadhi_gpio2 { };
-dpi_18bit_gpio0:        &rp1_dpi_18bit_gpio0        { };
-dpi_18bit_gpio2:        &rp1_dpi_18bit_gpio2        { };
-dpi_16bit_cpadhi_gpio0: &rp1_dpi_16bit_cpadhi_gpio0 { };
-dpi_16bit_cpadhi_gpio2: &rp1_dpi_16bit_cpadhi_gpio2 { };
-dpi_16bit_gpio0:        &rp1_dpi_16bit_gpio0        { };
-dpi_16bit_gpio2:        &rp1_dpi_16bit_gpio2        { };
-
-/* Add the IOMMUs for some RP1 bus masters */
-
-&csi0 {
-	iommus = <&iommu5>;
-};
-
-&csi1 {
-	iommus = <&iommu5>;
-};
-
-&dsi0 {
-	iommus = <&iommu5>;
-};
-
-&dsi1 {
-	iommus = <&iommu5>;
-};
-
-&dpi {
-	iommus = <&iommu5>;
-};
-
-&vec {
-	iommus = <&iommu5>;
-};
-
-&ddc0 {
-	status = "disabled";
-};
-
-&ddc1 {
-	status = "disabled";
-};
-
-&hdmi0 {
-	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
-	clock-names = "hdmi", "bvb", "audio", "cec";
-	status = "disabled";
-};
-
-&hdmi1 {
-	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
-	clock-names = "hdmi", "bvb", "audio", "cec";
-	status = "disabled";
-};
-
-&hvs {
-	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
-	clock-names = "core", "disp";
-};
-
-&mop {
-	status = "disabled";
-};
-
-&moplet {
-	status = "disabled";
-};
-
-&pixelvalve0 {
-	status = "disabled";
-};
-
-&pixelvalve1 {
-	status = "disabled";
-};
-
-&disp_intr {
-	status = "disabled";
-};
-
-/* SDIO1 is used to drive the SD card */
-&sdio1 {
-	pinctrl-0 = <&emmc_sd_pulls>, <&emmc_aon_cd_pins>;
-	pinctrl-names = "default";
-	vqmmc-supply = <&sd_io_1v8_reg>;
-	vmmc-supply = <&sd_vcc_reg>;
-	bus-width = <4>;
-	sd-uhs-sdr50;
-	sd-uhs-ddr50;
-	sd-uhs-sdr104;
-	cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
-	//no-1-8-v;
-	status = "okay";
-};
-
-&pinctrl_aon {
-	emmc_aon_cd_pins: emmc_aon_cd_pins {
-		function = "sd_card_g";
-		pins = "aon_gpio5";
-		bias-pull-up;
-	};
-
-	/* Slight hack - only one PWM pin (status LED) is usable */
-	aon_pwm_1pin: aon_pwm_1pin {
-		function = "aon_pwm";
-		pins = "aon_gpio9";
-	};
-};
-
-&pinctrl {
-	pwr_button_pins: pwr_button_pins {
-		function = "gpio";
-		pins = "gpio20";
-		bias-pull-up;
-	};
-
-	wl_on_pins: wl_on_pins {
-		function = "gpio";
-		pins = "gpio28";
-	};
-
-	bt_shutdown_pins: bt_shutdown_pins {
-		function = "gpio";
-		pins = "gpio29";
-	};
-
-	emmc_sd_pulls: emmc_sd_pulls {
-		pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
-		bias-pull-up;
-	};
-};
-
-/* uarta communicates with the BT module */
-&uarta {
-	uart-has-rtscts;
-	auto-flow-control;
-	status = "okay";
-	clock-frequency = <96000000>;
-	pinctrl-0 = <&uarta_24_pins &bt_shutdown_pins>;
-	pinctrl-names = "default";
-
-	bluetooth: bluetooth {
-		compatible = "brcm,bcm43438-bt";
-		max-speed = <3000000>;
-		shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
-		local-bd-address = [ 00 00 00 00 00 00 ];
-	};
-};
-
-&i2c_rp1boot {
-	clock-frequency = <400000>;
-	pinctrl-0 = <&i2c3_m4_agpio0_pins>;
-	pinctrl-names = "default";
-};
-
-/ {
-	chosen: chosen {
-		bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
-		stdout-path = "serial10:115200n8";
-	};
-
-	fan: cooling_fan {
-		status = "disabled";
-		compatible = "pwm-fan";
-		#cooling-cells = <2>;
-		cooling-min-state = <0>;
-		cooling-max-state = <3>;
-		cooling-levels = <0 75 125 175 250>;
-		pwms = <&rp1_pwm1 3 41566 PWM_POLARITY_INVERTED>;
-		rpm-regmap = <&rp1_pwm1>;
-		rpm-offset = <0x3c>;
-	};
-
-	pwr_button {
-		compatible = "gpio-keys";
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&pwr_button_pins>;
-		status = "okay";
-
-		pwr_key: pwr {
-			label = "pwr_button";
-			// linux,code = <205>; // KEY_SUSPEND
-			linux,code = <116>; // KEY_POWER
-			gpios = <&gio 20 GPIO_ACTIVE_LOW>;
-			debounce-interval = <50>; // ms
-		};
-	};
-};
-
-&usb {
-	power-domains = <&power RPI_POWER_DOMAIN_USB>;
-};
-
-/* SDIO2 drives the WLAN interface */
-&sdio2 {
-	pinctrl-0 = <&sdio2_30_pins>;
-	pinctrl-names = "default";
-	bus-width = <4>;
-	vmmc-supply = <&wl_on_reg>;
-	sd-uhs-ddr50;
-	non-removable;
-	status = "okay";
-	#address-cells = <1>;
-	#size-cells = <0>;
-
-	wifi: wifi at 1 {
-		reg = <1>;
-		compatible = "brcm,bcm4329-fmac";
-		local-mac-address = [00 00 00 00 00 00];
-	};
-};
-
-&rpivid {
-	status = "okay";
-};
-
-&pinctrl {
-	spi10_gpio2: spi10_gpio2 {
-		function = "vc_spi0";
-		pins = "gpio2", "gpio3", "gpio4";
-		bias-disable;
-	};
-
-	spi10_cs_gpio1: spi10_cs_gpio1 {
-		function = "gpio";
-		pins = "gpio1";
-		bias-pull-up;
-	};
-};
-
-spi10_pins: &spi10_gpio2 {};
-spi10_cs_pins: &spi10_cs_gpio1 {};
-
-&spi10 {
-	pinctrl-names = "default";
-	cs-gpios = <&gio 1 1>;
-	pinctrl-0 = <&spi10_pins &spi10_cs_pins>;
-
-	spidev10: spidev at 0 {
-		compatible = "spidev";
-		reg = <0>;	/* CE0 */
-		#address-cells = <1>;
-		#size-cells = <0>;
-		spi-max-frequency = <20000000>;
-		status = "okay";
-	};
-};
-
-// =============================================
-// Board specific stuff here
-
-&gio_aon {
-	// Don't use GIO_AON as an interrupt controller because it will
-	// clash with the firmware monitoring the PMIC interrupt via the VPU.
-
-	/delete-property/ interrupt-controller;
-};
-
-&main_aon_irq {
-	// Don't use the MAIN_AON_IRQ interrupt controller because it will
-	// clash with the firmware monitoring the PMIC interrupt via the VPU.
-
-	status = "disabled";
-};
-
-&rp1_pwm1 {
-	status = "disabled";
-	pinctrl-0 = <&rp1_pwm1_gpio45>;
-	pinctrl-names = "default";
-};
-
-&thermal_trips {
-	cpu_tepid: cpu-tepid {
-		temperature = <50000>;
-		hysteresis = <5000>;
-		type = "active";
-	};
-
-	cpu_warm: cpu-warm {
-		temperature = <60000>;
-		hysteresis = <5000>;
-		type = "active";
-	};
-
-	cpu_hot: cpu-hot {
-		temperature = <67500>;
-		hysteresis = <5000>;
-		type = "active";
-	};
-
-	cpu_vhot: cpu-vhot {
-		temperature = <75000>;
-		hysteresis = <5000>;
-		type = "active";
-	};
-};
-
-&cooling_maps {
-	tepid {
-		trip = <&cpu_tepid>;
-		cooling-device = <&fan 1 1>;
-	};
-
-	warm {
-		trip = <&cpu_warm>;
-		cooling-device = <&fan 2 2>;
-	};
-
-	hot {
-		trip = <&cpu_hot>;
-		cooling-device = <&fan 3 3>;
-	};
-
-	vhot {
-		trip = <&cpu_vhot>;
-		cooling-device = <&fan 4 4>;
-	};
-
-	melt {
-		trip = <&cpu_crit>;
-		cooling-device = <&fan 4 4>;
-	};
-};
-
-&gio {
-	// The GPIOs above 35 are not used on Pi 5, so shrink the upper bank
-	// to reduce the clutter in gpioinfo/pinctrl
-	brcm,gpio-bank-widths = <32 4>;
-
-	gpio-line-names =
-		"-", // GPIO_000
-		"2712_BOOT_CS_N", // GPIO_001
-		"2712_BOOT_MISO", // GPIO_002
-		"2712_BOOT_MOSI", // GPIO_003
-		"2712_BOOT_SCLK", // GPIO_004
-		"-", // GPIO_005
-		"-", // GPIO_006
-		"-", // GPIO_007
-		"-", // GPIO_008
-		"-", // GPIO_009
-		"-", // GPIO_010
-		"-", // GPIO_011
-		"-", // GPIO_012
-		"-", // GPIO_013
-		"PCIE_SDA", // GPIO_014
-		"PCIE_SCL", // GPIO_015
-		"-", // GPIO_016
-		"-", // GPIO_017
-		"-", // GPIO_018
-		"-", // GPIO_019
-		"PWR_GPIO", // GPIO_020
-		"2712_G21_FS", // GPIO_021
-		"-", // GPIO_022
-		"-", // GPIO_023
-		"BT_RTS", // GPIO_024
-		"BT_CTS", // GPIO_025
-		"BT_TXD", // GPIO_026
-		"BT_RXD", // GPIO_027
-		"WL_ON", // GPIO_028
-		"BT_ON", // GPIO_029
-		"WIFI_SDIO_CLK", // GPIO_030
-		"WIFI_SDIO_CMD", // GPIO_031
-		"WIFI_SDIO_D0", // GPIO_032
-		"WIFI_SDIO_D1", // GPIO_033
-		"WIFI_SDIO_D2", // GPIO_034
-		"WIFI_SDIO_D3"; // GPIO_035
-};
-
-&gio_aon {
-	gpio-line-names =
-		"RP1_SDA", // AON_GPIO_00
-		"RP1_SCL", // AON_GPIO_01
-		"RP1_RUN", // AON_GPIO_02
-		"SD_IOVDD_SEL", // AON_GPIO_03
-		"SD_PWR_ON", // AON_GPIO_04
-		"SD_CDET_N", // AON_GPIO_05
-		"SD_FLG_N", // AON_GPIO_06
-		"-", // AON_GPIO_07
-		"2712_WAKE", // AON_GPIO_08
-		"2712_STAT_LED", // AON_GPIO_09
-		"-", // AON_GPIO_10
-		"-", // AON_GPIO_11
-		"PMIC_INT", // AON_GPIO_12
-		"UART_TX_FS", // AON_GPIO_13
-		"UART_RX_FS", // AON_GPIO_14
-		"-", // AON_GPIO_15
-		"-", // AON_GPIO_16
-
-		// Pad bank0 out to 32 entries
-		"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
-
-		"HDMI0_SCL", // AON_SGPIO_00
-		"HDMI0_SDA", // AON_SGPIO_01
-		"HDMI1_SCL", // AON_SGPIO_02
-		"HDMI1_SDA", // AON_SGPIO_03
-		"PMIC_SCL", // AON_SGPIO_04
-		"PMIC_SDA"; // AON_SGPIO_05
-
-	rp1_run_hog {
-		gpio-hog;
-		gpios = <2 GPIO_ACTIVE_HIGH>;
-		output-high;
-		line-name = "RP1 RUN pin";
-	};
-};
-
-&rp1_gpio {
-	gpio-line-names =
-		"ID_SDA", // GPIO0
-		"ID_SCL", // GPIO1
-		"GPIO2", // GPIO2
-		"GPIO3", // GPIO3
-		"GPIO4", // GPIO4
-		"GPIO5", // GPIO5
-		"GPIO6", // GPIO6
-		"GPIO7", // GPIO7
-		"GPIO8", // GPIO8
-		"GPIO9", // GPIO9
-		"GPIO10", // GPIO10
-		"GPIO11", // GPIO11
-		"GPIO12", // GPIO12
-		"GPIO13", // GPIO13
-		"GPIO14", // GPIO14
-		"GPIO15", // GPIO15
-		"GPIO16", // GPIO16
-		"GPIO17", // GPIO17
-		"GPIO18", // GPIO18
-		"GPIO19", // GPIO19
-		"GPIO20", // GPIO20
-		"GPIO21", // GPIO21
-		"GPIO22", // GPIO22
-		"GPIO23", // GPIO23
-		"GPIO24", // GPIO24
-		"GPIO25", // GPIO25
-		"GPIO26", // GPIO26
-		"GPIO27", // GPIO27
-
-		"PCIE_RP1_WAKE", // GPIO28
-		"FAN_TACH", // GPIO29
-		"HOST_SDA", // GPIO30
-		"HOST_SCL", // GPIO31
-		"ETH_RST_N", // GPIO32
-		"-", // GPIO33
-
-		"CD0_IO0_MICCLK", // GPIO34
-		"CD0_IO0_MICDAT0", // GPIO35
-		"RP1_PCIE_CLKREQ_N", // GPIO36
-		"-", // GPIO37
-		"CD0_SDA", // GPIO38
-		"CD0_SCL", // GPIO39
-		"CD1_SDA", // GPIO40
-		"CD1_SCL", // GPIO41
-		"USB_VBUS_EN", // GPIO42
-		"USB_OC_N", // GPIO43
-		"RP1_STAT_LED", // GPIO44
-		"FAN_PWM", // GPIO45
-		"CD1_IO0_MICCLK", // GPIO46
-		"2712_WAKE", // GPIO47
-		"CD1_IO1_MICDAT1", // GPIO48
-		"EN_MAX_USB_CUR", // GPIO49
-		"-", // GPIO50
-		"-", // GPIO51
-		"-", // GPIO52
-		"-"; // GPIO53
-
-	usb_vbus_pins: usb_vbus_pins {
-		function = "vbus1";
-		pins = "gpio42", "gpio43";
-	};
-};
-
-/ {
-	aliases: aliases {
-		blconfig = &blconfig;
-		bluetooth = &bluetooth;
-		console = &uart10;
-		ethernet0 = &rp1_eth;
-		wifi0 = &wifi;
-		fb = &fb;
-		mailbox = &mailbox;
-		mmc0 = &sdio1;
-		uart0 = &uart0;
-		uart1 = &uart1;
-		uart2 = &uart2;
-		uart3 = &uart3;
-		uart4 = &uart4;
-		uart10 = &uart10;
-		serial0 = &uart0;
-		serial1 = &uart1;
-		serial2 = &uart2;
-		serial3 = &uart3;
-		serial4 = &uart4;
-		serial10 = &uart10;
-		i2c = &i2c_arm;
-		i2c0 = &i2c0;
-		i2c1 = &i2c1;
-		i2c2 = &i2c2;
-		i2c3 = &i2c3;
-		i2c4 = &i2c4;
-		i2c5 = &i2c5;
-		i2c6 = &i2c6;
-		i2c10 = &i2c_rp1boot;
-		// Bit-bashed i2c_gpios start at 10
-		spi0 = &spi0;
-		spi1 = &spi1;
-		spi2 = &spi2;
-		spi3 = &spi3;
-		spi4 = &spi4;
-		spi5 = &spi5;
-		spi10 = &spi10;
-		gpio0 = &gpio;
-		gpio1 = &gio;
-		gpio2 = &gio_aon;
-		gpio3 = &pinctrl;
-		gpio4 = &pinctrl_aon;
-		usb0 = &rp1_usb0;
-		usb1 = &rp1_usb1;
-		drm-dsi1 = &dsi0;
-		drm-dsi2 = &dsi1;
-	};
-
-	__overrides__ {
-		bdaddr = <&bluetooth>, "local-bd-address[";
-		button_debounce = <&pwr_key>, "debounce-interval:0";
-		cooling_fan = <&fan>, "status", <&rp1_pwm1>, "status";
-		uart0_console = <&uart0>,"status", <&aliases>, "console=",&uart0;
-		i2c0 = <&i2c0>, "status";
-		i2c1 = <&i2c1>, "status";
-		i2c = <&i2c1>, "status";
-		i2c_arm = <&i2c_arm>, "status";
-		i2c_vc = <&i2c_vc>, "status";
-		i2c_csi_dsi = <&i2c_csi_dsi>, "status";
-		i2c_csi_dsi0 = <&i2c_csi_dsi0>, "status";
-		i2c_csi_dsi1 = <&i2c_csi_dsi1>, "status";
-		i2c0_baudrate = <&i2c0>, "clock-frequency:0";
-		i2c1_baudrate = <&i2c1>, "clock-frequency:0";
-		i2c_baudrate = <&i2c_arm>, "clock-frequency:0";
-		i2c_arm_baudrate = <&i2c_arm>, "clock-frequency:0";
-		i2c_vc_baudrate = <&i2c_vc>, "clock-frequency:0";
-		krnbt = <&bluetooth>, "status";
-		nvme = <&pciex1>, "status";
-		pciex1 = <&pciex1>, "status";
-		pciex1_gen = <&pciex1> , "max-link-speed:0";
-		pciex1_no_l0s = <&pciex1>, "aspm-no-l0s?";
-		pciex1_tperst_clk_ms = <&pciex1>, "brcm,tperst-clk-ms:0";
-		pcie_tperst_clk_ms = <&pciex1>, "brcm,tperst-clk-ms:0";
-		random = <&random>, "status";
-		rtc = <&rpi_rtc>, "status";
-		rtc_bbat_vchg = <&rpi_rtc>, "trickle-charge-microvolt:0";
-		sd_cqe = <&sdio1>, "supports-cqe?";
-		spi = <&spi0>, "status";
-		suspend = <&pwr_key>, "linux,code:0=205";
-		uart0 = <&uart0>, "status";
-		wifiaddr = <&wifi>, "local-mac-address[";
-
-		act_led_gpio = <&led_act>,"gpios:4",<&led_act>,"gpios:0=",<&gpio>;
-		act_led_activelow = <&led_act>,"gpios:8";
-		act_led_trigger = <&led_act>, "linux,default-trigger";
-		pwr_led_gpio = <&led_pwr>,"gpios:4";
-		pwr_led_activelow = <&led_pwr>, "gpios:8";
-		pwr_led_trigger = <&led_pwr>, "linux,default-trigger";
-		eth_led0 = <&phy1>,"led-modes:0";
-		eth_led1 = <&phy1>,"led-modes:4";
-		drm_fb0_rp1_dsi0 = <&aliases>, "drm-fb0=",&dsi0;
-		drm_fb0_rp1_dsi1 = <&aliases>, "drm-fb0=",&dsi1;
-		drm_fb0_rp1_dpi = <&aliases>, "drm-fb0=",&dpi;
-		drm_fb0_vc4 = <&aliases>, "drm-fb0=",&vc4;
-		drm_fb1_rp1_dsi0 = <&aliases>, "drm-fb1=",&dsi0;
-		drm_fb1_rp1_dsi1 = <&aliases>, "drm-fb1=",&dsi1;
-		drm_fb1_rp1_dpi = <&aliases>, "drm-fb1=",&dpi;
-		drm_fb1_vc4 = <&aliases>, "drm-fb1=",&vc4;
-		drm_fb2_rp1_dsi0 = <&aliases>, "drm-fb2=",&dsi0;
-		drm_fb2_rp1_dsi1 = <&aliases>, "drm-fb2=",&dsi1;
-		drm_fb2_rp1_dpi = <&aliases>, "drm-fb2=",&dpi;
-		drm_fb2_vc4 = <&aliases>, "drm-fb2=",&vc4;
-
-		fan_temp0 = <&cpu_tepid>,"temperature:0";
-		fan_temp1 = <&cpu_warm>,"temperature:0";
-		fan_temp2 = <&cpu_hot>,"temperature:0";
-		fan_temp3 = <&cpu_vhot>,"temperature:0";
-		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
-		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
-		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
-		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
-		fan_temp0_speed = <&fan>, "cooling-levels:4";
-		fan_temp1_speed = <&fan>, "cooling-levels:8";
-		fan_temp2_speed = <&fan>, "cooling-levels:12";
-		fan_temp3_speed = <&fan>, "cooling-levels:16";
-
-		dwc2_dr_mode = <&usb>, "dr_mode";
-	};
-};
diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts
deleted file mode 100644
index ffbfa3e55234..000000000000
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-
-#include "bcm2712-rpi-cm5.dtsi"
-
-i2c_csi_dsi: &i2c_csi_dsi0 { }; // An alias for compatibility
-
-// 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";
-	};
-};
diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts
deleted file mode 100644
index 15a28d70567c..000000000000
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts
+++ /dev/null
@@ -1,12 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/dts-v1/;
-
-#include "bcm2712-rpi-cm5.dtsi"
-
-i2c_csi_dsi: &i2c_csi_dsi0 { }; // An alias for compatibility
-
-/ {
-	__overrides__ {
-		i2c_csi_dsi = <&i2c_csi_dsi>, "status";
-	};
-};
diff --git a/arch/arm/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
deleted file mode 100644
index 32aab40524b3..000000000000
--- a/arch/arm/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
+++ /dev/null
@@ -1,107 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "bcm2712-rpi-5-b.dts"
-
-&gio {
-	brcm,gpio-bank-widths = <32 4>;
-
-	gpio-line-names =
-		"", // GPIO_000
-		"2712_BOOT_CS_N", // GPIO_001
-		"2712_BOOT_MISO", // GPIO_002
-		"2712_BOOT_MOSI", // GPIO_003
-		"2712_BOOT_SCLK", // GPIO_004
-		"", // GPIO_005
-		"", // GPIO_006
-		"", // GPIO_007
-		"", // GPIO_008
-		"", // GPIO_009
-		"", // GPIO_010
-		"", // GPIO_011
-		"", // GPIO_012
-		"", // GPIO_013
-		"PCIE_SDA", // GPIO_014
-		"PCIE_SCL", // GPIO_015
-		"", // GPIO_016
-		"", // GPIO_017
-		"-", // GPIO_018
-		"-", // GPIO_019
-		"PWR_GPIO", // GPIO_020
-		"2712_G21_FS", // GPIO_021
-		"-", // GPIO_022
-		"-", // GPIO_023
-		"BT_RTS", // GPIO_024
-		"BT_CTS", // GPIO_025
-		"BT_TXD", // GPIO_026
-		"BT_RXD", // GPIO_027
-		"WL_ON", // GPIO_028
-		"BT_ON", // GPIO_029
-		"WIFI_SDIO_CLK", // GPIO_030
-		"WIFI_SDIO_CMD", // GPIO_031
-		"WIFI_SDIO_D0", // GPIO_032
-		"WIFI_SDIO_D1", // GPIO_033
-		"WIFI_SDIO_D2", // GPIO_034
-		"WIFI_SDIO_D3"; // GPIO_035
-};
-
-&gio_aon {
-	brcm,gpio-bank-widths = <15 6>;
-
-	gpio-line-names =
-		"RP1_SDA", // AON_GPIO_00
-		"RP1_SCL", // AON_GPIO_01
-		"RP1_RUN", // AON_GPIO_02
-		"SD_IOVDD_SEL", // AON_GPIO_03
-		"SD_PWR_ON", // AON_GPIO_04
-		"SD_CDET_N", // AON_GPIO_05
-		"SD_FLG_N", // AON_GPIO_06
-		"", // AON_GPIO_07
-		"2712_WAKE", // AON_GPIO_08
-		"2712_STAT_LED", // AON_GPIO_09
-		"", // AON_GPIO_10
-		"", // AON_GPIO_11
-		"PMIC_INT", // AON_GPIO_12
-		"UART_TX_FS", // AON_GPIO_13
-		"UART_RX_FS", // AON_GPIO_14
-		"", // AON_GPIO_15
-		"", // AON_GPIO_16
-
-		// Pad bank0 out to 32 entries
-		"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
-
-		"HDMI0_SCL", // AON_SGPIO_00
-		"HDMI0_SDA", // AON_SGPIO_01
-		"HDMI1_SCL", // AON_SGPIO_02
-		"HDMI1_SDA", // AON_SGPIO_03
-		"PMIC_SCL", // AON_SGPIO_04
-		"PMIC_SDA"; // AON_SGPIO_05
-};
-
-&pinctrl {
-	compatible = "brcm,bcm2712d0-pinctrl";
-	reg = <0x7d504100 0x20>;
-};
-
-&pinctrl_aon {
-	compatible = "brcm,bcm2712d0-aon-pinctrl";
-	reg = <0x7d510700 0x1c>;
-};
-
-&vc4 {
-	compatible = "brcm,bcm2712d0-vc6";
-};
-
-&uart10 {
-	interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
-};
-
-&spi10 {
-	dmas = <&dma40 3>, <&dma40 4>;
-};
-
-&hdmi0 {
-	dmas = <&dma40 (12|(1<<30)|(1<<24)|(10<<16)|(15<<20))>;
-};
-
-&hdmi1 {
-	dmas = <&dma40 (13|(1<<30)|(1<<24)|(10<<16)|(15<<20))>;
-};
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
index 1457e696f968..89a6426b7ac2 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -1,2 +1,864 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "arm/broadcom/bcm2712-rpi-5-b.dts"
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/rp1.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/mfd/rp1.h>
+#include <dt-bindings/pwm/pwm.h>
+#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
+
+#define i2c0 _i2c0
+#define i2c3 _i2c3
+#define i2c4 _i2c4
+#define i2c5 _i2c5
+#define i2c6 _i2c6
+#define i2c8 _i2c8
+#define i2s _i2s
+#define pwm0 _pwm0
+#define pwm1 _pwm1
+#define spi0 _spi0
+#define spi3 _spi3
+#define spi4 _spi4
+#define spi5 _spi5
+#define spi6 _spi6
+#define uart0 _uart0
+#define uart2 _uart2
+#define uart5 _uart5
+
+#include "bcm2712.dtsi"
+
+#undef i2c0
+#undef i2c3
+#undef i2c4
+#undef i2c5
+#undef i2c6
+#undef i2c8
+#undef i2s
+#undef pwm0
+#undef pwm1
+#undef spi0
+#undef spi3
+#undef spi4
+#undef spi5
+#undef spi6
+#undef uart0
+#undef uart2
+#undef uart3
+#undef uart4
+#undef uart5
+
+/ {
+	compatible = "raspberrypi,5-model-b", "brcm,bcm2712";
+	model = "Raspberry Pi 5";
+
+	/* Will be filled by the bootloader */
+	memory at 0 {
+		device_type = "memory";
+		reg = <0 0 0x28000000>;
+	};
+
+	leds: leds {
+		compatible = "gpio-leds";
+
+		led_pwr: led-pwr {
+			label = "PWR";
+			gpios = <&rp1_gpio 44 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+			linux,default-trigger = "none";
+		};
+
+		led_act: led-act {
+			label = "ACT";
+			gpios = <&gio_aon 9 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+			linux,default-trigger = "mmc0";
+		};
+	};
+
+	sd_io_1v8_reg: sd_io_1v8_reg {
+		compatible = "regulator-gpio";
+		regulator-name = "vdd-sd-io";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		regulator-always-on;
+		regulator-settling-time-us = <5000>;
+		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
+		states = <1800000 0x1
+			  3300000 0x0>;
+		status = "okay";
+	};
+
+	sd_vcc_reg: sd_vcc_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc-sd";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-boot-on;
+		enable-active-high;
+		gpios = <&gio_aon 4 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	wl_on_reg: wl_on_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "wl-on-regulator";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		pinctrl-0 = <&wl_on_pins>;
+		pinctrl-names = "default";
+
+		gpio = <&gio 28 GPIO_ACTIVE_HIGH>;
+
+		startup-delay-us = <150000>;
+		enable-active-high;
+	};
+
+	clocks: clocks {
+	};
+
+	cam1_clk: cam1_clk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		status = "disabled";
+	};
+
+	cam0_clk: cam0_clk {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		status = "disabled";
+	};
+
+	cam0_reg: cam0_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "cam0_reg";
+		enable-active-high;
+		status = "okay";
+		gpio = <&rp1_gpio 34 0>;  // CD0_IO0_MICCLK, to MIPI 0 connector
+	};
+
+	cam1_reg: cam1_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "cam1_reg";
+		enable-active-high;
+		status = "okay";
+		gpio = <&rp1_gpio 46 0>;  // CD1_IO0_MICCLK, to MIPI 1 connector
+	};
+
+	cam_dummy_reg: cam_dummy_reg {
+		compatible = "regulator-fixed";
+		regulator-name = "cam-dummy-reg";
+		status = "okay";
+	};
+
+	dummy: dummy {
+		// A target for unwanted overlay fragments
+	};
+
+
+	// A few extra labels to keep overlays happy
+
+	i2c0if: i2c0if {};
+	i2c0mux: i2c0mux {};
+};
+
+rp1_target: &pcie2 {
+	brcm,enable-mps-rcb;
+	brcm,vdm-qos-map = <0xbbaa9888>;
+	aspm-no-l0s;
+	status = "okay";
+};
+
+// Add some labels to 2712 device
+
+// The system UART
+uart10: &_uart0 { status = "okay"; };
+
+// The system SPI for the bootloader EEPROM
+spi10: &_spi0 { status = "okay"; };
+
+i2c_rp1boot: &_i2c3 { };
+
+#include "rp1.dtsi"
+
+&rp1 {
+	// PCIe address space layout:
+	// 00_00000000-00_00xxxxxx = RP1 peripherals
+	// 10_00000000-1x_xxxxxxxx = up to 64GB system RAM
+
+	// outbound access aimed at PCIe 0_00xxxxxx -> RP1 c0_40xxxxxx
+	// This is the RP1 peripheral space
+	ranges = <0xc0 0x40000000
+		  0x02000000 0x00 0x00000000
+		  0x00 0x00400000>;
+
+	dma-ranges =
+	// inbound RP1 1x_xxxxxxxx -> PCIe 1x_xxxxxxxx
+		     <0x10 0x00000000
+		      0x43000000 0x10 0x00000000
+		      0x10 0x00000000>,
+
+	// inbound RP1 c0_40xxxxxx -> PCIe 00_00xxxxxx
+	// This allows the RP1 DMA controller to address RP1 hardware
+		     <0xc0 0x40000000
+		      0x02000000 0x0 0x00000000
+		      0x0 0x00400000>,
+
+	// inbound RP1 0x_xxxxxxxx -> PCIe 1x_xxxxxxxx
+		     <0x00 0x00000000
+		      0x02000000 0x10 0x00000000
+		      0x10 0x00000000>;
+};
+
+// Expose RP1 nodes as system nodes with labels
+
+&rp1_dma  {
+	status = "okay";
+};
+
+&rp1_eth {
+	status = "okay";
+	phy-handle = <&phy1>;
+	phy-reset-gpios = <&rp1_gpio 32 GPIO_ACTIVE_LOW>;
+	phy-reset-duration = <5>;
+
+	phy1: ethernet-phy at 1 {
+		reg = <0x1>;
+		brcm,powerdown-enable;
+	};
+};
+
+gpio: &rp1_gpio {
+	status = "okay";
+};
+
+aux: &dummy {};
+
+&rp1_usb0 {
+	pinctrl-0 = <&usb_vbus_pins>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
+&rp1_usb1 {
+	status = "okay";
+};
+
+#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>;
+};
+
+i2c_csi_dsi1: &i2c4 { // Note: This is for MIPI1 connector only
+	pinctrl-0 = <&rp1_i2c4_40_41>;
+	pinctrl-names = "default";
+	clock-frequency = <100000>;
+};
+
+i2c_csi_dsi: &i2c_csi_dsi1 { }; // An alias for compatibility
+
+csi0: &rp1_csi0 { };
+csi1: &rp1_csi1 { };
+dsi0: &rp1_dsi0 { };
+dsi1: &rp1_dsi1 { };
+dpi: &rp1_dpi { };
+vec: &rp1_vec { };
+dpi_gpio0:              &rp1_dpi_24bit_gpio0        { };
+dpi_gpio1:              &rp1_dpi_24bit_gpio2        { };
+dpi_18bit_cpadhi_gpio0: &rp1_dpi_18bit_cpadhi_gpio0 { };
+dpi_18bit_cpadhi_gpio2: &rp1_dpi_18bit_cpadhi_gpio2 { };
+dpi_18bit_gpio0:        &rp1_dpi_18bit_gpio0        { };
+dpi_18bit_gpio2:        &rp1_dpi_18bit_gpio2        { };
+dpi_16bit_cpadhi_gpio0: &rp1_dpi_16bit_cpadhi_gpio0 { };
+dpi_16bit_cpadhi_gpio2: &rp1_dpi_16bit_cpadhi_gpio2 { };
+dpi_16bit_gpio0:        &rp1_dpi_16bit_gpio0        { };
+dpi_16bit_gpio2:        &rp1_dpi_16bit_gpio2        { };
+
+/* Add the IOMMUs for some RP1 bus masters */
+
+&csi0 {
+	iommus = <&iommu5>;
+};
+
+&csi1 {
+	iommus = <&iommu5>;
+};
+
+&dsi0 {
+	iommus = <&iommu5>;
+};
+
+&dsi1 {
+	iommus = <&iommu5>;
+};
+
+&dpi {
+	iommus = <&iommu5>;
+};
+
+&vec {
+	iommus = <&iommu5>;
+};
+
+&ddc0 {
+	status = "disabled";
+};
+
+&ddc1 {
+	status = "disabled";
+};
+
+&hdmi0 {
+	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
+	clock-names = "hdmi", "bvb", "audio", "cec";
+	status = "disabled";
+};
+
+&hdmi1 {
+	clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
+	clock-names = "hdmi", "bvb", "audio", "cec";
+	status = "disabled";
+};
+
+&hvs {
+	clocks = <&firmware_clocks 4>, <&firmware_clocks 16>;
+	clock-names = "core", "disp";
+};
+
+&mop {
+	status = "disabled";
+};
+
+&moplet {
+	status = "disabled";
+};
+
+&pixelvalve0 {
+	status = "disabled";
+};
+
+&pixelvalve1 {
+	status = "disabled";
+};
+
+&disp_intr {
+	status = "disabled";
+};
+
+/* SDIO1 is used to drive the SD card */
+&sdio1 {
+	pinctrl-0 = <&emmc_sd_pulls>, <&emmc_aon_cd_pins>;
+	pinctrl-names = "default";
+	vqmmc-supply = <&sd_io_1v8_reg>;
+	vmmc-supply = <&sd_vcc_reg>;
+	bus-width = <4>;
+	sd-uhs-sdr50;
+	sd-uhs-ddr50;
+	sd-uhs-sdr104;
+	cd-gpios = <&gio_aon 5 GPIO_ACTIVE_LOW>;
+	//no-1-8-v;
+	status = "okay";
+};
+
+&pinctrl_aon {
+	emmc_aon_cd_pins: emmc_aon_cd_pins {
+		function = "sd_card_g";
+		pins = "aon_gpio5";
+		bias-pull-up;
+	};
+
+	/* Slight hack - only one PWM pin (status LED) is usable */
+	aon_pwm_1pin: aon_pwm_1pin {
+		function = "aon_pwm";
+		pins = "aon_gpio9";
+	};
+};
+
+&pinctrl {
+	pwr_button_pins: pwr_button_pins {
+		function = "gpio";
+		pins = "gpio20";
+		bias-pull-up;
+	};
+
+	wl_on_pins: wl_on_pins {
+		function = "gpio";
+		pins = "gpio28";
+	};
+
+	bt_shutdown_pins: bt_shutdown_pins {
+		function = "gpio";
+		pins = "gpio29";
+	};
+
+	emmc_sd_pulls: emmc_sd_pulls {
+		pins = "emmc_cmd", "emmc_dat0", "emmc_dat1", "emmc_dat2", "emmc_dat3";
+		bias-pull-up;
+	};
+};
+
+/* uarta communicates with the BT module */
+&uarta {
+	uart-has-rtscts;
+	auto-flow-control;
+	status = "okay";
+	clock-frequency = <96000000>;
+	pinctrl-0 = <&uarta_24_pins &bt_shutdown_pins>;
+	pinctrl-names = "default";
+
+	bluetooth: bluetooth {
+		compatible = "brcm,bcm43438-bt";
+		max-speed = <3000000>;
+		shutdown-gpios = <&gio 29 GPIO_ACTIVE_HIGH>;
+		local-bd-address = [ 00 00 00 00 00 00 ];
+	};
+};
+
+&i2c_rp1boot {
+	clock-frequency = <400000>;
+	pinctrl-0 = <&i2c3_m4_agpio0_pins>;
+	pinctrl-names = "default";
+};
+
+/ {
+	chosen: chosen {
+		bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
+		stdout-path = "serial10:115200n8";
+	};
+
+	fan: cooling_fan {
+		status = "disabled";
+		compatible = "pwm-fan";
+		#cooling-cells = <2>;
+		cooling-min-state = <0>;
+		cooling-max-state = <3>;
+		cooling-levels = <0 75 125 175 250>;
+		pwms = <&rp1_pwm1 3 41566 PWM_POLARITY_INVERTED>;
+		rpm-regmap = <&rp1_pwm1>;
+		rpm-offset = <0x3c>;
+	};
+
+	pwr_button {
+		compatible = "gpio-keys";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&pwr_button_pins>;
+		status = "okay";
+
+		pwr_key: pwr {
+			label = "pwr_button";
+			// linux,code = <205>; // KEY_SUSPEND
+			linux,code = <116>; // KEY_POWER
+			gpios = <&gio 20 GPIO_ACTIVE_LOW>;
+			debounce-interval = <50>; // ms
+		};
+	};
+};
+
+&usb {
+	power-domains = <&power RPI_POWER_DOMAIN_USB>;
+};
+
+/* SDIO2 drives the WLAN interface */
+&sdio2 {
+	pinctrl-0 = <&sdio2_30_pins>;
+	pinctrl-names = "default";
+	bus-width = <4>;
+	vmmc-supply = <&wl_on_reg>;
+	sd-uhs-ddr50;
+	non-removable;
+	status = "okay";
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	wifi: wifi at 1 {
+		reg = <1>;
+		compatible = "brcm,bcm4329-fmac";
+		local-mac-address = [00 00 00 00 00 00];
+	};
+};
+
+&rpivid {
+	status = "okay";
+};
+
+&pinctrl {
+	spi10_gpio2: spi10_gpio2 {
+		function = "vc_spi0";
+		pins = "gpio2", "gpio3", "gpio4";
+		bias-disable;
+	};
+
+	spi10_cs_gpio1: spi10_cs_gpio1 {
+		function = "gpio";
+		pins = "gpio1";
+		bias-pull-up;
+	};
+};
+
+spi10_pins: &spi10_gpio2 {};
+spi10_cs_pins: &spi10_cs_gpio1 {};
+
+&spi10 {
+	pinctrl-names = "default";
+	cs-gpios = <&gio 1 1>;
+	pinctrl-0 = <&spi10_pins &spi10_cs_pins>;
+
+	spidev10: spidev at 0 {
+		compatible = "spidev";
+		reg = <0>;	/* CE0 */
+		#address-cells = <1>;
+		#size-cells = <0>;
+		spi-max-frequency = <20000000>;
+		status = "okay";
+	};
+};
+
+// =============================================
+// Board specific stuff here
+
+&gio_aon {
+	// Don't use GIO_AON as an interrupt controller because it will
+	// clash with the firmware monitoring the PMIC interrupt via the VPU.
+
+	/delete-property/ interrupt-controller;
+};
+
+&main_aon_irq {
+	// Don't use the MAIN_AON_IRQ interrupt controller because it will
+	// clash with the firmware monitoring the PMIC interrupt via the VPU.
+
+	status = "disabled";
+};
+
+&rp1_pwm1 {
+	status = "disabled";
+	pinctrl-0 = <&rp1_pwm1_gpio45>;
+	pinctrl-names = "default";
+};
+
+&thermal_trips {
+	cpu_tepid: cpu-tepid {
+		temperature = <50000>;
+		hysteresis = <5000>;
+		type = "active";
+	};
+
+	cpu_warm: cpu-warm {
+		temperature = <60000>;
+		hysteresis = <5000>;
+		type = "active";
+	};
+
+	cpu_hot: cpu-hot {
+		temperature = <67500>;
+		hysteresis = <5000>;
+		type = "active";
+	};
+
+	cpu_vhot: cpu-vhot {
+		temperature = <75000>;
+		hysteresis = <5000>;
+		type = "active";
+	};
+};
+
+&cooling_maps {
+	tepid {
+		trip = <&cpu_tepid>;
+		cooling-device = <&fan 1 1>;
+	};
+
+	warm {
+		trip = <&cpu_warm>;
+		cooling-device = <&fan 2 2>;
+	};
+
+	hot {
+		trip = <&cpu_hot>;
+		cooling-device = <&fan 3 3>;
+	};
+
+	vhot {
+		trip = <&cpu_vhot>;
+		cooling-device = <&fan 4 4>;
+	};
+
+	melt {
+		trip = <&cpu_crit>;
+		cooling-device = <&fan 4 4>;
+	};
+};
+
+&gio {
+	// The GPIOs above 35 are not used on Pi 5, so shrink the upper bank
+	// to reduce the clutter in gpioinfo/pinctrl
+	brcm,gpio-bank-widths = <32 4>;
+
+	gpio-line-names =
+		"-", // GPIO_000
+		"2712_BOOT_CS_N", // GPIO_001
+		"2712_BOOT_MISO", // GPIO_002
+		"2712_BOOT_MOSI", // GPIO_003
+		"2712_BOOT_SCLK", // GPIO_004
+		"-", // GPIO_005
+		"-", // GPIO_006
+		"-", // GPIO_007
+		"-", // GPIO_008
+		"-", // GPIO_009
+		"-", // GPIO_010
+		"-", // GPIO_011
+		"-", // GPIO_012
+		"-", // GPIO_013
+		"PCIE_SDA", // GPIO_014
+		"PCIE_SCL", // GPIO_015
+		"-", // GPIO_016
+		"-", // GPIO_017
+		"-", // GPIO_018
+		"-", // GPIO_019
+		"PWR_GPIO", // GPIO_020
+		"2712_G21_FS", // GPIO_021
+		"-", // GPIO_022
+		"-", // GPIO_023
+		"BT_RTS", // GPIO_024
+		"BT_CTS", // GPIO_025
+		"BT_TXD", // GPIO_026
+		"BT_RXD", // GPIO_027
+		"WL_ON", // GPIO_028
+		"BT_ON", // GPIO_029
+		"WIFI_SDIO_CLK", // GPIO_030
+		"WIFI_SDIO_CMD", // GPIO_031
+		"WIFI_SDIO_D0", // GPIO_032
+		"WIFI_SDIO_D1", // GPIO_033
+		"WIFI_SDIO_D2", // GPIO_034
+		"WIFI_SDIO_D3"; // GPIO_035
+};
+
+&gio_aon {
+	gpio-line-names =
+		"RP1_SDA", // AON_GPIO_00
+		"RP1_SCL", // AON_GPIO_01
+		"RP1_RUN", // AON_GPIO_02
+		"SD_IOVDD_SEL", // AON_GPIO_03
+		"SD_PWR_ON", // AON_GPIO_04
+		"SD_CDET_N", // AON_GPIO_05
+		"SD_FLG_N", // AON_GPIO_06
+		"-", // AON_GPIO_07
+		"2712_WAKE", // AON_GPIO_08
+		"2712_STAT_LED", // AON_GPIO_09
+		"-", // AON_GPIO_10
+		"-", // AON_GPIO_11
+		"PMIC_INT", // AON_GPIO_12
+		"UART_TX_FS", // AON_GPIO_13
+		"UART_RX_FS", // AON_GPIO_14
+		"-", // AON_GPIO_15
+		"-", // AON_GPIO_16
+
+		// Pad bank0 out to 32 entries
+		"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+
+		"HDMI0_SCL", // AON_SGPIO_00
+		"HDMI0_SDA", // AON_SGPIO_01
+		"HDMI1_SCL", // AON_SGPIO_02
+		"HDMI1_SDA", // AON_SGPIO_03
+		"PMIC_SCL", // AON_SGPIO_04
+		"PMIC_SDA"; // AON_SGPIO_05
+
+	rp1_run_hog {
+		gpio-hog;
+		gpios = <2 GPIO_ACTIVE_HIGH>;
+		output-high;
+		line-name = "RP1 RUN pin";
+	};
+};
+
+&rp1_gpio {
+	gpio-line-names =
+		"ID_SDA", // GPIO0
+		"ID_SCL", // GPIO1
+		"GPIO2", // GPIO2
+		"GPIO3", // GPIO3
+		"GPIO4", // GPIO4
+		"GPIO5", // GPIO5
+		"GPIO6", // GPIO6
+		"GPIO7", // GPIO7
+		"GPIO8", // GPIO8
+		"GPIO9", // GPIO9
+		"GPIO10", // GPIO10
+		"GPIO11", // GPIO11
+		"GPIO12", // GPIO12
+		"GPIO13", // GPIO13
+		"GPIO14", // GPIO14
+		"GPIO15", // GPIO15
+		"GPIO16", // GPIO16
+		"GPIO17", // GPIO17
+		"GPIO18", // GPIO18
+		"GPIO19", // GPIO19
+		"GPIO20", // GPIO20
+		"GPIO21", // GPIO21
+		"GPIO22", // GPIO22
+		"GPIO23", // GPIO23
+		"GPIO24", // GPIO24
+		"GPIO25", // GPIO25
+		"GPIO26", // GPIO26
+		"GPIO27", // GPIO27
+
+		"PCIE_RP1_WAKE", // GPIO28
+		"FAN_TACH", // GPIO29
+		"HOST_SDA", // GPIO30
+		"HOST_SCL", // GPIO31
+		"ETH_RST_N", // GPIO32
+		"-", // GPIO33
+
+		"CD0_IO0_MICCLK", // GPIO34
+		"CD0_IO0_MICDAT0", // GPIO35
+		"RP1_PCIE_CLKREQ_N", // GPIO36
+		"-", // GPIO37
+		"CD0_SDA", // GPIO38
+		"CD0_SCL", // GPIO39
+		"CD1_SDA", // GPIO40
+		"CD1_SCL", // GPIO41
+		"USB_VBUS_EN", // GPIO42
+		"USB_OC_N", // GPIO43
+		"RP1_STAT_LED", // GPIO44
+		"FAN_PWM", // GPIO45
+		"CD1_IO0_MICCLK", // GPIO46
+		"2712_WAKE", // GPIO47
+		"CD1_IO1_MICDAT1", // GPIO48
+		"EN_MAX_USB_CUR", // GPIO49
+		"-", // GPIO50
+		"-", // GPIO51
+		"-", // GPIO52
+		"-"; // GPIO53
+
+	usb_vbus_pins: usb_vbus_pins {
+		function = "vbus1";
+		pins = "gpio42", "gpio43";
+	};
+};
+
+/ {
+	aliases: aliases {
+		blconfig = &blconfig;
+		bluetooth = &bluetooth;
+		console = &uart10;
+		ethernet0 = &rp1_eth;
+		wifi0 = &wifi;
+		fb = &fb;
+		mailbox = &mailbox;
+		mmc0 = &sdio1;
+		uart0 = &uart0;
+		uart1 = &uart1;
+		uart2 = &uart2;
+		uart3 = &uart3;
+		uart4 = &uart4;
+		uart10 = &uart10;
+		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		serial4 = &uart4;
+		serial10 = &uart10;
+		i2c = &i2c_arm;
+		i2c0 = &i2c0;
+		i2c1 = &i2c1;
+		i2c2 = &i2c2;
+		i2c3 = &i2c3;
+		i2c4 = &i2c4;
+		i2c5 = &i2c5;
+		i2c6 = &i2c6;
+		i2c10 = &i2c_rp1boot;
+		// Bit-bashed i2c_gpios start at 10
+		spi0 = &spi0;
+		spi1 = &spi1;
+		spi2 = &spi2;
+		spi3 = &spi3;
+		spi4 = &spi4;
+		spi5 = &spi5;
+		spi10 = &spi10;
+		gpio0 = &gpio;
+		gpio1 = &gio;
+		gpio2 = &gio_aon;
+		gpio3 = &pinctrl;
+		gpio4 = &pinctrl_aon;
+		usb0 = &rp1_usb0;
+		usb1 = &rp1_usb1;
+		drm-dsi1 = &dsi0;
+		drm-dsi2 = &dsi1;
+	};
+
+	__overrides__ {
+		bdaddr = <&bluetooth>, "local-bd-address[";
+		button_debounce = <&pwr_key>, "debounce-interval:0";
+		cooling_fan = <&fan>, "status", <&rp1_pwm1>, "status";
+		uart0_console = <&uart0>,"status", <&aliases>, "console=",&uart0;
+		i2c0 = <&i2c0>, "status";
+		i2c1 = <&i2c1>, "status";
+		i2c = <&i2c1>, "status";
+		i2c_arm = <&i2c_arm>, "status";
+		i2c_vc = <&i2c_vc>, "status";
+		i2c_csi_dsi = <&i2c_csi_dsi>, "status";
+		i2c_csi_dsi0 = <&i2c_csi_dsi0>, "status";
+		i2c_csi_dsi1 = <&i2c_csi_dsi1>, "status";
+		i2c0_baudrate = <&i2c0>, "clock-frequency:0";
+		i2c1_baudrate = <&i2c1>, "clock-frequency:0";
+		i2c_baudrate = <&i2c_arm>, "clock-frequency:0";
+		i2c_arm_baudrate = <&i2c_arm>, "clock-frequency:0";
+		i2c_vc_baudrate = <&i2c_vc>, "clock-frequency:0";
+		krnbt = <&bluetooth>, "status";
+		nvme = <&pciex1>, "status";
+		pciex1 = <&pciex1>, "status";
+		pciex1_gen = <&pciex1> , "max-link-speed:0";
+		pciex1_no_l0s = <&pciex1>, "aspm-no-l0s?";
+		pciex1_tperst_clk_ms = <&pciex1>, "brcm,tperst-clk-ms:0";
+		pcie_tperst_clk_ms = <&pciex1>, "brcm,tperst-clk-ms:0";
+		random = <&random>, "status";
+		rtc = <&rpi_rtc>, "status";
+		rtc_bbat_vchg = <&rpi_rtc>, "trickle-charge-microvolt:0";
+		sd_cqe = <&sdio1>, "supports-cqe?";
+		spi = <&spi0>, "status";
+		suspend = <&pwr_key>, "linux,code:0=205";
+		uart0 = <&uart0>, "status";
+		wifiaddr = <&wifi>, "local-mac-address[";
+
+		act_led_gpio = <&led_act>,"gpios:4",<&led_act>,"gpios:0=",<&gpio>;
+		act_led_activelow = <&led_act>,"gpios:8";
+		act_led_trigger = <&led_act>, "linux,default-trigger";
+		pwr_led_gpio = <&led_pwr>,"gpios:4";
+		pwr_led_activelow = <&led_pwr>, "gpios:8";
+		pwr_led_trigger = <&led_pwr>, "linux,default-trigger";
+		eth_led0 = <&phy1>,"led-modes:0";
+		eth_led1 = <&phy1>,"led-modes:4";
+		drm_fb0_rp1_dsi0 = <&aliases>, "drm-fb0=",&dsi0;
+		drm_fb0_rp1_dsi1 = <&aliases>, "drm-fb0=",&dsi1;
+		drm_fb0_rp1_dpi = <&aliases>, "drm-fb0=",&dpi;
+		drm_fb0_vc4 = <&aliases>, "drm-fb0=",&vc4;
+		drm_fb1_rp1_dsi0 = <&aliases>, "drm-fb1=",&dsi0;
+		drm_fb1_rp1_dsi1 = <&aliases>, "drm-fb1=",&dsi1;
+		drm_fb1_rp1_dpi = <&aliases>, "drm-fb1=",&dpi;
+		drm_fb1_vc4 = <&aliases>, "drm-fb1=",&vc4;
+		drm_fb2_rp1_dsi0 = <&aliases>, "drm-fb2=",&dsi0;
+		drm_fb2_rp1_dsi1 = <&aliases>, "drm-fb2=",&dsi1;
+		drm_fb2_rp1_dpi = <&aliases>, "drm-fb2=",&dpi;
+		drm_fb2_vc4 = <&aliases>, "drm-fb2=",&vc4;
+
+		fan_temp0 = <&cpu_tepid>,"temperature:0";
+		fan_temp1 = <&cpu_warm>,"temperature:0";
+		fan_temp2 = <&cpu_hot>,"temperature:0";
+		fan_temp3 = <&cpu_vhot>,"temperature:0";
+		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
+		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
+		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
+		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
+		fan_temp0_speed = <&fan>, "cooling-levels:4";
+		fan_temp1_speed = <&fan>, "cooling-levels:8";
+		fan_temp2_speed = <&fan>, "cooling-levels:12";
+		fan_temp3_speed = <&fan>, "cooling-levels:16";
+
+		dwc2_dr_mode = <&usb>, "dr_mode";
+	};
+};
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 3815e40cc0aa..f89321921f27 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm4io.dts
@@ -1,2 +1,20 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "arm/broadcom/bcm2712-rpi-cm5-cm4io.dts"
+/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";
+	};
+};
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 e2215a3f6276..47ce4ff5049a 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5-cm5io.dts
@@ -1,2 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "arm/broadcom/bcm2712-rpi-cm5-cm5io.dts"
+/dts-v1/;
+
+#include "bcm2712-rpi-cm5.dtsi"
+
+/ {
+	__overrides__ {
+		i2c_csi_dsi = <&i2c_csi_dsi>, "status";
+	};
+};
diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
similarity index 98%
rename from arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
rename to arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
index 67d175b1ffa4..22ffa657bde9 100644
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
@@ -76,17 +76,11 @@ led_act: led-act {
 	};
 
 	sd_io_1v8_reg: sd_io_1v8_reg {
-		compatible = "regulator-gpio";
+		compatible = "regulator-fixed";
 		regulator-name = "vdd-sd-io";
 		regulator-min-microvolt = <1800000>;
-		regulator-max-microvolt = <3300000>;
-		regulator-boot-on;
+		regulator-max-microvolt = <1800000>;
 		regulator-always-on;
-		regulator-settling-time-us = <5000>;
-		gpios = <&gio_aon 3 GPIO_ACTIVE_HIGH>;
-		states = <1800000 0x1
-			  3300000 0x0>;
-		status = "okay";
 	};
 
 	sd_vcc_reg: sd_vcc_reg {
diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
similarity index 100%
rename from arch/arm/boot/dts/broadcom/bcm2712-rpi.dtsi
rename to arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
diff --git a/arch/arm/boot/dts/broadcom/bcm2712.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
similarity index 100%
rename from arch/arm/boot/dts/broadcom/bcm2712.dtsi
rename to arch/arm64/boot/dts/broadcom/bcm2712.dtsi
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts b/arch/arm64/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
index 9b3ddbb8dafd..32aab40524b3 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts
@@ -1,2 +1,107 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "../../../../arm/boot/dts/broadcom/bcm2712d0-rpi-5-b.dts"
+#include "bcm2712-rpi-5-b.dts"
+
+&gio {
+	brcm,gpio-bank-widths = <32 4>;
+
+	gpio-line-names =
+		"", // GPIO_000
+		"2712_BOOT_CS_N", // GPIO_001
+		"2712_BOOT_MISO", // GPIO_002
+		"2712_BOOT_MOSI", // GPIO_003
+		"2712_BOOT_SCLK", // GPIO_004
+		"", // GPIO_005
+		"", // GPIO_006
+		"", // GPIO_007
+		"", // GPIO_008
+		"", // GPIO_009
+		"", // GPIO_010
+		"", // GPIO_011
+		"", // GPIO_012
+		"", // GPIO_013
+		"PCIE_SDA", // GPIO_014
+		"PCIE_SCL", // GPIO_015
+		"", // GPIO_016
+		"", // GPIO_017
+		"-", // GPIO_018
+		"-", // GPIO_019
+		"PWR_GPIO", // GPIO_020
+		"2712_G21_FS", // GPIO_021
+		"-", // GPIO_022
+		"-", // GPIO_023
+		"BT_RTS", // GPIO_024
+		"BT_CTS", // GPIO_025
+		"BT_TXD", // GPIO_026
+		"BT_RXD", // GPIO_027
+		"WL_ON", // GPIO_028
+		"BT_ON", // GPIO_029
+		"WIFI_SDIO_CLK", // GPIO_030
+		"WIFI_SDIO_CMD", // GPIO_031
+		"WIFI_SDIO_D0", // GPIO_032
+		"WIFI_SDIO_D1", // GPIO_033
+		"WIFI_SDIO_D2", // GPIO_034
+		"WIFI_SDIO_D3"; // GPIO_035
+};
+
+&gio_aon {
+	brcm,gpio-bank-widths = <15 6>;
+
+	gpio-line-names =
+		"RP1_SDA", // AON_GPIO_00
+		"RP1_SCL", // AON_GPIO_01
+		"RP1_RUN", // AON_GPIO_02
+		"SD_IOVDD_SEL", // AON_GPIO_03
+		"SD_PWR_ON", // AON_GPIO_04
+		"SD_CDET_N", // AON_GPIO_05
+		"SD_FLG_N", // AON_GPIO_06
+		"", // AON_GPIO_07
+		"2712_WAKE", // AON_GPIO_08
+		"2712_STAT_LED", // AON_GPIO_09
+		"", // AON_GPIO_10
+		"", // AON_GPIO_11
+		"PMIC_INT", // AON_GPIO_12
+		"UART_TX_FS", // AON_GPIO_13
+		"UART_RX_FS", // AON_GPIO_14
+		"", // AON_GPIO_15
+		"", // AON_GPIO_16
+
+		// Pad bank0 out to 32 entries
+		"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+
+		"HDMI0_SCL", // AON_SGPIO_00
+		"HDMI0_SDA", // AON_SGPIO_01
+		"HDMI1_SCL", // AON_SGPIO_02
+		"HDMI1_SDA", // AON_SGPIO_03
+		"PMIC_SCL", // AON_SGPIO_04
+		"PMIC_SDA"; // AON_SGPIO_05
+};
+
+&pinctrl {
+	compatible = "brcm,bcm2712d0-pinctrl";
+	reg = <0x7d504100 0x20>;
+};
+
+&pinctrl_aon {
+	compatible = "brcm,bcm2712d0-aon-pinctrl";
+	reg = <0x7d510700 0x1c>;
+};
+
+&vc4 {
+	compatible = "brcm,bcm2712d0-vc6";
+};
+
+&uart10 {
+	interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&spi10 {
+	dmas = <&dma40 3>, <&dma40 4>;
+};
+
+&hdmi0 {
+	dmas = <&dma40 (12|(1<<30)|(1<<24)|(10<<16)|(15<<20))>;
+};
+
+&hdmi1 {
+	dmas = <&dma40 (13|(1<<30)|(1<<24)|(10<<16)|(15<<20))>;
+};
diff --git a/arch/arm/boot/dts/broadcom/rp1.dtsi b/arch/arm64/boot/dts/broadcom/rp1.dtsi
similarity index 100%
rename from arch/arm/boot/dts/broadcom/rp1.dtsi
rename to arch/arm64/boot/dts/broadcom/rp1.dtsi
-- 
2.48.1




More information about the kernel-team mailing list