Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d75e98b authored by Adrian Hunter's avatar Adrian Hunter Committed by Tony Lindgren
Browse files

ARM: OMAP3: mmc-twl4030 add cover switch



Allow a cover switch to be used to cause a rescan of the
MMC slot.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@nokia.com>
Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 034ae7b4
Loading
Loading
Loading
Loading
+12 −1
Original line number Original line Diff line number Diff line
@@ -100,6 +100,14 @@ static int twl_mmc_get_ro(struct device *dev, int slot)
	return gpio_get_value_cansleep(mmc->slots[0].gpio_wp);
	return gpio_get_value_cansleep(mmc->slots[0].gpio_wp);
}
}


static int twl_mmc_get_cover_state(struct device *dev, int slot)
{
	struct omap_mmc_platform_data *mmc = dev->platform_data;

	/* NOTE: assumes card detect signal is active-low */
	return !gpio_get_value_cansleep(mmc->slots[0].switch_pin);
}

/*
/*
 * MMC Slot Initialization.
 * MMC Slot Initialization.
 */
 */
@@ -411,6 +419,9 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers)


			mmc->slots[0].switch_pin = c->gpio_cd;
			mmc->slots[0].switch_pin = c->gpio_cd;
			mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd);
			mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd);
			if (c->cover_only)
				mmc->slots[0].get_cover_state = twl_mmc_get_cover_state;
			else
				mmc->slots[0].card_detect = twl_mmc_card_detect;
				mmc->slots[0].card_detect = twl_mmc_card_detect;
		} else
		} else
			mmc->slots[0].switch_pin = -EINVAL;
			mmc->slots[0].switch_pin = -EINVAL;
+1 −0
Original line number Original line Diff line number Diff line
@@ -11,6 +11,7 @@ struct twl4030_hsmmc_info {
	u8	wires;		/* 1/4/8 wires */
	u8	wires;		/* 1/4/8 wires */
	bool	transceiver;	/* MMC-2 option */
	bool	transceiver;	/* MMC-2 option */
	bool	ext_clock;	/* use external pin for input clock */
	bool	ext_clock;	/* use external pin for input clock */
	bool	cover_only;	/* No card detect - just cover switch */
	int	gpio_cd;	/* or -EINVAL */
	int	gpio_cd;	/* or -EINVAL */
	int	gpio_wp;	/* or -EINVAL */
	int	gpio_wp;	/* or -EINVAL */
	struct device *dev;	/* returned: pointer to mmc adapter */
	struct device *dev;	/* returned: pointer to mmc adapter */