[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