Broadcom STB USB PHY Required properties: - compatible: should be one of "brcm,brcmstb-usb-phy" "brcm,bcm7216-usb-phy" "brcm,bcm7211-usb-phy" - reg and reg-names properties requirements are specific to the compatible string. "brcm,brcmstb-usb-phy": - reg: 1 or 2 offset and length pairs. One for the base CTRL registers and an optional pair for systems with USB 3.x support - reg-names: not specified "brcm,bcm7216-usb-phy": - reg: 3 offset and length pairs for CTRL, XHCI_EC and XHCI_GBL registers - reg-names: "ctrl", "xhci_ec", "xhci_gbl" "brcm,bcm7211-usb-phy": - reg: 5 offset and length pairs for CTRL, XHCI_EC, XHCI_GBL, USB_PHY and USB_MDIO registers and an optional pair for the BDC registers - reg-names: "ctrl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec" - #phy-cells: Shall be 1 as it expects one argument for setting the type of the PHY. Possible values are: - PHY_TYPE_USB2 for USB1.1/2.0 PHY - PHY_TYPE_USB3 for USB3.x PHY Optional Properties: - clocks : clock phandles. - clock-names: String, clock name. - interrupts: wakeup interrupt - interrupt-names: "wakeup" - brcm,ipp: Boolean, Invert Port Power. Possible values are: 0 (Don't invert), 1 (Invert) - brcm,ioc: Boolean, Invert Over Current detection. Possible values are: 0 (Don't invert), 1 (Invert) - dr_mode: String, PHY Device mode. Possible values are: "host", "peripheral ", "drd" or "typec-pd" If this property is not defined, the phy will default to "host" mode. - brcm,syscon-piarbctl: phandle to syscon for handling config registers NOTE: one or both of the following two properties must be set - brcm,has-xhci: Boolean indicating the phy has an XHCI phy. - brcm,has-eohci: Boolean indicating the phy has an EHCI/OHCI phy. Example: usbphy_0: usb-phy@f0470200 { reg = <0xf0470200 0xb8>, <0xf0471940 0x6c0>; compatible = "brcm,brcmstb-usb-phy"; #phy-cells = <1>; dr_mode = "host" brcm,ioc = <1>; brcm,ipp = <1>; brcm,has-xhci; brcm,has-eohci; clocks = <&usb20>, <&usb30>; clock-names = "sw_usb", "sw_usb3"; }; usb-phy@29f0200 { reg = <0x29f0200 0x200>, <0x29c0880 0x30>, <0x29cc100 0x534>, <0x2808000 0x24>, <0x2980080 0x8>; reg-names = "ctrl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio"; brcm,ioc = <0x0>; brcm,ipp = <0x0>; compatible = "brcm,bcm7211-usb-phy"; interrupts = <0x30>; interrupt-parent = <&vpu_intr1_nosec_intc>; interrupt-names = "wake"; #phy-cells = <0x1>; brcm,has-xhci; syscon-piarbctl = <&syscon_piarbctl>; clocks = <&scmi_clk 256>; clock-names = "sw_usb"; };