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