xref: /freebsd/sys/contrib/device-tree/Bindings/phy/ti,phy-j721e-wiz.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot# Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
3c66ec88fSEmmanuel Vadot%YAML 1.2
4c66ec88fSEmmanuel Vadot---
5fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/phy/ti,phy-j721e-wiz.yaml#
6fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadottitle: TI J721E WIZ (SERDES Wrapper)
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadotmaintainers:
11c66ec88fSEmmanuel Vadot  - Kishon Vijay Abraham I <kishon@ti.com>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotproperties:
14c66ec88fSEmmanuel Vadot  compatible:
15c66ec88fSEmmanuel Vadot    enum:
16c66ec88fSEmmanuel Vadot      - ti,j721e-wiz-16g
17c66ec88fSEmmanuel Vadot      - ti,j721e-wiz-10g
188bab661aSEmmanuel Vadot      - ti,j721s2-wiz-10g
192eb4d8dcSEmmanuel Vadot      - ti,am64-wiz-10g
207ef62cebSEmmanuel Vadot      - ti,j7200-wiz-10g
218bab661aSEmmanuel Vadot      - ti,j784s4-wiz-10g
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  power-domains:
24c66ec88fSEmmanuel Vadot    maxItems: 1
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  clocks:
277ef62cebSEmmanuel Vadot    minItems: 3
287ef62cebSEmmanuel Vadot    maxItems: 4
29c66ec88fSEmmanuel Vadot    description: clock-specifier to represent input to the WIZ
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  clock-names:
327ef62cebSEmmanuel Vadot    minItems: 3
33c66ec88fSEmmanuel Vadot    items:
34c66ec88fSEmmanuel Vadot      - const: fck
35c66ec88fSEmmanuel Vadot      - const: core_ref_clk
36c66ec88fSEmmanuel Vadot      - const: ext_ref_clk
377ef62cebSEmmanuel Vadot      - const: core_ref1_clk
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot  num-lanes:
40c66ec88fSEmmanuel Vadot    minimum: 1
41c66ec88fSEmmanuel Vadot    maximum: 4
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot  "#address-cells":
44c66ec88fSEmmanuel Vadot    const: 1
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot  "#size-cells":
47c66ec88fSEmmanuel Vadot    const: 1
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  "#reset-cells":
50c66ec88fSEmmanuel Vadot    const: 1
51c66ec88fSEmmanuel Vadot
522eb4d8dcSEmmanuel Vadot  "#clock-cells":
532eb4d8dcSEmmanuel Vadot    const: 1
542eb4d8dcSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot  ranges: true
56c66ec88fSEmmanuel Vadot
57c66ec88fSEmmanuel Vadot  typec-dir-gpios:
58c66ec88fSEmmanuel Vadot    maxItems: 1
59c66ec88fSEmmanuel Vadot    description:
60c66ec88fSEmmanuel Vadot      GPIO to signal Type-C cable orientation for lane swap.
61c66ec88fSEmmanuel Vadot      If GPIO is active, lane 0 and lane 1 of SERDES will be swapped to
62*aa1a8ff2SEmmanuel Vadot      achieve the functionality of an external type-C plug flip mux.
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  typec-dir-debounce-ms:
65c66ec88fSEmmanuel Vadot    minimum: 100
66c66ec88fSEmmanuel Vadot    maximum: 1000
67c66ec88fSEmmanuel Vadot    default: 100
68c66ec88fSEmmanuel Vadot    description:
69c66ec88fSEmmanuel Vadot      Number of milliseconds to wait before sampling typec-dir-gpio.
70c66ec88fSEmmanuel Vadot      If not specified, the default debounce of 100ms will be used.
71c66ec88fSEmmanuel Vadot      Type-C spec states minimum CC pin debounce of 100 ms and maximum
72c66ec88fSEmmanuel Vadot      of 200 ms. However, some solutions might need more than 200 ms.
73c66ec88fSEmmanuel Vadot
745956d97fSEmmanuel Vadot  refclk-dig:
755956d97fSEmmanuel Vadot    type: object
767ef62cebSEmmanuel Vadot    additionalProperties: false
775956d97fSEmmanuel Vadot    description: |
785956d97fSEmmanuel Vadot      WIZ node should have subnode for refclk_dig to select the reference
795956d97fSEmmanuel Vadot      clock source for the reference clock used in the PHY and PMA digital
805956d97fSEmmanuel Vadot      logic.
817ef62cebSEmmanuel Vadot    deprecated: true
825956d97fSEmmanuel Vadot    properties:
835956d97fSEmmanuel Vadot      clocks:
845956d97fSEmmanuel Vadot        minItems: 2
855956d97fSEmmanuel Vadot        maxItems: 4
865956d97fSEmmanuel Vadot        description: Phandle to two (Torrent) or four (Sierra) clock nodes representing
875956d97fSEmmanuel Vadot          the inputs to refclk_dig
885956d97fSEmmanuel Vadot
895956d97fSEmmanuel Vadot      "#clock-cells":
905956d97fSEmmanuel Vadot        const: 0
915956d97fSEmmanuel Vadot
92fac71e4eSEmmanuel Vadot      clock-output-names:
93fac71e4eSEmmanuel Vadot        maxItems: 1
94fac71e4eSEmmanuel Vadot
955956d97fSEmmanuel Vadot      assigned-clocks:
965956d97fSEmmanuel Vadot        maxItems: 1
975956d97fSEmmanuel Vadot
985956d97fSEmmanuel Vadot      assigned-clock-parents:
995956d97fSEmmanuel Vadot        maxItems: 1
1005956d97fSEmmanuel Vadot
1015956d97fSEmmanuel Vadot    required:
1025956d97fSEmmanuel Vadot      - clocks
1035956d97fSEmmanuel Vadot      - "#clock-cells"
1045956d97fSEmmanuel Vadot      - assigned-clocks
1055956d97fSEmmanuel Vadot      - assigned-clock-parents
1065956d97fSEmmanuel Vadot
1077ef62cebSEmmanuel Vadot  ti,scm:
1087ef62cebSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
1097ef62cebSEmmanuel Vadot    description: |
1107ef62cebSEmmanuel Vadot      phandle to System Control Module for syscon regmap access.
1117ef62cebSEmmanuel Vadot
112c66ec88fSEmmanuel VadotpatternProperties:
113c66ec88fSEmmanuel Vadot  "^pll[0|1]-refclk$":
114c66ec88fSEmmanuel Vadot    type: object
1157ef62cebSEmmanuel Vadot    additionalProperties: false
116c66ec88fSEmmanuel Vadot    description: |
117c66ec88fSEmmanuel Vadot      WIZ node should have subnodes for each of the PLLs present in
118c66ec88fSEmmanuel Vadot      the SERDES.
1197ef62cebSEmmanuel Vadot    deprecated: true
120c66ec88fSEmmanuel Vadot    properties:
121c66ec88fSEmmanuel Vadot      clocks:
122c66ec88fSEmmanuel Vadot        maxItems: 2
123c66ec88fSEmmanuel Vadot        description: Phandle to clock nodes representing the two inputs to PLL.
124c66ec88fSEmmanuel Vadot
125c66ec88fSEmmanuel Vadot      "#clock-cells":
126c66ec88fSEmmanuel Vadot        const: 0
127c66ec88fSEmmanuel Vadot
128fac71e4eSEmmanuel Vadot      clock-output-names:
129fac71e4eSEmmanuel Vadot        maxItems: 1
130fac71e4eSEmmanuel Vadot
131c66ec88fSEmmanuel Vadot      assigned-clocks:
132c66ec88fSEmmanuel Vadot        maxItems: 1
133c66ec88fSEmmanuel Vadot
134c66ec88fSEmmanuel Vadot      assigned-clock-parents:
135c66ec88fSEmmanuel Vadot        maxItems: 1
136c66ec88fSEmmanuel Vadot
137c66ec88fSEmmanuel Vadot    required:
138c66ec88fSEmmanuel Vadot      - clocks
139c66ec88fSEmmanuel Vadot      - "#clock-cells"
140c66ec88fSEmmanuel Vadot      - assigned-clocks
141c66ec88fSEmmanuel Vadot      - assigned-clock-parents
142c66ec88fSEmmanuel Vadot
143c66ec88fSEmmanuel Vadot  "^cmn-refclk1?-dig-div$":
144c66ec88fSEmmanuel Vadot    type: object
1457ef62cebSEmmanuel Vadot    additionalProperties: false
146c66ec88fSEmmanuel Vadot    description:
147c66ec88fSEmmanuel Vadot      WIZ node should have subnodes for each of the PMA common refclock
148c66ec88fSEmmanuel Vadot      provided by the SERDES.
1497ef62cebSEmmanuel Vadot    deprecated: true
150c66ec88fSEmmanuel Vadot    properties:
151c66ec88fSEmmanuel Vadot      clocks:
152c66ec88fSEmmanuel Vadot        maxItems: 1
153c66ec88fSEmmanuel Vadot        description: Phandle to the clock node representing the input to the
154c66ec88fSEmmanuel Vadot          divider clock.
155c66ec88fSEmmanuel Vadot
156c66ec88fSEmmanuel Vadot      "#clock-cells":
157c66ec88fSEmmanuel Vadot        const: 0
158c66ec88fSEmmanuel Vadot
159fac71e4eSEmmanuel Vadot      clock-output-names:
160fac71e4eSEmmanuel Vadot        maxItems: 1
161fac71e4eSEmmanuel Vadot
162c66ec88fSEmmanuel Vadot    required:
163c66ec88fSEmmanuel Vadot      - clocks
164c66ec88fSEmmanuel Vadot      - "#clock-cells"
165c66ec88fSEmmanuel Vadot
166c66ec88fSEmmanuel Vadot  "^serdes@[0-9a-f]+$":
167c66ec88fSEmmanuel Vadot    type: object
168c66ec88fSEmmanuel Vadot    description: |
169c66ec88fSEmmanuel Vadot      WIZ node should have '1' subnode for the SERDES. It could be either
170c66ec88fSEmmanuel Vadot      Sierra SERDES or Torrent SERDES. Sierra SERDES should follow the
171c66ec88fSEmmanuel Vadot      bindings specified in
1725def4c47SEmmanuel Vadot      Documentation/devicetree/bindings/phy/phy-cadence-sierra.yaml
173c66ec88fSEmmanuel Vadot      Torrent SERDES should follow the bindings specified in
174c66ec88fSEmmanuel Vadot      Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
175c66ec88fSEmmanuel Vadot
176c66ec88fSEmmanuel Vadotrequired:
177c66ec88fSEmmanuel Vadot  - compatible
178c66ec88fSEmmanuel Vadot  - power-domains
179c66ec88fSEmmanuel Vadot  - clocks
180c66ec88fSEmmanuel Vadot  - clock-names
181c66ec88fSEmmanuel Vadot  - num-lanes
182c66ec88fSEmmanuel Vadot  - "#address-cells"
183c66ec88fSEmmanuel Vadot  - "#size-cells"
184c66ec88fSEmmanuel Vadot  - "#reset-cells"
185c66ec88fSEmmanuel Vadot  - ranges
186c66ec88fSEmmanuel Vadot
1877ef62cebSEmmanuel VadotallOf:
1887ef62cebSEmmanuel Vadot  - if:
1897ef62cebSEmmanuel Vadot      properties:
1907ef62cebSEmmanuel Vadot        compatible:
1917ef62cebSEmmanuel Vadot          contains:
1927ef62cebSEmmanuel Vadot            const: ti,j7200-wiz-10g
1937ef62cebSEmmanuel Vadot    then:
1947ef62cebSEmmanuel Vadot      required:
1957ef62cebSEmmanuel Vadot        - ti,scm
1967ef62cebSEmmanuel Vadot
197c66ec88fSEmmanuel VadotadditionalProperties: false
198c66ec88fSEmmanuel Vadot
199c66ec88fSEmmanuel Vadotexamples:
200c66ec88fSEmmanuel Vadot  - |
201c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
202c66ec88fSEmmanuel Vadot
203c66ec88fSEmmanuel Vadot    wiz@5000000 {
204c66ec88fSEmmanuel Vadot           compatible = "ti,j721e-wiz-16g";
205c66ec88fSEmmanuel Vadot           #address-cells = <1>;
206c66ec88fSEmmanuel Vadot           #size-cells = <1>;
207c66ec88fSEmmanuel Vadot           power-domains = <&k3_pds 292 TI_SCI_PD_EXCLUSIVE>;
208c66ec88fSEmmanuel Vadot           clocks = <&k3_clks 292 5>, <&k3_clks 292 11>, <&dummy_cmn_refclk>;
209c66ec88fSEmmanuel Vadot           clock-names = "fck", "core_ref_clk", "ext_ref_clk";
210c66ec88fSEmmanuel Vadot           assigned-clocks = <&k3_clks 292 11>, <&k3_clks 292 0>;
211c66ec88fSEmmanuel Vadot           assigned-clock-parents = <&k3_clks 292 15>, <&k3_clks 292 4>;
212c66ec88fSEmmanuel Vadot           num-lanes = <2>;
213c66ec88fSEmmanuel Vadot           #reset-cells = <1>;
214c66ec88fSEmmanuel Vadot           ranges = <0x5000000 0x5000000 0x10000>;
215c66ec88fSEmmanuel Vadot
216c66ec88fSEmmanuel Vadot           pll0-refclk {
217c66ec88fSEmmanuel Vadot                  clocks = <&k3_clks 293 13>, <&dummy_cmn_refclk>;
218c66ec88fSEmmanuel Vadot                  #clock-cells = <0>;
219c66ec88fSEmmanuel Vadot                  assigned-clocks = <&wiz1_pll0_refclk>;
220c66ec88fSEmmanuel Vadot                  assigned-clock-parents = <&k3_clks 293 13>;
221c66ec88fSEmmanuel Vadot           };
222c66ec88fSEmmanuel Vadot
223c66ec88fSEmmanuel Vadot           pll1-refclk {
224c66ec88fSEmmanuel Vadot                  clocks = <&k3_clks 293 0>, <&dummy_cmn_refclk1>;
225c66ec88fSEmmanuel Vadot                  #clock-cells = <0>;
226c66ec88fSEmmanuel Vadot                  assigned-clocks = <&wiz1_pll1_refclk>;
227c66ec88fSEmmanuel Vadot                  assigned-clock-parents = <&k3_clks 293 0>;
228c66ec88fSEmmanuel Vadot           };
229c66ec88fSEmmanuel Vadot
230c66ec88fSEmmanuel Vadot           cmn-refclk-dig-div {
231c66ec88fSEmmanuel Vadot                  clocks = <&wiz1_refclk_dig>;
232c66ec88fSEmmanuel Vadot                  #clock-cells = <0>;
233c66ec88fSEmmanuel Vadot           };
234c66ec88fSEmmanuel Vadot
235c66ec88fSEmmanuel Vadot           cmn-refclk1-dig-div {
236c66ec88fSEmmanuel Vadot                  clocks = <&wiz1_pll1_refclk>;
237c66ec88fSEmmanuel Vadot                  #clock-cells = <0>;
238c66ec88fSEmmanuel Vadot           };
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot           refclk-dig {
241c66ec88fSEmmanuel Vadot                  clocks = <&k3_clks 292 11>, <&k3_clks 292 0>,
242c66ec88fSEmmanuel Vadot                          <&dummy_cmn_refclk>, <&dummy_cmn_refclk1>;
243c66ec88fSEmmanuel Vadot                  #clock-cells = <0>;
244c66ec88fSEmmanuel Vadot                  assigned-clocks = <&wiz0_refclk_dig>;
245c66ec88fSEmmanuel Vadot                  assigned-clock-parents = <&k3_clks 292 11>;
246c66ec88fSEmmanuel Vadot           };
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot           serdes@5000000 {
2492eb4d8dcSEmmanuel Vadot                  compatible = "ti,sierra-phy-t0";
250c66ec88fSEmmanuel Vadot                  reg-names = "serdes";
251c66ec88fSEmmanuel Vadot                  reg = <0x5000000 0x10000>;
252c66ec88fSEmmanuel Vadot                  #address-cells = <1>;
253c66ec88fSEmmanuel Vadot                  #size-cells = <0>;
254c66ec88fSEmmanuel Vadot                  resets = <&serdes_wiz0 0>;
255c66ec88fSEmmanuel Vadot                  reset-names = "sierra_reset";
256c66ec88fSEmmanuel Vadot                  clocks = <&wiz0_cmn_refclk_dig_div>, <&wiz0_cmn_refclk1_dig_div>;
257c66ec88fSEmmanuel Vadot                  clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div";
258c66ec88fSEmmanuel Vadot           };
259c66ec88fSEmmanuel Vadot    };
260