sdhci_dma.h 917 B

12345678910111213141516171819202122232425262728293031
  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 __SDHCI_DMA_H__
  11. #define __SDHCI_DMA_H__
  12. #include "ioremap.h"
  13. #include <mm_aspace.h>
  14. enum dma_data_direction
  15. {
  16. DMA_BIDIRECTIONAL = 0,
  17. DMA_TO_DEVICE = 1,
  18. DMA_FROM_DEVICE = 2,
  19. DMA_NONE = 3,
  20. };
  21. #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL << (n)) - 1))
  22. int dma_set_mask_and_coherent(struct rt_device *dev, rt_uint64_t mask);
  23. unsigned long virt_to_phys(volatile void *address);
  24. void *dma_alloc_coherent(struct rt_device *dev, size_t size,
  25. rt_uint64_t *dma_handle);
  26. void dma_free_coherent(struct rt_device *dev, size_t size,
  27. void *cpu_addr, unsigned long dma_handle);
  28. #endif