#ifndef NH_EVENT_H #define NH_EVENT_H #include "nh_common.h" typedef enum { NH_EVENT_TYPE_INIT, } nh_event_type_t; typedef enum { NH_EVENT_INIT_TAG_CAP = 0U, NH_EVENT_INIT_TAG_FREQ = 1U, NH_EVENT_INIT_TAG_CHIP_ID = 2U, NH_EVENT_INIT_TAG_RAW_TP = 3U, } nh_event_init_tag_t; typedef enum { NH_EVENT_INIT_CAP_WLAN_SDIO = (1U << 0U), NH_EVENT_INIT_CAP_BT_UART = (1U << 1U), NH_EVENT_INIT_CAP_BT_SDIO = (1U << 2U), NH_EVENT_INIT_CAP_BLE_ONLY = (1U << 3U), NH_EVENT_INIT_CAP_BR_EDR_ONLY = (1U << 4U), NH_EVENT_INIT_CAP_WLAN_SPI = (1U << 5U), NH_EVENT_INIT_CAP_BT_SPI = (1U << 6U), NH_EVENT_INIT_CAP_CHECKSUM = (1U << 7U), } nh_event_init_capability_t; typedef enum { NH_ESP_INIT_CHIP_UNRECOGNIZED = 0xFFU, NH_ESP_INIT_CHIP_ESP32 = 0x00U, NH_ESP_INIT_CHIP_ESP32S2 = 0x02U, NH_ESP_INIT_CHIP_ESP32C3 = 0x05U, NH_ESP_INIT_CHIP_ESP32S3 = 0x09U, NH_ESP_INIT_CHIP_ESP32C2 = 0x0CU, } nh_event_init_chip_id_t; typedef struct { nh_event_init_capability_t capabilities; nh_event_init_chip_id_t chip_id; uint8_t spi_freq; } nh_event_init_t; nh_ret_t nh_event_get_type(nh_event_type_t *type, uint8_t *event); nh_ret_t nh_event_parse_init(nh_event_init_t *init, uint8_t *event); #endif // NH_EVENT_H