[PATCH 3/4] mmc: omap_hsmmc: Use GPIO offset for external GPIO chips
Rajendra Nayak
rnayak at ti.com
Fri Mar 2 01:02:52 EST 2012
On Friday 02 March 2012 12:25 AM, Tony Lindgren wrote:
> We can now remove the setting of GPIO pins with callbacks
> as the drivers can access a GPIO offset on a named gpio_chip
> directly with gpio_find_by_chip_name().
>
> Cc: Rajendra Nayak<rnayak at ti.com>
> Signed-off-by: Tony Lindgren<tony at atomide.com>
> ---
> arch/arm/mach-omap2/board-3430sdp.c | 13 ++++---------
> arch/arm/mach-omap2/board-cm-t35.c | 8 ++------
> arch/arm/mach-omap2/board-devkit8000.c | 7 ++-----
> arch/arm/mach-omap2/board-igep0020.c | 8 ++------
> arch/arm/mach-omap2/board-omap3beagle.c | 9 +++------
> arch/arm/mach-omap2/board-omap3evm.c | 8 ++------
> arch/arm/mach-omap2/board-omap3pandora.c | 13 ++++---------
> arch/arm/mach-omap2/board-omap3stalker.c | 8 ++------
> arch/arm/mach-omap2/board-omap3touchbook.c | 7 ++-----
> arch/arm/mach-omap2/board-zoom-peripherals.c | 7 ++-----
> 10 files changed, 25 insertions(+), 63 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
> index da75f23..238b95a 100644
> --- a/arch/arm/mach-omap2/board-3430sdp.c
> +++ b/arch/arm/mach-omap2/board-3430sdp.c
> @@ -231,14 +231,16 @@ static struct omap2_hsmmc_info mmc[] = {
> * so the SIM card isn't used; else 4 bits.
> */
> .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
> .gpio_wp = 4,
> - .deferred = true,
Shouldn't this patch completely get rid of all the 'deferred'
infrastructure that was put in place, including the
omap_hsmmc_late_init() function, since there is no need for it
anymore?
> },
[..]
> /*
> * Most GPIOs are for USB OTG. Some are mostly sent to
> * the P2 connector; notably LEDA for the LCD backlight.
> diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
> index ace466b..b387264 100644
> --- a/arch/arm/mach-omap2/board-omap3pandora.c
> +++ b/arch/arm/mach-omap2/board-omap3pandora.c
> @@ -270,19 +270,19 @@ static struct omap2_hsmmc_info omap3pandora_mmc[] = {
> {
> .mmc = 1,
> .caps = MMC_CAP_4_BIT_DATA,
> - .gpio_cd = -EINVAL,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
> .gpio_wp = 126,
> .ext_clock = 0,
> - .deferred = true,
> },
> {
> .mmc = 2,
> .caps = MMC_CAP_4_BIT_DATA,
> - .gpio_cd = -EINVAL,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
This one should be gpio_cd = 1,
regards,
Rajendra
> .gpio_wp = 127,
> .ext_clock = 1,
> .transceiver = true,
> - .deferred = true,
> },
> {
> .mmc = 3,
> @@ -299,11 +299,6 @@ static int omap3pandora_twl_gpio_setup(struct device *dev,
> {
> int ret, gpio_32khz;
>
> - /* gpio + {0,1} is "mmc{0,1}_cd" (input/IRQ) */
> - omap3pandora_mmc[0].gpio_cd = gpio + 0;
> - omap3pandora_mmc[1].gpio_cd = gpio + 1;
> - omap_hsmmc_late_init(omap3pandora_mmc);
> -
> /* gpio + 13 drives 32kHz buffer for wifi module */
> gpio_32khz = gpio + 13;
> ret = gpio_request_one(gpio_32khz, GPIOF_OUT_INIT_HIGH, "wifi 32kHz");
> diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
> index 6410043..6d0deb9 100644
> --- a/arch/arm/mach-omap2/board-omap3stalker.c
> +++ b/arch/arm/mach-omap2/board-omap3stalker.c
> @@ -211,9 +211,9 @@ static struct omap2_hsmmc_info mmc[] = {
> {
> .mmc = 1,
> .caps = MMC_CAP_4_BIT_DATA,
> - .gpio_cd = -EINVAL,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
> .gpio_wp = 23,
> - .deferred = true,
> },
> {} /* Terminator */
> };
> @@ -282,10 +282,6 @@ static int
> omap3stalker_twl_gpio_setup(struct device *dev,
> unsigned gpio, unsigned ngpio)
> {
> - /* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - mmc[0].gpio_cd = gpio + 0;
> - omap_hsmmc_late_init(mmc);
> -
> /*
> * Most GPIOs are for USB OTG. Some are mostly sent to
> * the P2 connector; notably LEDA for the LCD backlight.
> diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
> index 8842e04..cf270b8 100644
> --- a/arch/arm/mach-omap2/board-omap3touchbook.c
> +++ b/arch/arm/mach-omap2/board-omap3touchbook.c
> @@ -99,8 +99,9 @@ static struct omap2_hsmmc_info mmc[] = {
> {
> .mmc = 1,
> .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
> .gpio_wp = 29,
> - .deferred = true,
> },
> {} /* Terminator */
> };
> @@ -118,10 +119,6 @@ static struct gpio_led gpio_leds[];
> static int touchbook_twl_gpio_setup(struct device *dev,
> unsigned gpio, unsigned ngpio)
> {
> - /* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - mmc[0].gpio_cd = gpio + 0;
> - omap_hsmmc_late_init(mmc);
> -
> /* REVISIT: need ehci-omap hooks for external VBUS
> * power switch and overcurrent detect
> */
> diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c
> index 3d39cdb..604df86 100644
> --- a/arch/arm/mach-omap2/board-zoom-peripherals.c
> +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
> @@ -203,9 +203,10 @@ static struct omap2_hsmmc_info mmc[] = {
> .name = "external",
> .mmc = 1,
> .caps = MMC_CAP_4_BIT_DATA,
> + .gpiochip_cd = "twl4030_gpio",
> + .gpio_cd = 0, /* mmc0_cd offset in twl4030 */
> .gpio_wp = -EINVAL,
> .power_saving = true,
> - .deferred = true,
> },
> {
> .name = "internal",
> @@ -232,10 +233,6 @@ static int zoom_twl_gpio_setup(struct device *dev,
> {
> int ret;
>
> - /* gpio + 0 is "mmc0_cd" (input/IRQ) */
> - mmc[0].gpio_cd = gpio + 0;
> - omap_hsmmc_late_init(mmc);
> -
> ret = gpio_request_one(LCD_PANEL_ENABLE_GPIO, GPIOF_OUT_INIT_LOW,
> "lcd enable");
> if (ret)
>
> --
> 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
More information about the linux-arm-kernel
mailing list