10935cac6SKhoronzhuk, Ivan /* 20935cac6SKhoronzhuk, Ivan * emac definitions for keystone2 devices 30935cac6SKhoronzhuk, Ivan * 40935cac6SKhoronzhuk, Ivan * (C) Copyright 2012-2014 50935cac6SKhoronzhuk, Ivan * Texas Instruments Incorporated, <www.ti.com> 60935cac6SKhoronzhuk, Ivan * 70935cac6SKhoronzhuk, Ivan * SPDX-License-Identifier: GPL-2.0+ 80935cac6SKhoronzhuk, Ivan */ 90935cac6SKhoronzhuk, Ivan 100935cac6SKhoronzhuk, Ivan #ifndef _KEYSTONE_NET_H_ 110935cac6SKhoronzhuk, Ivan #define _KEYSTONE_NET_H_ 120935cac6SKhoronzhuk, Ivan 130935cac6SKhoronzhuk, Ivan #include <asm/io.h> 140935cac6SKhoronzhuk, Ivan 150935cac6SKhoronzhuk, Ivan /* EMAC */ 160935cac6SKhoronzhuk, Ivan #ifdef CONFIG_KSNET_NETCP_V1_0 170935cac6SKhoronzhuk, Ivan 180935cac6SKhoronzhuk, Ivan #define GBETH_BASE (CONFIG_KSNET_NETCP_BASE + 0x00090000) 190935cac6SKhoronzhuk, Ivan #define EMAC_EMACSL_BASE_ADDR (GBETH_BASE + 0x900) 200935cac6SKhoronzhuk, Ivan #define EMAC_MDIO_BASE_ADDR (GBETH_BASE + 0x300) 210935cac6SKhoronzhuk, Ivan #define EMAC_SGMII_BASE_ADDR (GBETH_BASE + 0x100) 220935cac6SKhoronzhuk, Ivan #define DEVICE_EMACSL_BASE(x) (EMAC_EMACSL_BASE_ADDR + (x) * 0x040) 230935cac6SKhoronzhuk, Ivan 240935cac6SKhoronzhuk, Ivan /* Register offsets */ 250935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_CTL 0x04 260935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_STATUS 0x08 270935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_RESET 0x0c 280935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_MAXLEN 0x10 290935cac6SKhoronzhuk, Ivan 300935cac6SKhoronzhuk, Ivan #elif defined CONFIG_KSNET_NETCP_V1_5 310935cac6SKhoronzhuk, Ivan 320935cac6SKhoronzhuk, Ivan #define GBETH_BASE (CONFIG_KSNET_NETCP_BASE + 0x00200000) 330935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_RX_PRI_MAP 0x020 340935cac6SKhoronzhuk, Ivan #define EMAC_EMACSL_BASE_ADDR (GBETH_BASE + 0x22000) 350935cac6SKhoronzhuk, Ivan #define EMAC_MDIO_BASE_ADDR (GBETH_BASE + 0x00f00) 360935cac6SKhoronzhuk, Ivan #define EMAC_SGMII_BASE_ADDR (GBETH_BASE + 0x00100) 370935cac6SKhoronzhuk, Ivan #define DEVICE_EMACSL_BASE(x) (EMAC_EMACSL_BASE_ADDR + (x) * 0x1000) 380935cac6SKhoronzhuk, Ivan 390935cac6SKhoronzhuk, Ivan /* Register offsets */ 400935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_CTL 0x330 410935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_STATUS 0x334 420935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_RESET 0x338 430935cac6SKhoronzhuk, Ivan #define CPGMACSL_REG_MAXLEN 0x024 440935cac6SKhoronzhuk, Ivan 450935cac6SKhoronzhuk, Ivan #endif 460935cac6SKhoronzhuk, Ivan 470935cac6SKhoronzhuk, Ivan #define KEYSTONE2_EMAC_GIG_ENABLE 480935cac6SKhoronzhuk, Ivan 490935cac6SKhoronzhuk, Ivan #define MAC_ID_BASE_ADDR CONFIG_KSNET_MAC_ID_BASE 500935cac6SKhoronzhuk, Ivan 510935cac6SKhoronzhuk, Ivan /* MDIO module input frequency */ 52*e6d71e1cSVitaly Andrianov #ifdef CONFIG_SOC_K2G 53*e6d71e1cSVitaly Andrianov #define EMAC_MDIO_BUS_FREQ (clk_get_rate(sys_clk0_3_clk)) 54*e6d71e1cSVitaly Andrianov #else 550935cac6SKhoronzhuk, Ivan #define EMAC_MDIO_BUS_FREQ (clk_get_rate(pass_pll_clk)) 56*e6d71e1cSVitaly Andrianov #endif 570935cac6SKhoronzhuk, Ivan /* MDIO clock output frequency */ 58f0772266SVitaly Andrianov #define EMAC_MDIO_CLOCK_FREQ 2500000 /* 2.5 MHz */ 590935cac6SKhoronzhuk, Ivan 600935cac6SKhoronzhuk, Ivan /* MII Status Register */ 610935cac6SKhoronzhuk, Ivan #define MII_STATUS_REG 1 620935cac6SKhoronzhuk, Ivan #define MII_STATUS_LINK_MASK 0x4 630935cac6SKhoronzhuk, Ivan 640935cac6SKhoronzhuk, Ivan #define MDIO_CONTROL_IDLE 0x80000000 650935cac6SKhoronzhuk, Ivan #define MDIO_CONTROL_ENABLE 0x40000000 660935cac6SKhoronzhuk, Ivan #define MDIO_CONTROL_FAULT_ENABLE 0x40000 670935cac6SKhoronzhuk, Ivan #define MDIO_CONTROL_FAULT 0x80000 680935cac6SKhoronzhuk, Ivan #define MDIO_USERACCESS0_GO 0x80000000 690935cac6SKhoronzhuk, Ivan #define MDIO_USERACCESS0_WRITE_READ 0x0 700935cac6SKhoronzhuk, Ivan #define MDIO_USERACCESS0_WRITE_WRITE 0x40000000 710935cac6SKhoronzhuk, Ivan #define MDIO_USERACCESS0_ACK 0x20000000 720935cac6SKhoronzhuk, Ivan 730935cac6SKhoronzhuk, Ivan #define EMAC_MACCONTROL_MIIEN_ENABLE 0x20 740935cac6SKhoronzhuk, Ivan #define EMAC_MACCONTROL_FULLDUPLEX_ENABLE 0x1 750935cac6SKhoronzhuk, Ivan #define EMAC_MACCONTROL_GIGABIT_ENABLE BIT(7) 760935cac6SKhoronzhuk, Ivan #define EMAC_MACCONTROL_GIGFORCE BIT(17) 770935cac6SKhoronzhuk, Ivan #define EMAC_MACCONTROL_RMIISPEED_100 BIT(15) 780935cac6SKhoronzhuk, Ivan 790935cac6SKhoronzhuk, Ivan #define EMAC_MIN_ETHERNET_PKT_SIZE 60 800935cac6SKhoronzhuk, Ivan 810935cac6SKhoronzhuk, Ivan struct mac_sl_cfg { 820935cac6SKhoronzhuk, Ivan u_int32_t max_rx_len; /* Maximum receive packet length. */ 830935cac6SKhoronzhuk, Ivan u_int32_t ctl; /* Control bitfield */ 840935cac6SKhoronzhuk, Ivan }; 850935cac6SKhoronzhuk, Ivan 860935cac6SKhoronzhuk, Ivan /** 870935cac6SKhoronzhuk, Ivan * Definition: Control bitfields used in the ctl field of mac_sl_cfg 880935cac6SKhoronzhuk, Ivan */ 890935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_RCV_CONTROL_FRAMES BIT(24) 900935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_RCV_SHORT_FRAMES BIT(23) 910935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_RCV_ERROR_FRAMES BIT(22) 920935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_EXT_CTL BIT(18) 930935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_GIG_FORCE BIT(17) 940935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_IFCTL_B BIT(16) 950935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_IFCTL_A BIT(15) 960935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_CMD_IDLE BIT(11) 970935cac6SKhoronzhuk, Ivan #define GMACSL_TX_ENABLE_SHORT_GAP BIT(10) 980935cac6SKhoronzhuk, Ivan #define GMACSL_ENABLE_GIG_MODE BIT(7) 990935cac6SKhoronzhuk, Ivan #define GMACSL_TX_ENABLE_PACE BIT(6) 1000935cac6SKhoronzhuk, Ivan #define GMACSL_ENABLE BIT(5) 1010935cac6SKhoronzhuk, Ivan #define GMACSL_TX_ENABLE_FLOW_CTL BIT(4) 1020935cac6SKhoronzhuk, Ivan #define GMACSL_RX_ENABLE_FLOW_CTL BIT(3) 1030935cac6SKhoronzhuk, Ivan #define GMACSL_ENABLE_LOOPBACK BIT(1) 1040935cac6SKhoronzhuk, Ivan #define GMACSL_ENABLE_FULL_DUPLEX BIT(0) 1050935cac6SKhoronzhuk, Ivan 1060935cac6SKhoronzhuk, Ivan /* EMAC SL function return values */ 1070935cac6SKhoronzhuk, Ivan #define GMACSL_RET_OK 0 1080935cac6SKhoronzhuk, Ivan #define GMACSL_RET_INVALID_PORT -1 1090935cac6SKhoronzhuk, Ivan #define GMACSL_RET_WARN_RESET_INCOMPLETE -2 1100935cac6SKhoronzhuk, Ivan #define GMACSL_RET_WARN_MAXLEN_TOO_BIG -3 1110935cac6SKhoronzhuk, Ivan #define GMACSL_RET_CONFIG_FAIL_RESET_ACTIVE -4 1120935cac6SKhoronzhuk, Ivan 1130935cac6SKhoronzhuk, Ivan /* EMAC SL register definitions */ 1140935cac6SKhoronzhuk, Ivan #define DEVICE_EMACSL_RESET_POLL_COUNT 100 1150935cac6SKhoronzhuk, Ivan 1160935cac6SKhoronzhuk, Ivan /* Soft reset register values */ 1170935cac6SKhoronzhuk, Ivan #define CPGMAC_REG_RESET_VAL_RESET_MASK BIT(0) 1180935cac6SKhoronzhuk, Ivan #define CPGMAC_REG_RESET_VAL_RESET BIT(0) 1190935cac6SKhoronzhuk, Ivan #define CPGMAC_REG_MAXLEN_LEN 0x3fff 1200935cac6SKhoronzhuk, Ivan 1210935cac6SKhoronzhuk, Ivan /* CPSW */ 1220935cac6SKhoronzhuk, Ivan /* Control bitfields */ 1230935cac6SKhoronzhuk, Ivan #define CPSW_CTL_P2_PASS_PRI_TAGGED BIT(5) 1240935cac6SKhoronzhuk, Ivan #define CPSW_CTL_P1_PASS_PRI_TAGGED BIT(4) 1250935cac6SKhoronzhuk, Ivan #define CPSW_CTL_P0_PASS_PRI_TAGGED BIT(3) 1260935cac6SKhoronzhuk, Ivan #define CPSW_CTL_P0_ENABLE BIT(2) 1270935cac6SKhoronzhuk, Ivan #define CPSW_CTL_VLAN_AWARE BIT(1) 1280935cac6SKhoronzhuk, Ivan #define CPSW_CTL_FIFO_LOOPBACK BIT(0) 1290935cac6SKhoronzhuk, Ivan 1300935cac6SKhoronzhuk, Ivan #define DEVICE_CPSW_NUM_PORTS CONFIG_KSNET_CPSW_NUM_PORTS 1310935cac6SKhoronzhuk, Ivan #define DEVICE_N_GMACSL_PORTS (DEVICE_CPSW_NUM_PORTS - 1) 1320935cac6SKhoronzhuk, Ivan 1330935cac6SKhoronzhuk, Ivan #ifdef CONFIG_KSNET_NETCP_V1_0 1340935cac6SKhoronzhuk, Ivan 1350935cac6SKhoronzhuk, Ivan #define DEVICE_CPSW_BASE (GBETH_BASE + 0x800) 1360935cac6SKhoronzhuk, Ivan #define CPSW_REG_CTL 0x004 1370935cac6SKhoronzhuk, Ivan #define CPSW_REG_STAT_PORT_EN 0x00c 1380935cac6SKhoronzhuk, Ivan #define CPSW_REG_MAXLEN 0x040 1390935cac6SKhoronzhuk, Ivan #define CPSW_REG_ALE_CONTROL 0x608 1400935cac6SKhoronzhuk, Ivan #define CPSW_REG_ALE_PORTCTL(x) (0x640 + (x) * 4) 1410935cac6SKhoronzhuk, Ivan #define CPSW_REG_VAL_STAT_ENABLE_ALL 0xf 1420935cac6SKhoronzhuk, Ivan 1430935cac6SKhoronzhuk, Ivan #elif defined CONFIG_KSNET_NETCP_V1_5 1440935cac6SKhoronzhuk, Ivan 1450935cac6SKhoronzhuk, Ivan #define DEVICE_CPSW_BASE (GBETH_BASE + 0x20000) 1460935cac6SKhoronzhuk, Ivan #define CPSW_REG_CTL 0x00004 1470935cac6SKhoronzhuk, Ivan #define CPSW_REG_STAT_PORT_EN 0x00014 1480935cac6SKhoronzhuk, Ivan #define CPSW_REG_MAXLEN 0x01024 1490935cac6SKhoronzhuk, Ivan #define CPSW_REG_ALE_CONTROL 0x1e008 1500935cac6SKhoronzhuk, Ivan #define CPSW_REG_ALE_PORTCTL(x) (0x1e040 + (x) * 4) 1510935cac6SKhoronzhuk, Ivan #define CPSW_REG_VAL_STAT_ENABLE_ALL 0x1ff 1520935cac6SKhoronzhuk, Ivan 1530935cac6SKhoronzhuk, Ivan #endif 1540935cac6SKhoronzhuk, Ivan 1550935cac6SKhoronzhuk, Ivan #define CPSW_REG_VAL_ALE_CTL_RESET_AND_ENABLE ((u_int32_t)0xc0000000) 1560935cac6SKhoronzhuk, Ivan #define CPSW_REG_VAL_ALE_CTL_BYPASS ((u_int32_t)0x00000010) 1570935cac6SKhoronzhuk, Ivan #define CPSW_REG_VAL_PORTCTL_FORWARD_MODE 0x3 1580935cac6SKhoronzhuk, Ivan 1590935cac6SKhoronzhuk, Ivan #define target_get_switch_ctl() CPSW_CTL_P0_ENABLE 1600935cac6SKhoronzhuk, Ivan #define SWITCH_MAX_PKT_SIZE 9000 1610935cac6SKhoronzhuk, Ivan 1620935cac6SKhoronzhuk, Ivan /* SGMII */ 1630935cac6SKhoronzhuk, Ivan #define SGMII_REG_STATUS_LOCK BIT(4) 1640935cac6SKhoronzhuk, Ivan #define SGMII_REG_STATUS_LINK BIT(0) 1650935cac6SKhoronzhuk, Ivan #define SGMII_REG_STATUS_AUTONEG BIT(2) 1660935cac6SKhoronzhuk, Ivan #define SGMII_REG_CONTROL_AUTONEG BIT(0) 1670935cac6SKhoronzhuk, Ivan #define SGMII_REG_CONTROL_MASTER BIT(5) 1680935cac6SKhoronzhuk, Ivan #define SGMII_REG_MR_ADV_ENABLE BIT(0) 1690935cac6SKhoronzhuk, Ivan #define SGMII_REG_MR_ADV_LINK BIT(15) 1700935cac6SKhoronzhuk, Ivan #define SGMII_REG_MR_ADV_FULL_DUPLEX BIT(12) 1710935cac6SKhoronzhuk, Ivan #define SGMII_REG_MR_ADV_GIG_MODE BIT(11) 1720935cac6SKhoronzhuk, Ivan 1730935cac6SKhoronzhuk, Ivan #define SGMII_LINK_MAC_MAC_AUTONEG 0 1740935cac6SKhoronzhuk, Ivan #define SGMII_LINK_MAC_PHY 1 1750935cac6SKhoronzhuk, Ivan #define SGMII_LINK_MAC_MAC_FORCED 2 1760935cac6SKhoronzhuk, Ivan #define SGMII_LINK_MAC_FIBER 3 1770935cac6SKhoronzhuk, Ivan #define SGMII_LINK_MAC_PHY_FORCED 4 1780935cac6SKhoronzhuk, Ivan 1790935cac6SKhoronzhuk, Ivan #ifdef CONFIG_KSNET_NETCP_V1_0 1800935cac6SKhoronzhuk, Ivan #define SGMII_OFFSET(x) ((x <= 1) ? (x * 0x100) : ((x * 0x100) + 0x100)) 1810935cac6SKhoronzhuk, Ivan #elif defined CONFIG_KSNET_NETCP_V1_5 1820935cac6SKhoronzhuk, Ivan #define SGMII_OFFSET(x) ((x) * 0x100) 1830935cac6SKhoronzhuk, Ivan #endif 1840935cac6SKhoronzhuk, Ivan 1850935cac6SKhoronzhuk, Ivan #define SGMII_IDVER_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x000) 1860935cac6SKhoronzhuk, Ivan #define SGMII_SRESET_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x004) 1870935cac6SKhoronzhuk, Ivan #define SGMII_CTL_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x010) 1880935cac6SKhoronzhuk, Ivan #define SGMII_STATUS_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x014) 1890935cac6SKhoronzhuk, Ivan #define SGMII_MRADV_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x018) 1900935cac6SKhoronzhuk, Ivan #define SGMII_LPADV_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x020) 1910935cac6SKhoronzhuk, Ivan #define SGMII_TXCFG_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x030) 1920935cac6SKhoronzhuk, Ivan #define SGMII_RXCFG_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x034) 1930935cac6SKhoronzhuk, Ivan #define SGMII_AUXCFG_REG(x) (EMAC_SGMII_BASE_ADDR + SGMII_OFFSET(x) + 0x038) 1940935cac6SKhoronzhuk, Ivan 1950935cac6SKhoronzhuk, Ivan /* PSS */ 1960935cac6SKhoronzhuk, Ivan #ifdef CONFIG_KSNET_NETCP_V1_0 1970935cac6SKhoronzhuk, Ivan 1980935cac6SKhoronzhuk, Ivan #define DEVICE_PSTREAM_CFG_REG_ADDR (CONFIG_KSNET_NETCP_BASE + 0x604) 1990935cac6SKhoronzhuk, Ivan #define DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI 0x06060606 2000935cac6SKhoronzhuk, Ivan #define hw_config_streaming_switch()\ 2010935cac6SKhoronzhuk, Ivan writel(DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI, DEVICE_PSTREAM_CFG_REG_ADDR); 2020935cac6SKhoronzhuk, Ivan 2030935cac6SKhoronzhuk, Ivan #elif defined CONFIG_KSNET_NETCP_V1_5 2040935cac6SKhoronzhuk, Ivan 2050935cac6SKhoronzhuk, Ivan #define DEVICE_PSTREAM_CFG_REG_ADDR (CONFIG_KSNET_NETCP_BASE + 0x500) 2060935cac6SKhoronzhuk, Ivan #define DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI 0x0 2070935cac6SKhoronzhuk, Ivan 2080935cac6SKhoronzhuk, Ivan #define hw_config_streaming_switch()\ 2090935cac6SKhoronzhuk, Ivan writel(DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI,\ 2100935cac6SKhoronzhuk, Ivan DEVICE_PSTREAM_CFG_REG_ADDR);\ 2110935cac6SKhoronzhuk, Ivan writel(DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI,\ 2120935cac6SKhoronzhuk, Ivan DEVICE_PSTREAM_CFG_REG_ADDR+4);\ 2130935cac6SKhoronzhuk, Ivan writel(DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI,\ 2140935cac6SKhoronzhuk, Ivan DEVICE_PSTREAM_CFG_REG_ADDR+8);\ 2150935cac6SKhoronzhuk, Ivan writel(DEVICE_PSTREAM_CFG_VAL_ROUTE_CPPI,\ 2160935cac6SKhoronzhuk, Ivan DEVICE_PSTREAM_CFG_REG_ADDR+12); 2170935cac6SKhoronzhuk, Ivan 2180935cac6SKhoronzhuk, Ivan #endif 2190935cac6SKhoronzhuk, Ivan 2200935cac6SKhoronzhuk, Ivan /* EMAC MDIO Registers Structure */ 2210935cac6SKhoronzhuk, Ivan struct mdio_regs { 2220935cac6SKhoronzhuk, Ivan u32 version; 2230935cac6SKhoronzhuk, Ivan u32 control; 2240935cac6SKhoronzhuk, Ivan u32 alive; 2250935cac6SKhoronzhuk, Ivan u32 link; 2260935cac6SKhoronzhuk, Ivan u32 linkintraw; 2270935cac6SKhoronzhuk, Ivan u32 linkintmasked; 2280935cac6SKhoronzhuk, Ivan u32 rsvd0[2]; 2290935cac6SKhoronzhuk, Ivan u32 userintraw; 2300935cac6SKhoronzhuk, Ivan u32 userintmasked; 2310935cac6SKhoronzhuk, Ivan u32 userintmaskset; 2320935cac6SKhoronzhuk, Ivan u32 userintmaskclear; 2330935cac6SKhoronzhuk, Ivan u32 rsvd1[20]; 2340935cac6SKhoronzhuk, Ivan u32 useraccess0; 2350935cac6SKhoronzhuk, Ivan u32 userphysel0; 2360935cac6SKhoronzhuk, Ivan u32 useraccess1; 2370935cac6SKhoronzhuk, Ivan u32 userphysel1; 2380935cac6SKhoronzhuk, Ivan }; 2390935cac6SKhoronzhuk, Ivan 2400935cac6SKhoronzhuk, Ivan struct eth_priv_t { 2410935cac6SKhoronzhuk, Ivan char int_name[32]; 2420935cac6SKhoronzhuk, Ivan int rx_flow; 2430935cac6SKhoronzhuk, Ivan int phy_addr; 2440935cac6SKhoronzhuk, Ivan int slave_port; 2450935cac6SKhoronzhuk, Ivan int sgmii_link_type; 2463fe93623SKhoronzhuk, Ivan struct phy_device *phy_dev; 2470935cac6SKhoronzhuk, Ivan }; 2480935cac6SKhoronzhuk, Ivan 2490935cac6SKhoronzhuk, Ivan int keystone2_emac_initialize(struct eth_priv_t *eth_priv); 2500935cac6SKhoronzhuk, Ivan void sgmii_serdes_setup_156p25mhz(void); 2510935cac6SKhoronzhuk, Ivan void sgmii_serdes_shutdown(void); 2520935cac6SKhoronzhuk, Ivan 2530935cac6SKhoronzhuk, Ivan #endif /* _KEYSTONE_NET_H_ */ 254