sdhci-platform.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Copyright (c) 2006-2024 RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2024-08-16 zhujiale first version
  9. */
  10. #ifndef _DRIVERS_MMC_SDHCI_PLTFM_H
  11. #define _DRIVERS_MMC_SDHCI_PLTFM_H
  12. #include <rtthread.h>
  13. #include <drivers/core/dm.h>
  14. #include <drivers/ofw.h>
  15. #include <drivers/platform.h>
  16. #include <drivers/clk.h>
  17. #include "sdhci.h"
  18. struct sdhci_pltfm_data
  19. {
  20. const struct sdhci_ops *ops;
  21. unsigned int quirks;
  22. unsigned int quirks2;
  23. };
  24. struct sdhci_pltfm_host
  25. {
  26. struct rt_clk *clk;
  27. /* migrate from sdhci_of_host */
  28. unsigned int clock;
  29. rt_uint64_t xfer_mode_shadow;
  30. unsigned long private[];
  31. };
  32. void sdhci_get_property(struct rt_platform_device *pdev);
  33. static inline void sdhci_get_of_property(struct rt_platform_device *pdev)
  34. {
  35. return sdhci_get_property(pdev);
  36. }
  37. extern struct sdhci_host *sdhci_pltfm_init(struct rt_platform_device *pdev,
  38. const struct sdhci_pltfm_data *pdata,
  39. size_t priv_size);
  40. extern void sdhci_pltfm_free(struct rt_platform_device *pdev);
  41. extern int sdhci_pltfm_init_and_add_host(struct rt_platform_device *pdev,
  42. const struct sdhci_pltfm_data *pdata,
  43. size_t priv_size);
  44. extern void sdhci_pltfm_remove(struct rt_platform_device *pdev);
  45. extern unsigned int sdhci_pltfm_clk_get_max_clock(struct sdhci_host *host);
  46. static inline void *sdhci_pltfm_priv(struct sdhci_pltfm_host *host)
  47. {
  48. return host->private;
  49. }
  50. extern const struct dev_pm_ops sdhci_pltfm_pmops;
  51. static inline int sdhci_pltfm_suspend(struct rt_device *dev)
  52. {
  53. return 0;
  54. }
  55. static inline int sdhci_pltfm_resume(struct rt_device *dev)
  56. {
  57. return 0;
  58. }
  59. #endif