"Varadarajan, Charulatha" <charu@xxxxxx> writes: > Sanjeev, > > With GPIO hwmod series, OMAP3EVM board is not up with DHCP + nfs root. > This issue was reported by Kevin. > > The root cause of this issue is that during OMAP3EVM board init, the > Ethernet controller (smsc911x) is not reset and it relies on the uboot > configurations for it's operations. The reset GPIO pin used for this > purpose is not even reserved. > > After gpio hmwod series are merged, this patch is required to make the > EVM board working. Also omap3evm_init_smsc911x() needs to be fixed > including CS settings and other required settings for Ethernet controller. > > Links to related discussions: > http://www.spinics.net/lists/linux-omap/msg37234.html > http://www.spinics.net/lists/linux-omap/msg36698.html > http://www.spinics.net/lists/linux-omap/msg36799.html > > The below patch is tested on OMAP3 EVM board (ES3.1). Also note that the patch below didn't work on my EVM (ES2.1), making me assume that it uses a different GPIO for older boards. Kevin > > >> -----Original Message----- >> From: Varadarajan, Charulatha >> Sent: Saturday, September 25, 2010 5:07 PM >> To: linux-omap@xxxxxxxxxxxxxxx >> Cc: khilman@xxxxxxxxxxxxxxxxxxx; tony@xxxxxxxxxxx; Premi, Sanjeev; >> Varadarajan, Charulatha >> Subject: [PATCH RFC:] FIX: OMAP3EVM: Ethernet controller smsc911x reset >> >> Do reset of Ethernet controller smsc911x using OMAP gpio7 >> while initializing the Ethernet controller. >> >> Signed-off-by: Charulatha V <charu@xxxxxx> >> --- >> arch/arm/mach-omap2/board-omap3evm.c | 16 ++++++++++++++++ >> 1 files changed, 16 insertions(+), 0 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach- >> omap2/board-omap3evm.c >> index f76d9c0..54a7e20 100644 >> --- a/arch/arm/mach-omap2/board-omap3evm.c >> +++ b/arch/arm/mach-omap2/board-omap3evm.c >> @@ -55,6 +55,7 @@ >> #define OMAP3EVM_ETHR_SIZE 1024 >> #define OMAP3EVM_ETHR_ID_REV 0x50 >> #define OMAP3EVM_ETHR_GPIO_IRQ 176 >> +#define OMAP3EVM_ETHR_GPIO_RST 7 >> #define OMAP3EVM_SMSC911X_CS 5 >> >> static u8 omap3_evm_version; >> @@ -134,6 +135,20 @@ static inline void __init >> omap3evm_init_smsc911x(void) >> else >> rate = clk_get_rate(l3ck); >> >> + /* Configure ethernet controller reset gpio */ >> + if (gpio_request(OMAP3EVM_ETHR_GPIO_RST, "SMSC911x gpio") < 0) { >> + pr_err(KERN_ERR "Failed to request GPIO8 for smsc911x >> gpio\n"); >> + return; >> + } >> + >> + gpio_direction_output(OMAP3EVM_ETHR_GPIO_RST, 1); >> + >> + /* reset pulse to ethernet controller*/ >> + gpio_set_value(OMAP3EVM_ETHR_GPIO_RST, 0); >> + usleep_range(150, 220); >> + gpio_set_value(OMAP3EVM_ETHR_GPIO_RST, 1); >> + usleep_range(1, 2); >> + >> if (gpio_request(OMAP3EVM_ETHR_GPIO_IRQ, "SMSC911x irq") < 0) { >> printk(KERN_ERR "Failed to request GPIO%d for smsc911x IRQ\n", >> OMAP3EVM_ETHR_GPIO_IRQ); >> -- >> 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html