xref: /openbmc/u-boot/arch/arm/mach-davinci/et1011c.c (revision 208ecbad2ea83333e8f3c9933213867addf16f4a)
183d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2601fbec7SMasahiro Yamada /*
3601fbec7SMasahiro Yamada  * LSI ET1011C PHY Driver for TI DaVinci(TMS320DM6467) board.
4601fbec7SMasahiro Yamada  *
5601fbec7SMasahiro Yamada  * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
6601fbec7SMasahiro Yamada  */
7601fbec7SMasahiro Yamada 
8601fbec7SMasahiro Yamada #include <common.h>
9601fbec7SMasahiro Yamada #include <net.h>
10601fbec7SMasahiro Yamada #include <miiphy.h>
11601fbec7SMasahiro Yamada #include <asm/arch/emac_defs.h>
12*ffad5fa0SGrygorii Strashko #include "../../../drivers/net/ti/davinci_emac.h"
13601fbec7SMasahiro Yamada 
14601fbec7SMasahiro Yamada #ifdef CONFIG_DRIVER_TI_EMAC
15601fbec7SMasahiro Yamada 
16601fbec7SMasahiro Yamada #ifdef CONFIG_CMD_NET
17601fbec7SMasahiro Yamada 
18601fbec7SMasahiro Yamada /* LSI PHYSICAL LAYER TRANSCEIVER ET1011C */
19601fbec7SMasahiro Yamada 
20601fbec7SMasahiro Yamada #define MII_PHY_CONFIG_REG		22
21601fbec7SMasahiro Yamada 
22601fbec7SMasahiro Yamada /* PHY Config bits */
23601fbec7SMasahiro Yamada #define PHY_SYS_CLK_EN			(1 << 4)
24601fbec7SMasahiro Yamada 
et1011c_get_link_speed(int phy_addr)25601fbec7SMasahiro Yamada int et1011c_get_link_speed(int phy_addr)
26601fbec7SMasahiro Yamada {
27601fbec7SMasahiro Yamada 	u_int16_t	data;
28601fbec7SMasahiro Yamada 
29601fbec7SMasahiro Yamada 	if (davinci_eth_phy_read(phy_addr, MII_STATUS_REG, &data) && (data & 0x04)) {
30601fbec7SMasahiro Yamada 		davinci_eth_phy_read(phy_addr, MII_PHY_CONFIG_REG, &data);
31601fbec7SMasahiro Yamada 		/* Enable 125MHz clock sourced from PHY */
32601fbec7SMasahiro Yamada 		davinci_eth_phy_write(phy_addr, MII_PHY_CONFIG_REG,
33601fbec7SMasahiro Yamada 			data | PHY_SYS_CLK_EN);
34601fbec7SMasahiro Yamada 		return (1);
35601fbec7SMasahiro Yamada 	}
36601fbec7SMasahiro Yamada 	return (0);
37601fbec7SMasahiro Yamada }
38601fbec7SMasahiro Yamada 
39601fbec7SMasahiro Yamada #endif	/* CONFIG_CMD_NET */
40601fbec7SMasahiro Yamada 
41601fbec7SMasahiro Yamada #endif	/* CONFIG_DRIVER_ETHER */
42