1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*4882a593Smuzhiyun# Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/ 3*4882a593Smuzhiyun%YAML 1.2 4*4882a593Smuzhiyun--- 5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/phy/ti,phy-j721e-wiz.yaml#" 6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyuntitle: TI J721E WIZ (SERDES Wrapper) 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunmaintainers: 11*4882a593Smuzhiyun - Kishon Vijay Abraham I <kishon@ti.com> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunproperties: 14*4882a593Smuzhiyun compatible: 15*4882a593Smuzhiyun enum: 16*4882a593Smuzhiyun - ti,j721e-wiz-16g 17*4882a593Smuzhiyun - ti,j721e-wiz-10g 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun power-domains: 20*4882a593Smuzhiyun maxItems: 1 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun clocks: 23*4882a593Smuzhiyun maxItems: 3 24*4882a593Smuzhiyun description: clock-specifier to represent input to the WIZ 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun clock-names: 27*4882a593Smuzhiyun items: 28*4882a593Smuzhiyun - const: fck 29*4882a593Smuzhiyun - const: core_ref_clk 30*4882a593Smuzhiyun - const: ext_ref_clk 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun num-lanes: 33*4882a593Smuzhiyun minimum: 1 34*4882a593Smuzhiyun maximum: 4 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun "#address-cells": 37*4882a593Smuzhiyun const: 1 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun "#size-cells": 40*4882a593Smuzhiyun const: 1 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun "#reset-cells": 43*4882a593Smuzhiyun const: 1 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun ranges: true 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun assigned-clocks: 48*4882a593Smuzhiyun minItems: 1 49*4882a593Smuzhiyun maxItems: 2 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun assigned-clock-parents: 52*4882a593Smuzhiyun minItems: 1 53*4882a593Smuzhiyun maxItems: 2 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun assigned-clock-rates: 56*4882a593Smuzhiyun minItems: 1 57*4882a593Smuzhiyun maxItems: 2 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun typec-dir-gpios: 60*4882a593Smuzhiyun maxItems: 1 61*4882a593Smuzhiyun description: 62*4882a593Smuzhiyun GPIO to signal Type-C cable orientation for lane swap. 63*4882a593Smuzhiyun If GPIO is active, lane 0 and lane 1 of SERDES will be swapped to 64*4882a593Smuzhiyun achieve the funtionality of an external type-C plug flip mux. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun typec-dir-debounce-ms: 67*4882a593Smuzhiyun minimum: 100 68*4882a593Smuzhiyun maximum: 1000 69*4882a593Smuzhiyun default: 100 70*4882a593Smuzhiyun description: 71*4882a593Smuzhiyun Number of milliseconds to wait before sampling typec-dir-gpio. 72*4882a593Smuzhiyun If not specified, the default debounce of 100ms will be used. 73*4882a593Smuzhiyun Type-C spec states minimum CC pin debounce of 100 ms and maximum 74*4882a593Smuzhiyun of 200 ms. However, some solutions might need more than 200 ms. 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunpatternProperties: 77*4882a593Smuzhiyun "^pll[0|1]-refclk$": 78*4882a593Smuzhiyun type: object 79*4882a593Smuzhiyun description: | 80*4882a593Smuzhiyun WIZ node should have subnodes for each of the PLLs present in 81*4882a593Smuzhiyun the SERDES. 82*4882a593Smuzhiyun properties: 83*4882a593Smuzhiyun clocks: 84*4882a593Smuzhiyun maxItems: 2 85*4882a593Smuzhiyun description: Phandle to clock nodes representing the two inputs to PLL. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun "#clock-cells": 88*4882a593Smuzhiyun const: 0 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun assigned-clocks: 91*4882a593Smuzhiyun maxItems: 1 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun assigned-clock-parents: 94*4882a593Smuzhiyun maxItems: 1 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun required: 97*4882a593Smuzhiyun - clocks 98*4882a593Smuzhiyun - "#clock-cells" 99*4882a593Smuzhiyun - assigned-clocks 100*4882a593Smuzhiyun - assigned-clock-parents 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun "^cmn-refclk1?-dig-div$": 103*4882a593Smuzhiyun type: object 104*4882a593Smuzhiyun description: 105*4882a593Smuzhiyun WIZ node should have subnodes for each of the PMA common refclock 106*4882a593Smuzhiyun provided by the SERDES. 107*4882a593Smuzhiyun properties: 108*4882a593Smuzhiyun clocks: 109*4882a593Smuzhiyun maxItems: 1 110*4882a593Smuzhiyun description: Phandle to the clock node representing the input to the 111*4882a593Smuzhiyun divider clock. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun "#clock-cells": 114*4882a593Smuzhiyun const: 0 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun required: 117*4882a593Smuzhiyun - clocks 118*4882a593Smuzhiyun - "#clock-cells" 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun "^refclk-dig$": 121*4882a593Smuzhiyun type: object 122*4882a593Smuzhiyun description: | 123*4882a593Smuzhiyun WIZ node should have subnode for refclk_dig to select the reference 124*4882a593Smuzhiyun clock source for the reference clock used in the PHY and PMA digital 125*4882a593Smuzhiyun logic. 126*4882a593Smuzhiyun properties: 127*4882a593Smuzhiyun clocks: 128*4882a593Smuzhiyun minItems: 2 129*4882a593Smuzhiyun maxItems: 4 130*4882a593Smuzhiyun description: Phandle to two (Torrent) or four (Sierra) clock nodes representing 131*4882a593Smuzhiyun the inputs to refclk_dig 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun "#clock-cells": 134*4882a593Smuzhiyun const: 0 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun assigned-clocks: 137*4882a593Smuzhiyun maxItems: 1 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun assigned-clock-parents: 140*4882a593Smuzhiyun maxItems: 1 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun required: 143*4882a593Smuzhiyun - clocks 144*4882a593Smuzhiyun - "#clock-cells" 145*4882a593Smuzhiyun - assigned-clocks 146*4882a593Smuzhiyun - assigned-clock-parents 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun "^serdes@[0-9a-f]+$": 149*4882a593Smuzhiyun type: object 150*4882a593Smuzhiyun description: | 151*4882a593Smuzhiyun WIZ node should have '1' subnode for the SERDES. It could be either 152*4882a593Smuzhiyun Sierra SERDES or Torrent SERDES. Sierra SERDES should follow the 153*4882a593Smuzhiyun bindings specified in 154*4882a593Smuzhiyun Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt 155*4882a593Smuzhiyun Torrent SERDES should follow the bindings specified in 156*4882a593Smuzhiyun Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml 157*4882a593Smuzhiyun 158*4882a593Smuzhiyunrequired: 159*4882a593Smuzhiyun - compatible 160*4882a593Smuzhiyun - power-domains 161*4882a593Smuzhiyun - clocks 162*4882a593Smuzhiyun - clock-names 163*4882a593Smuzhiyun - num-lanes 164*4882a593Smuzhiyun - "#address-cells" 165*4882a593Smuzhiyun - "#size-cells" 166*4882a593Smuzhiyun - "#reset-cells" 167*4882a593Smuzhiyun - ranges 168*4882a593Smuzhiyun 169*4882a593SmuzhiyunadditionalProperties: false 170*4882a593Smuzhiyun 171*4882a593Smuzhiyunexamples: 172*4882a593Smuzhiyun - | 173*4882a593Smuzhiyun #include <dt-bindings/soc/ti,sci_pm_domain.h> 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun wiz@5000000 { 176*4882a593Smuzhiyun compatible = "ti,j721e-wiz-16g"; 177*4882a593Smuzhiyun #address-cells = <1>; 178*4882a593Smuzhiyun #size-cells = <1>; 179*4882a593Smuzhiyun power-domains = <&k3_pds 292 TI_SCI_PD_EXCLUSIVE>; 180*4882a593Smuzhiyun clocks = <&k3_clks 292 5>, <&k3_clks 292 11>, <&dummy_cmn_refclk>; 181*4882a593Smuzhiyun clock-names = "fck", "core_ref_clk", "ext_ref_clk"; 182*4882a593Smuzhiyun assigned-clocks = <&k3_clks 292 11>, <&k3_clks 292 0>; 183*4882a593Smuzhiyun assigned-clock-parents = <&k3_clks 292 15>, <&k3_clks 292 4>; 184*4882a593Smuzhiyun num-lanes = <2>; 185*4882a593Smuzhiyun #reset-cells = <1>; 186*4882a593Smuzhiyun ranges = <0x5000000 0x5000000 0x10000>; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun pll0-refclk { 189*4882a593Smuzhiyun clocks = <&k3_clks 293 13>, <&dummy_cmn_refclk>; 190*4882a593Smuzhiyun #clock-cells = <0>; 191*4882a593Smuzhiyun assigned-clocks = <&wiz1_pll0_refclk>; 192*4882a593Smuzhiyun assigned-clock-parents = <&k3_clks 293 13>; 193*4882a593Smuzhiyun }; 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun pll1-refclk { 196*4882a593Smuzhiyun clocks = <&k3_clks 293 0>, <&dummy_cmn_refclk1>; 197*4882a593Smuzhiyun #clock-cells = <0>; 198*4882a593Smuzhiyun assigned-clocks = <&wiz1_pll1_refclk>; 199*4882a593Smuzhiyun assigned-clock-parents = <&k3_clks 293 0>; 200*4882a593Smuzhiyun }; 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun cmn-refclk-dig-div { 203*4882a593Smuzhiyun clocks = <&wiz1_refclk_dig>; 204*4882a593Smuzhiyun #clock-cells = <0>; 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun cmn-refclk1-dig-div { 208*4882a593Smuzhiyun clocks = <&wiz1_pll1_refclk>; 209*4882a593Smuzhiyun #clock-cells = <0>; 210*4882a593Smuzhiyun }; 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun refclk-dig { 213*4882a593Smuzhiyun clocks = <&k3_clks 292 11>, <&k3_clks 292 0>, 214*4882a593Smuzhiyun <&dummy_cmn_refclk>, <&dummy_cmn_refclk1>; 215*4882a593Smuzhiyun #clock-cells = <0>; 216*4882a593Smuzhiyun assigned-clocks = <&wiz0_refclk_dig>; 217*4882a593Smuzhiyun assigned-clock-parents = <&k3_clks 292 11>; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun serdes@5000000 { 221*4882a593Smuzhiyun compatible = "cdns,ti,sierra-phy-t0"; 222*4882a593Smuzhiyun reg-names = "serdes"; 223*4882a593Smuzhiyun reg = <0x5000000 0x10000>; 224*4882a593Smuzhiyun #address-cells = <1>; 225*4882a593Smuzhiyun #size-cells = <0>; 226*4882a593Smuzhiyun resets = <&serdes_wiz0 0>; 227*4882a593Smuzhiyun reset-names = "sierra_reset"; 228*4882a593Smuzhiyun clocks = <&wiz0_cmn_refclk_dig_div>, <&wiz0_cmn_refclk1_dig_div>; 229*4882a593Smuzhiyun clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div"; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun }; 232