esp_pau.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #pragma once
  7. #include <stdbool.h>
  8. #include <stddef.h>
  9. #include <stdint.h>
  10. #include "soc/soc.h"
  11. #include "soc/soc_caps.h"
  12. #if SOC_PAU_SUPPORTED
  13. #include "hal/pau_hal.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /**
  18. * @brief Set the addresses of all REGDMA Links
  19. * @param link_entries all linked lists addresses
  20. */
  21. void pau_regdma_set_entry_link_addr(pau_regdma_link_addr_t *link_entries);
  22. #if SOC_PM_SUPPORT_PMU_MODEM_STATE
  23. /**
  24. * @brief Set the address of WiFi MAC REGDMA Link in modem state
  25. * @param link_addr linked lists address
  26. */
  27. void pau_regdma_set_modem_link_addr(void *link_addr);
  28. /**
  29. * @brief Software trigger regdma to perform modem link backup
  30. */
  31. void pau_regdma_trigger_modem_link_backup(void);
  32. /**
  33. * @brief Software trigger regdma to perform modem link restore
  34. */
  35. void pau_regdma_trigger_modem_link_restore(void);
  36. #endif
  37. #if SOC_PM_RETENTION_HAS_REGDMA_POWER_BUG
  38. /**
  39. * @brief Set the address of system REGDMA Link in active state
  40. * @param link_addr linked lists address
  41. */
  42. void pau_regdma_set_system_link_addr(void *link_addr);
  43. /**
  44. * @brief Software trigger regdma to perform system link backup
  45. */
  46. void pau_regdma_trigger_system_link_backup(void);
  47. /**
  48. * @brief Software trigger regdma to perform system link restore
  49. */
  50. void pau_regdma_trigger_system_link_restore(void);
  51. #endif
  52. /**
  53. * @brief Set the address of extra REGDMA Link in active state
  54. * @param link_addr linked lists address
  55. */
  56. void pau_regdma_set_extra_link_addr(void *link_addr);
  57. /**
  58. * @brief Software trigger regdma to perform extra link backup
  59. */
  60. void pau_regdma_trigger_extra_link_backup(void);
  61. /**
  62. * @brief Software trigger regdma to perform extra link restore
  63. */
  64. void pau_regdma_trigger_extra_link_restore(void);
  65. #ifdef __cplusplus
  66. }
  67. #endif
  68. #endif //SOC_PAU_SUPPORTED