xref: /openbmc/u-boot/arch/arm/mach-omap2/omap3/emac.c (revision 983e3700)
1*983e3700STom Rini /*
2*983e3700STom Rini  *
3*983e3700STom Rini  * DaVinci EMAC initialization.
4*983e3700STom Rini  *
5*983e3700STom Rini  * (C) Copyright 2011, Ilya Yanok, Emcraft Systems
6*983e3700STom Rini  *
7*983e3700STom Rini  * SPDX-License-Identifier:	GPL-2.0+
8*983e3700STom Rini  */
9*983e3700STom Rini 
10*983e3700STom Rini #include <common.h>
11*983e3700STom Rini #include <netdev.h>
12*983e3700STom Rini #include <asm/io.h>
13*983e3700STom Rini #include <asm/arch/am35x_def.h>
14*983e3700STom Rini 
15*983e3700STom Rini /*
16*983e3700STom Rini  * Initializes on-chip ethernet controllers.
17*983e3700STom Rini  * to override, implement board_eth_init()
18*983e3700STom Rini  */
19*983e3700STom Rini int cpu_eth_init(bd_t *bis)
20*983e3700STom Rini {
21*983e3700STom Rini 	u32 reset;
22*983e3700STom Rini 
23*983e3700STom Rini 	/* ensure that the module is out of reset */
24*983e3700STom Rini 	reset = readl(&am35x_scm_general_regs->ip_sw_reset);
25*983e3700STom Rini 	reset &= ~CPGMACSS_SW_RST;
26*983e3700STom Rini 	writel(reset, &am35x_scm_general_regs->ip_sw_reset);
27*983e3700STom Rini 
28*983e3700STom Rini 	return davinci_emac_initialize();
29*983e3700STom Rini }
30