Lines Matching full:card
8 * MMC card bus driver model
20 #include <linux/mmc/card.h>
25 #include "card.h"
35 struct mmc_card *card = mmc_dev_to_card(dev); in type_show() local
37 switch (card->type) { in type_show()
61 const struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_uevent() local
66 switch (card->type) { in mmc_bus_uevent()
89 if (mmc_card_sdio(card) || mmc_card_sd_combo(card)) { in mmc_bus_uevent()
91 card->cis.vendor, card->cis.device); in mmc_bus_uevent()
96 card->major_rev, card->minor_rev); in mmc_bus_uevent()
100 for (i = 0; i < card->num_info; i++) { in mmc_bus_uevent()
101 retval = add_uevent_var(env, "SDIO_INFO%u=%s", i+1, card->info[i]); in mmc_bus_uevent()
111 if (mmc_card_sdio(card)) in mmc_bus_uevent()
114 retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card)); in mmc_bus_uevent()
130 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_probe() local
132 return drv->probe(card); in mmc_bus_probe()
138 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_remove() local
140 drv->remove(card); in mmc_bus_remove()
146 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_shutdown() local
147 struct mmc_host *host = card->host; in mmc_bus_shutdown()
151 drv->shutdown(card); in mmc_bus_shutdown()
166 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_suspend() local
167 struct mmc_host *host = card->host; in mmc_bus_suspend()
183 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_bus_resume() local
184 struct mmc_host *host = card->host; in mmc_bus_resume()
189 pr_warn("%s: error %d during resume (card was removed?)\n", in mmc_bus_resume()
200 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_runtime_suspend() local
201 struct mmc_host *host = card->host; in mmc_runtime_suspend()
208 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_runtime_resume() local
209 struct mmc_host *host = card->host; in mmc_runtime_resume()
266 struct mmc_card *card = mmc_dev_to_card(dev); in mmc_release_card() local
268 sdio_free_common_cis(card); in mmc_release_card()
270 kfree(card->info); in mmc_release_card()
272 kfree(card); in mmc_release_card()
276 * Allocate and initialise a new MMC card structure.
280 struct mmc_card *card; in mmc_alloc_card() local
282 card = kzalloc_obj(struct mmc_card); in mmc_alloc_card()
283 if (!card) in mmc_alloc_card()
286 card->host = host; in mmc_alloc_card()
288 device_initialize(&card->dev); in mmc_alloc_card()
290 card->dev.parent = mmc_classdev(host); in mmc_alloc_card()
291 card->dev.bus = &mmc_bus_type; in mmc_alloc_card()
292 card->dev.release = mmc_release_card; in mmc_alloc_card()
293 card->dev.type = type; in mmc_alloc_card()
295 return card; in mmc_alloc_card()
299 * Register a new MMC card with the driver model.
301 int mmc_add_card(struct mmc_card *card) in mmc_add_card() argument
316 dev_set_name(&card->dev, "%s:%04x", mmc_hostname(card->host), card->rca); in mmc_add_card()
317 dev_set_removable(&card->dev, in mmc_add_card()
318 mmc_card_is_removable(card->host) ? in mmc_add_card()
321 switch (card->type) { in mmc_add_card()
327 if (mmc_card_blockaddr(card)) { in mmc_add_card()
328 if (mmc_card_ult_capacity(card)) in mmc_add_card()
330 else if (mmc_card_ext_capacity(card)) in mmc_add_card()
341 if (mmc_card_blockaddr(card)) in mmc_add_card()
349 if (mmc_card_hs(card)) in mmc_add_card()
351 else if (mmc_card_uhs(card)) in mmc_add_card()
353 else if (mmc_card_uhs2(card->host)) in mmc_add_card()
355 else if (mmc_card_ddr52(card)) in mmc_add_card()
357 else if (mmc_card_hs200(card)) in mmc_add_card()
359 else if (mmc_card_hs400es(card)) in mmc_add_card()
361 else if (mmc_card_hs400(card)) in mmc_add_card()
364 if (mmc_card_uhs(card) && in mmc_add_card()
365 (card->sd_bus_speed < ARRAY_SIZE(uhs_speeds))) in mmc_add_card()
366 uhs_bus_speed_mode = uhs_speeds[card->sd_bus_speed]; in mmc_add_card()
368 if (mmc_host_is_spi(card->host)) in mmc_add_card()
369 pr_info("%s: new %s%s card on SPI\n", in mmc_add_card()
370 mmc_hostname(card->host), speed_mode, type); in mmc_add_card()
372 pr_info("%s: new %s%s%s card at address %04x\n", in mmc_add_card()
373 mmc_hostname(card->host), speed_mode, in mmc_add_card()
374 uhs_bus_speed_mode, type, card->rca); in mmc_add_card()
376 mmc_add_card_debugfs(card); in mmc_add_card()
377 card->dev.of_node = mmc_of_find_child_device(card->host, 0); in mmc_add_card()
379 device_enable_async_suspend(&card->dev); in mmc_add_card()
381 ret = device_add(&card->dev); in mmc_add_card()
385 mmc_card_set_present(card); in mmc_add_card()
388 * Register for undervoltage notification if the card supports in mmc_add_card()
391 if (mmc_card_mmc(card) && in mmc_add_card()
392 card->ext_csd.power_off_notification == EXT_CSD_POWER_ON) in mmc_add_card()
393 mmc_regulator_register_undervoltage_notifier(card->host); in mmc_add_card()
399 * Unregister a new MMC card with the driver model, and
402 void mmc_remove_card(struct mmc_card *card) in mmc_remove_card() argument
404 struct mmc_host *host = card->host; in mmc_remove_card()
406 if (mmc_card_present(card)) in mmc_remove_card()
409 mmc_remove_card_debugfs(card); in mmc_remove_card()
411 if (mmc_card_present(card)) { in mmc_remove_card()
412 if (mmc_host_is_spi(card->host)) { in mmc_remove_card()
413 pr_info("%s: SPI card removed\n", in mmc_remove_card()
414 mmc_hostname(card->host)); in mmc_remove_card()
416 pr_info("%s: card %04x removed\n", in mmc_remove_card()
417 mmc_hostname(card->host), card->rca); in mmc_remove_card()
419 device_del(&card->dev); in mmc_remove_card()
420 of_node_put(card->dev.of_node); in mmc_remove_card()
428 put_device(&card->dev); in mmc_remove_card()