/******************************************************************************* * @file rsi_common.h ******************************************************************************* * # 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 RSI_COMMON_H #define RSI_COMMON_H #include "sl_constants.h" #include "cmsis_os2.h" #include "sl_si91x_status.h" #include #include "rsi_user.h" #include "rsi_utils.h" #include "rsi_common_apis.h" #include /****************************************************** * * Macros * ******************************************************/ //SL_PRINTF logging call #ifndef SL_PRINTF #define SL_PRINTF(...) #endif #define IS_LITTLE_ENDIAN 0 #define IS_BIG_ENDIAN 1 #define RSI_TRUE 1 #define RSI_FALSE 0 // Max packet length of common command responses //changed cmd len for crypto and PUF #if defined(SLI_PUF_ENABLE) || (defined RSI_CRYPTO_ENABLE) #define RSI_COMMON_CMD_LEN 1600 #else #define RSI_COMMON_CMD_LEN 100 #endif // Max packet length of ssl rx packet #define RSI_SSL_RECV_BUFFER_LENGTH 0 // Max packet length of rx packet #define RSI_DRIVER_RX_PKT_LEN 0 #define SIZE_OF_HEADROOM 0 // Max packet length of BT COMMON tx packet #define RSI_BT_COMMON_CMD_LEN (300 + SIZE_OF_HEADROOM) #if ENCODER_IN_RS9116 #define RSI_BT_CLASSIC_CMD_LEN 4000 #else #define RSI_BT_CLASSIC_CMD_LEN (1040 + SIZE_OF_HEADROOM) #endif #define RSI_BLE_CMD_LEN (300 + SIZE_OF_HEADROOM) #define RSI_DRIVER_POOL_SIZE sizeof(uint32_t) + ((((uint32_t)(sizeof(rsi_driver_cb_t))) + 3) & ~3) #define RSI_WAIT_TIME RSI_WAIT_FOREVER #define RSI_TX_EVENT_WAIT_TIME (30000 + TX_WAIT_TIME) #define DEFAULT_TIMEOUT RSI_TX_EVENT_WAIT_TIME #define WAIT_TIMEOOUT 5000 // Internal command timeout defines #define RSI_BAND_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_MAC_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DISCONNECT_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_TRANSMIT_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_RX_STATS_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WMM_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_AUTO_CONFIG_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SOCK_CONFIG_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_ANTENNA_SEL_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DEBUG_LOG_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GET_RAM_DUMP_RESPONSE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_FEATURE_FRAME_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_UART_FLOW_CTRL_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PWRMODE_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_START_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_SET_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_DIS_SET_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_GET_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_DIS_GET_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_LOAD_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_AES_ENCRYPT_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_AES_DECRYPT_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_AES_MAC_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_INTR_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SEND_DATA_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SWITCH_PROTO_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_RAW_DATA_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_DIS_ENROLL_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PUF_ENROLL_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GAIN_TABLE_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GET_PROFILE_RESPONSE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SET_PROFILE_RESPONSE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_EAP_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_REGION_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_REGION_AP_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DYNAMIC_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_ROAMING_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_MULTICAST_FIL_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_HT_CAPS_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_MULTICAST_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BCAST_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CARD_READY_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_INIT_RESPONSE_WAIT_TIME ((3000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_CONFIG_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_GET_RANDOM_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_RSSI_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_QUERY_NETWORK_PARAMS_WAIT_TIME ((200 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_REQ_GET_CFG_WAIT_TIME ((200 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_CFG_SAVE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BOARD_READY_WAIT_TIME ((50000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SET_SLEEP_TIMER_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DEINIT_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CERTIFICATE_RESPONSE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_REJOIN_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_USER_SC_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_REQ_GET_STATS_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_AUTO_JOIN_RESPONSE_WAIT_TIME \ ((60000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //! Here timeout should wait for init,scan and join commands #define RSI_DELETE_PROFILE_RESPONSE_WAIT_TIME ((1000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_IAP_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_IAP_GET_CERT_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_IAP_GEN_SIG_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_TA_M4_COMMAND_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_ADD_MFI_IE_RESPONSE_WAIT_TIME ((500 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_FILTER_BROADCAST_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SET_RTC_TIMER_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #ifdef RSI_ASSERT_API #define RSI_ASSERT_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #endif #define RSI_WLAN_RADIO_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GET_RTC_TIMER_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_TCP_WINDOW_RESPONSE_WAIT_TIME ((5000 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_TIMEOUT_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SET_CONFIG_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #ifdef FW_LOGGING_ENABLE #define RSI_DEVICE_LOG_RESPONSE_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #endif // WIFI WAIT timeout defines #define RSI_SCAN_RESPONSE_WAIT_TIME ((10000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_JOIN_RESPONSE_WAIT_TIME ((10000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_P2P_RESPONSE_WAIT_TIME ((1000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BGSCAN_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PING_RESPONSE_WAIT_TIME ((60000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WEP_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_IPCONFV4_RESPONSE_WAIT_TIME ((20000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_IPCONFV6_RESPONSE_WAIT_TIME ((20000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_MDNSD_RESPONSE_WAIT_TIME \ ((250000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //!Firmware max timeout value is 240 seconds #define RSI_HTTP_RESPONSE_WAIT_TIME \ ((110000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //!Firmware max timeout value is 100 seconds #define RSI_AP_CONFIG_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_FWUP_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_MTYPE_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WP_LOAD_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_JSON_LOAD_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WP_ERASE_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_JSON_ERASE_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WP_CLEAR_ALL_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CONNECT_RESPONSE_WAIT_TIME ((10000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WPS_RESPONSE_WAIT_TIME ((180000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_FREQ_OFFSET_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CALIB_WRITE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SMTP_RESPONSE_WAIT_TIME ((60000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DNS_SERVER_ADD_RESPONSE_WAIT_TIME ((150000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_FTP_RESPONSE_WAIT_TIME ((120000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_OTA_FWUP_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CRYPTO_RESPONSE_WAIT_TIME ((2000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SOCKET_CREATE_RESPONSE_WAIT_TIME ((100000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_CERT_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SCAN_WITH_BITMAP_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DNS_QUERY_RESPONSE_WAIT_TIME ((150000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_DNS_UPDATE_RESPONSE_WAIT_TIME ((150000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_HOST_WP_SEND_RESPONSE_WAIT_TIME ((200000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_POP3_RESPONSE_WAIT_TIME ((60000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_HTTP_ABORT_RESPONSE_WAIT_TIME \ ((100000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //!Firmware max timeout value is 100 seconds #define RSI_HTTP_CLIENT_PUT_RESPONSE_WAIT_TIME \ ((100000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //!Firmware max timeout value is 100 seconds #define RSI_SNTP_RESPONSE_WAIT_TIME ((100000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_EMB_MQTT_RESPONSE_WAIT_TIME ((60000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_PSK_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SOCKET_CLOSE_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_11AX_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_TWT_RESPONSE_WAIT_TIME ((5000 * WIFI_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) // WIFI BLOCKED timeout defines #define RSI_ACCEPT_RESPONSE_WAIT_TIME (RSI_WAIT_FOREVER * WIFI_BLOCKED_TIMEOUT_SF) #define RSI_SELECT_RESPONSE_WAIT_TIME ((RSI_WAIT_FOREVER * WIFI_BLOCKED_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_SOCKET_RECVFROM_RESPONSE_WAIT_TIME ((RSI_WAIT_FOREVER * WIFI_BLOCKED_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GPIO_WAIT_TIME 10000 #define RSI_RX_EVENT_WAIT_TIME DEFAULT_TIMEOUT #define RSI_COMMON_SEND_CMD_RESPONSE_WAIT_TIME ((250000 * WIFI_BLOCKED_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_WLAN_SEND_CMD_RESPONSE_WAIT_TIME ((250000 * WIFI_BLOCKED_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_NWK_SEND_CMD_RESPONSE_WAIT_TIME ((250000 * WIFI_BLOCKED_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_GPIO_CONFIG_RESP_WAIT_TIME ((100 * WIFI_INTERNAL_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) //BT/BLE command timeouts in ms #define RSI_BT_COMMON_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_A2DP_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_A2DP_DATA_CMD_RESP_WAIT_TIME ((2000 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_AVRCP_CMD_RESP_WAIT_TIME ((200 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_HFP_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_PBAP_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_HID_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_SPP_CMD_RESP_WAIT_TIME ((500 * BT_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BLE_GAP_CMD_RESP_WAIT_TIME ((500 * BLE_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BLE_GATT_CMD_RESP_WAIT_TIME ((200 * BLE_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) #define RSI_BT_BLE_CMD_MAX_RESP_WAIT_TIME ((2000 * BT_COMMON_WAIT_TIMEOUT_SF) + (DEFAULT_TIMEOUT)) // Module type typedef enum { RSI_MODULE_TYPE_Q7 = 1, RSI_MODULE_TYPE_SB = 4, RSI_MODULE_TYPE_M7DB = 5, RSI_MODULE_TYPE_M4SB = 6, RSI_MODULE_TYPE_WMS = 10 } module_type; //Antenna Output power in dBm #define RSI_MIN_OUTPUT_POWER_IN_DBM -8 #define RSI_MAX_OUTPUT_POWER_IN_DBM 15 /******************************************************/ /****************************************************** * * Constants * ******************************************************/ /****************************************************** * * Enumerations * ******************************************************/ // enumeration for states used in initial control block in driver typedef enum rsi_device_state_e { RSI_DEVICE_STATE_NONE = 0, RSI_DRIVER_INIT_DONE, RSI_DEVICE_INIT_DONE } rsi_device_state_t; #define RSI_DMA_VALID 0 #define RSI_SKIP_DMA_VALID 1 //#define DEBUGOUT(...) #define BT_CMD 6 /****************************************************** * * Type Definitions * ******************************************************/ /****************************************************** * * Structures * ******************************************************/ // driver control block structure /** * @brief Structure representing the driver control block. * * This structure is used to define the parameters for the driver control block, * including endianness, global Bluetooth callback, common Bluetooth callback, * BLE callback, and device state. */ typedef struct rsi_driver_cb_s { /** Endianness */ uint8_t endian; /** Global Bluetooth callback */ rsi_bt_global_cb_t *bt_global_cb; /** Common Bluetooth callback */ rsi_bt_cb_t *bt_common_cb; /** BLE callback */ rsi_bt_cb_t *ble_cb; #if defined(SL_SI91X_PRINT_DBG_LOG) /** Mutex for debug prints */ osMutexId_t debug_prints_mutex; #endif /** Device state */ volatile rsi_device_state_t device_state; } rsi_driver_cb_t; extern rsi_driver_cb_t *rsi_driver_cb; /****************************************************** * * Global Variables * ******************************************************/ /****************************************************** * * Function Declarations * ******************************************************/ #endif