ARM: dts: Move BCM2711 RPi specific into separate dtsi
authorStefan Wahren <stefan.wahren@i2se.com>
Sun, 6 Jun 2021 12:16:13 +0000 (14:16 +0200)
committerNicolas Saenz Julienne <nsaenz@kernel.org>
Tue, 8 Jun 2021 08:37:04 +0000 (10:37 +0200)
There is a lot of Raspberry Pi specific stuff (neither SoC or board
specific) for the BCM2711 which is currently in the RPi 4 B dts. In order
to avoid copy & paste for every new BCM2711 based Raspberry Pi, move it
into a separate dtsi.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1622981777-5023-4-git-send-email-stefan.wahren@i2se.com
Signed-off-by: Nicolas Saenz Julienne <nsaenz@kernel.org>
arch/arm/boot/dts/bcm2711-rpi-4-b.dts
arch/arm/boot/dts/bcm2711-rpi.dtsi [new file with mode: 0644]

index 3b4ab94..c54854a 100644 (file)
@@ -1,11 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 #include "bcm2711.dtsi"
-#include "bcm2835-rpi.dtsi"
+#include "bcm2711-rpi.dtsi"
 #include "bcm283x-rpi-usb-peripheral.dtsi"
 
-#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
-
 / {
        compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
        model = "Raspberry Pi 4 Model B";
                stdout-path = "serial1:115200n8";
        };
 
-       /* Will be filled by the bootloader */
-       memory@0 {
-               device_type = "memory";
-               reg = <0 0 0>;
-       };
-
-       aliases {
-               emmc2bus = &emmc2bus;
-               ethernet0 = &genet;
-               pcie0 = &pcie0;
-               blconfig = &blconfig;
-       };
-
        leds {
                act {
                        gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
-&firmware {
-       firmware_clocks: clocks {
-               compatible = "raspberrypi,firmware-clocks";
-               #clock-cells = <1>;
-       };
-
-       expgpio: gpio {
-               compatible = "raspberrypi,firmware-gpio";
-               gpio-controller;
-               #gpio-cells = <2>;
-               gpio-line-names = "BT_ON",
-                                 "WL_ON",
-                                 "PWR_LED_OFF",
-                                 "GLOBAL_RESET",
-                                 "VDD_SD_IO_SEL",
-                                 "CAM_GPIO",
-                                 "SD_PWR_ON",
-                                 "";
-               status = "okay";
-       };
-
-       reset: reset {
-               compatible = "raspberrypi,firmware-reset";
-               #reset-cells = <1>;
-       };
+&expgpio {
+       gpio-line-names = "BT_ON",
+                         "WL_ON",
+                         "PWR_LED_OFF",
+                         "GLOBAL_RESET",
+                         "VDD_SD_IO_SEL",
+                         "CAM_GPIO",
+                         "SD_PWR_ON",
+                         "";
 };
 
 &gpio {
 };
 
 &hdmi0 {
-       clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
-       clock-names = "hdmi", "bvb", "audio", "cec";
-       wifi-2.4ghz-coexistence;
        status = "okay";
 };
 
 &hdmi1 {
-       clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
-       clock-names = "hdmi", "bvb", "audio", "cec";
-       wifi-2.4ghz-coexistence;
        status = "okay";
 };
 
-&hvs {
-       clocks = <&firmware_clocks 4>;
-};
-
 &pixelvalve0 {
        status = "okay";
 };
        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>;
        status = "okay";
 };
 
-&vchiq {
-       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-};
-
 &vc4 {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/bcm2711-rpi.dtsi b/arch/arm/boot/dts/bcm2711-rpi.dtsi
new file mode 100644 (file)
index 0000000..ca266c5
--- /dev/null
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "bcm2835-rpi.dtsi"
+
+#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
+
+/ {
+       /* Will be filled by the bootloader */
+       memory@0 {
+               device_type = "memory";
+               reg = <0 0 0>;
+       };
+
+       aliases {
+               emmc2bus = &emmc2bus;
+               ethernet0 = &genet;
+               pcie0 = &pcie0;
+               blconfig = &blconfig;
+       };
+};
+
+&firmware {
+       firmware_clocks: clocks {
+               compatible = "raspberrypi,firmware-clocks";
+               #clock-cells = <1>;
+       };
+
+       expgpio: gpio {
+               compatible = "raspberrypi,firmware-gpio";
+               gpio-controller;
+               #gpio-cells = <2>;
+               status = "okay";
+       };
+
+       reset: reset {
+               compatible = "raspberrypi,firmware-reset";
+               #reset-cells = <1>;
+       };
+};
+
+&hdmi0 {
+       clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_27MHz>;
+       clock-names = "hdmi", "bvb", "audio", "cec";
+       wifi-2.4ghz-coexistence;
+};
+
+&hdmi1 {
+       clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
+       clock-names = "hdmi", "bvb", "audio", "cec";
+       wifi-2.4ghz-coexistence;
+};
+
+&hvs {
+       clocks = <&firmware_clocks 4>;
+};
+
+&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";
+       };
+};
+
+&vchiq {
+       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+};