summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts14
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi55
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts24
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2712.dtsi29
-rw-r--r--arch/arm64/boot/dts/broadcom/rp1-common.dtsi105
5 files changed, 196 insertions, 31 deletions
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts b/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts
index 7de24d60bcd1..127be0fc27c2 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts
@@ -35,3 +35,17 @@
"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>;
+};
+
+&uart10 {
+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+};
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
index 04738bf281eb..b7a6bc34ae1a 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
@@ -44,6 +44,30 @@
};
};
+ firmware {
+ firmware: rpi-firmware {
+ compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
+
+ mboxes = <&mailbox>;
+
+ firmware_clocks: clocks {
+ compatible = "raspberrypi,firmware-clocks";
+ #clock-cells = <1>;
+ };
+
+ reset: reset {
+ compatible = "raspberrypi,firmware-reset";
+ #reset-cells = <1>;
+ };
+
+ power: power {
+ compatible = "raspberrypi,bcm2835-power";
+ firmware = <&firmware>;
+ #power-domain-cells = <1>;
+ };
+ };
+ };
+
sd_io_1v8_reg: sd-io-1v8-reg {
compatible = "regulator-gpio";
regulator-name = "vdd-sd-io";
@@ -189,33 +213,6 @@
};
};
-&soc {
- firmware: firmware {
- compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
- #address-cells = <1>;
- #size-cells = <1>;
-
- mboxes = <&mailbox>;
- dma-ranges;
-
- firmware_clocks: clocks {
- compatible = "raspberrypi,firmware-clocks";
- #clock-cells = <1>;
- };
-
- reset: reset {
- compatible = "raspberrypi,firmware-reset";
- #reset-cells = <1>;
- };
- };
-
- power: power {
- compatible = "raspberrypi,bcm2835-power";
- firmware = <&firmware>;
- #power-domain-cells = <1>;
- };
-};
-
/* uarta communicates with the BT module */
&uarta {
uart-has-rtscts;
@@ -252,3 +249,7 @@
&pcie2 {
status = "okay";
};
+
+&v3d {
+ clocks = <&firmware_clocks 5>;
+};
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 285608281446..0fc57e72632e 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -68,6 +68,30 @@
function = "vbus1";
groups = "vbus1";
};
+
+ rp1_i2c4_default_state: rp1-i2c4-default-state {
+ function = "i2c4";
+ groups = "i2c4_2";
+ drive-strength = <12>;
+ bias-pull-up;
+ };
+
+ rp1_i2c6_default_state: rp1-i2c6-default-state {
+ function = "i2c6";
+ groups = "i2c6_0";
+ drive-strength = <12>;
+ bias-pull-up;
+ };
+};
+
+&rp1_i2c4 {
+ pinctrl-0 = <&rp1_i2c4_default_state>;
+ pinctrl-names = "default";
+};
+
+&rp1_i2c6 {
+ pinctrl-0 = <&rp1_i2c6_default_state>;
+ pinctrl-names = "default";
};
&rp1_usb0 {
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
index d57a9b1bff70..761c59d90ffc 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712.dtsi
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/bcm2835-pm.h>
/ {
compatible = "brcm,bcm2712";
@@ -508,10 +509,6 @@
<0x18 0x00000000 0x18 0x00000000 0x04 0x00000000>,
<0x1c 0x00000000 0x1c 0x00000000 0x04 0x00000000>;
- vc4: gpu {
- compatible = "brcm,bcm2712-vc6";
- };
-
pcie0: pcie@1000100000 {
compatible = "brcm,bcm2712-pcie";
reg = <0x10 0x00100000 0x00 0x9310>;
@@ -646,6 +643,30 @@
msi-ranges = <&gicv2 GIC_SPI 247 IRQ_TYPE_EDGE_RISING 8>;
brcm,msi-offset = <8>;
};
+
+ isp: isp@1000880000 {
+ compatible = "brcm,bcm2712-pispbe", "raspberrypi,pispbe";
+ reg = <0x10 0x00880000 0x0 0x4000>;
+ interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&firmware_clocks 7>;
+ };
+
+ v3d: gpu@1002000000 {
+ compatible = "brcm,2712-v3d";
+ reg = <0x10 0x02000000 0x00 0x4000>,
+ <0x10 0x02008000 0x00 0x6000>,
+ <0x10 0x02030800 0x00 0x0700>;
+ reg-names = "hub", "core0", "sms";
+
+ power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
+ resets = <&pm BCM2835_RESET_V3D>;
+ interrupts = <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
+ };
+ };
+
+ vc4: gpu {
+ compatible = "brcm,bcm2712-vc6";
};
timer {
diff --git a/arch/arm64/boot/dts/broadcom/rp1-common.dtsi b/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
index 5a815c379794..16f535939583 100644
--- a/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
+++ b/arch/arm64/boot/dts/broadcom/rp1-common.dtsi
@@ -26,6 +26,83 @@ pci_ep_bus: pci-ep-bus@1 {
<200000000>; // RP1_CLK_SYS
};
+ rp1_i2c0: i2c@40070000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40070000 0x0 0x1000>;
+ interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c1: i2c@40074000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40074000 0x0 0x1000>;
+ interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c2: i2c@40078000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40078000 0x0 0x1000>;
+ interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c3: i2c@4007c000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x4007c000 0x0 0x1000>;
+ interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c4: i2c@40080000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40080000 0x0 0x1000>;
+ interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c5: i2c@40084000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40084000 0x0 0x1000>;
+ interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
+ rp1_i2c6: i2c@40088000 {
+ compatible = "snps,designware-i2c";
+ reg = <0x0 0x40088000 0x0 0x1000>;
+ interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_SYS>;
+ i2c-scl-rising-time-ns = <65>;
+ i2c-scl-falling-time-ns = <100>;
+
+ status = "disabled";
+ };
+
rp1_gpio: pinctrl@400d0000 {
compatible = "raspberrypi,rp1-gpio";
reg = <0x00 0x400d0000 0x0 0xc000>,
@@ -56,6 +133,34 @@ pci_ep_bus: pci-ep-bus@1 {
#size-cells = <0>;
};
+ rp1_csi0: csi@40110000 {
+ compatible = "raspberrypi,rp1-cfe";
+ reg = <0x0 0x40110000 0x0 0x100>, // CSI2 DMA address
+ <0x0 0x40114000 0x0 0x100>, // PHY/CSI Host address
+ <0x0 0x40120000 0x0 0x100>, // MIPI CFG address
+ <0x0 0x40124000 0x0 0x1000>; // PiSP FE address
+ interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_MIPI0_CFG>;
+ assigned-clocks = <&rp1_clocks RP1_CLK_MIPI0_CFG>;
+ assigned-clock-rates = <25000000>;
+
+ status = "disabled";
+ };
+
+ rp1_csi1: csi@40128000 {
+ compatible = "raspberrypi,rp1-cfe";
+ reg = <0x0 0x40128000 0x0 0x100>, // CSI2 DMA address
+ <0x0 0x4012c000 0x0 0x100>, // PHY/CSI Host address
+ <0x0 0x40138000 0x0 0x100>, // MIPI CFG address
+ <0x0 0x4013c000 0x0 0x1000>; // PiSP FE address
+ interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rp1_clocks RP1_CLK_MIPI1_CFG>;
+ assigned-clocks = <&rp1_clocks RP1_CLK_MIPI1_CFG>;
+ assigned-clock-rates = <25000000>;
+
+ status = "disabled";
+ };
+
rp1_usb0: usb@40200000 {
compatible = "snps,dwc3";
reg = <0x00 0x40200000 0x0 0x100000>;