From: David Brownell <david-b@pacbell.net>
To: linux-omap@vger.kernel.org
Subject: [patch 2.6.27-omap-git+ 6/5] twl4030 MMC card detction
Date: Tue, 14 Oct 2008 12:01:43 -0700 [thread overview]
Message-ID: <200810141201.43612.david-b@pacbell.net> (raw)
In-Reply-To: <200810131259.50460.david-b@pacbell.net>
From: David Brownell <dbrownell@users.sourceforge.net>
Replace stubbed-out card-detect support for twl4030 GPIOs with
a simpler platform_data mechanism. As before, no current users.
Sanity tested by enabling this on Beagle; it booted OK with
root on MMC.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
---
drivers/gpio/twl4030-gpio.c | 52 +++++++++---------------------------------
include/linux/i2c/twl4030.h | 3 ++
2 files changed, 15 insertions(+), 40 deletions(-)
--- a/drivers/gpio/twl4030-gpio.c
+++ b/drivers/gpio/twl4030-gpio.c
@@ -46,8 +46,6 @@
* intended to support multiple hosts.
*
* There are also two LED pins used sometimes as output-only GPIOs.
- *
- * FIXME code currently only handles the first IRQ line.
*/
@@ -235,41 +233,6 @@ int twl4030_set_gpio_debounce(int gpio,
}
EXPORT_SYMBOL(twl4030_set_gpio_debounce);
-#if 0
-/*
- * Configure Card detect for GPIO pin on TWL4030
- *
- * This means: VMMC1 or VMMC2 is enabled or disabled based
- * on the status of GPIO-0 or GPIO-1 pins (respectively).
- */
-int twl4030_set_gpio_card_detect(int gpio, int enable)
-{
- u8 reg = 0;
- u8 msk = (1 << gpio);
- int ret = 0;
-
- /* Only GPIO 0 or 1 can be used for CD feature.. */
- if (unlikely((gpio >= TWL4030_GPIO_MAX)
- || !(gpio_usage_count & BIT(gpio))
- || (gpio >= TWL4030_GPIO_MAX_CD))) {
- return -EPERM;
- }
-
- mutex_lock(&gpio_lock);
- ret = gpio_twl4030_read(REG_GPIO_CTRL);
- if (ret >= 0) {
- if (enable)
- reg = (u8) (ret | msk);
- else
- reg = (u8) (ret & ~msk);
-
- ret = gpio_twl4030_write(REG_GPIO_CTRL, reg);
- }
- mutex_unlock(&gpio_lock);
- return ret;
-}
-#endif
-
/*----------------------------------------------------------------------*/
static int twl_request(struct gpio_chip *chip, unsigned offset)
@@ -317,9 +280,18 @@ static int twl_request(struct gpio_chip
}
/* on first use, turn GPIO module "on" */
- if (!gpio_usage_count)
- status = gpio_twl4030_write(REG_GPIO_CTRL,
- MASK_GPIO_CTRL_GPIO_ON);
+ if (!gpio_usage_count) {
+ struct twl4030_gpio_platform_data *pdata;
+ u8 value = MASK_GPIO_CTRL_GPIO_ON;
+
+ /* optionally have the first two GPIOs switch vMMC1
+ * and vMMC2 power supplies based on card presence.
+ */
+ pdata = chip->dev->platform_data;
+ value |= pdata->mmc_cd & 0x03;
+
+ status = gpio_twl4030_write(REG_GPIO_CTRL, value);
+ }
if (!status)
gpio_usage_count |= (0x1 << offset);
--- a/include/linux/i2c/twl4030.h
+++ b/include/linux/i2c/twl4030.h
@@ -231,6 +231,9 @@ struct twl4030_gpio_platform_data {
/* package the two LED signals as output-only GPIOs? */
bool use_leds;
+ /* gpio-n should control VMMC(n+1) if BIT(n) in mmc_cd is set */
+ u8 mmc_cd;
+
/* For gpio-N, bit (1 << N) in "pullups" is set if that pullup
* should be enabled. Else, if that bit is set in "pulldowns",
* that pulldown is enabled. Don't waste power by letting any
next prev parent reply other threads:[~2008-10-14 19:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-13 19:59 [patch 2.6.27-omap-git+ 0/5] twl4030 GPIO updates David Brownell
2008-10-14 19:01 ` David Brownell [this message]
2008-10-16 22:33 ` [patch 2.6.27-omap-git+ 6/5] twl4030 MMC card detction David Brownell
2008-10-16 21:26 ` [patch 2.6.27-omap-git+ 0/5] twl4030 GPIO updates Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200810141201.43612.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.