OMAP3: beagle: add support for beagleboard xM revision C
Subsystems (3)
PATCH 1/1 OMAP3: beagle: add support for beagleboard xM revision C
The USB enable GPIO has been inverted again and the USER button moved
---
Changes since v2:
* fixed indentation error checkpatch missed
Changes since v1:
* updated against mainline to take Igors gpio cleanup into account
* removed xM rev B checks, no boards with that ID were ever produced, rev B boards show up as rev A
* double checked whitespace:
total: 0 errors, 0 warnings, 89 lines checked patches/0001-OMAP3-beagle-add-support-for-beagleboard-xM-revision.patch has no obvious style problems and is ready for submission.
arch/arm/mach-omap2/board-omap3beagle.c | 31 +++++++++++++++++++++++-------- 1 files changed, 23 insertions(+), 8 deletions(-)
arch/arm/mach-omap2/board-omap3beagle.c +23 -8
@@ -63,7 +63,9 @@* AXBX = GPIO173, GPIO172, GPIO171: 1 1 1 * C1_3 = GPIO173, GPIO172, GPIO171: 1 1 0 * C4 = GPIO173, GPIO172, GPIO171: 1 0 1 -* XM = GPIO173, GPIO172, GPIO171: 0 0 0 +* XMA = GPIO173, GPIO172, GPIO171: 0 0 0 +* XMB = GPIO173, GPIO172, GPIO171: 0 0 1 - unused +* XMC = GPIO173, GPIO172, GPIO171: 0 1 0 */ enum {OMAP3BEAGLE_BOARD_UNKN =0 ,
@@ -71,6 +73,7 @@ enum {OMAP3BEAGLE_BOARD_C1_3 ,OMAP3BEAGLE_BOARD_C4 ,OMAP3BEAGLE_BOARD_XM , + OMAP3BEAGLE_BOARD_XMC, };static u8 omap3_beagle_version;
@@ -123,9 +126,13 @@ static void __init omap3_beagle_init_rev(void)printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); omap3_beagle_version =OMAP3BEAGLE_BOARD_XM ;break ; +case 2 : +printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; +break ;default :printk (KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n" , beagle_rev); - omap3_beagle_version =OMAP3BEAGLE_BOARD_UNKN ; + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; } }
@@ -253,7 +260,7 @@ static int beagle_twl_gpio_setup(struct device *dev, {int r, usb_pwr_level; -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) { mmc[0 ].gpio_wp = -EINVAL ; }else if ((omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C1_3 ) || (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C4 )) {
@@ -275,11 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev,* high / others active low) * DVI reset GPIO is different between beagle revisions */ -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { - usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +if (cpu_is_omap3630 ()) { beagle_dvi_device.reset_gpio =129 ;/* -* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 1 on xM controls the TFP410's enable line (active low) * gpio + 2 control varies depending on the board rev as below: * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (DVI, serial, led blocks)
@@ -295,7 +301,6 @@ static int beagle_twl_gpio_setup(struct device *dev,pr_err ("%s: unable to configure DVI_LDO_EN\n" , __func__); }else { - usb_pwr_level =GPIOF_OUT_INIT_LOW ; beagle_dvi_device.reset_gpio =170 ;/* * REVISIT: need ehci-omap hooks for external VBUS
@@ -305,6 +310,12 @@ static int beagle_twl_gpio_setup(struct device *dev,pr_err ("%s: unable to configure EHCI_nOC\n" , __func__); } +/* Only xM rev A and xM rev B use active high */ +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) + usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +else + usb_pwr_level =GPIOF_OUT_INIT_LOW ; +gpio_request_one (gpio +TWL4030_GPIO_MAX , usb_pwr_level,"nEN_USB_PWR" );/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
@@ -525,7 +536,7 @@ static void __init beagle_opp_init(void) }/* Custom OPP enabled for XM */ -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) {struct omap_hwmod *mh =omap_hwmod_lookup ("mpu" );struct omap_hwmod *dh =omap_hwmod_lookup ("iva" );struct device *dev;
@@ -565,6 +576,10 @@ static void __init omap3_beagle_init(void)omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap3_beagle_init_rev ();omap3_beagle_i2c_init (); + +if (cpu_is_omap3630 ()) + gpio_buttons[0 ].gpio =4 ; +platform_add_devices (omap3_beagle_devices,ARRAY_SIZE (omap3_beagle_devices));omap_display_init (&beagle_dss_data);
Signature · 1 line
1.6.6.1
PATCH 1/1 OMAP3: beagle: add support for beagleboard xM revision C
That was meant to say '[PATCH v3]', sorry about that.
Op 27 mei 2011, om 15:32 heeft Koen Kooi het volgende geschreven:
Quoted 128 lines
The USB enable GPIO has been inverted again and the USER button moved
Signed-off-by Koen Kooi <[email protected]>---
Changes since v2:
* fixed indentation error checkpatch missedChanges since v1:
* updated against mainline to take Igors gpio cleanup into account
* removed xM rev B checks, no boards with that ID were ever produced, rev B boards show up as rev A
* double checked whitespace:total: 0 errors, 0 warnings, 89 lines checked
patches/0001-OMAP3-beagle-add-support-for-beagleboard-xM-revision.patchhas no obvious style problems and is ready for submission.
arch/arm/mach-omap2/board-omap3beagle.c| 31 +++++++++++++++++++++++--------1 files changed, 23 insertions(+), 8 deletions(-)arch/arm/mach-omap2/board-omap3beagle.c +23
-8@@ -63,7 +63,9 @@* AXBX = GPIO173, GPIO172, GPIO171: 1 1 1 * C1_3 = GPIO173, GPIO172, GPIO171: 1 1 0 * C4 = GPIO173, GPIO172, GPIO171: 1 0 1 -* XM = GPIO173, GPIO172, GPIO171: 0 0 0 +* XMA = GPIO173, GPIO172, GPIO171: 0 0 0 +* XMB = GPIO173, GPIO172, GPIO171: 0 0 1 - unused +* XMC = GPIO173, GPIO172, GPIO171: 0 1 0 */ enum {OMAP3BEAGLE_BOARD_UNKN =0 ,@@ -71,6 +73,7 @@ enum {OMAP3BEAGLE_BOARD_C1_3 ,OMAP3BEAGLE_BOARD_C4 ,OMAP3BEAGLE_BOARD_XM , + OMAP3BEAGLE_BOARD_XMC, };static u8 omap3_beagle_version;@@ -123,9 +126,13 @@ static void __init omap3_beagle_init_rev(void)printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); omap3_beagle_version =OMAP3BEAGLE_BOARD_XM ;break ; +case 2 : +printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; +break ;default :printk (KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n" , beagle_rev); - omap3_beagle_version =OMAP3BEAGLE_BOARD_UNKN ; + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; } }@@ -253,7 +260,7 @@ static int beagle_twl_gpio_setup(struct device *dev, {int r, usb_pwr_level; -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) { mmc[0 ].gpio_wp = -EINVAL ; }else if ((omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C1_3 ) || (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C4 )) {@@ -275,11 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev,* high / others active low) * DVI reset GPIO is different between beagle revisions */ -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { - usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +if (cpu_is_omap3630 ()) { beagle_dvi_device.reset_gpio =129 ;/* -* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 1 on xM controls the TFP410's enable line (active low) * gpio + 2 control varies depending on the board rev as below: * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (DVI, serial, led blocks) @@ -295,7 +301,6 @@ static int beagle_twl_gpio_setup(struct device *dev,pr_err ("%s: unable to configure DVI_LDO_EN\n" , __func__); }else { - usb_pwr_level =GPIOF_OUT_INIT_LOW ; beagle_dvi_device.reset_gpio =170 ;/* * REVISIT: need ehci-omap hooks for external VBUS @@ -305,6 +310,12 @@ static int beagle_twl_gpio_setup(struct device *dev,pr_err ("%s: unable to configure EHCI_nOC\n" , __func__); } +/* Only xM rev A and xM rev B use active high */ +if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) + usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +else + usb_pwr_level =GPIOF_OUT_INIT_LOW ; +gpio_request_one (gpio +TWL4030_GPIO_MAX , usb_pwr_level,"nEN_USB_PWR" );/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ @@ -525,7 +536,7 @@ static void __init beagle_opp_init(void) }/* Custom OPP enabled for XM */ -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) {struct omap_hwmod *mh =omap_hwmod_lookup ("mpu" );struct omap_hwmod *dh =omap_hwmod_lookup ("iva" );struct device *dev;@@ -565,6 +576,10 @@ static void __init omap3_beagle_init(void)omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap3_beagle_init_rev ();omap3_beagle_i2c_init (); + +if (cpu_is_omap3630 ()) + gpio_buttons[0 ].gpio =4 ; +platform_add_devices (omap3_beagle_devices,ARRAY_SIZE (omap3_beagle_devices));omap_display_init (&beagle_dss_data);Signature · 6 lines
1.6.6.1 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Tony Lindgren
maintainerPATCH 1/1 OMAP3: beagle: add support for beagleboard xM revision C
In reply to Koen KooiHi,
Quoted 5 lines · Koen Kooi
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -123,9 +126,13 @@ static void __init omap3_beagle_init_rev(void)printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); omap3_beagle_version =OMAP3BEAGLE_BOARD_XM ;break ;
arch/arm/mach-omap2/board-omap3beagle.c static void __init omap3_beagle_init_rev(void) · line 137
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +5
-1+case 2 : +printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; +break ;default :printk (KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n" , beagle_rev); - omap3_beagle_version =OMAP3BEAGLE_BOARD_UNKN ; + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; } }
Maybe just set up static struct omap3_beagle that contains the various things to initialize. Then initialize it in omap3_beagle_init_rev above.
Otherwise we'll end up adding more and more omap3_beagle_get_rev and cpu_is_omap tests to this file and it will become hard to maintain.
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 266
Quoted 9 lines
arch/arm/mach-omap2/board-omap3beagle.c +1
-1@@ -253,7 +260,7 @@ static int beagle_twl_gpio_setup(struct device *dev, {int r, usb_pwr_level; -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) { mmc[0 ].gpio_wp = -EINVAL ; }else if ((omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C1_3 ) || (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C4 )) {
This would become:
mmc[0].gpio_wp = beagle.gpio_wp;
Quoted 4 lines
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -275,11 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev,* high / others active low) * DVI reset GPIO is different between beagle revisions */
arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 291
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +2
-3-if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { - usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +if (cpu_is_omap3630 ()) { beagle_dvi_device.reset_gpio =129 ;/* -* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 1 on xM controls the TFP410's enable line (active low) * gpio + 2 control varies depending on the board rev as below: * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (DVI, serial, led blocks)
This would be just:
usb_pwr_level = beagle.usb_pwr_level;
And so on.
Regards,
Tony
PATCH 1/1 OMAP3: beagle: add support for beagleboard xM revision C
Op 30 mei 2011, om 16:34 heeft Tony Lindgren het volgende geschreven:
Quoted 57 lines
Hi,
Quoted 5 lines · Koen Kooi
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -123,9 +126,13 @@ static void __init omap3_beagle_init_rev(void)printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); omap3_beagle_version =OMAP3BEAGLE_BOARD_XM ;break ;arch/arm/mach-omap2/board-omap3beagle.c static void __init omap3_beagle_init_rev(void) · line 137
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +5
-1+case 2 : +printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; +break ;default :printk (KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n" , beagle_rev); - omap3_beagle_version =OMAP3BEAGLE_BOARD_UNKN ; + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; } }Maybe just set up static struct
omap3_beaglethat contains the various things to initialize. Then initialize it inomap3_beagle_init_revabove.Otherwise we'll end up adding more and more
omap3_beagle_get_revandcpu_is_omaptests to this file and it will become hard to maintain.arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 266
Quoted 9 lines
arch/arm/mach-omap2/board-omap3beagle.c +1
-1@@ -253,7 +260,7 @@ static int beagle_twl_gpio_setup(struct device *dev, {int r, usb_pwr_level; -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) { mmc[0 ].gpio_wp = -EINVAL ; }else if ((omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C1_3 ) || (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C4 )) {This would become:
mmc[0].gpio_wp = beagle.gpio_wp;Quoted 4 lines
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -275,11 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev,* high / others active low) * DVI reset GPIO is different between beagle revisions */ arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 291
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +2
-3-if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { - usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +if (cpu_is_omap3630 ()) { beagle_dvi_device.reset_gpio =129 ;/* -* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 1 on xM controls the TFP410's enable line (active low) * gpio + 2 control varies depending on the board rev as below: * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (DVI, serial, led blocks) This would be just:
Quoted 3 lines
usb_pwr_level = beagle.usb_pwr_level;And so on.
Tony, thanks for the feedback! The change you want is a bit too much for my C knowledge, but Joel will but picking it up from here.
regards,
Koen
Tony Lindgren
maintainerPATCH 1/1 OMAP3: beagle: add support for beagleboard xM revision C
Quoted 60 lines · Koen Kooi
Op 30 mei 2011, om 16:34 heeft Tony Lindgren het volgende geschreven:
Quoted 57 lines
Hi,
Quoted 5 lines · Koen Kooi
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -123,9 +126,13 @@ static void __init omap3_beagle_init_rev(void)printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); omap3_beagle_version =OMAP3BEAGLE_BOARD_XM ;break ;arch/arm/mach-omap2/board-omap3beagle.c static void __init omap3_beagle_init_rev(void) · line 137
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +5
-1+case 2 : +printk (KERN_INFO "OMAP3 Beagle Rev: xM\n" ); + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; +break ;default :printk (KERN_INFO "OMAP3 Beagle Rev: unknown %hd\n" , beagle_rev); - omap3_beagle_version =OMAP3BEAGLE_BOARD_UNKN ; + omap3_beagle_version =OMAP3BEAGLE_BOARD_XMC ; } }Maybe just set up static struct
omap3_beaglethat contains the various things to initialize. Then initialize it inomap3_beagle_init_revabove.Otherwise we'll end up adding more and more
omap3_beagle_get_revandcpu_is_omaptests to this file and it will become hard to maintain.arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 266
Quoted 9 lines
arch/arm/mach-omap2/board-omap3beagle.c +1
-1@@ -253,7 +260,7 @@ static int beagle_twl_gpio_setup(struct device *dev, {int r, usb_pwr_level; -if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { +if (cpu_is_omap3630 ()) { mmc[0 ].gpio_wp = -EINVAL ; }else if ((omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C1_3 ) || (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_C4 )) {This would become:
mmc[0].gpio_wp = beagle.gpio_wp;Quoted 4 lines
arch/arm/mach-omap2/board-omap3beagle.c +0
-0@@ -275,11 +282,10 @@ static int beagle_twl_gpio_setup(struct device *dev,* high / others active low) * DVI reset GPIO is different between beagle revisions */ arch/arm/mach-omap2/board-omap3beagle.c static int beagle_twl_gpio_setup(struct device *dev, · line 291
Quoted 10 lines
arch/arm/mach-omap2/board-omap3beagle.c +2
-3-if (omap3_beagle_get_rev () ==OMAP3BEAGLE_BOARD_XM ) { - usb_pwr_level =GPIOF_OUT_INIT_HIGH ; +if (cpu_is_omap3630 ()) { beagle_dvi_device.reset_gpio =129 ;/* -* gpio + 1 on Xm controls the TFP410's enable line (active low) +* gpio + 1 on xM controls the TFP410's enable line (active low) * gpio + 2 control varies depending on the board rev as below: * P7/P8 revisions(prototype): Camera EN * A2+ revisions (production): LDO (DVI, serial, led blocks) This would be just:
Quoted 5 lines
Quoted 3 lines
usb_pwr_level = beagle.usb_pwr_level;And so on.
Tony, thanks for the feedback! The change you want is a bit too much for my C knowledge, but Joel will but picking it up from here.
Hmm, not much there to it actually :) I'm sure you too can do it little help from Joel.
Tony