aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch205
1 files changed, 205 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch b/target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch
new file mode 100644
index 0000000000..f60418856a
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0521-ARM-dts-update-bcm2711-rpi-cm4.dts-and-400.patch
@@ -0,0 +1,205 @@
+From a38d7464ca20e1c0aaa3ed77e03e1ea6af4bc557 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Wed, 31 Mar 2021 10:22:30 +0100
+Subject: [PATCH] ARM: dts: update bcm2711-rpi-cm4.dts and -400
+
+Neither CM4 nor Pi 400 have appeared upstream yet, and as a result
+they have missed out on improvements to the Pi 4B platform.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+
+ARM: dts: Bring bcm2711-rpi-400.dts up-to-date
+
+Pi 400 support has not appeared upstream yet, and as a result it has
+missed out on improvements to the other Pi 4 platforms.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/bcm2711-rpi-400.dts | 17 +++++++
+ arch/arm/boot/dts/bcm2711-rpi-cm4.dts | 73 +++++++++++++++++++++------
+ 2 files changed, 74 insertions(+), 16 deletions(-)
+
+--- a/arch/arm/boot/dts/bcm2711-rpi-400.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-400.dts
+@@ -24,6 +24,7 @@
+ emmc2bus = &emmc2bus;
+ ethernet0 = &genet;
+ pcie0 = &pcie0;
++ blconfig = &blconfig;
+ };
+
+ leds {
+@@ -215,6 +216,22 @@
+ status = "okay";
+ };
+
++&rmem {
++ /*
++ * RPi4's co-processor will copy the board's bootloader configuration
++ * into memory for the OS to consume. It'll also update this node with
++ * its placement information.
++ */
++ blconfig: nvram@0 {
++ compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ reg = <0x0 0x0 0x0>;
++ no-map;
++ status = "disabled";
++ };
++};
++
+ /* SDHCI is used to control the SDIO for wireless */
+ &sdhci {
+ #address-cells = <1>;
+--- a/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
++++ b/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
+@@ -3,6 +3,8 @@
+ #include "bcm2711.dtsi"
+ #include "bcm2835-rpi.dtsi"
+
++#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
++
+ / {
+ compatible = "raspberrypi,4-compute-module", "brcm,bcm2711";
+ model = "Raspberry Pi Compute Module 4";
+@@ -22,6 +24,7 @@
+ emmc2bus = &emmc2bus;
+ ethernet0 = &genet;
+ pcie0 = &pcie0;
++ blconfig = &blconfig;
+ };
+
+ leds {
+@@ -76,6 +79,11 @@
+ };
+
+ &firmware {
++ firmware_clocks: clocks {
++ compatible = "raspberrypi,firmware-clocks";
++ #clock-cells = <1>;
++ };
++
+ expgpio: gpio {
+ compatible = "raspberrypi,firmware-gpio";
+ gpio-controller;
+@@ -102,6 +110,11 @@
+ output-low;
+ };
+ };
++
++ reset: reset {
++ compatible = "raspberrypi,firmware-reset";
++ #reset-cells = <1>;
++ };
+ };
+
+ &gpio {
+@@ -209,20 +222,28 @@
+ status = "okay";
+ };
+
+-&vc4 {
+- status = "okay";
+-};
+-
+-&vec {
+- status = "disabled";
+-};
+-
+ &pwm1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
+ status = "okay";
+ };
+
++&rmem {
++ /*
++ * RPi4's co-processor will copy the board's bootloader configuration
++ * into memory for the OS to consume. It'll also update this node with
++ * its placement information.
++ */
++ blconfig: nvram@0 {
++ compatible = "raspberrypi,bootloader-config", "nvmem-rmem";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ reg = <0x0 0x0 0x0>;
++ no-map;
++ status = "disabled";
++ };
++};
++
+ /* SDHCI is used to control the SDIO for wireless */
+ &sdhci {
+ #address-cells = <1>;
+@@ -262,6 +283,21 @@
+ };
+ };
+
++&pcie0 {
++ pci@1,0 {
++ #address-cells = <3>;
++ #size-cells = <2>;
++ ranges;
++
++ reg = <0 0 0 0 0>;
++
++ usb@1,0 {
++ reg = <0x10000 0 0 0 0>;
++ resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
++ };
++ };
++};
++
+ /* uart0 communicates with the BT module */
+ &uart0 {
+ pinctrl-names = "default";
+@@ -287,6 +323,14 @@
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
++&vc4 {
++ status = "okay";
++};
++
++&vec {
++ status = "disabled";
++};
++
+ // =============================================
+ // Downstream rpi- changes
+
+@@ -306,6 +350,7 @@
+ #include "bcm283x-rpi-csi0-2lane.dtsi"
+ #include "bcm283x-rpi-csi1-4lane.dtsi"
+ #include "bcm283x-rpi-i2c0mux_0_44.dtsi"
++#include "bcm283x-rpi-cam1-regulator.dtsi"
+
+ / {
+ chosen {
+@@ -331,14 +376,6 @@
+ };
+
+ /delete-node/ wifi-pwrseq;
+-
+- cam0_reg: cam1_reg: cam1_reg {
+- compatible = "regulator-fixed";
+- regulator-name = "cam1-reg";
+- gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
+- enable-active-high;
+- status = "disabled";
+- };
+ };
+
+ &mmcnr {
+@@ -589,6 +626,10 @@
+ brcm,disable-headphones = <1>;
+ };
+
++cam0_reg: &cam1_reg {
++ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
++};
++
+ / {
+ __overrides__ {
+ act_led_gpio = <&act_led>,"gpios:4";