xref: /freebsd/sys/contrib/device-tree/Bindings/phy/brcm,brcmstb-usb-phy.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1*5def4c47SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*5def4c47SEmmanuel Vadot%YAML 1.2
3*5def4c47SEmmanuel Vadot---
4*5def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/phy/brcm,brcmstb-usb-phy.yaml#
5*5def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5def4c47SEmmanuel Vadot
7*5def4c47SEmmanuel Vadottitle: Broadcom STB USB PHY
8*5def4c47SEmmanuel Vadot
9*5def4c47SEmmanuel Vadotdescription: Broadcom's PHY that handles EHCI/OHCI and/or XHCI
10*5def4c47SEmmanuel Vadot
11*5def4c47SEmmanuel Vadotmaintainers:
12*5def4c47SEmmanuel Vadot  - Al Cooper <alcooperx@gmail.com>
13*5def4c47SEmmanuel Vadot  - Rafał Miłecki <rafal@milecki.pl>
14*5def4c47SEmmanuel Vadot
15*5def4c47SEmmanuel Vadotproperties:
16*5def4c47SEmmanuel Vadot  compatible:
17*5def4c47SEmmanuel Vadot    enum:
18*5def4c47SEmmanuel Vadot      - brcm,bcm4908-usb-phy
19*5def4c47SEmmanuel Vadot      - brcm,bcm7211-usb-phy
20*5def4c47SEmmanuel Vadot      - brcm,bcm7216-usb-phy
21*5def4c47SEmmanuel Vadot      - brcm,brcmstb-usb-phy
22*5def4c47SEmmanuel Vadot
23*5def4c47SEmmanuel Vadot  reg:
24*5def4c47SEmmanuel Vadot    minItems: 1
25*5def4c47SEmmanuel Vadot    maxItems: 6
26*5def4c47SEmmanuel Vadot    items:
27*5def4c47SEmmanuel Vadot      - description: the base CTRL register
28*5def4c47SEmmanuel Vadot      - description: XHCI EC register
29*5def4c47SEmmanuel Vadot      - description: XHCI GBL register
30*5def4c47SEmmanuel Vadot      - description: USB PHY register
31*5def4c47SEmmanuel Vadot      - description: USB MDIO register
32*5def4c47SEmmanuel Vadot      - description: BDC register
33*5def4c47SEmmanuel Vadot
34*5def4c47SEmmanuel Vadot  reg-names:
35*5def4c47SEmmanuel Vadot    minItems: 1
36*5def4c47SEmmanuel Vadot    maxItems: 6
37*5def4c47SEmmanuel Vadot    items:
38*5def4c47SEmmanuel Vadot      - const: ctrl
39*5def4c47SEmmanuel Vadot      - const: xhci_ec
40*5def4c47SEmmanuel Vadot      - const: xhci_gbl
41*5def4c47SEmmanuel Vadot      - const: usb_phy
42*5def4c47SEmmanuel Vadot      - const: usb_mdio
43*5def4c47SEmmanuel Vadot      - const: bdc_ec
44*5def4c47SEmmanuel Vadot
45*5def4c47SEmmanuel Vadot  clocks:
46*5def4c47SEmmanuel Vadot    minItems: 1
47*5def4c47SEmmanuel Vadot    maxItems: 2
48*5def4c47SEmmanuel Vadot
49*5def4c47SEmmanuel Vadot  clock-names:
50*5def4c47SEmmanuel Vadot    minItems: 1
51*5def4c47SEmmanuel Vadot    maxItems: 2
52*5def4c47SEmmanuel Vadot    items:
53*5def4c47SEmmanuel Vadot      - const: sw_usb
54*5def4c47SEmmanuel Vadot      - const: sw_usb3
55*5def4c47SEmmanuel Vadot
56*5def4c47SEmmanuel Vadot  interrupts:
57*5def4c47SEmmanuel Vadot    description: wakeup interrupt
58*5def4c47SEmmanuel Vadot
59*5def4c47SEmmanuel Vadot  interrupt-names:
60*5def4c47SEmmanuel Vadot    const: wake
61*5def4c47SEmmanuel Vadot
62*5def4c47SEmmanuel Vadot  brcm,ipp:
63*5def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
64*5def4c47SEmmanuel Vadot    description: Invert Port Power
65*5def4c47SEmmanuel Vadot    minimum: 0
66*5def4c47SEmmanuel Vadot    maximum: 1
67*5def4c47SEmmanuel Vadot
68*5def4c47SEmmanuel Vadot  brcm,ioc:
69*5def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
70*5def4c47SEmmanuel Vadot    description: Invert Over Current detection
71*5def4c47SEmmanuel Vadot    minimum: 0
72*5def4c47SEmmanuel Vadot    maximum: 1
73*5def4c47SEmmanuel Vadot
74*5def4c47SEmmanuel Vadot  dr_mode:
75*5def4c47SEmmanuel Vadot    description: PHY Device mode. If this property is not defined, the PHY will
76*5def4c47SEmmanuel Vadot      default to "host" mode.
77*5def4c47SEmmanuel Vadot    enum:
78*5def4c47SEmmanuel Vadot      - host
79*5def4c47SEmmanuel Vadot      - peripheral
80*5def4c47SEmmanuel Vadot      - drd
81*5def4c47SEmmanuel Vadot      - typec-pd
82*5def4c47SEmmanuel Vadot
83*5def4c47SEmmanuel Vadot  brcm,syscon-piarbctl:
84*5def4c47SEmmanuel Vadot    description: phandle to syscon for handling config registers
85*5def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
86*5def4c47SEmmanuel Vadot
87*5def4c47SEmmanuel Vadot  brcm,has-xhci:
88*5def4c47SEmmanuel Vadot    description: Indicates the PHY has an XHCI PHY.
89*5def4c47SEmmanuel Vadot    type: boolean
90*5def4c47SEmmanuel Vadot
91*5def4c47SEmmanuel Vadot  brcm,has-eohci:
92*5def4c47SEmmanuel Vadot    description: Indicates the PHY has an EHCI/OHCI PHY.
93*5def4c47SEmmanuel Vadot    type: boolean
94*5def4c47SEmmanuel Vadot
95*5def4c47SEmmanuel Vadot  "#phy-cells":
96*5def4c47SEmmanuel Vadot    description: |
97*5def4c47SEmmanuel Vadot      Cell allows setting the type of the PHY. Possible values are:
98*5def4c47SEmmanuel Vadot      - PHY_TYPE_USB2 for USB1.1/2.0 PHY
99*5def4c47SEmmanuel Vadot      - PHY_TYPE_USB3 for USB3.x PHY
100*5def4c47SEmmanuel Vadot    const: 1
101*5def4c47SEmmanuel Vadot
102*5def4c47SEmmanuel Vadotrequired:
103*5def4c47SEmmanuel Vadot  - reg
104*5def4c47SEmmanuel Vadot  - "#phy-cells"
105*5def4c47SEmmanuel Vadot
106*5def4c47SEmmanuel VadotanyOf:
107*5def4c47SEmmanuel Vadot  - required:
108*5def4c47SEmmanuel Vadot      - brcm,has-xhci
109*5def4c47SEmmanuel Vadot  - required:
110*5def4c47SEmmanuel Vadot      - brcm,has-eohci
111*5def4c47SEmmanuel Vadot
112*5def4c47SEmmanuel VadotallOf:
113*5def4c47SEmmanuel Vadot  - if:
114*5def4c47SEmmanuel Vadot      properties:
115*5def4c47SEmmanuel Vadot        compatible:
116*5def4c47SEmmanuel Vadot          contains:
117*5def4c47SEmmanuel Vadot            enum:
118*5def4c47SEmmanuel Vadot              - const: brcm,bcm4908-usb-phy
119*5def4c47SEmmanuel Vadot              - const: brcm,brcmstb-usb-phy
120*5def4c47SEmmanuel Vadot    then:
121*5def4c47SEmmanuel Vadot      properties:
122*5def4c47SEmmanuel Vadot        reg:
123*5def4c47SEmmanuel Vadot          minItems: 1
124*5def4c47SEmmanuel Vadot          maxItems: 2
125*5def4c47SEmmanuel Vadot  - if:
126*5def4c47SEmmanuel Vadot      properties:
127*5def4c47SEmmanuel Vadot        compatible:
128*5def4c47SEmmanuel Vadot          contains:
129*5def4c47SEmmanuel Vadot            const: brcm,bcm7211-usb-phy
130*5def4c47SEmmanuel Vadot    then:
131*5def4c47SEmmanuel Vadot      properties:
132*5def4c47SEmmanuel Vadot        reg:
133*5def4c47SEmmanuel Vadot          minItems: 5
134*5def4c47SEmmanuel Vadot          maxItems: 6
135*5def4c47SEmmanuel Vadot        reg-names:
136*5def4c47SEmmanuel Vadot          minItems: 5
137*5def4c47SEmmanuel Vadot          maxItems: 6
138*5def4c47SEmmanuel Vadot  - if:
139*5def4c47SEmmanuel Vadot      properties:
140*5def4c47SEmmanuel Vadot        compatible:
141*5def4c47SEmmanuel Vadot          contains:
142*5def4c47SEmmanuel Vadot            const: brcm,bcm7216-usb-phy
143*5def4c47SEmmanuel Vadot    then:
144*5def4c47SEmmanuel Vadot      properties:
145*5def4c47SEmmanuel Vadot        reg:
146*5def4c47SEmmanuel Vadot          minItems: 3
147*5def4c47SEmmanuel Vadot          maxItems: 3
148*5def4c47SEmmanuel Vadot        reg-names:
149*5def4c47SEmmanuel Vadot          minItems: 3
150*5def4c47SEmmanuel Vadot          maxItems: 3
151*5def4c47SEmmanuel Vadot
152*5def4c47SEmmanuel VadotadditionalProperties: false
153*5def4c47SEmmanuel Vadot
154*5def4c47SEmmanuel Vadotexamples:
155*5def4c47SEmmanuel Vadot  - |
156*5def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
157*5def4c47SEmmanuel Vadot
158*5def4c47SEmmanuel Vadot    usb-phy@f0470200 {
159*5def4c47SEmmanuel Vadot        compatible = "brcm,brcmstb-usb-phy";
160*5def4c47SEmmanuel Vadot        reg = <0xf0470200 0xb8>,
161*5def4c47SEmmanuel Vadot              <0xf0471940 0x6c0>;
162*5def4c47SEmmanuel Vadot        #phy-cells = <1>;
163*5def4c47SEmmanuel Vadot        dr_mode = "host";
164*5def4c47SEmmanuel Vadot        brcm,ioc = <1>;
165*5def4c47SEmmanuel Vadot        brcm,ipp = <1>;
166*5def4c47SEmmanuel Vadot        brcm,has-xhci;
167*5def4c47SEmmanuel Vadot        brcm,has-eohci;
168*5def4c47SEmmanuel Vadot        clocks = <&usb20>, <&usb30>;
169*5def4c47SEmmanuel Vadot        clock-names = "sw_usb", "sw_usb3";
170*5def4c47SEmmanuel Vadot    };
171*5def4c47SEmmanuel Vadot  - |
172*5def4c47SEmmanuel Vadot    #include <dt-bindings/phy/phy.h>
173*5def4c47SEmmanuel Vadot
174*5def4c47SEmmanuel Vadot    usb-phy@29f0200 {
175*5def4c47SEmmanuel Vadot        compatible = "brcm,bcm7211-usb-phy";
176*5def4c47SEmmanuel Vadot        reg = <0x29f0200 0x200>,
177*5def4c47SEmmanuel Vadot              <0x29c0880 0x30>,
178*5def4c47SEmmanuel Vadot              <0x29cc100 0x534>,
179*5def4c47SEmmanuel Vadot              <0x2808000 0x24>,
180*5def4c47SEmmanuel Vadot              <0x2980080 0x8>;
181*5def4c47SEmmanuel Vadot        reg-names = "ctrl",
182*5def4c47SEmmanuel Vadot            "xhci_ec",
183*5def4c47SEmmanuel Vadot            "xhci_gbl",
184*5def4c47SEmmanuel Vadot            "usb_phy",
185*5def4c47SEmmanuel Vadot            "usb_mdio";
186*5def4c47SEmmanuel Vadot        brcm,ioc = <0x0>;
187*5def4c47SEmmanuel Vadot        brcm,ipp = <0x0>;
188*5def4c47SEmmanuel Vadot        interrupts = <0x30>;
189*5def4c47SEmmanuel Vadot        interrupt-parent = <&vpu_intr1_nosec_intc>;
190*5def4c47SEmmanuel Vadot        interrupt-names = "wake";
191*5def4c47SEmmanuel Vadot        #phy-cells = <0x1>;
192*5def4c47SEmmanuel Vadot        brcm,has-xhci;
193*5def4c47SEmmanuel Vadot        brcm,syscon-piarbctl = <&syscon_piarbctl>;
194*5def4c47SEmmanuel Vadot        clocks = <&scmi_clk 256>;
195*5def4c47SEmmanuel Vadot        clock-names = "sw_usb";
196*5def4c47SEmmanuel Vadot    };
197