* David Brownell <david-b@xxxxxxxxxxx> [081007 01:23]: > From: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> > > Request two more GPIOs on Beagle: MMC write protect, DVI enable. > > Also define the first OMAP3 GPIO mux config symbols, with a new > naming convention. Examples: > > - GPIO42 is bidirectional, and uses external pull up/down (if any); > - GPIO42_UP is bidirectional, with an internal pullup; > - GPIO42_DOWN is bidirectional, with an internal pulldown. > - GPIO42_OUT is output-only, and needs no pullup or pulldown. > > All of those would be fully functional through the standard GPIO > interface as well as the legacy OMAP-only one, except GPIO42_OUT > which won't let you read the actual pin value after setting it. > > There's no special off-mode support for these particular pins; > on Beagle they have external pullups or pulldowns. > > (OMAP2 can use this naming convention too, except that since it > has no input-enable the "_OUT" convention can't be used there.) Pushing. These we can send to mainline with the hsmmc patches. Tony > Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> > --- > REFRESHED against 2.6.27-rc8-omap-git as of today ... > > arch/arm/mach-omap2/board-omap3beagle.c | 11 +++++++++++ > arch/arm/mach-omap2/mux.c | 8 ++++++++ > arch/arm/plat-omap/include/mach/mux.h | 8 ++++++++ > 3 files changed, 27 insertions(+) > > --- a/arch/arm/mach-omap2/board-omap3beagle.c > +++ b/arch/arm/mach-omap2/board-omap3beagle.c > @@ -43,6 +43,7 @@ > #include <mach/common.h> > #include <mach/gpmc.h> > #include <mach/nand.h> > +#include <mach/mux.h> > > > #define GPMC_CS0_BASE 0x60 > @@ -291,7 +292,17 @@ static void __init omap3_beagle_init(voi > omap_board_config = omap3_beagle_config; > omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); > omap_serial_init(); > + > + omap_cfg_reg(AH8_34XX_GPIO29); > + gpio_request(29, "mmc0_wp"); > + gpio_direction_input(29); > hsmmc_init(); > + > + omap_cfg_reg(J25_34XX_GPIO170); > + gpio_request(170, "DVI_nPD"); > + /* REVISIT leave DVI powered down until it's needed ... */ > + gpio_direction_output(170, true); > + > usb_musb_init(); > usb_ehci_init(); > omap3beagle_flash_init(); > --- a/arch/arm/mach-omap2/mux.c > +++ b/arch/arm/mach-omap2/mux.c > @@ -416,6 +416,14 @@ MUX_CFG_34XX("AD2_3430_USB3FS_PHY_MM3_TX > MUX_CFG_34XX("AC1_3430_USB3FS_PHY_MM3_TXEN_N", 0x18a, > OMAP34XX_MUX_MODE6 | OMAP34XX_PIN_OUTPUT) > > + > +/* 34XX GPIO - bidirectional, unless the name has an "_OUT" suffix. > + * No internal pullup/pulldown without "_UP" or "_DOWN" suffix. > + */ > +MUX_CFG_34XX("AH8_34XX_GPIO29", 0x5fa, > + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT) > +MUX_CFG_34XX("J25_34XX_GPIO170", 0x1c6, > + OMAP34XX_MUX_MODE4 | OMAP34XX_PIN_INPUT) > }; > > #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins) > --- a/arch/arm/plat-omap/include/mach/mux.h > +++ b/arch/arm/plat-omap/include/mach/mux.h > @@ -749,6 +749,14 @@ enum omap34xx_index { > AD2_3430_USB3FS_PHY_MM3_TXDAT, > AC1_3430_USB3FS_PHY_MM3_TXEN_N, > > + /* 34xx GPIO > + * - normally these are bidirectional, no internal pullup/pulldown > + * - "_UP" suffix (GPIO3_UP) if internal pullup is configured > + * - "_DOWN" suffix (GPIO3_DOWN) with internal pulldown > + * - "_OUT" suffix (GPIO3_OUT) for output-only pins (unlike 24xx) > + */ > + AH8_34XX_GPIO29, > + J25_34XX_GPIO170, > }; > > struct omap_mux_cfg { > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html