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