xref: /rk3399_rockchip-uboot/arch/arm/mach-davinci/et1011c.c (revision b9cb64825b5e6efeb715abd8b48d9b12f98973e9)
1*601fbec7SMasahiro Yamada /*
2*601fbec7SMasahiro Yamada  * LSI ET1011C PHY Driver for TI DaVinci(TMS320DM6467) board.
3*601fbec7SMasahiro Yamada  *
4*601fbec7SMasahiro Yamada  * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
5*601fbec7SMasahiro Yamada  *
6*601fbec7SMasahiro Yamada  * SPDX-License-Identifier:	GPL-2.0+
7*601fbec7SMasahiro Yamada  */
8*601fbec7SMasahiro Yamada 
9*601fbec7SMasahiro Yamada #include <common.h>
10*601fbec7SMasahiro Yamada #include <net.h>
11*601fbec7SMasahiro Yamada #include <miiphy.h>
12*601fbec7SMasahiro Yamada #include <asm/arch/emac_defs.h>
13*601fbec7SMasahiro Yamada #include "../../../drivers/net/davinci_emac.h"
14*601fbec7SMasahiro Yamada 
15*601fbec7SMasahiro Yamada #ifdef CONFIG_DRIVER_TI_EMAC
16*601fbec7SMasahiro Yamada 
17*601fbec7SMasahiro Yamada #ifdef CONFIG_CMD_NET
18*601fbec7SMasahiro Yamada 
19*601fbec7SMasahiro Yamada /* LSI PHYSICAL LAYER TRANSCEIVER ET1011C */
20*601fbec7SMasahiro Yamada 
21*601fbec7SMasahiro Yamada #define MII_PHY_CONFIG_REG		22
22*601fbec7SMasahiro Yamada 
23*601fbec7SMasahiro Yamada /* PHY Config bits */
24*601fbec7SMasahiro Yamada #define PHY_SYS_CLK_EN			(1 << 4)
25*601fbec7SMasahiro Yamada 
et1011c_get_link_speed(int phy_addr)26*601fbec7SMasahiro Yamada int et1011c_get_link_speed(int phy_addr)
27*601fbec7SMasahiro Yamada {
28*601fbec7SMasahiro Yamada 	u_int16_t	data;
29*601fbec7SMasahiro Yamada 
30*601fbec7SMasahiro Yamada 	if (davinci_eth_phy_read(phy_addr, MII_STATUS_REG, &data) && (data & 0x04)) {
31*601fbec7SMasahiro Yamada 		davinci_eth_phy_read(phy_addr, MII_PHY_CONFIG_REG, &data);
32*601fbec7SMasahiro Yamada 		/* Enable 125MHz clock sourced from PHY */
33*601fbec7SMasahiro Yamada 		davinci_eth_phy_write(phy_addr, MII_PHY_CONFIG_REG,
34*601fbec7SMasahiro Yamada 			data | PHY_SYS_CLK_EN);
35*601fbec7SMasahiro Yamada 		return (1);
36*601fbec7SMasahiro Yamada 	}
37*601fbec7SMasahiro Yamada 	return (0);
38*601fbec7SMasahiro Yamada }
39*601fbec7SMasahiro Yamada 
40*601fbec7SMasahiro Yamada #endif	/* CONFIG_CMD_NET */
41*601fbec7SMasahiro Yamada 
42*601fbec7SMasahiro Yamada #endif	/* CONFIG_DRIVER_ETHER */
43