dev_sdhci_dm.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 __DEV_SDHCI_DM_H__
  11. #define __DEV_SDHCI_DM_H__
  12. #include <rtthread.h>
  13. #include <rtdevice.h>
  14. struct rt_sdhci_pltfm_data
  15. {
  16. const struct rt_sdhci_ops *ops;
  17. rt_uint32_t quirks;
  18. rt_uint32_t quirks2;
  19. };
  20. struct rt_sdhci_pltfm_host
  21. {
  22. struct rt_clk *clk;
  23. rt_uint32_t clock;
  24. rt_uint16_t xfer_mode_shadow;
  25. rt_ubase_t private[];
  26. };
  27. void rt_sdhci_get_property(struct rt_platform_device *pdev);
  28. rt_inline void rt_sdhci_get_of_property(struct rt_platform_device *pdev)
  29. {
  30. return rt_sdhci_get_property(pdev);
  31. }
  32. extern struct rt_sdhci_host *rt_sdhci_pltfm_init(struct rt_platform_device *pdev,
  33. const struct rt_sdhci_pltfm_data *pdata,
  34. rt_size_t priv_size);
  35. extern void rt_sdhci_pltfm_free(struct rt_platform_device *pdev);
  36. extern rt_err_t rt_sdhci_pltfm_init_and_add_host(struct rt_platform_device *pdev,
  37. const struct rt_sdhci_pltfm_data *pdata,
  38. rt_size_t priv_size);
  39. extern rt_err_t rt_sdhci_pltfm_remove(struct rt_platform_device *pdev);
  40. extern rt_uint32_t rt_sdhci_pltfm_clk_get_max_clock(struct rt_sdhci_host *host);
  41. rt_inline void *rt_sdhci_pltfm_priv(struct rt_sdhci_pltfm_host *host)
  42. {
  43. return host->private;
  44. }
  45. rt_inline rt_err_t rt_sdhci_pltfm_suspend(struct rt_device *dev)
  46. {
  47. return RT_EOK;
  48. }
  49. rt_inline rt_err_t rt_sdhci_pltfm_resume(struct rt_device *dev)
  50. {
  51. return RT_EOK;
  52. }
  53. #endif /* __DEV_SDHCI_DM_H__ */