OMAP3: beaglexm: GPIO fixes
Subsystems (3)
A message that is not in the archive (sent off-list or not yet received): [PATCH v3 0/3] OMAP3: beaglexm: GPIO fixes
v4 cover OMAP3: beaglexm: GPIO fixes
Hi,
As discussed in the threads:
http://thread.gmane.org/gmane.linux.ports.arm.omap/47807/
http://marc.info/?t=121540030800004&r=1&w=2
here is the split up series with commit message after discussion:
http://www.beagleboard.org/irclogs/index.php?date=2011-01-06#T19:12:21
Koen Kooi (3):
omap3: beaglexm: fix EHCI power up GPIO dir
omap3: beaglexm: fix DVI reset GPIO
omap3: beaglexm: fix power on of DVI
arch/arm/mach-omap2/board-omap3beagle.c | 37 ++++++++++++++++++++++++++---- 1 files changed, 32 insertions(+), 5 deletions(-)
v4:
no functional change.
minor cleanups in commit logs incorporating offline feedback
v3: http://marc.info/?t=129434384700006&r=1&w=2
split up the series, addressed review comments
v2: http://marc.info/?t=129276977900002&r=1&w=2
Reenable the PMU stat LED
v1: http://marc.info/?t=129172571000001&r=1&w=2
Regards,
Nishanth Menon
v4 cover OMAP3: beaglexm: GPIO fixes
Quoted 12 lines · Nishanth Menon
As discussed in the threads:
http://thread.gmane.org/gmane.linux.ports.arm.omap/47807/
http://marc.info/?t=121540030800004&r=1&w=2here is the split up series with commit message after discussion:
http://www.beagleboard.org/irclogs/index.php?date=2011-01-06#T19:12:21Koen Kooi (3):
omap3: beaglexm: fix EHCI power up GPIO dir
omap3: beaglexm: fix DVI reset GPIO
omap3: beaglexm: fix power on of DVI
Quoted 6 lines
arch/arm/mach-omap2/board-omap3beagle.c | 37 ++++++++++++++++++++++++++---- 1 files changed, 32 insertions(+), 5 deletions(-)v4:
no functional change.
minor cleanups in commit logs incorporating offline feedback
Thanks for the updates. Will queue in my fixes queue.
Kevin
Quoted 9 lines
v3: http://marc.info/?t=129434384700006&r=1&w=2
split up the series, addressed review commentsv2: http://marc.info/?t=129276977900002&r=1&w=2
Reenable the PMU stat LED
v1: http://marc.info/?t=129172571000001&r=1&w=2Regards,
Nishanth Menon
Tony Lindgren
maintainerv4 cover OMAP3: beaglexm: GPIO fixes
In reply to Nishanth MenonQuoted 5 lines · Nishanth Menon
Hi,
As discussed in the threads:
http://thread.gmane.org/gmane.linux.ports.arm.omap/47807/
http://marc.info/?t=121540030800004&r=1&w=2
Quoted 7 lines
here is the split up series with commit message after discussion:
http://www.beagleboard.org/irclogs/index.php?date=2011-01-06#T19:12:21Koen Kooi (3):
omap3: beaglexm: fix EHCI power up GPIO dir
omap3: beaglexm: fix DVI reset GPIO
omap3: beaglexm: fix power on of DVI
Dropping the earlier versions from omap-fixes, I want to get the build fixes in ASAP. These can wait a bit until Aaro's comments are addressed.
Regards,
Tony
v4 cover OMAP3: beaglexm: GPIO fixes
Tony Lindgren had written, on 01/10/2011 01:04 PM, the following:
Quoted 9 lines · Nishanth Menon
Quoted 8 lines
Hi,
As discussed in the threads:
http://thread.gmane.org/gmane.linux.ports.arm.omap/47807/
http://marc.info/?t=121540030800004&r=1&w=2here is the split up series with commit message after discussion:
http://www.beagleboard.org/irclogs/index.php?date=2011-01-06#T19:12:21
Quoted 8 lines
Quoted 4 lines
Koen Kooi (3):
omap3: beaglexm: fix EHCI power up GPIO dir
omap3: beaglexm: fix DVI reset GPIO
omap3: beaglexm: fix power on of DVIDropping the earlier versions from omap-fixes, I want to get the build fixes in ASAP. These can wait a bit until Aaro's comments are addressed.
Ack. will post a v5 after aligning. build breakages have higher priority ofcourse ;)
Signature · 2 lines
Regards, Nishanth Menon
PATCH v4 1/3 omap3: beaglexm: fix EHCI power up GPIO dir
In reply to a message not in the archiveFrom: Koen Kooi <[email protected]>
EHCI enable power pin is inverted (active high) in comparison to vanilla beagle which is active low. Handle this case conditionally.
Without this fix, Beagle XM 4 port EHCI will not function and no networking will be available
--- arch/arm/mach-omap2/board-omap3beagle.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-omap3beagle.c +8 -1
@@ -297,9 +297,16 @@ static int beagle_twl_gpio_setup(struct device *dev,gpio_request (gpio +1 ,"EHCI_nOC" );gpio_direction_input (gpio +1 ); -/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ +/* +* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active +* high / others active low) +*/ gpio_request (gpio +TWL4030_GPIO_MAX ,"nEN_USB_PWR" );gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 ); +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) +gpio_direction_output (gpio +TWL4030_GPIO_MAX ,1 ); +else +gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 );/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2 ].gpio = gpio +TWL4030_GPIO_MAX +1 ;
Signature · 1 line
1.6.3.3
PATCH v4 1/3 omap3: beaglexm: fix EHCI power up GPIO dir
Hi,
Quoted 20 lines · Nishanth Menon
From: Koen Kooi <[email protected]>
EHCI enable power pin is inverted (active high) in comparison to vanilla beagle which is active low. Handle this case conditionally.
Without this fix, Beagle XM 4 port EHCI will not function and no networking will be available
[nm at ti.com: split up, added descriptive changelogs]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Koen Kooi <[email protected]>---
arch/arm/mach-omap2/board-omap3beagle.c| 9 ++++++++-1 files changed, 8 insertions(+), 1 deletions(-)arch/arm/mach-omap2/board-omap3beagle.c +0
-0
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 305
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +4
-1@@ -297,9 +297,16 @@ static int beagle_twl_gpio_setup(struct device *dev,gpio_request (gpio +1 ,"EHCI_nOC" );gpio_direction_input (gpio +1 ); -/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ +/* +* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active +* high / others active low) +*/ gpio_request (gpio +TWL4030_GPIO_MAX ,"nEN_USB_PWR" );gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 );
This call should be deleted.
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +4
-0+if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) +gpio_direction_output (gpio +TWL4030_GPIO_MAX ,1 ); +else +gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 );/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2 ].gpio = gpio +TWL4030_GPIO_MAX +1 ;Signature · 1 line
1.6.3.3
PATCH v4 1/3 omap3: beaglexm: fix EHCI power up GPIO dir
Aaro Koskinen had written, on 01/10/2011 06:44 AM, the following:
Quoted 27 lines
Hi,
Quoted 24 lines · Nishanth Menon
From: Koen Kooi <[email protected]>
EHCI enable power pin is inverted (active high) in comparison to vanilla beagle which is active low. Handle this case conditionally.
Without this fix, Beagle XM 4 port EHCI will not function and no networking will be available
[nm at ti.com: split up, added descriptive changelogs]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Koen Kooi <[email protected]>---
arch/arm/mach-omap2/board-omap3beagle.c| 9 ++++++++-1 files changed, 8 insertions(+), 1 deletions(-)arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -297,9 +297,16 @@ static int beagle_twl_gpio_setup(struct device *dev,gpio_request (gpio +1 ,"EHCI_nOC" );gpio_direction_input (gpio +1 );
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 305
Quoted 8 lines
arch/arm/mach-omap2/board-omap3beagle.c +0
-1-/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
arch/arm/mach-omap2/board-omap3beagle.c +4
-0+/* +* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active +* high / others active low) +*/ gpio_request (gpio +TWL4030_GPIO_MAX ,"nEN_USB_PWR" );gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 );This call should be deleted.
yikes. yep. thanks for catching.
Signature · 2 lines
Regards, Nishanth Menon
PATCH v4 2/3 omap3: beaglexm: fix DVI reset GPIO
In reply to a message not in the archiveFrom: Koen Kooi <[email protected]>
GPIO reset line for Beagle XM is different from vanilla beagle so we populate it as part of gpio update routine.
This in part fixes the issue of display not functioning on beagle XM platform.
--- arch/arm/mach-omap2/board-omap3beagle.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-omap3beagle.c +7 -1
@@ -199,7 +199,7 @@ static struct omap_dss_device beagle_dvi_device = { .name = "dvi", .driver_name = "generic_panel", .phy.dpi.data_lines = 24, - .reset_gpio = 170, + .reset_gpio = -EINVAL, .platform_enable = beagle_enable_dvi, .platform_disable = beagle_disable_dvi, };
@@ -308,6 +308,12 @@ static int beagle_twl_gpio_setup(struct device *dev,else gpio_direction_output (gpio +TWL4030_GPIO_MAX ,0 ); +/* DVI reset GPIO is different between beagle revisions */ +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) + beagle_dvi_device.reset_gpio =129 ; +else + beagle_dvi_device.reset_gpio =170 ; +/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2 ].gpio = gpio +TWL4030_GPIO_MAX +1 ;
Signature · 1 line
1.6.3.3
PATCH v4 3/3 omap3: beaglexm: fix power on of DVI
In reply to a message not in the archiveFrom: Koen Kooi <[email protected]>
TFP410 DVI chip is used to provide display out. This chip is controlled by 2 lines:
LDO which supplies the power is controlled over gpio + 2 and the enable of the chip itself is done over gpio + 1
NOTE: the LDO is necessary for LED, serial blocks as well.
gpio + 1 was used to sense USB overcurrent in vanilla beagle.
Without this fix, the display would not function as the LDO remains shut down.
--- arch/arm/mach-omap2/board-omap3beagle.c | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-)
arch/arm/mach-omap2/board-omap3beagle.c +17 -3
@@ -293,9 +293,10 @@ static int beagle_twl_gpio_setup(struct device *dev,/* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ - -gpio_request (gpio +1 ,"EHCI_nOC" ); -gpio_direction_input (gpio +1 ); +if (omap3_beagle_get_rev () !=OMAP3BEAGLE_BOARD_XM ) { +gpio_request (gpio +1 ,"EHCI_nOC" ); +gpio_direction_input (gpio +1 ); + }/* * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active
@@ -317,6 +318,19 @@ static int beagle_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 on Xm controls the TFP410's enable line (active low) +* gpio + 2 control varies depending on the board rev as follows: +* P7/P8 revisions(prototype): Camera EN +* A2+ revisions (production): LDO (supplies DVI, serial, led blocks) +*/ +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +gpio_request (gpio +1 ,"nDVI_PWR_EN" ); +gpio_direction_output (gpio +1 ,0 ); +gpio_request (gpio +2 ,"DVI_LDO_EN" ); +gpio_direction_output (gpio +2 ,1 ); + } +return 0 ; }
Signature · 1 line
1.6.3.3
PATCH v4 3/3 omap3: beaglexm: fix power on of DVI
Hi,
Quoted 43 lines · Nishanth Menon
From: Koen Kooi <[email protected]>
TFP410 DVI chip is used to provide display out. This chip is controlled by 2 lines:
LDO which supplies the power is controlled over gpio + 2 and the enable of the chip itself is done over gpio + 1
NOTE: the LDO is necessary for LED, serial blocks as well.gpio + 1 was used to sense USB overcurrent in vanilla beagle.
Without this fix, the display would not function as the LDO remains shut down.
[nm at ti.com: split up, added descriptive changelogs]Signed-off-by Nishanth Menon <[email protected]>Signed-off-by Koen Kooi <[email protected]>---
arch/arm/mach-omap2/board-omap3beagle.c| 20 +++++++++++++++++---1 files changed, 17 insertions(+), 3 deletions(-)arch/arm/mach-omap2/board-omap3beagle.c +5
-3@@ -293,9 +293,10 @@ static int beagle_twl_gpio_setup(struct device *dev,/* REVISIT: need ehci-omap hooks for external VBUS * power switch and overcurrent detect */ - -gpio_request (gpio +1 ,"EHCI_nOC" ); -gpio_direction_input (gpio +1 ); +if (omap3_beagle_get_rev () !=OMAP3BEAGLE_BOARD_XM ) { +gpio_request (gpio +1 ,"EHCI_nOC" ); +gpio_direction_input (gpio +1 ); + }/* * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active @@ -317,6 +318,19 @@ static int beagle_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 ; +/*
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 331
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +10
-0+* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 2 control varies depending on the board rev as follows: +* P7/P8 revisions(prototype): Camera EN +* A2+ revisions (production): LDO (supplies DVI, serial, led blocks) +*/ +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +gpio_request (gpio +1 ,"nDVI_PWR_EN" ); +gpio_direction_output (gpio +1 ,0 ); +gpio_request (gpio +2 ,"DVI_LDO_EN" ); +gpio_direction_output (gpio +2 ,1 );
FYI, gpiolib provides gpio_request_one() and gpio_request_array() calls which make code simpler. I think any new code should use those _and_ do proper error checking.
Quoted 8 lines
arch/arm/mach-omap2/board-omap3beagle.c +2
-0+ } +return 0 ; }Signature · 1 line
1.6.3.3
PATCH v4 3/3 omap3: beaglexm: fix power on of DVI
Aaro Koskinen had written, on 01/10/2011 06:51 AM, the following:
[..]
Quoted 9 lines
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 331
Quoted 5 lines
arch/arm/mach-omap2/board-omap3beagle.c +5
-0+if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +gpio_request (gpio +1 ,"nDVI_PWR_EN" ); +gpio_direction_output (gpio +1 ,0 ); +gpio_request (gpio +2 ,"DVI_LDO_EN" ); +gpio_direction_output (gpio +2 ,1 );FYI, gpiolib provides
gpio_request_one()andgpio_request_array()calls which make code simpler. I think any new code should use those _and_ do proper error checking.
Thanks for pointing this out. Funny why it is in include/asm-generic/gpio.h instead of in include/linux/gpio.h considering it implemented in drivers/gpio/gpiolib.c :(
Am I right in understanding that you are mentioning about DVI gpios alone? in that case, the LDO gpio is used for other functions as well in addition to driving DVI. I suppose we dont want to loose that function because dvi pwr_en gpio failed.
Signature · 2 lines
Regards, Nishanth Menon