The chip is hardwired to the board's PCIe bus and needs to be properly
setup trough a firmware routine after a PCI fundamental reset. Pass the
reset controller phandle that takes care of triggering the
initialization to the relevant PCI device.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulie...@suse.de>

---

Changes since v3:
 - Correctly define PCIe topology:

        [0000:00]---00.0-[01]----00.0  VIA Technologies, Inc. VL805 USB 3.0 
Host Controller

   Earlier versions were not taking into account the bridge between the
   PCIe controller and xHCI controller. It worked, but out of luck...

Changes since v2:
 - Use dt-bindings to access IDs

Changes since v1:
 - Update to match new binding

 arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts 
b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
index 0cef95058fb0..5b54d2185893 100644
--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
@@ -4,6 +4,8 @@
 #include "bcm2835-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";
@@ -207,6 +209,21 @@ phy1: ethernet-phy@1 {
        };
 };
 
+&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";
-- 
2.27.0

Reply via email to