overlays: Add vl805 overlay
authorPhil Elwell <phil@raspberrypi.com>
Wed, 12 Jan 2022 12:48:53 +0000 (12:48 +0000)
committerPhil Elwell <phil@raspberrypi.com>
Wed, 12 Jan 2022 12:48:53 +0000 (12:48 +0000)
With the automatic VL805 support being removed from the standard
CM4 dtb (since most CM4 carriers don't have a VL805), retain support
on those that do by creating a "vl805" overlay that restores the
deleted "usb@0,0" node.

The "vl805" overlay will be loaded automatically (after an upcoming
firmware update) on CM4 boards where the EEPROM config includes the
setting VL805=1.

See: https://forums.raspberrypi.com/viewtopic.php?t=326088

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/vl805-overlay.dts [new file with mode: 0644]

index b925054d95e4e31a4f86a84e11db94ae488a7e0f..bff07c1748b73049e092650435c5c1a3fde96ad9 100644 (file)
@@ -242,6 +242,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        vc4-kms-v3d-pi4.dtbo \
        vc4-kms-vga666.dtbo \
        vga666.dtbo \
+       vl805.dtbo \
        w1-gpio.dtbo \
        w1-gpio-pullup.dtbo \
        w5500.dtbo \
index 4d3448f047bf97dcede2f3be5bc0b7d3c3cf97c9..f848a7fc87af311c34cdddd5a37e8fc185871e10 100644 (file)
@@ -3731,6 +3731,14 @@ Load:   dtoverlay=vga666
 Params: <None>
 
 
+Name:   vl805
+Info:   Overlay to enable a VIA VL805 USB3 controller on CM4 carriers
+        Will be loaded automatically by up-to-date firmware if "VL805=1" is
+        set in the EEPROM config.
+Load:   dtoverlay=vl805
+Params: <None>
+
+
 Name:   w1-gpio
 Info:   Configures the w1-gpio Onewire interface module.
         Use this overlay if you *don't* need a GPIO to drive an external pullup.
diff --git a/arch/arm/boot/dts/overlays/vl805-overlay.dts b/arch/arm/boot/dts/overlays/vl805-overlay.dts
new file mode 100644 (file)
index 0000000..81adf34
--- /dev/null
@@ -0,0 +1,18 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/reset/raspberrypi,firmware-reset.h>
+
+/ {
+       compatible = "brcm,bcm2711";
+
+       fragment@0 {
+               target-path = "pcie0/pci@0,0";
+               __overlay__ {
+                       usb@0,0 {
+                               reg = <0 0 0 0 0>;
+                               resets = <&reset RASPBERRYPI_FIRMWARE_RESET_ID_USB>;
+                       };
+               };
+       };
+};