18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci# Copyright (C) 2019 Texas Instruments Incorporated - http://www.ti.com/ 38c2ecf20Sopenharmony_ci%YAML 1.2 48c2ecf20Sopenharmony_ci--- 58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/phy/ti,phy-j721e-wiz.yaml#" 68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#" 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cititle: TI J721E WIZ (SERDES Wrapper) 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Kishon Vijay Abraham I <kishon@ti.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciproperties: 148c2ecf20Sopenharmony_ci compatible: 158c2ecf20Sopenharmony_ci enum: 168c2ecf20Sopenharmony_ci - ti,j721e-wiz-16g 178c2ecf20Sopenharmony_ci - ti,j721e-wiz-10g 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci power-domains: 208c2ecf20Sopenharmony_ci maxItems: 1 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci clocks: 238c2ecf20Sopenharmony_ci maxItems: 3 248c2ecf20Sopenharmony_ci description: clock-specifier to represent input to the WIZ 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci clock-names: 278c2ecf20Sopenharmony_ci items: 288c2ecf20Sopenharmony_ci - const: fck 298c2ecf20Sopenharmony_ci - const: core_ref_clk 308c2ecf20Sopenharmony_ci - const: ext_ref_clk 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci num-lanes: 338c2ecf20Sopenharmony_ci minimum: 1 348c2ecf20Sopenharmony_ci maximum: 4 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci "#address-cells": 378c2ecf20Sopenharmony_ci const: 1 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci "#size-cells": 408c2ecf20Sopenharmony_ci const: 1 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci "#reset-cells": 438c2ecf20Sopenharmony_ci const: 1 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci ranges: true 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci assigned-clocks: 488c2ecf20Sopenharmony_ci minItems: 1 498c2ecf20Sopenharmony_ci maxItems: 2 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci assigned-clock-parents: 528c2ecf20Sopenharmony_ci minItems: 1 538c2ecf20Sopenharmony_ci maxItems: 2 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci assigned-clock-rates: 568c2ecf20Sopenharmony_ci minItems: 1 578c2ecf20Sopenharmony_ci maxItems: 2 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci typec-dir-gpios: 608c2ecf20Sopenharmony_ci maxItems: 1 618c2ecf20Sopenharmony_ci description: 628c2ecf20Sopenharmony_ci GPIO to signal Type-C cable orientation for lane swap. 638c2ecf20Sopenharmony_ci If GPIO is active, lane 0 and lane 1 of SERDES will be swapped to 648c2ecf20Sopenharmony_ci achieve the funtionality of an external type-C plug flip mux. 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci typec-dir-debounce-ms: 678c2ecf20Sopenharmony_ci minimum: 100 688c2ecf20Sopenharmony_ci maximum: 1000 698c2ecf20Sopenharmony_ci default: 100 708c2ecf20Sopenharmony_ci description: 718c2ecf20Sopenharmony_ci Number of milliseconds to wait before sampling typec-dir-gpio. 728c2ecf20Sopenharmony_ci If not specified, the default debounce of 100ms will be used. 738c2ecf20Sopenharmony_ci Type-C spec states minimum CC pin debounce of 100 ms and maximum 748c2ecf20Sopenharmony_ci of 200 ms. However, some solutions might need more than 200 ms. 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_cipatternProperties: 778c2ecf20Sopenharmony_ci "^pll[0|1]-refclk$": 788c2ecf20Sopenharmony_ci type: object 798c2ecf20Sopenharmony_ci description: | 808c2ecf20Sopenharmony_ci WIZ node should have subnodes for each of the PLLs present in 818c2ecf20Sopenharmony_ci the SERDES. 828c2ecf20Sopenharmony_ci properties: 838c2ecf20Sopenharmony_ci clocks: 848c2ecf20Sopenharmony_ci maxItems: 2 858c2ecf20Sopenharmony_ci description: Phandle to clock nodes representing the two inputs to PLL. 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci "#clock-cells": 888c2ecf20Sopenharmony_ci const: 0 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci assigned-clocks: 918c2ecf20Sopenharmony_ci maxItems: 1 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci assigned-clock-parents: 948c2ecf20Sopenharmony_ci maxItems: 1 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci required: 978c2ecf20Sopenharmony_ci - clocks 988c2ecf20Sopenharmony_ci - "#clock-cells" 998c2ecf20Sopenharmony_ci - assigned-clocks 1008c2ecf20Sopenharmony_ci - assigned-clock-parents 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci "^cmn-refclk1?-dig-div$": 1038c2ecf20Sopenharmony_ci type: object 1048c2ecf20Sopenharmony_ci description: 1058c2ecf20Sopenharmony_ci WIZ node should have subnodes for each of the PMA common refclock 1068c2ecf20Sopenharmony_ci provided by the SERDES. 1078c2ecf20Sopenharmony_ci properties: 1088c2ecf20Sopenharmony_ci clocks: 1098c2ecf20Sopenharmony_ci maxItems: 1 1108c2ecf20Sopenharmony_ci description: Phandle to the clock node representing the input to the 1118c2ecf20Sopenharmony_ci divider clock. 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci "#clock-cells": 1148c2ecf20Sopenharmony_ci const: 0 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ci required: 1178c2ecf20Sopenharmony_ci - clocks 1188c2ecf20Sopenharmony_ci - "#clock-cells" 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci "^refclk-dig$": 1218c2ecf20Sopenharmony_ci type: object 1228c2ecf20Sopenharmony_ci description: | 1238c2ecf20Sopenharmony_ci WIZ node should have subnode for refclk_dig to select the reference 1248c2ecf20Sopenharmony_ci clock source for the reference clock used in the PHY and PMA digital 1258c2ecf20Sopenharmony_ci logic. 1268c2ecf20Sopenharmony_ci properties: 1278c2ecf20Sopenharmony_ci clocks: 1288c2ecf20Sopenharmony_ci minItems: 2 1298c2ecf20Sopenharmony_ci maxItems: 4 1308c2ecf20Sopenharmony_ci description: Phandle to two (Torrent) or four (Sierra) clock nodes representing 1318c2ecf20Sopenharmony_ci the inputs to refclk_dig 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_ci "#clock-cells": 1348c2ecf20Sopenharmony_ci const: 0 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci assigned-clocks: 1378c2ecf20Sopenharmony_ci maxItems: 1 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci assigned-clock-parents: 1408c2ecf20Sopenharmony_ci maxItems: 1 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci required: 1438c2ecf20Sopenharmony_ci - clocks 1448c2ecf20Sopenharmony_ci - "#clock-cells" 1458c2ecf20Sopenharmony_ci - assigned-clocks 1468c2ecf20Sopenharmony_ci - assigned-clock-parents 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci "^serdes@[0-9a-f]+$": 1498c2ecf20Sopenharmony_ci type: object 1508c2ecf20Sopenharmony_ci description: | 1518c2ecf20Sopenharmony_ci WIZ node should have '1' subnode for the SERDES. It could be either 1528c2ecf20Sopenharmony_ci Sierra SERDES or Torrent SERDES. Sierra SERDES should follow the 1538c2ecf20Sopenharmony_ci bindings specified in 1548c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt 1558c2ecf20Sopenharmony_ci Torrent SERDES should follow the bindings specified in 1568c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_cirequired: 1598c2ecf20Sopenharmony_ci - compatible 1608c2ecf20Sopenharmony_ci - power-domains 1618c2ecf20Sopenharmony_ci - clocks 1628c2ecf20Sopenharmony_ci - clock-names 1638c2ecf20Sopenharmony_ci - num-lanes 1648c2ecf20Sopenharmony_ci - "#address-cells" 1658c2ecf20Sopenharmony_ci - "#size-cells" 1668c2ecf20Sopenharmony_ci - "#reset-cells" 1678c2ecf20Sopenharmony_ci - ranges 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ciadditionalProperties: false 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciexamples: 1728c2ecf20Sopenharmony_ci - | 1738c2ecf20Sopenharmony_ci #include <dt-bindings/soc/ti,sci_pm_domain.h> 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci wiz@5000000 { 1768c2ecf20Sopenharmony_ci compatible = "ti,j721e-wiz-16g"; 1778c2ecf20Sopenharmony_ci #address-cells = <1>; 1788c2ecf20Sopenharmony_ci #size-cells = <1>; 1798c2ecf20Sopenharmony_ci power-domains = <&k3_pds 292 TI_SCI_PD_EXCLUSIVE>; 1808c2ecf20Sopenharmony_ci clocks = <&k3_clks 292 5>, <&k3_clks 292 11>, <&dummy_cmn_refclk>; 1818c2ecf20Sopenharmony_ci clock-names = "fck", "core_ref_clk", "ext_ref_clk"; 1828c2ecf20Sopenharmony_ci assigned-clocks = <&k3_clks 292 11>, <&k3_clks 292 0>; 1838c2ecf20Sopenharmony_ci assigned-clock-parents = <&k3_clks 292 15>, <&k3_clks 292 4>; 1848c2ecf20Sopenharmony_ci num-lanes = <2>; 1858c2ecf20Sopenharmony_ci #reset-cells = <1>; 1868c2ecf20Sopenharmony_ci ranges = <0x5000000 0x5000000 0x10000>; 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci pll0-refclk { 1898c2ecf20Sopenharmony_ci clocks = <&k3_clks 293 13>, <&dummy_cmn_refclk>; 1908c2ecf20Sopenharmony_ci #clock-cells = <0>; 1918c2ecf20Sopenharmony_ci assigned-clocks = <&wiz1_pll0_refclk>; 1928c2ecf20Sopenharmony_ci assigned-clock-parents = <&k3_clks 293 13>; 1938c2ecf20Sopenharmony_ci }; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci pll1-refclk { 1968c2ecf20Sopenharmony_ci clocks = <&k3_clks 293 0>, <&dummy_cmn_refclk1>; 1978c2ecf20Sopenharmony_ci #clock-cells = <0>; 1988c2ecf20Sopenharmony_ci assigned-clocks = <&wiz1_pll1_refclk>; 1998c2ecf20Sopenharmony_ci assigned-clock-parents = <&k3_clks 293 0>; 2008c2ecf20Sopenharmony_ci }; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci cmn-refclk-dig-div { 2038c2ecf20Sopenharmony_ci clocks = <&wiz1_refclk_dig>; 2048c2ecf20Sopenharmony_ci #clock-cells = <0>; 2058c2ecf20Sopenharmony_ci }; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci cmn-refclk1-dig-div { 2088c2ecf20Sopenharmony_ci clocks = <&wiz1_pll1_refclk>; 2098c2ecf20Sopenharmony_ci #clock-cells = <0>; 2108c2ecf20Sopenharmony_ci }; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci refclk-dig { 2138c2ecf20Sopenharmony_ci clocks = <&k3_clks 292 11>, <&k3_clks 292 0>, 2148c2ecf20Sopenharmony_ci <&dummy_cmn_refclk>, <&dummy_cmn_refclk1>; 2158c2ecf20Sopenharmony_ci #clock-cells = <0>; 2168c2ecf20Sopenharmony_ci assigned-clocks = <&wiz0_refclk_dig>; 2178c2ecf20Sopenharmony_ci assigned-clock-parents = <&k3_clks 292 11>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci serdes@5000000 { 2218c2ecf20Sopenharmony_ci compatible = "cdns,ti,sierra-phy-t0"; 2228c2ecf20Sopenharmony_ci reg-names = "serdes"; 2238c2ecf20Sopenharmony_ci reg = <0x5000000 0x10000>; 2248c2ecf20Sopenharmony_ci #address-cells = <1>; 2258c2ecf20Sopenharmony_ci #size-cells = <0>; 2268c2ecf20Sopenharmony_ci resets = <&serdes_wiz0 0>; 2278c2ecf20Sopenharmony_ci reset-names = "sierra_reset"; 2288c2ecf20Sopenharmony_ci clocks = <&wiz0_cmn_refclk_dig_div>, <&wiz0_cmn_refclk1_dig_div>; 2298c2ecf20Sopenharmony_ci clock-names = "cmn_refclk_dig_div", "cmn_refclk1_dig_div"; 2308c2ecf20Sopenharmony_ci }; 2318c2ecf20Sopenharmony_ci }; 232