inwudriver-weibo/bsp/inc/drv_collectdata.h

63 lines
2.4 KiB
C

/*
* Copyright (c) CompanyNameMagicTag 2012-2019. All rights reserved.
* Description: collect data
* Author: CompanyName
* Create: 2012-07-14
*/
#ifndef DRV_COLLECT_DATA_H
#define DRV_COLLECT_DATA_H
#if defined PRODUCT_CFG_NDM_COLLECT_DATA
#include <soc_mdm_datacollect.h>
#define DRV_DC_UN_FIX_AGCGAIN ((td_s32)0xFFFFFFFF)
typedef enum {
EXT_DRV_DATA_COLLECT_STEP_PREPARE = 0x1,
EXT_DRV_DATA_COLLECT_STEP_START = 0x2,
EXT_DRV_DATA_COLLECT_STEP_GET_RESULT = 0x4,
/* The following special processing is performed: */
EXT_DRV_DATA_COLLECT_STEP_FORCE_RESTORE = 0x8,
} ext_drv_data_collect_step;
/* Define the struct C_fix_aagc_gain */
struct c_fix_aagc_gain {
unsigned int fix_aagc_gain : 8;
unsigned int sunspec_fix_aagc_gain : 7;
unsigned int reserved_1 : 1;
unsigned int afe_pga_gain_rpt : 7;
unsigned int reserved_2 : 9;
};
typedef struct {
td_u32 afe_version; // 40040000 01280900
td_u32 reg_testmode; // 40040004 00000000
td_u32 reg_analog_wr00; // 40040010 A70058A3
td_u32 reg_analog_wr04; // 40040014 DF78886C
td_u32 reg_analog_wr08; // 40040018 8F5B1550
td_u32 reg_analog_wr12; // 4004001c 08080822
td_u32 reg_analog_wr20; // 40040020 22222208
td_u32 reg_analog_wr24; // 40040024 22222222
td_u32 reg_analog_wr28; // 40040028 22222222
td_u32 reg_analog_wr32; // 4004002c 10365512
td_u32 reg_analog_wr40; // 40040034 1806DD00
td_u32 reg_analog_wr44; // 40040038 0024548F
td_u32 reg_sc_afe_ctrl;
td_u32 reg_sc_peri_ctrl;
} dc_afe_backup;
#define EXT_DRV_DATA_COLLECT_STEP_ALL \
(EXT_DRV_DATA_COLLECT_STEP_PREPARE | EXT_DRV_DATA_COLLECT_STEP_START | EXT_DRV_DATA_COLLECT_STEP_GET_RESULT)
#define EXT_DRV_DATA_COLLECT_OVERFLOW (1 << 1)
#define EXT_DRV_DATA_COLLECT_ADDR_CYCLE_IND (1 << 17)
#define EXT_DRV_DATA_COLLECT_TEST_MODE_OFFSET (2)
#define EXT_DRV_DATA_COLLECT_TRIG_TEST_MODE_BASE (255)
td_u32 dc_check_triger_type(dc_trig_type_enum triger_type);
td_u32 dc_check_data_src(dc_trig_data_enum data_src);
td_u32 dc_check_agc_gain(td_s32 l_agc_gain);
td_u32 dc_check_fix_agc_gain(td_s32 l_agc_gain);
td_u32 dc_check_addr_and_len(uintptr_t start_addr, uintptr_t end_addr, td_u32 after_pointlen);
td_u32 dc_data_collect(EXT_IN dc_input_para_stru *dc_input, EXT_OUT ext_buf_s *s_buf, ext_drv_data_collect_step step);
td_void dc_data_collect_force_restore(td_void); /* restore */
#endif
#endif // __DRV_COLLECT_DATA_H__