Commit 85c0074e authored by David Brownell's avatar David Brownell Committed by Tony Lindgren

beagle: two more GPIOs

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.)
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent d4f127fe
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include <mach/common.h> #include <mach/common.h>
#include <mach/gpmc.h> #include <mach/gpmc.h>
#include <mach/nand.h> #include <mach/nand.h>
#include <mach/mux.h>
#define GPMC_CS0_BASE 0x60 #define GPMC_CS0_BASE 0x60
...@@ -291,7 +292,17 @@ static void __init omap3_beagle_init(void) ...@@ -291,7 +292,17 @@ static void __init omap3_beagle_init(void)
omap_board_config = omap3_beagle_config; omap_board_config = omap3_beagle_config;
omap_board_config_size = ARRAY_SIZE(omap3_beagle_config); omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
omap_serial_init(); omap_serial_init();
omap_cfg_reg(AH8_34XX_GPIO29);
gpio_request(29, "mmc0_wp");
gpio_direction_input(29);
hsmmc_init(); 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_musb_init();
usb_ehci_init(); usb_ehci_init();
omap3beagle_flash_init(); omap3beagle_flash_init();
......
...@@ -416,6 +416,14 @@ MUX_CFG_34XX("AD2_3430_USB3FS_PHY_MM3_TXDAT", 0x188, ...@@ -416,6 +416,14 @@ MUX_CFG_34XX("AD2_3430_USB3FS_PHY_MM3_TXDAT", 0x188,
MUX_CFG_34XX("AC1_3430_USB3FS_PHY_MM3_TXEN_N", 0x18a, MUX_CFG_34XX("AC1_3430_USB3FS_PHY_MM3_TXEN_N", 0x18a,
OMAP34XX_MUX_MODE6 | OMAP34XX_PIN_OUTPUT) 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) #define OMAP34XX_PINS_SZ ARRAY_SIZE(omap34xx_pins)
......
...@@ -749,6 +749,14 @@ enum omap34xx_index { ...@@ -749,6 +749,14 @@ enum omap34xx_index {
AD2_3430_USB3FS_PHY_MM3_TXDAT, AD2_3430_USB3FS_PHY_MM3_TXDAT,
AC1_3430_USB3FS_PHY_MM3_TXEN_N, 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 { struct omap_mux_cfg {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment