hsmmc.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * MMC definitions for OMAP2
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. struct mmc_card;
  9. struct omap2_hsmmc_info {
  10. u8 mmc; /* controller 1/2/3 */
  11. u32 caps; /* 4/8 wires and any additional host
  12. * capabilities OR'd (ref. linux/mmc/host.h) */
  13. bool transceiver; /* MMC-2 option */
  14. bool ext_clock; /* use external pin for input clock */
  15. bool cover_only; /* No card detect - just cover switch */
  16. bool nonremovable; /* Nonremovable e.g. eMMC */
  17. bool power_saving; /* Try to sleep or power off when possible */
  18. bool no_off; /* power_saving and power is not to go off */
  19. bool vcc_aux_disable_is_sleep; /* Regulator off remapped to sleep */
  20. int gpio_cd; /* or -EINVAL */
  21. int gpio_wp; /* or -EINVAL */
  22. char *name; /* or NULL for default */
  23. struct device *dev; /* returned: pointer to mmc adapter */
  24. int ocr_mask; /* temporary HACK */
  25. /* Remux (pad configuration) when powering on/off */
  26. void (*remux)(struct device *dev, int slot, int power_on);
  27. /* init some special card */
  28. void (*init_card)(struct mmc_card *card);
  29. };
  30. #if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
  31. void omap2_hsmmc_init(struct omap2_hsmmc_info *);
  32. #else
  33. static inline void omap2_hsmmc_init(struct omap2_hsmmc_info *info)
  34. {
  35. }
  36. #endif