162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/** 362306a36Sopenharmony_ci * DT Overlay for CPSW9G in QSGMII mode using J7 Quad Port ETH EXP Add-On Ethernet Card with 462306a36Sopenharmony_ci * J721E board. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/ 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/dts-v1/; 1062306a36Sopenharmony_ci/plugin/; 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1362306a36Sopenharmony_ci#include <dt-bindings/phy/phy.h> 1462306a36Sopenharmony_ci#include <dt-bindings/phy/phy-cadence.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#include "k3-pinctrl.h" 1762306a36Sopenharmony_ci#include "k3-serdes.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci&{/} { 2062306a36Sopenharmony_ci aliases { 2162306a36Sopenharmony_ci ethernet1 = "/bus@100000/ethernet@c000000/ethernet-ports/port@1"; 2262306a36Sopenharmony_ci ethernet2 = "/bus@100000/ethernet@c000000/ethernet-ports/port@2"; 2362306a36Sopenharmony_ci ethernet3 = "/bus@100000/ethernet@c000000/ethernet-ports/port@3"; 2462306a36Sopenharmony_ci ethernet4 = "/bus@100000/ethernet@c000000/ethernet-ports/port@4"; 2562306a36Sopenharmony_ci }; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci&cpsw0 { 2962306a36Sopenharmony_ci status = "okay"; 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci&cpsw0_port1 { 3362306a36Sopenharmony_ci status = "okay"; 3462306a36Sopenharmony_ci phy-handle = <&cpsw9g_phy0>; 3562306a36Sopenharmony_ci phy-mode = "qsgmii"; 3662306a36Sopenharmony_ci mac-address = [00 00 00 00 00 00]; 3762306a36Sopenharmony_ci phys = <&cpsw0_phy_gmii_sel 1>; 3862306a36Sopenharmony_ci}; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci&cpsw0_port2 { 4162306a36Sopenharmony_ci status = "okay"; 4262306a36Sopenharmony_ci phy-handle = <&cpsw9g_phy1>; 4362306a36Sopenharmony_ci phy-mode = "qsgmii"; 4462306a36Sopenharmony_ci mac-address = [00 00 00 00 00 00]; 4562306a36Sopenharmony_ci phys = <&cpsw0_phy_gmii_sel 2>; 4662306a36Sopenharmony_ci}; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci&cpsw0_port3 { 4962306a36Sopenharmony_ci status = "okay"; 5062306a36Sopenharmony_ci phy-handle = <&cpsw9g_phy2>; 5162306a36Sopenharmony_ci phy-mode = "qsgmii"; 5262306a36Sopenharmony_ci mac-address = [00 00 00 00 00 00]; 5362306a36Sopenharmony_ci phys = <&cpsw0_phy_gmii_sel 3>; 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci&cpsw0_port4 { 5762306a36Sopenharmony_ci status = "okay"; 5862306a36Sopenharmony_ci phy-handle = <&cpsw9g_phy3>; 5962306a36Sopenharmony_ci phy-mode = "qsgmii"; 6062306a36Sopenharmony_ci mac-address = [00 00 00 00 00 00]; 6162306a36Sopenharmony_ci phys = <&cpsw0_phy_gmii_sel 4>; 6262306a36Sopenharmony_ci}; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci&cpsw9g_mdio { 6562306a36Sopenharmony_ci status = "okay"; 6662306a36Sopenharmony_ci pinctrl-names = "default"; 6762306a36Sopenharmony_ci pinctrl-0 = <&mdio0_pins_default>; 6862306a36Sopenharmony_ci reset-gpios = <&exp2 17 GPIO_ACTIVE_LOW>; 6962306a36Sopenharmony_ci reset-post-delay-us = <120000>; 7062306a36Sopenharmony_ci #address-cells = <1>; 7162306a36Sopenharmony_ci #size-cells = <0>; 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci cpsw9g_phy0: ethernet-phy@17 { 7462306a36Sopenharmony_ci reg = <17>; 7562306a36Sopenharmony_ci }; 7662306a36Sopenharmony_ci cpsw9g_phy1: ethernet-phy@16 { 7762306a36Sopenharmony_ci reg = <16>; 7862306a36Sopenharmony_ci }; 7962306a36Sopenharmony_ci cpsw9g_phy2: ethernet-phy@18 { 8062306a36Sopenharmony_ci reg = <18>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci cpsw9g_phy3: ethernet-phy@19 { 8362306a36Sopenharmony_ci reg = <19>; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci}; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci&exp2 { 8862306a36Sopenharmony_ci qsgmii-line-hog { 8962306a36Sopenharmony_ci gpio-hog; 9062306a36Sopenharmony_ci gpios = <16 GPIO_ACTIVE_HIGH>; 9162306a36Sopenharmony_ci output-low; 9262306a36Sopenharmony_ci line-name = "qsgmii-pwrdn-line"; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci}; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci&main_pmx0 { 9762306a36Sopenharmony_ci mdio0_pins_default: mdio0-default-pins { 9862306a36Sopenharmony_ci pinctrl-single,pins = < 9962306a36Sopenharmony_ci J721E_IOPAD(0x1bc, PIN_OUTPUT, 0) /* (V24) MDIO0_MDC */ 10062306a36Sopenharmony_ci J721E_IOPAD(0x1b8, PIN_INPUT, 0) /* (V26) MDIO0_MDIO */ 10162306a36Sopenharmony_ci >; 10262306a36Sopenharmony_ci }; 10362306a36Sopenharmony_ci}; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci&serdes_ln_ctrl { 10662306a36Sopenharmony_ci idle-states = <J721E_SERDES0_LANE0_PCIE0_LANE0>, <J721E_SERDES0_LANE1_QSGMII_LANE2>, 10762306a36Sopenharmony_ci <J721E_SERDES1_LANE0_PCIE1_LANE0>, <J721E_SERDES1_LANE1_PCIE1_LANE1>, 10862306a36Sopenharmony_ci <J721E_SERDES2_LANE0_PCIE2_LANE0>, <J721E_SERDES2_LANE1_PCIE2_LANE1>, 10962306a36Sopenharmony_ci <J721E_SERDES3_LANE0_USB3_0_SWAP>, <J721E_SERDES3_LANE1_USB3_0>, 11062306a36Sopenharmony_ci <J721E_SERDES4_LANE0_EDP_LANE0>, <J721E_SERDES4_LANE1_EDP_LANE1>, 11162306a36Sopenharmony_ci <J721E_SERDES4_LANE2_EDP_LANE2>, <J721E_SERDES4_LANE3_EDP_LANE3>; 11262306a36Sopenharmony_ci}; 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci&serdes_wiz0 { 11562306a36Sopenharmony_ci status = "okay"; 11662306a36Sopenharmony_ci}; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci&serdes0 { 11962306a36Sopenharmony_ci status = "okay"; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci assigned-clocks = <&serdes0 CDNS_SIERRA_PLL_CMNLC>, <&serdes0 CDNS_SIERRA_PLL_CMNLC1>; 12262306a36Sopenharmony_ci assigned-clock-parents = <&wiz0_pll1_refclk>, <&wiz0_pll1_refclk>; 12362306a36Sopenharmony_ci #address-cells = <1>; 12462306a36Sopenharmony_ci #size-cells = <0>; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci serdes0_qsgmii_link: phy@1 { 12762306a36Sopenharmony_ci reg = <1>; 12862306a36Sopenharmony_ci cdns,num-lanes = <1>; 12962306a36Sopenharmony_ci #phy-cells = <0>; 13062306a36Sopenharmony_ci cdns,phy-type = <PHY_TYPE_QSGMII>; 13162306a36Sopenharmony_ci resets = <&serdes_wiz0 2>; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci}; 134