[PATCHv4 0/4] omap3: Devkit8000: misc fixes

12 messages, 7 authors, 2011-01-20 · open the first message on its own page

[PATCHv4 0/4] omap3: Devkit8000: misc fixes

From: Thomas Weber <hidden>
Date: 2011-01-19 08:19:44

Here is a set of misc fixes for the devkit8000.

The only really notable one is the lcd enable gpio fix. It gets rid
of some nasty low level twl4030 calls and replaces them with generic gpio
calls. It also fixes a bug where the screen would not turn off when
blanking.

Changes from v1: 
	Pull the indention fix into "Change lcd power pin".
	Change the pin for lcd pwren.
	Fix the pullup/pulldown configuration after lcd prwen correction.

Changes from v2:
	Better comment for removing low level functions used for twl4030 gpio
	Fix indention => indentation in comment

Changed from v3:
	Use return value of gpio_request.
	Fix indentation of one curly brace.

Daniel Morsing (1):
  OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration

Thomas Weber (3):
  OMAP3: Devkit8000: Change lcd power pin
  OMAP3: Devkit8000: Check return value of gpio_request
  OMAP3: Devkit8000: Fix indentation

 arch/arm/mach-omap2/board-devkit8000.c |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

-- 
1.7.4.rc2

[PATCHv4 2/4] OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration

From: Thomas Weber <hidden>
Date: 2011-01-19 08:19:34

From: Daniel Morsing <redacted>

gpio7 on the tps65930 is used as an output on the devkit8000 and
gpio1 is not connected. Remove gpio7 and change gpio1 to pulldown

Signed-off-by: Daniel Morsing <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 719f4e5..9fb416b 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -262,8 +262,7 @@ static struct twl4030_gpio_platform_data devkit8000_gpio_data = {
 	.irq_base	= TWL4030_GPIO_IRQ_BASE,
 	.irq_end	= TWL4030_GPIO_IRQ_END,
 	.use_leds	= true,
-	.pullups	= BIT(1),
-	.pulldowns	= BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
+	.pulldowns	= BIT(1) | BIT(2) | BIT(6) | BIT(8) | BIT(13)
 				| BIT(15) | BIT(16) | BIT(17),
 	.setup		= devkit8000_twl_gpio_setup,
 };
-- 
1.7.4.rc2

[PATCHv4 1/4] OMAP3: Devkit8000: Change lcd power pin

From: Thomas Weber <hidden>
Date: 2011-01-19 08:19:37

This patch fixes a wrongly used lcd enable pin.

The Devkit8000 uses twl4030_ledA configured as output gpio only for the
lcd enable line. twl4030_gpio.1 is used through the generic gpio functions
while ledA is used via low level twl4030 calls.

Remove the low level calls and use the generic gpio functions for
initialization and use of ledA.

This also fixes a bug where the lcd would not power down when blanking.

Fix indentation issue. The comment line uses 8 whitespace.
This is replaced with one tabulator.

Reported-by: Daniel Morsing <redacted>
Signed-off-by: Thomas Weber <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 451e7ff..719f4e5 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -114,9 +114,6 @@ static struct omap2_hsmmc_info mmc[] = {
 
 static int devkit8000_panel_enable_lcd(struct omap_dss_device *dssdev)
 {
-	twl_i2c_write_u8(TWL4030_MODULE_GPIO, 0x80, REG_GPIODATADIR1);
-	twl_i2c_write_u8(TWL4030_MODULE_LED, 0x0, 0x0);
-
 	if (gpio_is_valid(dssdev->reset_gpio))
 		gpio_set_value_cansleep(dssdev->reset_gpio, 1);
 	return 0;
@@ -245,8 +242,8 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
 	/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
 	gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
 
-        /* gpio + 1 is "LCD_PWREN" (out, active high) */
-	devkit8000_lcd_device.reset_gpio = gpio + 1;
+	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
+	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
 	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
-- 
1.7.4.rc2

[PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

From: Thomas Weber <hidden>
Date: 2011-01-19 08:19:40

The return value of gpio_request is ignored.
This patch adds the check of the return value of gpio_request.

Signed-off-by: Thomas Weber <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9fb416b..4ddd81c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -234,6 +234,8 @@ static struct gpio_led gpio_leds[];
 static int devkit8000_twl_gpio_setup(struct device *dev,
 		unsigned gpio, unsigned ngpio)
 {
+	int ret;
+
 	omap_mux_init_gpio(29, OMAP_PIN_INPUT);
 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
 	mmc[0].gpio_cd = gpio + 0;
@@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
 
 	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
 	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
-	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
+		return ret;
+	}
+
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
 
 	/* gpio + 7 is "DVI_PD" (out, active low) */
 	devkit8000_dvi_device.reset_gpio = gpio + 7;
-	gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
+		return ret;
+	}
+
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
 
-- 
1.7.4.rc2

[PATCHv4 4/4] OMAP3: Devkit8000: Fix indentation of brace

From: Thomas Weber <hidden>
Date: 2011-01-19 08:20:04

Fix indentation of a closing curly brace.

Signed-off-by: Thomas Weber <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 4ddd81c..a344cd8 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -553,7 +553,7 @@ static void __init omap_dm9000_init(void)
 		printk(KERN_ERR "Failed to request GPIO%d for dm9000 IRQ\n",
 			OMAP_DM9000_GPIO_IRQ);
 		return;
-		}
+	}
 
 	gpio_direction_input(OMAP_DM9000_GPIO_IRQ);
 
-- 
1.7.4.rc2

Re: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

From: G, Manjunath Kondaiah <hidden>
Date: 2011-01-19 09:01:07

On Wed, Jan 19, 2011 at 09:19:25AM +0100, Thomas Weber wrote:
quoted hunk
The return value of gpio_request is ignored.
This patch adds the check of the return value of gpio_request.

Signed-off-by: Thomas Weber <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9fb416b..4ddd81c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -234,6 +234,8 @@ static struct gpio_led gpio_leds[];
 static int devkit8000_twl_gpio_setup(struct device *dev,
 		unsigned gpio, unsigned ngpio)
 {
+	int ret;
+
 	omap_mux_init_gpio(29, OMAP_PIN_INPUT);
 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
 	mmc[0].gpio_cd = gpio + 0;
@@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
 
 	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
 	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
-	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
+		return ret;
+	}
+
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
 
 	/* gpio + 7 is "DVI_PD" (out, active low) */
 	devkit8000_dvi_device.reset_gpio = gpio + 7;
-	gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
+		return ret;
+	}
Nak. Why you want this change as seperate patch? Merge this with 1/4

-Manjunath
[...]

Re: [PATCHv4 4/4] OMAP3: Devkit8000: Fix indentation of brace

From: Varadarajan, Charulatha <hidden>
Date: 2011-01-19 09:10:08

On Wed, Jan 19, 2011 at 13:49, Thomas Weber [off-list ref] wrote:
Fix indentation of a closing curly brace.
As Manjunath mentioned for the other patch, I guess this patch can
also be merged
with some other patch in this series.
quoted hunk
Signed-off-by: Thomas Weber <redacted>
---
?arch/arm/mach-omap2/board-devkit8000.c | ? ?2 +-
?1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 4ddd81c..a344cd8 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -553,7 +553,7 @@ static void __init omap_dm9000_init(void)
? ? ? ? ? ? ? ?printk(KERN_ERR "Failed to request GPIO%d for dm9000 IRQ\n",
? ? ? ? ? ? ? ? ? ? ? ?OMAP_DM9000_GPIO_IRQ);
? ? ? ? ? ? ? ?return;
- ? ? ? ? ? ? ? }
+ ? ? ? }

? ? ? ?gpio_direction_input(OMAP_DM9000_GPIO_IRQ);

--
1.7.4.rc2

Re: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

From: Sergei Shtylyov <hidden>
Date: 2011-01-19 12:25:09

Hello.

On 19-01-2011 11:19, Thomas Weber wrote:
The return value of gpio_request is ignored.
This patch adds the check of the return value of gpio_request.
Signed-off-by: Thomas Weber<redacted>
---
  arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
  1 files changed, 14 insertions(+), 2 deletions(-)
quoted hunk
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9fb416b..4ddd81c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
[...]
quoted hunk
@@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,

  	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
  	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
-	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
+		return ret;
+	}
+
  	/* Disable until needed */
  	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);

  	/* gpio + 7 is "DVI_PD" (out, active low) */
  	devkit8000_dvi_device.reset_gpio = gpio + 7;
-	gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
    You forgot to call:

		gpio_free(devkit8000_lcd_device.reset_gpio);
+		return ret;
+	}
+
  	/* Disable until needed */
  	gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
WBR, Sergei

Re: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

From: Daniel Morsing <hidden>
Date: 2011-01-19 12:29:36

Hey Thomas

On Wed, 2011-01-19 at 09:19 +0100, Thomas Weber wrote:
quoted hunk
The return value of gpio_request is ignored.
This patch adds the check of the return value of gpio_request.

Signed-off-by: Thomas Weber <redacted>
---
 arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 9fb416b..4ddd81c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -234,6 +234,8 @@ static struct gpio_led gpio_leds[];
 static int devkit8000_twl_gpio_setup(struct device *dev,
 		unsigned gpio, unsigned ngpio)
 {
+	int ret;
+
 	omap_mux_init_gpio(29, OMAP_PIN_INPUT);
 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
 	mmc[0].gpio_cd = gpio + 0;
@@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
 
 	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
 	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
-	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
+		return ret;
+	}
+
If we fail here, reset_gpio will be set to the gpio the was requested.
The main reason for this would be that the gpio has already been
requested, so any subsequent lcd operations could potentially mess up
some other code.
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
 
 	/* gpio + 7 is "DVI_PD" (out, active low) */
 	devkit8000_dvi_device.reset_gpio = gpio + 7;
-	gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+	if (ret < 0) {
+		printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
+		return ret;
+	}
+
Same as above.
 	/* Disable until needed */
 	gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
 
Consider switching to gpio_request_{one, array}. Besides making
everything cleaner, it would also provide error checking for the
unlikely case that the request succeeded, but the direction setting
failed.

Also agreeing with Manjunath. This patch should be merged with the
adjust lcd gpio patch. The patches depend on each other and the
resulting patch is not big enough to warrant a split.

Regards,
Daniel

Re: [PATCHv4 2/4] OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration

From: Tony Lindgren <tony@atomide.com>
Date: 2011-01-19 22:21:47

* Thomas Weber [off-list ref] [110119 00:18]:
From: Daniel Morsing <redacted>

gpio7 on the tps65930 is used as an output on the devkit8000 and
gpio1 is not connected. Remove gpio7 and change gpio1 to pulldown

Signed-off-by: Daniel Morsing <redacted>
I'll queue only this fix for now, looks like the other still need
minor changes.

Tony

Re: [PATCHv4 2/4] OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration

From: Thomas Weber <hidden>
Date: 2011-01-20 06:56:53

Am 19.01.2011 23:21, schrieb Tony Lindgren:
* Thomas Weber [off-list ref] [110119 00:18]:
quoted
From: Daniel Morsing <redacted>

gpio7 on the tps65930 is used as an output on the devkit8000 and
gpio1 is not connected. Remove gpio7 and change gpio1 to pulldown

Signed-off-by: Daniel Morsing <redacted>
I'll queue only this fix for now, looks like the other still need
minor changes.

Tony
--
Thanks.

Re: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request

From: Thomas Weber <hidden>
Date: 2011-01-20 08:46:23

Hello,
Am 19.01.2011 13:23, schrieb Sergei Shtylyov:
Hello.

On 19-01-2011 11:19, Thomas Weber wrote:
quoted
The return value of gpio_request is ignored.
This patch adds the check of the return value of gpio_request.
quoted
Signed-off-by: Thomas Weber<redacted>
---
  arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
  1 files changed, 14 insertions(+), 2 deletions(-)
quoted
diff --git a/arch/arm/mach-omap2/board-devkit8000.c
b/arch/arm/mach-omap2/board-devkit8000.c
index 9fb416b..4ddd81c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
[...]
quoted
@@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct
device *dev,

      /* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
      devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
-    gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+    ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
+    if (ret < 0) {
+        printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
+        return ret;
+    }
+
      /* Disable until needed */
      gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);

      /* gpio + 7 is "DVI_PD" (out, active low) */
      devkit8000_dvi_device.reset_gpio = gpio + 7;
-    gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
+    ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI
PowerDown");
+    if (ret < 0) {
+        printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
   You forgot to call:

        gpio_free(devkit8000_lcd_device.reset_gpio);
Couldn't I use lcd without dvi?
And shouldn't the gpio then be set to -EINVAL for the gpio_is_valid()
check in enable_lcd()/disable_lcd() and enable_dvi()/disable_dvi()?

Thomas
quoted
+        return ret;
+    }
+
      /* Disable until needed */
      gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
WBR, Sergei
-- 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help