Skip to contentSkip to conversation

omap3evm: Generic ethernet fixes

PATCH New Sanjeev Premi 4 participants 12 messages Jun 22, 2011 – Jul 28, 2011

lore
Share & tools
lore
#0 lore raw

cover omap3evm: Generic ethernet fixes

This patchset mainly fixes the ethernet reset sequence on the Rev G EVM board.

Function setup_net_chip() is required to detect the board revision. However, steps to reset the ethernet chip now depend upon the board revision.

Therefore, steps to reset the ethernet chip have been moved to a new function reset_net_chip() - called after board revision has been detected/ identified.

Sanjeev Premi (2):
omap3evm: eth: split function setup_net_chip
omap3evm: eth: Include functions only when necessary

Sriramakrishnan (1):
omap3evm: Update ethernet reset sequence for Rev.G board

 board/ti/evm/evm.c |   37 +++++++++++++++++++++++++++++--------
 board/ti/evm/evm.h |    1 +
 2 files changed, 30 insertions(+), 8 deletions(-)
Signature · 1 line
1.7.2.2
#1 lore raw

PATCH 1/3 omap3evm: eth: split function setup_net_chip

In current implementation, the function sets up the ethernet chip and resets it. The steps to reset depend upon the board revision.

The patch moves the reset actions to new function reset_net_chip().

---
 board/ti/evm/evm.c |   12 +++++++++++-
 board/ti/evm/evm.h |    1 +
 2 files changed, 12 insertions(+), 1 deletions(-)
board/ti/evm/evm.c +11 -1
index aaf3033..8f9f141 100644
@@ -130,6 +130,9 @@ int misc_init_r(void)
 #endif
 	omap3_evm_get_revision();
 
+#if defined(CONFIG_CMD_NET)
+	reset_net_chip();
+#endif
 	dieid_num_r();
 
 	return 0;
@@ -153,7 +156,6 @@ void set_muxconf_regs(void)
  */
 static void setup_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
 	struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE;
 
 	/* Configure GPMC registers */
@@ -172,6 +174,14 @@ static void setup_net_chip(void)
 	/* Enable off mode for ALE in PADCONF_GPMC_NADV_ALE register */
 	writew(readw(&ctrl_base->gpmc_nadv_ale) | 0x0E00,
 		&ctrl_base->gpmc_nadv_ale);
+}
+
+/**
+ * Reset the ethernet chip.
+ */
+static void reset_net_chip(void)
+{
+	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
 
 	/* Make GPIO 64 as output pin */
 	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
board/ti/evm/evm.h +1 -0
index b721ad6..623cf1b 100644
@@ -49,6 +49,7 @@ u32 get_omap3_evm_rev(void);
 
 #if defined(CONFIG_CMD_NET)
 static void setup_net_chip(void);
+static void reset_net_chip(void);
 #endif
 
 /*
Signature · 1 line
1.7.2.2
#2 lore raw

PATCH 1/3 omap3evm: eth: split function setup_net_chip

Dear Sanjeev Premi,

Quoted 5 lines · In message <[email protected]> you wrote:

In current implementation, the function sets up the ethernet chip and resets it. The steps to reset depend upon the board revision.

The patch moves the reset actions to new function reset_net_chip().

Your patch does not add any such new function, so it will result in compile errors?

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
miracle:  an  extremely  outstanding  or  unusual  event,  thing,  or
accomplishment.                                - Webster's Dictionary
#3 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

In reply to Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)
board/ti/evm/evm.c +18 -9
index 8f9f141..57e5fa5 100644
@@ -181,17 +181,26 @@ static void setup_net_chip(void)
  */
 static void reset_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
-
-	/* Make GPIO 64 as output pin */
-	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
-
-	/* Now send a pulse on the GPIO pin */
-	writel(GPIO0, &gpio3_base->setdataout);
+	struct gpio *gpio_base;
+	u32 pin;
+
+	if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+		pin = GPIO0;	/* Output pin: GPIO Bank 3, pin 0 */
+	} else {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+		pin = GPIO7;	/* Output pin: GPIO Bank 0, pin 7 */
+	}
+
+	/* Configure the pin as output */
+	writel(readl(&gpio_base->oe) & ~(pin), &gpio_base->oe);
+
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
+	writel(pin, &gpio_base->cleardataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);
 }
 
 int board_eth_init(bd_t *bis)
Signature · 1 line
1.7.2.2
#4 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 38 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)
board/ti/evm/evm.c +12 -7
index 8f9f141..57e5fa5 100644
@@ -181,17 +181,26 @@ static void setup_net_chip(void)
  */
 static void reset_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
-
-	/* Make GPIO 64 as output pin */
-	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
-
-	/* Now send a pulse on the GPIO pin */
-	writel(GPIO0, &gpio3_base->setdataout);
+	struct gpio *gpio_base;
+	u32 pin;
+
+	if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+		pin = GPIO0;	/* Output pin: GPIO Bank 3, pin 0 */
+	} else {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+		pin = GPIO7;	/* Output pin: GPIO Bank 0, pin 7 */
+	}
+
+	/* Configure the pin as output */

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 10 lines
board/ti/evm/evm.c +6 -2
+	writel(readl(&gpio_base->oe) & ~(pin), &gpio_base->oe);
+
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
+	writel(pin, &gpio_base->cleardataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

Signature · 2 lines
Regards,
Igor.
#5 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 56 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Thursday, June 23, 2011 2:38 PM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Govindarajan, Sriramakrishnan
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 45 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)
board/ti/evm/evm.c +17 -8
index 8f9f141..57e5fa5 100644
@@ -181,17 +181,26 @@ static void setup_net_chip(void)
  */
 static void reset_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
-
-	/* Make GPIO 64 as output pin */
-	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
-
-	/* Now send a pulse on the GPIO pin */
-	writel(GPIO0, &gpio3_base->setdataout);
+	struct gpio *gpio_base;
+	u32 pin;
+
+	if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+		pin = GPIO0;	/* Output pin: GPIO Bank 3, pin 0 */
+	} else {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+		pin = GPIO7;	/* Output pin: GPIO Bank 0, pin 7 */
+	}
+
+	/* Configure the pin as output */
+	writel(readl(&gpio_base->oe) & ~(pin), &gpio_base->oe);
+
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
+	writel(pin, &gpio_base->cleardataout);
Quoted 8 lines

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 3 lines
board/ti/evm/evm.c +1 -1
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

[sp] I guess the intent was to keep code similar. But yes,
gpio framework can be used.

~sanjeev

Quoted 7 lines
Signature · 3 lines
-- 
Regards,
Igor.
#6 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 74 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:43 PM
To: Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 56 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Thursday, June 23, 2011 2:38 PM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Govindarajan, Sriramakrishnan
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 45 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)
board/ti/evm/evm.c +17 -8
index 8f9f141..57e5fa5 100644
@@ -181,17 +181,26 @@ static void setup_net_chip(void)
  */
 static void reset_net_chip(void)
 {
-	struct gpio *gpio3_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
-
-	/* Make GPIO 64 as output pin */
-	writel(readl(&gpio3_base->oe) & ~(GPIO0), &gpio3_base->oe);
-
-	/* Now send a pulse on the GPIO pin */
-	writel(GPIO0, &gpio3_base->setdataout);
+	struct gpio *gpio_base;
+	u32 pin;
+
+	if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+		pin = GPIO0;	/* Output pin: GPIO Bank 3, pin 0 */
+	} else {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+		pin = GPIO7;	/* Output pin: GPIO Bank 0, pin 7 */
+	}
+
+	/* Configure the pin as output */
+	writel(readl(&gpio_base->oe) & ~(pin), &gpio_base->oe);
+
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
+	writel(pin, &gpio_base->cleardataout);
Quoted 8 lines

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 3 lines
board/ti/evm/evm.c +1 -1
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

Quoted 3 lines

[sp] I guess the intent was to keep code similar. But yes,
gpio framework can be used.

[sp] Sorry, mail went earlier than I wanted :(

The only issue is that I couln't see gpio framework for omap. Let me dig further...

Quoted 14 lines

~sanjeev

Quoted 7 lines
Signature · 3 lines
-- 
Regards,
Igor.

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#7 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 39 lines

-----Original Message-----
From: Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:48 PM
To: Premi, Sanjeev; Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: RE: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 31 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:43 PM
To: Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 22 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Thursday, June 23, 2011 2:38 PM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Govindarajan, Sriramakrishnan
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 11 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

[snip]...[snip]

Quoted 14 lines
Quoted 14 lines
Quoted 13 lines

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 8 lines
board/ti/evm/evm.c +4 -2
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
+	writel(pin, &gpio_base->cleardataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

Quoted 9 lines
Quoted 3 lines

[sp] I guess the intent was to keep code similar. But yes,
gpio framework can be used.

[sp] Sorry, mail went earlier than I wanted :(

The only issue is that I couln't see gpio framework for omap. Let me dig further...

[sp] Implementing GPIO for OMAP would be a long task. It should be
done for long term; but is it necessary pre-condition for the patch?

~sanjeev

#8 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 56 lines · Sanjeev
Quoted 39 lines

-----Original Message-----
From: Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:48 PM
To: Premi, Sanjeev; Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: RE: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 31 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:43 PM
To: Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 22 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Thursday, June 23, 2011 2:38 PM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Govindarajan, Sriramakrishnan
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 11 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

[snip]...[snip]

Quoted 15 lines
Quoted 15 lines
Quoted 4 lines
Quoted 4 lines
board/ti/evm/evm.c +2 -1
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
Quoted 8 lines

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 4 lines
board/ti/evm/evm.c +2 -1
+	writel(pin, &gpio_base->cleardataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

[sp] I guess the intent was to keep code similar. But yes,
gpio framework can be used.

Quoted 8 lines
Quoted 5 lines

[sp] Sorry, mail went earlier than I wanted :(

The only issue is that I couln't see gpio framework for omap. Let me dig further...

[sp] Implementing GPIO for OMAP would be a long task. It should be
done for long term; but is it necessary pre-condition for the patch?

There is no need to implement GPIO for OMAP. It is already there, you just need to use it instead of writing directly to the GPIO registers. You can find all the implementation in: arch/arm/cpu/armv7/omap3/gpio.c and the header is: arch/arm/include/asm/arch-omap3/gpio.h

All you need is to include the header, request the appropriate gpio, send the pulse and maybe (if you don't need it anymore) free that gpio. This is not hard or long at all.

Signature · 2 lines
Regards,
Igor.
#9 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 75 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Monday, June 27, 2011 12:17 PM
To: Premi, Sanjeev
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 56 lines · Sanjeev
Quoted 39 lines

-----Original Message-----
From: Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:48 PM
To: Premi, Sanjeev; Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: RE: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 31 lines

-----Original Message-----
From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Premi, Sanjeev
Sent: Thursday, June 23, 2011 4:43 PM
To: Igor Grinberg
Cc: Govindarajan, Sriramakrishnan; u-boot at lists.denx.de
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Quoted 22 lines

-----Original Message-----
From: Igor Grinberg [mailto:grinberg at compulab.co.il]
Sent: Thursday, June 23, 2011 2:38 PM
To: Premi, Sanjeev
Cc: u-boot at lists.denx.de; Govindarajan, Sriramakrishnan
Subject: Re: [U-Boot] [PATCH 2/3] omap3evm: Update ethernet reset sequence for Rev.G board

Hi Sanjeev,

Quoted 11 lines · Sanjeev Premi

From: Sriramakrishnan <[email protected]>

The GPIO pin used for resetting the external LAN chip has changed for Rev.G board.

---
 board/ti/evm/evm.c |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

[snip]...[snip]

Quoted 15 lines
Quoted 15 lines
Quoted 4 lines
Quoted 4 lines
board/ti/evm/evm.c +2 -1
+	/* Send a pulse on the GPIO pin */
+	writel(pin, &gpio_base->setdataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->cleardataout);
Quoted 8 lines

board/ti/evm/evm.c static void setup_net_chip(void) · line 203

Quoted 4 lines
board/ti/evm/evm.c +2 -1
+	writel(pin, &gpio_base->cleardataout);
 	udelay(1);
-	writel(GPIO0, &gpio3_base->setdataout);
+	writel(pin, &gpio_base->setdataout);

Why keep messing with the gpio registers?
Why not use gpio framework?
Though it is omap specific, but it will be much cleaner then the above.

[sp] I guess the intent was to keep code similar. But yes,
gpio framework can be used.

Quoted 8 lines
Quoted 5 lines

[sp] Sorry, mail went earlier than I wanted :(

The only issue is that I couln't see gpio framework for omap. Let me dig further...

[sp] Implementing GPIO for OMAP would be a long task. It should be
done for long term; but is it necessary pre-condition for the patch?

Quoted 6 lines

There is no need to implement GPIO for OMAP. It is already there, you just need to use it instead of writing directly to the GPIO registers.
You can find all the implementation in:
arch/arm/cpu/armv7/omap3/gpio.c
and the header is: arch/arm/include/asm/arch-omap3/gpio.h

[sp] No wonder, I couldn't find it in drivers/gpio.
(Didn't occur that it could be in ARCH specific dir)

Will rebase and send an updated patch soon.

~sanjeev

Quoted 13 lines

All you need is to include the header, request the appropriate gpio, send the pulse and maybe (if you don't need it anymore) free that gpio.
This is not hard or long at all.

Signature · 2 lines
Regards,
Igor.
#10 lore raw

PATCH 2/3 omap3evm: Update ethernet reset sequence for Rev.G board

In reply to Sanjeev Premi

Dear Sanjeev Premi,

board/ti/evm/evm.c static void setup_net_chip(void) · line 192

Quoted 7 lines · In message <[email protected]> you wrote:
board/ti/evm/evm.c +6 -0
+	if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO3_BASE;
+		pin = GPIO0;	/* Output pin: GPIO Bank 3, pin 0 */
+	} else {
+		gpio_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
+		pin = GPIO7;	/* Output pin: GPIO Bank 0, pin 7 */

Is this bank 0 or bank 1?

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There are some things worth dying for.
	-- Kirk, "Errand of Mercy", stardate 3201.7
#11 lore raw

PATCH 3/3 omap3evm: eth: Include functions only when necessary

In reply to Sanjeev Premi

These functions are not required when CONFIG_CMD_NET is not defined:
- setup_net_chip()
- reset_net_chip()
- board_eth_init()

This patch wraps them in #ifdef CONFIG_CMD_NET...#endif

---
 board/ti/evm/evm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
board/ti/evm/evm.c +2 -0
index 57e5fa5..599e366 100644
@@ -149,6 +149,7 @@ void set_muxconf_regs(void)
 	MUX_EVM();
 }
 
+#ifdef CONFIG_CMD_NET
 /*
  * Routine: setup_net_chip
  * Description: Setting up the configuration GPMC registers specific to the
@@ -211,3 +212,4 @@ int board_eth_init(bd_t *bis)
 #endif
 	return rc;
 }
+#endif /* CONFIG_CMD_NET */
Signature · 1 line
1.7.2.2