/******************************************************************************* * @file * @brief This file includes the Radio Coex initializers ******************************************************************************* * # License * Copyright 2024 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * SPDX-License-Identifier: Zlib * * The licensor of this software is Silicon Laboratories Inc. * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * ******************************************************************************/ #ifndef RADIO_COEX_H_ #define RADIO_COEX_H_ #include #include #include #include #include #include #include #include #include #ifdef SL_COMPONENT_CATALOG_PRESENT #include "sl_component_catalog.h" #endif // SL_COMPONENT_CATALOG_PRESENT #ifndef SL_CATALOG_OT_SIMULATION_PRESENT #ifdef SL_CATALOG_RAIL_UTIL_COEX_PRESENT #include "coexistence-802154.h" #include "coexistence-ot.h" #include "coexistence.h" #endif // SL_CATALOG_RAIL_UTIL_COEX_PRESENT #ifdef SL_CATALOG_RAIL_UTIL_ANT_DIV_PRESENT #include "sl_rail_util_ant_div.h" #endif // SL_CATALOG_RAIL_UTIL_ANT_DIV_PRESENT #ifdef SL_CATALOG_RAIL_UTIL_IEEE802154_PHY_SELECT_PRESENT #include "sl_rail_util_ieee802154_phy_select.h" #endif // SL_CATALOG_RAIL_UTIL_IEEE802154_PHY_SELECT #else // SL_CATALOG_OT_SIMULATION_PRESENT #include "rail_util_simulation.h" #endif // SL_CATALOG_OT_SIMULATION_PRESENT #include "common/code_utils.hpp" #include "utils/code_utils.h" typedef enum { SL_OT_COEX_EVENT_REQUEST_COUNT = 0, SL_OT_COEX_EVENT_GRANT_IMMEDIATE_COUNT, SL_OT_COEX_EVENT_GRANT_WAIT_COUNT, SL_OT_COEX_EVENT_GRANT_WAIT_ACTIVATED_COUNT, SL_OT_COEX_EVENT_GRANT_WAIT_TIMEOUT_COUNT, SL_OT_COEX_EVENT_GRANT_DEACTIVATED_DURING_REQUEST_COUNT, SL_OT_COEX_EVENT_DELAYED_GRANT_COUNT, SL_OT_COEX_EVENT_AVG_REQUEST_TO_GRANT_TIME } sl_coex_events; typedef struct sl_ot_coex_counter { otRadioCoexMetrics metrics; uint64_t timestamp; uint64_t totalTxReqToGrantDuration; uint64_t totalRxReqToGrantDuration; } sl_ot_coex_counter_t; /** * Reset the radio coex counters. */ void sli_radio_coex_reset(void); #endif // RADIO_COEX_H_