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
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(-)
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(-)
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(-)
@@ -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");+returnret;+}+/* 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");+returnret;+}+/* Disable until needed */gpio_direction_output(devkit8000_dvi_device.reset_gpio,0);
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(-)
@@ -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");+returnret;+}+/* 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");+returnret;+}
Nak. Why you want this change as seperate patch? Merge this with 1/4
-Manjunath
[...]
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(-)
@@ -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");+returnret;+}+
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
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
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
--
@@ -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