All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.