xref: /src/sys/contrib/device-tree/Bindings/phy/brcm,brcmstb-usb-phy.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
116ae49e2SEmmanuel VadotBroadcom STB USB PHY
216ae49e2SEmmanuel Vadot
316ae49e2SEmmanuel VadotRequired properties:
4937eaf8bSEmmanuel Vadot- compatible: should be one of
5937eaf8bSEmmanuel Vadot	"brcm,brcmstb-usb-phy"
6937eaf8bSEmmanuel Vadot	"brcm,bcm7216-usb-phy"
7937eaf8bSEmmanuel Vadot	"brcm,bcm7211-usb-phy"
8937eaf8bSEmmanuel Vadot
9937eaf8bSEmmanuel Vadot- reg and reg-names properties requirements are specific to the
10937eaf8bSEmmanuel Vadot  compatible string.
11937eaf8bSEmmanuel Vadot  "brcm,brcmstb-usb-phy":
12937eaf8bSEmmanuel Vadot    - reg: 1 or 2 offset and length pairs. One for the base CTRL registers
13937eaf8bSEmmanuel Vadot           and an optional pair for systems with USB 3.x support
14937eaf8bSEmmanuel Vadot    - reg-names: not specified
15937eaf8bSEmmanuel Vadot  "brcm,bcm7216-usb-phy":
16937eaf8bSEmmanuel Vadot    - reg: 3 offset and length pairs for CTRL, XHCI_EC and XHCI_GBL
17937eaf8bSEmmanuel Vadot           registers
18937eaf8bSEmmanuel Vadot    - reg-names: "ctrl", "xhci_ec", "xhci_gbl"
19937eaf8bSEmmanuel Vadot  "brcm,bcm7211-usb-phy":
20937eaf8bSEmmanuel Vadot    - reg: 5 offset and length pairs for CTRL, XHCI_EC, XHCI_GBL,
21937eaf8bSEmmanuel Vadot           USB_PHY and USB_MDIO registers and an optional pair
22937eaf8bSEmmanuel Vadot	   for the BDC registers
23937eaf8bSEmmanuel Vadot    - reg-names: "ctrl", "xhci_ec", "xhci_gbl", "usb_phy", "usb_mdio", "bdc_ec"
24937eaf8bSEmmanuel Vadot
2516ae49e2SEmmanuel Vadot- #phy-cells: Shall be 1 as it expects one argument for setting
2616ae49e2SEmmanuel Vadot	      the type of the PHY. Possible values are:
2716ae49e2SEmmanuel Vadot	      - PHY_TYPE_USB2 for USB1.1/2.0 PHY
2816ae49e2SEmmanuel Vadot	      - PHY_TYPE_USB3 for USB3.x PHY
2916ae49e2SEmmanuel Vadot
3016ae49e2SEmmanuel VadotOptional Properties:
3116ae49e2SEmmanuel Vadot- clocks : clock phandles.
3216ae49e2SEmmanuel Vadot- clock-names: String, clock name.
33937eaf8bSEmmanuel Vadot- interrupts: wakeup interrupt
34937eaf8bSEmmanuel Vadot- interrupt-names: "wakeup"
3516ae49e2SEmmanuel Vadot- brcm,ipp: Boolean, Invert Port Power.
3616ae49e2SEmmanuel Vadot  Possible values are: 0 (Don't invert), 1 (Invert)
3716ae49e2SEmmanuel Vadot- brcm,ioc: Boolean, Invert Over Current detection.
3816ae49e2SEmmanuel Vadot  Possible values are: 0 (Don't invert), 1 (Invert)
3916ae49e2SEmmanuel Vadot- dr_mode: String, PHY Device mode.
4016ae49e2SEmmanuel Vadot  Possible values are: "host", "peripheral ", "drd" or "typec-pd"
4116ae49e2SEmmanuel Vadot  If this property is not defined, the phy will default to "host" mode.
42937eaf8bSEmmanuel Vadot- brcm,syscon-piarbctl: phandle to syscon for handling config registers
43937eaf8bSEmmanuel VadotNOTE: one or both of the following two properties must be set
44937eaf8bSEmmanuel Vadot- brcm,has-xhci: Boolean indicating the phy has an XHCI phy.
45937eaf8bSEmmanuel Vadot- brcm,has-eohci: Boolean indicating the phy has an EHCI/OHCI phy.
46937eaf8bSEmmanuel Vadot
4716ae49e2SEmmanuel Vadot
4816ae49e2SEmmanuel VadotExample:
4916ae49e2SEmmanuel Vadot
5016ae49e2SEmmanuel Vadotusbphy_0: usb-phy@f0470200 {
5116ae49e2SEmmanuel Vadot	reg = <0xf0470200 0xb8>,
5216ae49e2SEmmanuel Vadot		<0xf0471940 0x6c0>;
5316ae49e2SEmmanuel Vadot	compatible = "brcm,brcmstb-usb-phy";
5416ae49e2SEmmanuel Vadot	#phy-cells = <1>;
5516ae49e2SEmmanuel Vadot	dr_mode = "host"
5616ae49e2SEmmanuel Vadot	brcm,ioc = <1>;
5716ae49e2SEmmanuel Vadot	brcm,ipp = <1>;
5816ae49e2SEmmanuel Vadot	brcm,has-xhci;
5916ae49e2SEmmanuel Vadot	brcm,has-eohci;
6016ae49e2SEmmanuel Vadot	clocks = <&usb20>, <&usb30>;
6116ae49e2SEmmanuel Vadot	clock-names = "sw_usb", "sw_usb3";
6216ae49e2SEmmanuel Vadot};
63937eaf8bSEmmanuel Vadot
64937eaf8bSEmmanuel Vadotusb-phy@29f0200 {
65937eaf8bSEmmanuel Vadot	reg = <0x29f0200 0x200>,
66937eaf8bSEmmanuel Vadot		<0x29c0880 0x30>,
67937eaf8bSEmmanuel Vadot		<0x29cc100 0x534>,
68937eaf8bSEmmanuel Vadot		<0x2808000 0x24>,
69937eaf8bSEmmanuel Vadot		<0x2980080 0x8>;
70937eaf8bSEmmanuel Vadot	reg-names = "ctrl",
71937eaf8bSEmmanuel Vadot		"xhci_ec",
72937eaf8bSEmmanuel Vadot		"xhci_gbl",
73937eaf8bSEmmanuel Vadot		"usb_phy",
74937eaf8bSEmmanuel Vadot		"usb_mdio";
75937eaf8bSEmmanuel Vadot	brcm,ioc = <0x0>;
76937eaf8bSEmmanuel Vadot	brcm,ipp = <0x0>;
77937eaf8bSEmmanuel Vadot	compatible = "brcm,bcm7211-usb-phy";
78937eaf8bSEmmanuel Vadot	interrupts = <0x30>;
79937eaf8bSEmmanuel Vadot	interrupt-parent = <&vpu_intr1_nosec_intc>;
80937eaf8bSEmmanuel Vadot	interrupt-names = "wake";
81937eaf8bSEmmanuel Vadot	#phy-cells = <0x1>;
82937eaf8bSEmmanuel Vadot	brcm,has-xhci;
83937eaf8bSEmmanuel Vadot	syscon-piarbctl = <&syscon_piarbctl>;
84937eaf8bSEmmanuel Vadot	clocks = <&scmi_clk 256>;
85937eaf8bSEmmanuel Vadot	clock-names = "sw_usb";
86937eaf8bSEmmanuel Vadot};
87