Files
banban/ql-kernel/threadx/common/include/quec_asr_gps_support.h
T

173 lines
5.0 KiB
C

#ifndef _QUEC_ASR_GPS_SUPPORT_H_
#define _QUEC_ASR_GPS_SUPPORT_H_
#include "xscale_types.h"
#include "gpio.h"
typedef unsigned int size_t;
/*========macro defined for customer control start========*/
#ifndef PROJ_ASR_APP_001
#define AGPS_UPDATE_DEFAULT
#else
#define CUSTOMER_AGPS_UPDATE_ENABLE
#endif
#ifdef CRANE_MCU_DONGLE
/* MCU -> CranG Platform.*/
#if (defined(CRANELR_SUPPORT) || defined(CRANELRH_SUPPORT))
#define JACANA_ASR1602_DKB_V10_ASR
#elif (defined(CRANELS_SUPPORT) || defined(CRANELG_SUPPORT))
#define JACANA_ASR1609_DKB_V10_ASR
#elif defined(CRANEL_4MRAM) || defined (CRANEL_8MRAM)
#define JACANA_ASR1606L_DKB_V10_ASR
#define ASR_UPDATE_AGPS
#elif defined CRANEM_GOOME_4G03N
#define JACANA_ASR1603_4G03N_V10_GOOME
#define GOOME_UPDATE_AGPS
#else
#define JACANA_ASR1603_DKB_V11_ASR
#define ASR_UPDATE_AGPS
#endif
/* MCU -> CranG Platform.*/
#else
#define JACANA_ASR3603_DKB_V10_ASR
#define ASR_UPDATE_AGPS
#endif
#if defined (JACANA_ASR1603_4G03N_V10_GOOME) || defined(JACANA_ASR1602_DKB_V10_ASR)
#define VRCR_MODE_VCXO_REQ
#else
#define VRCR_MODE_MN_CLK_REQ
#endif
#define GPS_DEBUG 1
#define NMEA_DEBUG 0
#define SUPL_TEST 0
#if defined (CRANELS_SUPPORT) || defined (CRANELG_SUPPORT)
#define GPS_CMD_TIMER 0
#define GPS_FWDL_TIMER 0
#define GPS_SWDT_TIMER 1
#else
#define GPS_CMD_TIMER 1
#define GPS_FWDL_TIMER 1
#define GPS_SWDT_TIMER 1
#endif
#ifdef CRANELS_SUPPORT
#define GPS_PPS_GPIO (GPIO_PIN_32)
#endif
#ifdef CRANELG_SUPPORT
#define GPS_PPS_GPIO (GPIO_PIN_56)
#endif
extern int HOST_RESET_GPS_GPIO;//gps复位引脚
extern int HOST_RESET_FUNC_MFPR;
extern int HOST_WAKE_GPS_GPIO;//主机唤醒gps引脚
extern int HOST_WAKE_GPS_FUNC_MFPR;
extern int GPS_WAKE_HOST_GPIO;//gps唤醒主机
extern int GPS_WAKE_HOST_FUNC_MFPR;
#ifdef VRCR_MODE_MN_CLK_REQ
#define VRCR_ADDR (0xD4050018)
#define CLK_REQ (0xD401E0CC)
#endif
#ifdef VRCR_MODE_VCXO_REQ
#define VRCR_ADDR (0xD4050018)
#define CLK_REQ (0xD401E0D4)
#endif
#if defined (CRANELS_SUPPORT) || defined (CRANELG_SUPPORT)
#define GPS_WAKELOCK_UART_RECV (1 << 0)
#define GPS_WAKELOCK_IPC (1 <<1)
#else
#define GPS_WAKELOCK_UART_RX_DMA (1 << 0)
#define GPS_WAKELOCK_UART_RECV (1 << 1)
#define GPS_WAKELOCK_UART_TX_DMA (1 << 2)
#endif
#define ASR_GPS_WORKMODE_WAKEUP 1
#define ASR_GPS_WORKMODE_POWEROFF 2
#define ASR_GPS_WORKMODE_SLEEP 0
#define ASR_GPS_STATE_POWEROFF 0
#define ASR_GPS_STATE_ACTIVE 1
#define ASR_GPS_STATE_SLEEP 2
#define ASR_GPS_STATE_SLEEPING 3
#define ASR_GPS_STATE_POWEROFFING 4
#define HOST_DOWNLOAD_GPS_FW_BAUDRATE 921600
#define HOST_COMMUNICATE_WITH_GPS_BAUDRATE 115200
#define JACANA_ASR_PVT_DATA_LEN (4096u)
#define JACANA_NMEA_PACK_FIFO_SIZE (2048u)
#define JACANA_PVT_PACK_FIFO_SIZE (4096u)
#define TRUE 1
#define FALSE 0
typedef enum {
GPS_COLD_RESET,
GPS_HOT_RESET,
GPS_WARM_RESET
}GPS_RESET_TYPE;
typedef struct {
char enflag;
char* data;
unsigned int len;
}quec_asr_agps_t;
int quec_asr_get_agps_en(void);
void quec_asr_gnss_nmea_cfg(void);
void quec_asr_gnss_sys_cfg(void);
void quec_agps_init(void);
void quec_agps_deinit(void);
int quec_asr_set_gnss_nmea(int val);
int quec_asr_set_gnss_sys(char val);
void quec_asr_agps_enable(char flag);
void quec_asr_gnss_pin_init(void);
void asr_gps_reset(GPS_RESET_TYPE type);
void set_callback_execute_endflag(const BOOL flag);
static BOOL check_callback_is_endflag(void);
BOOL check_gpsfw_download_is_completed(void);
void set_gpsfw_download_done(void);
void reset_gpsfw_download_state(void);
void gps_wake_host_isr(void);
void gps_wake_host_isr2(void);
void gps_module_reset(void);
void gps_wake_host_gpio_clear(void);
void gps_uart_cfg(UINT32 baudrate);
void gps_uart_send_config_cmd(char *msg);
void gps_module_wakeup(void);
void gps_module_sleep(void);
void gps_module_poweroff(void);
void gps_module_boot(void);
void quec_gps_data_cb(void * para);
unsigned int get_gpsuart_dma_total_cnt(void);
void asr_gps_start_keepalive_timer(void);
void asr_gps_stop_keepalive_timer(void);
void set_gpsuart_dma_last_cnt(unsigned int cnt);
void clear_gps_pm_lock(unsigned char lock_type);
void set_gps_pm_lock(unsigned char lock_type);
unsigned char get_gps_pm_lock(void);
int gps_uart_get_rxbuffer2(unsigned char * buff);
void gps_uart_send_raw_msg(unsigned char *msg, unsigned int len);
void gps_uart_send_raw_msg2(unsigned char *msg, unsigned int len);
unsigned int gps_vuart_get_rxbuffer(unsigned int index, unsigned char *msg);
void gps_module_init(void);
void gps_module_register_ipc_interrupt(void);
void quec_asr_gnss_default_cfg(void);
int quec_asr_agps_request(char* url,char** data ,unsigned int *len);
void gps_wake_host_gpio_init(void);
void asr_gnss_pin_init(void);
#endif