#ifndef _BMI_H_
#define _BMI_H_
#include "core.h"
#define BMI_MAX_DATA_SIZE …
#define BMI_MAX_CMDBUF_SIZE …
#define BMI_MAX_LARGE_DATA_SIZE …
#define BMI_MAX_LARGE_CMDBUF_SIZE …
enum bmi_cmd_id { … };
#define BMI_NVRAM_SEG_NAME_SZ …
#define BMI_PARAM_GET_EEPROM_BOARD_ID …
#define BMI_PARAM_GET_FLASH_BOARD_ID …
#define BMI_PARAM_FLASH_SECTION_ALL …
#define BMI_PARAM_GET_EXT_BOARD_ID …
#define ATH10K_BMI_EXT_BOARD_ID_SUPPORT …
#define ATH10K_BMI_BOARD_ID_FROM_OTP_MASK …
#define ATH10K_BMI_BOARD_ID_FROM_OTP_LSB …
#define ATH10K_BMI_CHIP_ID_FROM_OTP_MASK …
#define ATH10K_BMI_CHIP_ID_FROM_OTP_LSB …
#define ATH10K_BMI_BOARD_ID_STATUS_MASK …
#define ATH10K_BMI_EBOARD_ID_STATUS_MASK …
struct bmi_cmd { … } __packed;
bmi_resp __packed;
struct bmi_target_info { … };
struct bmi_segmented_file_header { … };
struct bmi_segmented_metadata { … };
#define BMI_SGMTFILE_MAGIC_NUM …
#define BMI_SGMTFILE_FLAG_COMPRESS …
#define BMI_SGMTFILE_DONE …
#define BMI_SGMTFILE_BDDATA …
#define BMI_SGMTFILE_BEGINADDR …
#define BMI_SGMTFILE_EXEC …
#define BMI_COMMUNICATION_TIMEOUT_HZ …
#define BMI_CE_NUM_TO_TARG …
#define BMI_CE_NUM_TO_HOST …
void ath10k_bmi_start(struct ath10k *ar);
int ath10k_bmi_done(struct ath10k *ar);
int ath10k_bmi_get_target_info(struct ath10k *ar,
struct bmi_target_info *target_info);
int ath10k_bmi_get_target_info_sdio(struct ath10k *ar,
struct bmi_target_info *target_info);
int ath10k_bmi_read_memory(struct ath10k *ar, u32 address,
void *buffer, u32 length);
int ath10k_bmi_write_memory(struct ath10k *ar, u32 address,
const void *buffer, u32 length);
#define ath10k_bmi_read32(ar, item, val) …
#define ath10k_bmi_write32(ar, item, val) …
int ath10k_bmi_execute(struct ath10k *ar, u32 address, u32 param, u32 *result);
int ath10k_bmi_lz_stream_start(struct ath10k *ar, u32 address);
int ath10k_bmi_lz_data(struct ath10k *ar, const void *buffer, u32 length);
int ath10k_bmi_fast_download(struct ath10k *ar, u32 address,
const void *buffer, u32 length);
int ath10k_bmi_read_soc_reg(struct ath10k *ar, u32 address, u32 *reg_val);
int ath10k_bmi_write_soc_reg(struct ath10k *ar, u32 address, u32 reg_val);
int ath10k_bmi_set_start(struct ath10k *ar, u32 address);
#endif