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