omap: pandora: pass wl1251 information to SDIO core
Subsystems (4)
PATCH 46/177 omap: pandora: pass wl1251 information to SDIO core
From: Grazvydas Ignotas <[email protected]>
Pandora has TI WL1251 attached on MMC3, which is non-standard SDIO chip. Make use MMC_QUIRK_NONSTD_SDIO to tell SDIO core about it.
Signed-off-by Grazvydas Ignotas <[email protected]>
Cc Adrian Hunter <[email protected]>
Cc Tony Lindgren <[email protected]>
Cc Bob Copeland <[email protected]>
Cc Kalle Valo <[email protected]>
Cc Madhusudhan Chikkature <[email protected]>
Cc Kishore Kadiyala <[email protected]>
Cc Russell King <[email protected]>
Cc <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
arch/arm/mach-omap2/board-omap3pandora.c | 16 ++++++++++++++++ arch/arm/mach-omap2/hsmmc.c | 1 + arch/arm/mach-omap2/hsmmc.h | 4 ++++ 3 files changed, 21 insertions(+)
arch/arm/mach-omap2/board-omap3pandora.c renamed from arch/arm/mach-omap2/board-omap3pandora.c~omap-pandora-pass-wl1251-information-to-sdio-core +16 -0
@@ -32,6 +32,7 @@#include <linux/input.h> #include <linux/input/matrix_keypad.h> #include <linux/gpio_keys.h> +#include <linux/mmc/card.h> #include <asm/mach-types.h> #include <asm/mach/arch.h>
@@ -258,6 +259,20 @@ static struct platform_device pandora_ds }, }; +static void pandora_wl1251_init_card (struct mmc_card *card) +{ +/* +* We have TI wl1251 attached to MMC3. Pass this information to +* SDIO core because it can't be probed by normal methods. +*/ + card->quirks |=MMC_QUIRK_NONSTD_SDIO ; + card->cccr.wide_bus =1 ; + card->cis.vendor =0x104c ; + card->cis.device =0x9066 ; + card->cis.blksize =512 ; + card->cis.max_dtr =20000000 ; +} +static struct omap2_hsmmc_info omap3pandora_mmc[] = { { .mmc =1 ,
@@ -279,6 +294,7 @@ static struct omap2_hsmmc_info omap3pand .wires = 4, .gpio_cd = -EINVAL, .gpio_wp = -EINVAL, + .init_card = pandora_wl1251_init_card, }, {}/* Terminator */ };
arch/arm/mach-omap2/hsmmc.c renamed from arch/arm/mach-omap2/hsmmc.c~omap-pandora-pass-wl1251-information-to-sdio-core +1 -0
@@ -268,6 +268,7 @@ void __init omap2_hsmmc_init(struct omap mmc->slots[0 ].gpio_wp = c->gpio_wp; mmc->slots[0 ].remux = c->remux; + mmc->slots[0 ].init_card = c->init_card;if (c->cover_only) mmc->slots[0 ].cover =1 ;
arch/arm/mach-omap2/hsmmc.h renamed from arch/arm/mach-omap2/hsmmc.h~omap-pandora-pass-wl1251-information-to-sdio-core +4 -0
@@ -6,6 +6,8 @@* published by the Free Software Foundation. */ +struct mmc_card ; +struct omap2_hsmmc_info {u8 mmc;/* controller 1/2/3 */ u8 wires;/* 1/4/8 wires */
@@ -23,6 +25,8 @@ struct omap2_hsmmc_info {int ocr_mask;/* temporary HACK */ /* Remux (pad configuation) when powering on/off */ void (*remux)(struct device *dev,int slot,int power_on); +/* init some special card */ +void (*init_card)(struct mmc_card *card); };#if defined(CONFIG_MMC_OMAP_HS ) || defined(CONFIG_MMC_OMAP_HS_MODULE )
_