Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 # Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/phy/ti,phy-j721e-wiz.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007 
0008 title: TI J721E WIZ (SERDES Wrapper)
0009 
0010 maintainers:
0011   - Kishon Vijay Abraham I <kishon@ti.com>
0012 
0013 properties:
0014   compatible:
0015     enum:
0016       - ti,j721e-wiz-16g
0017       - ti,j721e-wiz-10g
0018       - ti,am64-wiz-10g
0019 
0020   power-domains:
0021     maxItems: 1
0022 
0023   clocks:
0024     maxItems: 3
0025     description: clock-specifier to represent input to the WIZ
0026 
0027   clock-names:
0028     items:
0029       - const: fck
0030       - const: core_ref_clk
0031       - const: ext_ref_clk
0032 
0033   num-lanes:
0034     minimum: 1
0035     maximum: 4
0036 
0037   "#address-cells":
0038     const: 1
0039 
0040   "#size-cells":
0041     const: 1
0042 
0043   "#reset-cells":
0044     const: 1
0045 
0046   "#clock-cells":
0047     const: 1
0048 
0049   ranges: true
0050 
0051   assigned-clocks:
0052     minItems: 1
0053     maxItems: 2
0054 
0055   assigned-clock-parents:
0056     minItems: 1
0057     maxItems: 2
0058 
0059   assigned-clock-rates:
0060     minItems: 1
0061     maxItems: 2
0062 
0063   typec-dir-gpios:
0064     maxItems: 1
0065     description:
0066       GPIO to signal Type-C cable orientation for lane swap.
0067       If GPIO is active, lane 0 and lane 1 of SERDES will be swapped to
0068       achieve the funtionality of an external type-C plug flip mux.
0069 
0070   typec-dir-debounce-ms:
0071     minimum: 100
0072     maximum: 1000
0073     default: 100
0074     description:
0075       Number of milliseconds to wait before sampling typec-dir-gpio.
0076       If not specified, the default debounce of 100ms will be used.
0077       Type-C spec states minimum CC pin debounce of 100 ms and maximum
0078       of 200 ms. However, some solutions might need more than 200 ms.
0079 
0080   refclk-dig:
0081     type: object
0082     description: |
0083       WIZ node should have subnode for refclk_dig to select the reference
0084       clock source for the reference clock used in the PHY and PMA digital
0085       logic.
0086     properties:
0087       clocks:
0088         minItems: 2
0089         maxItems: 4
0090         description: Phandle to two (Torrent) or four (Sierra) clock nodes representing
0091           the inputs to refclk_dig
0092 
0093       "#clock-cells":
0094         const: 0
0095 
0096       assigned-clocks:
0097         maxItems: 1
0098 
0099       assigned-clock-parents:
0100         maxItems: 1
0101 
0102     required:
0103       - clocks
0104       - "#clock-cells"
0105       - assigned-clocks
0106       - assigned-clock-parents
0107 
0108 patternProperties:
0109   "^pll[0|1]-refclk$":
0110     type: object
0111     description: |
0112       WIZ node should have subnodes for each of the PLLs present in
0113       the SERDES.
0114     properties:
0115       clocks:
0116         maxItems: 2
0117         description: Phandle to clock nodes representing the two inputs to PLL.
0118 
0119       "#clock-cells":
0120         const: 0
0121 
0122       assigned-clocks:
0123         maxItems: 1
0124 
0125       assigned-clock-parents:
0126         maxItems: 1
0127 
0128     required:
0129       - clocks
0130       - "#clock-cells"
0131       - assigned-clocks
0132       - assigned-clock-parents
0133 
0134   "^cmn-refclk1?-dig-div$":
0135     type: object
0136     description:
0137       WIZ node should have subnodes for each of the PMA common refclock
0138       provided by the SERDES.
0139     properties:
0140       clocks:
0141         maxItems: 1
0142         description: Phandle to the clock node representing the input to the
0143           divider clock.
0144 
0145       "#clock-cells":
0146         const: 0
0147 
0148     required:
0149       - clocks
0150       - "#clock-cells"
0151 
0152   "^serdes@[0-9a-f]+$":
0153     type: object
0154     description: |
0155       WIZ node should have '1' subnode for the SERDES. It could be either
0156       Sierra SERDES or Torrent SERDES. Sierra SERDES should follow the
0157       bindings specified in
0158       Documentation/devicetree/bindings/phy/phy-cadence-sierra.yaml
0159       Torrent SERDES should follow the bindings specified in
0160       Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
0161 
0162 required:
0163   - compatible
0164   - power-domains
0165   - clocks
0166   - clock-names
0167   - num-lanes
0168   - "#address-cells"
0169   - "#size-cells"
0170   - "#reset-cells"
0171   - ranges
0172 
0173 additionalProperties: false
0174 
0175 examples:
0176   - |
0177     #include <dt-bindings/soc/ti,sci_pm_domain.h>
0178 
0179     wiz@5000000 {
0180            compatible = "ti,j721e-wiz-16g";
0181            #address-cells = <1>;
0182            #size-cells = <1>;
0183            power-domains = <&k3_pds 292 TI_SCI_PD_EXCLUSIVE>;
0184            clocks = <&k3_clks 292 5>, <&k3_clks 292 11>, <&dummy_cmn_refclk>;
0185            clock-names = "fck", "core_ref_clk", "ext_ref_clk";
0186            assigned-clocks = <&k3_clks 292 11>, <&k3_clks 292 0>;
0187            assigned-clock-parents = <&k3_clks 292 15>, <&k3_clks 292 4>;
0188            num-lanes = <2>;
0189            #reset-cells = <1>;
0190            ranges = <0x5000000 0x5000000 0x10000>;
0191 
0192            pll0-refclk {
0193                   clocks = <&k3_clks 293 13>, <&dummy_cmn_refclk>;
0194                   #clock-cells = <0>;
0195                   assigned-clocks = <&wiz1_pll0_refclk>;
0196                   assigned-clock-parents = <&k3_clks 293 13>;
0197            };
0198 
0199            pll1-refclk {
0200                   clocks = <&k3_clks 293 0>, <&dummy_cmn_refclk1>;
0201                   #clock-cells = <0>;
0202                   assigned-clocks = <&wiz1_pll1_refclk>;
0203                   assigned-clock-parents = <&k3_clks 293 0>;
0204            };
0205 
0206            cmn-refclk-dig-div {
0207                   clocks = <&wiz1_refclk_dig>;
0208                   #clock-cells = <0>;
0209            };
0210 
0211            cmn-refclk1-dig-div {
0212                   clocks = <&wiz1_pll1_refclk>;
0213                   #clock-cells = <0>;
0214            };
0215 
0216            refclk-dig {
0217                   clocks = <&k3_clks 292 11>, <&k3_clks 292 0>,
0218                           <&dummy_cmn_refclk>, <&dummy_cmn_refclk1>;
0219                   #clock-cells = <0>;
0220                   assigned-clocks = <&wiz0_refclk_dig>;
0221                   assigned-clock-parents = <&k3_clks 292 11>;
0222            };
0223 
0224            serdes@5000000 {
0225                   compatible = "ti,sierra-phy-t0";
0226                   reg-names = "serdes";
0227                   reg = <0x5000000 0x10000>;
0228                   #address-cells = <1>;
0229                   #size-cells = <0>;
0230                   resets = <&serdes_wiz0 0>;
0231                   reset-names = "sierra_reset";
0232                   clocks = <&wiz0_cmn_refclk_dig_div>, <&wiz0_cmn_refclk1_dig_div>;
0233                   clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div";
0234            };
0235     };