U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device
@ 2013-01-18 15:19 Holger Hans Peter Freyther
  2013-01-18 15:19 ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-01-18 15:19 UTC (permalink / raw)
  To: u-boot

The differences include the number of GPIOs and that one is
not required to set the pinmux on request.
---
 arch/arm/include/asm/arch-davinci/gpio.h |    8 +++++++-
 drivers/gpio/Makefile                    |    1 +
 drivers/gpio/da8xx_gpio.c                |    4 ++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-davinci/gpio.h b/arch/arm/include/asm/arch-davinci/gpio.h
index ef65ffb..5206b12 100644
--- a/arch/arm/include/asm/arch-davinci/gpio.h
+++ b/arch/arm/include/asm/arch-davinci/gpio.h
@@ -65,9 +65,15 @@ struct davinci_gpio_bank {
 #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
 #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8)
 
+#if defined(CONFIG_SOC_DM644X)
+/* GPIO0 to GPIO53, omit the V3.3 volts one */
+#define MAX_NUM_GPIOS		70
+#else
+#define MAX_NUM_GPIOS		144
+#endif
+
 #define gpio_status()		gpio_info()
 #define GPIO_NAME_SIZE		20
-#define MAX_NUM_GPIOS		144
 #define GPIO_BANK(gp)		(davinci_gpio_bank01 + ((gp) >> 5))
 #define GPIO_BIT(gp)		((gp) & 0x1F)
 
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 2d97b4f..9df1e26 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -39,6 +39,7 @@ COBJS-$(CONFIG_SANDBOX_GPIO)	+= sandbox.o
 COBJS-$(CONFIG_SPEAR_GPIO)	+= spear_gpio.o
 COBJS-$(CONFIG_TEGRA_GPIO)	+= tegra_gpio.o
 COBJS-$(CONFIG_DA8XX_GPIO)	+= da8xx_gpio.o
+COBJS-$(CONFIG_DM644X_GPIO)	+= da8xx_gpio.o
 COBJS-$(CONFIG_ALTERA_PIO)	+= altera_pio.o
 COBJS-$(CONFIG_MPC83XX_GPIO)	+= mpc83xx_gpio.o
 COBJS-$(CONFIG_SH_GPIO_PFC)	+= sh_pfc.o
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index 84d2b77..ed6a118 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -31,6 +31,7 @@ static struct gpio_registry {
 	char name[GPIO_NAME_SIZE];
 } gpio_registry[MAX_NUM_GPIOS];
 
+#if defined(CONFIG_SOC_DA8XX)
 #define pinmux(x)       (&davinci_syscfg_regs->pinmux[x])
 
 static const struct pinmux_config gpio_pinmux[] = {
@@ -179,6 +180,9 @@ static const struct pinmux_config gpio_pinmux[] = {
 	{ pinmux(18), 8, 3 },
 	{ pinmux(18), 8, 2 },
 };
+#else
+#define davinci_configure_pin_mux(a, b)
+#endif
 
 int gpio_request(unsigned gpio, const char *label)
 {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum
  2013-01-18 15:19 [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Holger Hans Peter Freyther
@ 2013-01-18 15:19 ` Holger Hans Peter Freyther
  2013-01-18 15:19 ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
  2013-01-25 22:12 ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
  2 siblings, 0 replies; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-01-18 15:19 UTC (permalink / raw)
  To: u-boot

u-boot is not consistent if state should be 0|1 or of the enum, the
GPIO driver expects this to be one of the enum values. Update the
caller.
---
 common/cmd_led.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/cmd_led.c b/common/cmd_led.c
index 7f5ab43..c725f95 100644
--- a/common/cmd_led.c
+++ b/common/cmd_led.c
@@ -110,13 +110,13 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 				if (led_commands[i].on)
 					led_commands[i].on();
 				else
-					__led_set(led_commands[i].mask, 1);
+					__led_set(led_commands[i].mask, STATUS_LED_ON);
 				break;
 			case LED_OFF:
 				if (led_commands[i].off)
 					led_commands[i].off();
 				else
-					__led_set(led_commands[i].mask, 0);
+					__led_set(led_commands[i].mask, STATUS_LED_OFF);
 				break;
 			case LED_TOGGLE:
 				if (led_commands[i].toggle)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM
  2013-01-18 15:19 [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Holger Hans Peter Freyther
  2013-01-18 15:19 ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
@ 2013-01-18 15:19 ` Holger Hans Peter Freyther
  2013-01-25 22:12 ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
  2 siblings, 0 replies; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-01-18 15:19 UTC (permalink / raw)
  To: u-boot

The issue got introduced in a cleanup by Manjunath Hadli in commit
826e99136e2bce61f3f6572e32d7aa724c116e6d. The eth_getenv_enetaddr_by_index
method will validate the MAC addr and if none is set in the environment
0 will be returned. Set the MAC from the eeprom if no valid address
is found in environment.
---
 arch/arm/cpu/arm926ejs/davinci/misc.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/davinci/misc.c b/arch/arm/cpu/arm926ejs/davinci/misc.c
index c310c69..162c1e0 100644
--- a/arch/arm/cpu/arm926ejs/davinci/misc.c
+++ b/arch/arm/cpu/arm926ejs/davinci/misc.c
@@ -104,7 +104,7 @@ void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)
 	int ret;
 
 	ret = eth_getenv_enetaddr_by_index("eth", 0, env_enetaddr);
-	if (ret) {
+	if (!ret) {
 		/*
 		 * There is no MAC address in the environment, so we
 		 * initialize it from the value in the EEPROM.
@@ -115,7 +115,7 @@ void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)
 		ret = !eth_setenv_enetaddr("ethaddr", rom_enetaddr);
 	}
 	if (!ret)
-		printf("Failed to set mac address from EEPROM\n");
+		printf("Failed to set mac address from EEPROM: %d\n", ret);
 }
 #endif	/* CONFIG_DRIVER_TI_EMAC */
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device
  2013-01-18 15:19 [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Holger Hans Peter Freyther
  2013-01-18 15:19 ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
  2013-01-18 15:19 ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
@ 2013-01-25 22:12 ` Tom Rini
  2013-02-08  9:41   ` [U-Boot] [PATCH " Holger Hans Peter Freyther
  2 siblings, 1 reply; 9+ messages in thread
From: Tom Rini @ 2013-01-25 22:12 UTC (permalink / raw)
  To: u-boot

On Fri, Jan 18, 2013 at 05:19:48AM -0000, Holger Hans Peter Freyther wrote:

> The differences include the number of GPIOs and that one is
> not required to set the pinmux on request.

I was about to reply that I applied this but I see the series is missing
a Signed-off-by line.  Please send a v2 with a Signed-off-by line,
assuming of course that the guidelines apply and all that.  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130125/0e07fadb/attachment.pgp>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device
  2013-01-25 22:12 ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
@ 2013-02-08  9:41   ` Holger Hans Peter Freyther
  2013-02-08  9:41     ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
                       ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-02-08  9:41 UTC (permalink / raw)
  To: u-boot

The differences include the number of GPIOs and that one is
not required to set the pinmux on request.

Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>
---
 arch/arm/include/asm/arch-davinci/gpio.h |    8 +++++++-
 drivers/gpio/Makefile                    |    1 +
 drivers/gpio/da8xx_gpio.c                |    4 ++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-davinci/gpio.h b/arch/arm/include/asm/arch-davinci/gpio.h
index ef65ffb..5206b12 100644
--- a/arch/arm/include/asm/arch-davinci/gpio.h
+++ b/arch/arm/include/asm/arch-davinci/gpio.h
@@ -65,9 +65,15 @@ struct davinci_gpio_bank {
 #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67)
 #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8)
 
+#if defined(CONFIG_SOC_DM644X)
+/* GPIO0 to GPIO53, omit the V3.3 volts one */
+#define MAX_NUM_GPIOS		70
+#else
+#define MAX_NUM_GPIOS		144
+#endif
+
 #define gpio_status()		gpio_info()
 #define GPIO_NAME_SIZE		20
-#define MAX_NUM_GPIOS		144
 #define GPIO_BANK(gp)		(davinci_gpio_bank01 + ((gp) >> 5))
 #define GPIO_BIT(gp)		((gp) & 0x1F)
 
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 2d97b4f..9df1e26 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -39,6 +39,7 @@ COBJS-$(CONFIG_SANDBOX_GPIO)	+= sandbox.o
 COBJS-$(CONFIG_SPEAR_GPIO)	+= spear_gpio.o
 COBJS-$(CONFIG_TEGRA_GPIO)	+= tegra_gpio.o
 COBJS-$(CONFIG_DA8XX_GPIO)	+= da8xx_gpio.o
+COBJS-$(CONFIG_DM644X_GPIO)	+= da8xx_gpio.o
 COBJS-$(CONFIG_ALTERA_PIO)	+= altera_pio.o
 COBJS-$(CONFIG_MPC83XX_GPIO)	+= mpc83xx_gpio.o
 COBJS-$(CONFIG_SH_GPIO_PFC)	+= sh_pfc.o
diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c
index 84d2b77..ed6a118 100644
--- a/drivers/gpio/da8xx_gpio.c
+++ b/drivers/gpio/da8xx_gpio.c
@@ -31,6 +31,7 @@ static struct gpio_registry {
 	char name[GPIO_NAME_SIZE];
 } gpio_registry[MAX_NUM_GPIOS];
 
+#if defined(CONFIG_SOC_DA8XX)
 #define pinmux(x)       (&davinci_syscfg_regs->pinmux[x])
 
 static const struct pinmux_config gpio_pinmux[] = {
@@ -179,6 +180,9 @@ static const struct pinmux_config gpio_pinmux[] = {
 	{ pinmux(18), 8, 3 },
 	{ pinmux(18), 8, 2 },
 };
+#else
+#define davinci_configure_pin_mux(a, b)
+#endif
 
 int gpio_request(unsigned gpio, const char *label)
 {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum
  2013-02-08  9:41   ` [U-Boot] [PATCH " Holger Hans Peter Freyther
@ 2013-02-08  9:41     ` Holger Hans Peter Freyther
  2013-02-08 11:52       ` Otavio Salvador
  2013-02-08  9:41     ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
  2013-02-20 15:03     ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
  2 siblings, 1 reply; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-02-08  9:41 UTC (permalink / raw)
  To: u-boot

u-boot is not consistent if state should be 0|1 or of the enum, the
GPIO driver expects this to be one of the enum values. Update the
caller.

Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>
---
 common/cmd_led.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/cmd_led.c b/common/cmd_led.c
index 7f5ab43..c725f95 100644
--- a/common/cmd_led.c
+++ b/common/cmd_led.c
@@ -110,13 +110,13 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 				if (led_commands[i].on)
 					led_commands[i].on();
 				else
-					__led_set(led_commands[i].mask, 1);
+					__led_set(led_commands[i].mask, STATUS_LED_ON);
 				break;
 			case LED_OFF:
 				if (led_commands[i].off)
 					led_commands[i].off();
 				else
-					__led_set(led_commands[i].mask, 0);
+					__led_set(led_commands[i].mask, STATUS_LED_OFF);
 				break;
 			case LED_TOGGLE:
 				if (led_commands[i].toggle)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM
  2013-02-08  9:41   ` [U-Boot] [PATCH " Holger Hans Peter Freyther
  2013-02-08  9:41     ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
@ 2013-02-08  9:41     ` Holger Hans Peter Freyther
  2013-02-20 15:03     ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
  2 siblings, 0 replies; 9+ messages in thread
From: Holger Hans Peter Freyther @ 2013-02-08  9:41 UTC (permalink / raw)
  To: u-boot

The issue got introduced in a cleanup by Manjunath Hadli in commit
826e99136e2bce61f3f6572e32d7aa724c116e6d. The eth_getenv_enetaddr_by_index
method will validate the MAC addr and if none is set in the environment
0 will be returned. Set the MAC from the eeprom if no valid address
is found in environment.

Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>
---
 arch/arm/cpu/arm926ejs/davinci/misc.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/davinci/misc.c b/arch/arm/cpu/arm926ejs/davinci/misc.c
index c310c69..162c1e0 100644
--- a/arch/arm/cpu/arm926ejs/davinci/misc.c
+++ b/arch/arm/cpu/arm926ejs/davinci/misc.c
@@ -104,7 +104,7 @@ void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)
 	int ret;
 
 	ret = eth_getenv_enetaddr_by_index("eth", 0, env_enetaddr);
-	if (ret) {
+	if (!ret) {
 		/*
 		 * There is no MAC address in the environment, so we
 		 * initialize it from the value in the EEPROM.
@@ -115,7 +115,7 @@ void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)
 		ret = !eth_setenv_enetaddr("ethaddr", rom_enetaddr);
 	}
 	if (!ret)
-		printf("Failed to set mac address from EEPROM\n");
+		printf("Failed to set mac address from EEPROM: %d\n", ret);
 }
 #endif	/* CONFIG_DRIVER_TI_EMAC */
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum
  2013-02-08  9:41     ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
@ 2013-02-08 11:52       ` Otavio Salvador
  0 siblings, 0 replies; 9+ messages in thread
From: Otavio Salvador @ 2013-02-08 11:52 UTC (permalink / raw)
  To: u-boot

On Fri, Feb 8, 2013 at 7:41 AM, Holger Hans Peter Freyther
<holger@freyther.de> wrote:
> u-boot is not consistent if state should be 0|1 or of the enum, the
> GPIO driver expects this to be one of the enum values. Update the
> caller.
>
> Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>

I sent same fix some days ago. ;-)

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio at ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device
  2013-02-08  9:41   ` [U-Boot] [PATCH " Holger Hans Peter Freyther
  2013-02-08  9:41     ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
  2013-02-08  9:41     ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
@ 2013-02-20 15:03     ` Tom Rini
  2 siblings, 0 replies; 9+ messages in thread
From: Tom Rini @ 2013-02-20 15:03 UTC (permalink / raw)
  To: u-boot

On Thu, Feb 07, 2013 at 11:41:01PM -0000, Holger Hans Peter Freyther wrote:

> The differences include the number of GPIOs and that one is
> not required to set the pinmux on request.
> 
> Signed-off-by: Holger Hans Peter Freyther <holger@freyther.de>

For the series, applied to u-boot/master, thanks! (I checked with Albert
on IRC quick and he's OK with 1 TI ARM specific patch and 2 generics
going to master directly).

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130220/d16beea3/attachment.pgp>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2013-02-20 15:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-18 15:19 [U-Boot] [PATCH 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Holger Hans Peter Freyther
2013-01-18 15:19 ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
2013-01-18 15:19 ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
2013-01-25 22:12 ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini
2013-02-08  9:41   ` [U-Boot] [PATCH " Holger Hans Peter Freyther
2013-02-08  9:41     ` [U-Boot] [PATCH 2/3] led: The gpio_led.c code expects that LED state is from the enum Holger Hans Peter Freyther
2013-02-08 11:52       ` Otavio Salvador
2013-02-08  9:41     ` [U-Boot] [PATCH 3/3] mac: Fix the condition check for setting the MAC from the EEPROM Holger Hans Peter Freyther
2013-02-20 15:03     ` [U-Boot] [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox