Files
xiaozhi-esp32/managed_components/wvirgil123__sscma_client/include/sscma_client_flasher.h
2025-09-05 13:25:11 +08:00

61 lines
1.8 KiB
C

#pragma once
#include <stdbool.h>
#include "esp_err.h"
#include "esp_io_expander.h"
#include "soc/soc_caps.h"
#include "sscma_client_types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef void *sscma_client_flasher_we2_handle_t; /*!< Type of SSCMA flasher WE2 handle */
/**
* @brief Flasher configuration structure, for WE2
*/
typedef struct
{
int reset_gpio_num; /* !< GPIO number of reset pin */
void *user_ctx; /*!< User private data */
esp_io_expander_handle_t io_expander; /*!< IO expander handle */
struct
{
unsigned int reset_high_active : 1; /*!< Reset line is high active */
unsigned int reset_use_expander : 1; /*!< Reset line use IO expander */
} flags;
} sscma_client_flasher_we2_config_t;
/**
* @brief Create SSCMA flasher, for WE2
*
* @param[in] io IO handle
* @param[in] flasher_config Flasher configuration, for WE2
* @param[out] ret_io Returned flasher handle
* @return
* - ESP_ERR_INVALID_ARG if parameter is invalid
* - ESP_ERR_NO_MEM if out of memory
* - ESP_OK on success
*/
esp_err_t sscma_client_new_flasher_we2_uart(const sscma_client_io_handle_t io, const sscma_client_flasher_we2_config_t *flasher_config, sscma_client_flasher_handle_t *ret_flasher);
/**
* @brief Create SSCMA flasher, for WE2
*
* @param[in] io IO handle
* @param[in] flasher_config Flasher configuration, for WE2
* @param[out] ret_io Returned flasher handle
* @return
* - ESP_ERR_INVALID_ARG if parameter is invalid
* - ESP_ERR_NO_MEM if out of memory
* - ESP_OK on success
*/
esp_err_t sscma_client_new_flasher_we2_spi(const sscma_client_io_handle_t io, const sscma_client_flasher_we2_config_t *config, sscma_client_flasher_handle_t *ret_flasher);
#ifdef __cplusplus
}
#endif