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