1*c66ec88fSEmmanuel VadotBroadcom STB USB PHY 2*c66ec88fSEmmanuel Vadot 3*c66ec88fSEmmanuel VadotRequired properties: 4*c66ec88fSEmmanuel Vadot- compatible: should be one of 5*c66ec88fSEmmanuel Vadot "brcm,brcmstb-usb-phy" 6*c66ec88fSEmmanuel Vadot "brcm,bcm7216-usb-phy" 7*c66ec88fSEmmanuel Vadot "brcm,bcm7211-usb-phy" 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadot- reg and reg-names properties requirements are specific to the 10*c66ec88fSEmmanuel Vadot compatible string. 11*c66ec88fSEmmanuel Vadot "brcm,brcmstb-usb-phy": 12*c66ec88fSEmmanuel Vadot - reg: 1 or 2 offset and length pairs. One for the base CTRL registers 13*c66ec88fSEmmanuel Vadot and an optional pair for systems with USB 3.x support 14*c66ec88fSEmmanuel Vadot - reg-names: not specified 15*c66ec88fSEmmanuel Vadot "brcm,bcm7216-usb-phy": 16*c66ec88fSEmmanuel Vadot - reg: 3 offset and length pairs for CTRL, XHCI_EC and XHCI_GBL 17*c66ec88fSEmmanuel Vadot registers 18*c66ec88fSEmmanuel Vadot - reg-names: "ctrl", "xhci_ec", "xhci_gbl" 19*c66ec88fSEmmanuel Vadot "brcm,bcm7211-usb-phy": 20*c66ec88fSEmmanuel Vadot - reg: 5 offset and length pairs for CTRL, XHCI_EC, XHCI_GBL, 21*c66ec88fSEmmanuel Vadot USB_PHY and USB_MDIO registers and an optional pair 22*c66ec88fSEmmanuel Vadot for the BDC registers 23*c66ec88fSEmmanuel Vadot - reg-names: "ctrl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec" 24*c66ec88fSEmmanuel Vadot 25*c66ec88fSEmmanuel Vadot- #phy-cells: Shall be 1 as it expects one argument for setting 26*c66ec88fSEmmanuel Vadot the type of the PHY. Possible values are: 27*c66ec88fSEmmanuel Vadot - PHY_TYPE_USB2 for USB1.1/2.0 PHY 28*c66ec88fSEmmanuel Vadot - PHY_TYPE_USB3 for USB3.x PHY 29*c66ec88fSEmmanuel Vadot 30*c66ec88fSEmmanuel VadotOptional Properties: 31*c66ec88fSEmmanuel Vadot- clocks : clock phandles. 32*c66ec88fSEmmanuel Vadot- clock-names: String, clock name. 33*c66ec88fSEmmanuel Vadot- interrupts: wakeup interrupt 34*c66ec88fSEmmanuel Vadot- interrupt-names: "wakeup" 35*c66ec88fSEmmanuel Vadot- brcm,ipp: Boolean, Invert Port Power. 36*c66ec88fSEmmanuel Vadot Possible values are: 0 (Don't invert), 1 (Invert) 37*c66ec88fSEmmanuel Vadot- brcm,ioc: Boolean, Invert Over Current detection. 38*c66ec88fSEmmanuel Vadot Possible values are: 0 (Don't invert), 1 (Invert) 39*c66ec88fSEmmanuel Vadot- dr_mode: String, PHY Device mode. 40*c66ec88fSEmmanuel Vadot Possible values are: "host", "peripheral ", "drd" or "typec-pd" 41*c66ec88fSEmmanuel Vadot If this property is not defined, the phy will default to "host" mode. 42*c66ec88fSEmmanuel Vadot- brcm,syscon-piarbctl: phandle to syscon for handling config registers 43*c66ec88fSEmmanuel VadotNOTE: one or both of the following two properties must be set 44*c66ec88fSEmmanuel Vadot- brcm,has-xhci: Boolean indicating the phy has an XHCI phy. 45*c66ec88fSEmmanuel Vadot- brcm,has-eohci: Boolean indicating the phy has an EHCI/OHCI phy. 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot 48*c66ec88fSEmmanuel VadotExample: 49*c66ec88fSEmmanuel Vadot 50*c66ec88fSEmmanuel Vadotusbphy_0: usb-phy@f0470200 { 51*c66ec88fSEmmanuel Vadot reg = <0xf0470200 0xb8>, 52*c66ec88fSEmmanuel Vadot <0xf0471940 0x6c0>; 53*c66ec88fSEmmanuel Vadot compatible = "brcm,brcmstb-usb-phy"; 54*c66ec88fSEmmanuel Vadot #phy-cells = <1>; 55*c66ec88fSEmmanuel Vadot dr_mode = "host" 56*c66ec88fSEmmanuel Vadot brcm,ioc = <1>; 57*c66ec88fSEmmanuel Vadot brcm,ipp = <1>; 58*c66ec88fSEmmanuel Vadot brcm,has-xhci; 59*c66ec88fSEmmanuel Vadot brcm,has-eohci; 60*c66ec88fSEmmanuel Vadot clocks = <&usb20>, <&usb30>; 61*c66ec88fSEmmanuel Vadot clock-names = "sw_usb", "sw_usb3"; 62*c66ec88fSEmmanuel Vadot}; 63*c66ec88fSEmmanuel Vadot 64*c66ec88fSEmmanuel Vadotusb-phy@29f0200 { 65*c66ec88fSEmmanuel Vadot reg = <0x29f0200 0x200>, 66*c66ec88fSEmmanuel Vadot <0x29c0880 0x30>, 67*c66ec88fSEmmanuel Vadot <0x29cc100 0x534>, 68*c66ec88fSEmmanuel Vadot <0x2808000 0x24>, 69*c66ec88fSEmmanuel Vadot <0x2980080 0x8>; 70*c66ec88fSEmmanuel Vadot reg-names = "ctrl", 71*c66ec88fSEmmanuel Vadot "xhci_ec", 72*c66ec88fSEmmanuel Vadot "xhci_gbl", 73*c66ec88fSEmmanuel Vadot "usb_phy", 74*c66ec88fSEmmanuel Vadot "usb_mdio"; 75*c66ec88fSEmmanuel Vadot brcm,ioc = <0x0>; 76*c66ec88fSEmmanuel Vadot brcm,ipp = <0x0>; 77*c66ec88fSEmmanuel Vadot compatible = "brcm,bcm7211-usb-phy"; 78*c66ec88fSEmmanuel Vadot interrupts = <0x30>; 79*c66ec88fSEmmanuel Vadot interrupt-parent = <&vpu_intr1_nosec_intc>; 80*c66ec88fSEmmanuel Vadot interrupt-names = "wake"; 81*c66ec88fSEmmanuel Vadot #phy-cells = <0x1>; 82*c66ec88fSEmmanuel Vadot brcm,has-xhci; 83*c66ec88fSEmmanuel Vadot syscon-piarbctl = <&syscon_piarbctl>; 84*c66ec88fSEmmanuel Vadot clocks = <&scmi_clk 256>; 85*c66ec88fSEmmanuel Vadot clock-names = "sw_usb"; 86*c66ec88fSEmmanuel Vadot}; 87