From b762a6f5d04655a8e941a5aa8c8e6a8a2f917fb9 Mon Sep 17 00:00:00 2001 From: Xu Si Yu Date: Wed, 27 May 2026 17:28:42 +0800 Subject: [PATCH] fix(coex): move 15.4 register configuration to 15.4 init 1. move 15.4 register configuration to 15.4 init 2. fix coex status get issue --- components/esp_coex/include/esp_coex_i154.h | 10 +++++++++- components/esp_coex/lib | 2 +- components/ieee802154/driver/esp_ieee802154_dev.c | 7 +++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/components/esp_coex/include/esp_coex_i154.h b/components/esp_coex/include/esp_coex_i154.h index f817e901400..ee20845770a 100644 --- a/components/esp_coex/include/esp_coex_i154.h +++ b/components/esp_coex/include/esp_coex_i154.h @@ -1,11 +1,13 @@ /* - * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #ifndef __COEXIST_I154_H__ #define __COEXIST_I154_H__ +#include + /** * @brief 802.15.4 coex event */ @@ -63,4 +65,10 @@ void esp_coex_ieee802154_status_enable(void); */ void esp_coex_ieee802154_status_disable(void); +/** + * @brief Configure the 802.15.4 force Rx state + * @param enable true to enable, false to disable + */ +void esp_coex_ieee802154_force_rx_enable(bool enable); + #endif diff --git a/components/esp_coex/lib b/components/esp_coex/lib index a9c83e8ef9d..7a43262c30e 160000 --- a/components/esp_coex/lib +++ b/components/esp_coex/lib @@ -1 +1 @@ -Subproject commit a9c83e8ef9dfa9112c88de76f8907515ca5495e9 +Subproject commit 7a43262c30e1ac53c1fbb365bb593bd51582d63c diff --git a/components/ieee802154/driver/esp_ieee802154_dev.c b/components/ieee802154/driver/esp_ieee802154_dev.c index 6fb12b0db89..1594a660a64 100644 --- a/components/ieee802154/driver/esp_ieee802154_dev.c +++ b/components/ieee802154/driver/esp_ieee802154_dev.c @@ -925,12 +925,19 @@ esp_err_t ieee802154_mac_init(void) ESP_RETURN_ON_FALSE(ieee802154_sleep_init() == ESP_OK, ESP_FAIL, IEEE802154_TAG, "IEEE802154 MAC sleep init failed"); +#if CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE + esp_coex_ieee802154_force_rx_enable(true); +#endif + return ret; } esp_err_t ieee802154_mac_deinit(void) { esp_err_t ret = ESP_OK; +#if CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE + esp_coex_ieee802154_force_rx_enable(false); +#endif if (s_ieee802154_isr_handle) { ret = esp_intr_free(s_ieee802154_isr_handle); s_ieee802154_isr_handle = NULL;