Lines Matching refs:mmc
59 struct omap_mmc_platform_data *mmc; member
79 struct omap_mmc_platform_data *mmc; in twl_mmc_card_detect() local
81 mmc = hsmmc[i].mmc; in twl_mmc_card_detect()
82 if (!mmc) in twl_mmc_card_detect()
84 if (irq != mmc->slots[0].card_detect_irq) in twl_mmc_card_detect()
88 return !gpio_get_value_cansleep(mmc->slots[0].switch_pin); in twl_mmc_card_detect()
95 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc_get_ro() local
98 return gpio_get_value_cansleep(mmc->slots[0].gpio_wp); in twl_mmc_get_ro()
106 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc_late_init() local
110 ret = gpio_request(mmc->slots[0].switch_pin, "mmc_cd"); in twl_mmc_late_init()
113 ret = gpio_direction_input(mmc->slots[0].switch_pin); in twl_mmc_late_init()
118 if (hsmmc[i].name == mmc->slots[0].name) { in twl_mmc_late_init()
119 hsmmc[i].mmc = mmc; in twl_mmc_late_init()
127 gpio_free(mmc->slots[0].switch_pin); in twl_mmc_late_init()
129 mmc->slots[0].card_detect_irq = 0; in twl_mmc_late_init()
130 mmc->slots[0].card_detect = NULL; in twl_mmc_late_init()
138 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc_cleanup() local
140 gpio_free(mmc->slots[0].switch_pin); in twl_mmc_cleanup()
147 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc_suspend() local
149 disable_irq(mmc->slots[0].card_detect_irq); in twl_mmc_suspend()
155 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc_resume() local
157 enable_irq(mmc->slots[0].card_detect_irq); in twl_mmc_resume()
243 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc1_set_power() local
255 if (mmc->slots[0].internal_clock) { in twl_mmc1_set_power()
299 struct omap_mmc_platform_data *mmc = dev->platform_data; in twl_mmc2_set_power() local
302 if (mmc->slots[0].internal_clock) { in twl_mmc2_set_power()
333 for (c = controllers; c->mmc; c++) { in twl4030_mmc_init()
334 struct twl_mmc_controller *twl = hsmmc + c->mmc - 1; in twl4030_mmc_init()
335 struct omap_mmc_platform_data *mmc = hsmmc_data[c->mmc - 1]; in twl4030_mmc_init() local
337 if (!c->mmc || c->mmc > nr_hsmmc) { in twl4030_mmc_init()
338 pr_debug("MMC%d: no such controller\n", c->mmc); in twl4030_mmc_init()
341 if (mmc) { in twl4030_mmc_init()
342 pr_debug("MMC%d: already configured\n", c->mmc); in twl4030_mmc_init()
346 mmc = kzalloc(sizeof(struct omap_mmc_platform_data), GFP_KERNEL); in twl4030_mmc_init()
347 if (!mmc) { in twl4030_mmc_init()
352 sprintf(twl->name, "mmc%islot%i", c->mmc, 1); in twl4030_mmc_init()
353 mmc->slots[0].name = twl->name; in twl4030_mmc_init()
354 mmc->nr_slots = 1; in twl4030_mmc_init()
355 mmc->slots[0].ocr_mask = MMC_VDD_165_195 | in twl4030_mmc_init()
359 mmc->slots[0].wires = c->wires; in twl4030_mmc_init()
360 mmc->slots[0].internal_clock = !c->ext_clock; in twl4030_mmc_init()
361 mmc->dma_mask = 0xffffffff; in twl4030_mmc_init()
365 mmc->init = twl_mmc_late_init; in twl4030_mmc_init()
366 mmc->cleanup = twl_mmc_cleanup; in twl4030_mmc_init()
367 mmc->suspend = twl_mmc_suspend; in twl4030_mmc_init()
368 mmc->resume = twl_mmc_resume; in twl4030_mmc_init()
370 mmc->slots[0].switch_pin = c->gpio_cd; in twl4030_mmc_init()
371 mmc->slots[0].card_detect_irq = gpio_to_irq(c->gpio_cd); in twl4030_mmc_init()
372 mmc->slots[0].card_detect = twl_mmc_card_detect; in twl4030_mmc_init()
374 mmc->slots[0].switch_pin = -EINVAL; in twl4030_mmc_init()
381 mmc->slots[0].gpio_wp = c->gpio_wp; in twl4030_mmc_init()
382 mmc->slots[0].get_ro = twl_mmc_get_ro; in twl4030_mmc_init()
384 mmc->slots[0].gpio_wp = -EINVAL; in twl4030_mmc_init()
391 switch (c->mmc) { in twl4030_mmc_init()
393 mmc->slots[0].set_power = twl_mmc1_set_power; in twl4030_mmc_init()
396 mmc->slots[0].set_power = twl_mmc2_set_power; in twl4030_mmc_init()
399 pr_err("MMC%d configuration not supported!\n", c->mmc); in twl4030_mmc_init()
402 hsmmc_data[c->mmc - 1] = mmc; in twl4030_mmc_init()