gdma_hal_top.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. * SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <stdlib.h>
  7. #include "hal/assert.h"
  8. #include "hal/gdma_hal.h"
  9. void gdma_hal_deinit(gdma_hal_context_t *hal)
  10. {
  11. hal->generic_dev = NULL;
  12. }
  13. void gdma_hal_start_with_desc(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, intptr_t desc_base_addr)
  14. {
  15. hal->start_with_desc(hal, chan_id, dir, desc_base_addr);
  16. }
  17. void gdma_hal_stop(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  18. {
  19. hal->stop(hal, chan_id, dir);
  20. }
  21. void gdma_hal_append(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  22. {
  23. hal->append(hal, chan_id, dir);
  24. }
  25. void gdma_hal_reset(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  26. {
  27. hal->reset(hal, chan_id, dir);
  28. }
  29. void gdma_hal_set_priority(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, uint32_t priority)
  30. {
  31. hal->set_priority(hal, chan_id, dir, priority);
  32. }
  33. void gdma_hal_connect_peri(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, gdma_trigger_peripheral_t periph, int periph_sub_id)
  34. {
  35. hal->connect_peri(hal, chan_id, dir, periph, periph_sub_id);
  36. }
  37. void gdma_hal_disconnect_peri(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  38. {
  39. hal->disconnect_peri(hal, chan_id, dir);
  40. }
  41. void gdma_hal_enable_burst(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, bool en_data_burst, bool en_desc_burst)
  42. {
  43. hal->enable_burst(hal, chan_id, dir, en_data_burst, en_desc_burst);
  44. }
  45. void gdma_hal_set_ext_mem_align(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, uint8_t align)
  46. {
  47. if (hal->set_ext_mem_align) {
  48. hal->set_ext_mem_align(hal, chan_id, dir, align);
  49. }
  50. }
  51. void gdma_hal_set_strategy(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, bool en_owner_check, bool en_desc_write_back)
  52. {
  53. hal->set_strategy(hal, chan_id, dir, en_owner_check, en_desc_write_back);
  54. }
  55. void gdma_hal_enable_intr(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, uint32_t intr_event_mask, bool en_or_dis)
  56. {
  57. hal->enable_intr(hal, chan_id, dir, intr_event_mask, en_or_dis);
  58. }
  59. void gdma_hal_clear_intr(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, uint32_t intr_event_mask)
  60. {
  61. hal->clear_intr(hal, chan_id, dir, intr_event_mask);
  62. }
  63. uint32_t gdma_hal_read_intr_status(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  64. {
  65. return hal->read_intr_status(hal, chan_id, dir);
  66. }
  67. uint32_t gdma_hal_get_intr_status_reg(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  68. {
  69. return hal->get_intr_status_reg(hal, chan_id, dir);
  70. }
  71. uint32_t gdma_hal_get_eof_desc_addr(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, bool is_success)
  72. {
  73. return hal->get_eof_desc_addr(hal, chan_id, dir, is_success);
  74. }
  75. #if SOC_GDMA_SUPPORT_CRC
  76. void gdma_hal_clear_crc(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  77. {
  78. hal->clear_crc(hal, chan_id, dir);
  79. }
  80. void gdma_hal_set_crc_poly(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir, const gdma_hal_crc_config_t *config)
  81. {
  82. hal->set_crc_poly(hal, chan_id, dir, config);
  83. }
  84. uint32_t gdma_hal_get_crc_result(gdma_hal_context_t *hal, int chan_id, gdma_channel_direction_t dir)
  85. {
  86. return hal->get_crc_result(hal, chan_id, dir);
  87. }
  88. #endif // SOC_GDMA_SUPPORT_CRC