arm64: dts: broadcom: bcm4908: describe USB PHY
authorRafał Miłecki <rafal@milecki.pl>
Fri, 19 Feb 2021 05:50:26 +0000 (06:50 +0100)
committerFlorian Fainelli <f.fainelli@gmail.com>
Tue, 9 Mar 2021 23:06:30 +0000 (15:06 -0800)
BCM4908 uses slightly modified STB family USB PHY. It handles OHCI/EHCI
and XHCI. It requires powering up using the PMB.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi

index ee3ed61..bf0d534 100644 (file)
        };
 };
 
+&usb_phy {
+       brcm,ioc = <1>;
+       status = "okay";
+};
+
+&ehci {
+       status = "okay";
+};
+
+&ohci {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
+
 &nandcs {
        nand-ecc-strength = <4>;
        nand-ecc-step-size = <512>;
index 6e4ad66..bb06683 100644 (file)
        };
 };
 
+&usb_phy {
+       brcm,ioc = <1>;
+       status = "okay";
+};
+
+&ehci {
+       status = "okay";
+};
+
+&ohci {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
+
 &ports {
        port@0 {
                label = "lan2";
index 9354077..5f59922 100644 (file)
@@ -2,6 +2,8 @@
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/soc/bcm-pmb.h>
 
 /dts-v1/;
 
                #size-cells = <1>;
                ranges = <0x00 0x00 0x80000000 0x281000>;
 
-               usb@c300 {
+               usb_phy: usb-phy@c200 {
+                       compatible = "brcm,bcm4908-usb-phy";
+                       reg = <0xc200 0x100>;
+                       reg-names = "ctrl";
+                       power-domains = <&pmb BCM_PMB_HOST_USB>;
+                       dr_mode = "host";
+                       brcm,has-xhci;
+                       brcm,has-eohci;
+                       #phy-cells = <1>;
+                       status = "disabled";
+               };
+
+               ehci: usb@c300 {
                        compatible = "generic-ehci";
                        reg = <0xc300 0x100>;
                        interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usb_phy PHY_TYPE_USB2>;
                        status = "disabled";
                };
 
-               usb@c400 {
+               ohci: usb@c400 {
                        compatible = "generic-ohci";
                        reg = <0xc400 0x100>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usb_phy PHY_TYPE_USB2>;
                        status = "disabled";
                };
 
-               usb@d000 {
+               xhci: usb@d000 {
                        compatible = "generic-xhci";
                        reg = <0xd000 0x8c8>;
                        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usb_phy PHY_TYPE_USB3>;
                        status = "disabled";
                };
 
                        #address-cells = <1>;
                        #size-cells = <1>;
 
-                       power-controller@2800c0 {
+                       pmb: power-controller@2800c0 {
                                compatible = "brcm,bcm4908-pmb";
                                reg = <0x2800c0 0x40>;
                                #power-domain-cells = <1>;