Subject: [PATCH 3/4] mmc: omap_hsmmc: Use GPIO offset for external GPIO chips

From: [email-masked] (Rajendra Nayak)
Date: Fri, 02 Mar 2012 11:32:52 +0530

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<[email-masked]>
> Signed-off-by: Tony Lindgren<[email-masked]>
> ---
>   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