Hi,could you please fix your mailer btw for line wraps?
I'm trying to bring up a TI WL1271 wlan module connected to MMC2 controller of a TI OMAP 3530 processor.
I am unclear about the difference between the use of twl4030_hsmmc_info and omap_mmc_platform_data, to set the attributes and constraints for the MMC1 (connected to microSD card) and MMC2 (connected to WLAN module).
The beagleboard uses twl4030_mmc_init, which has a wrapper for omap_mmc_platform_data defined in mmc-twl4030.h.
The board-sholes-hsmmc.c doesn't use twl4030, but directly uses the omap_mmc_platform_data structure.
Example:
board-omap3beagle.c uses twl4030_mmc_init, which internally uses the following structure to define mmc properties.
static struct twl4030_hsmmc_info mmc[] = {
{
.mmc = 1,
.wires = 8,
.gpio_wp = -ENOSYS,
.gpio_cd = -ENOSYS,
.name = "MMC1 controller slot"
},
{
.mmc = 2,
.wires = 4,
.gpio_cd = -EINVAL,
.gpio_wp = -EINVAL,
// .transceiver = true,
.name = "MMC2 controller slot",
.ocr_mask = 0x00000080,
},
{} /* Terminator */
};
For board-sholes-hsmmc.c, it uses a omap_mmc_platform_data
static struct omap_mmc_platform_data mmc1_data = {
.nr_slots = 1,
.init = hsmmc_late_init,
.cleanup = hsmmc_cleanup,
#ifdef CONFIG_PM
.suspend = hsmmc_suspend,
.resume = hsmmc_resume,
#endif
.dma_mask = 0xffffffff,
.slots[0] = {
.wires = 8,
.set_power = hsmmc_set_power,
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34 |
MMC_VDD_165_195,
.name = "first slot",
/* we get car_detect_irq later */
.card_detect_irq = 0,
.card_detect = hsmmc_card_detect,
},
};