phy.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. #pragma once
  15. #include "esp_phy_init.h"
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. #define ESP_CAL_DATA_CHECK_FAIL 1
  20. /**
  21. * @file phy.h
  22. * @brief Declarations for functions provided by libphy.a
  23. */
  24. /**
  25. * @brief Return ROM function pointer table from PHY library.
  26. */
  27. void phy_get_romfunc_addr(void);
  28. /**
  29. * @brief Initialize PHY module and do RF calibration
  30. * @param[in] init_data Initialization parameters to be used by the PHY
  31. * @param[inout] cal_data As input, calibration data previously obtained. As output, will contain new calibration data.
  32. * @param[in] cal_mode RF calibration mode
  33. * @return ESP_CAL_DATA_CHECK_FAIL if calibration data checksum fails, other values are reserved for future use
  34. */
  35. int register_chipv7_phy(const esp_phy_init_data_t* init_data, esp_phy_calibration_data_t *cal_data, esp_phy_calibration_mode_t cal_mode);
  36. /**
  37. * @brief Get the format version of calibration data used by PHY library.
  38. * @return Format version number, OR'ed with BIT(16) if PHY is in WIFI only mode.
  39. */
  40. uint32_t phy_get_rf_cal_version(void);
  41. /**
  42. * @brief Set RF/BB for only WIFI mode or coexist(WIFI & BT) mode
  43. * @param[in] true is for only WIFI mode, false is for coexist mode. default is 0.
  44. * @return NULL
  45. */
  46. void phy_set_wifi_mode_only(bool wifi_only);
  47. /**
  48. * @brief Set BT the highest priority in coexist mode.
  49. * @return NULL
  50. */
  51. void coex_bt_high_prio(void);
  52. #if CONFIG_IDF_TARGET_ESP32S2
  53. /**
  54. * @brief Open PHY and RF.
  55. */
  56. void phy_wakeup_init(void);
  57. #endif
  58. /**
  59. * @brief Shutdown PHY and RF.
  60. */
  61. void phy_close_rf(void);
  62. #ifdef __cplusplus
  63. }
  64. #endif