hsmmc.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 deferred; /* mmc needs a deferred probe */
  18. int gpio_cd; /* or -EINVAL */
  19. int gpio_wp; /* or -EINVAL */
  20. char *name; /* or NULL for default */
  21. struct platform_device *pdev; /* mmc controller instance */
  22. int ocr_mask; /* temporary HACK */
  23. /* Remux (pad configuration) when powering on/off */
  24. void (*remux)(struct device *dev, int power_on);
  25. /* init some special card */
  26. void (*init_card)(struct mmc_card *card);
  27. };
  28. #if IS_ENABLED(CONFIG_MMC_OMAP_HS)
  29. void omap_hsmmc_init(struct omap2_hsmmc_info *);
  30. void omap_hsmmc_late_init(struct omap2_hsmmc_info *);
  31. #else
  32. static inline void omap_hsmmc_init(struct omap2_hsmmc_info *info)
  33. {
  34. }
  35. static inline void omap_hsmmc_late_init(struct omap2_hsmmc_info *info)
  36. {
  37. }
  38. #endif