blob: 4b9a3107adc0983693215cc6f9d94957168d432b [file] [log] [blame]
#ifndef __VOW_H__
#define __VOW_H__
/***********************************************************************************
** VOW Control Message
************************************************************************************/
#define VOW_DEVNAME "vow"
#define VOW_IOC_MAGIC 'a'
static char const *const kVOWDeviceName = "/dev/vow";
#if 0
//below is control message
#define TEST_VOW_PRINT _IO(VOW_IOC_MAGIC, 0x00)
#define VOWEINT_GET_BUFSIZE _IOW(VOW_IOC_MAGIC, 0x01, unsigned long)
#define VOW_GET_STATUS _IOW(VOW_IOC_MAGIC, 0x02, unsigned long)
#define VOW_SET_CONTROL _IOW(VOW_IOC_MAGIC, 0x03, unsigned long)
#define VOW_SET_SPEAKER_MODEL _IOW(VOW_IOC_MAGIC, 0x04, unsigned long)
#define VOW_CLR_SPEAKER_MODEL _IOW(VOW_IOC_MAGIC, 0x05, unsigned long)
#define VOW_SET_INIT_MODEL _IOW(VOW_IOC_MAGIC, 0x06, unsigned long)
#define VOW_SET_FIR_MODEL _IOW(VOW_IOC_MAGIC, 0x07, unsigned long)
#define VOW_SET_NOISE_MODEL _IOW(VOW_IOC_MAGIC, 0x08, unsigned long)
#define VOW_SET_APREG_INFO _IOW(VOW_IOC_MAGIC, 0x09, unsigned long)
#define VOW_SET_REG_MODE _IOW(VOW_IOC_MAGIC, 0x0A, unsigned long)
#define VOW_FAKE_WAKEUP _IOW(VOW_IOC_MAGIC, 0x0B, unsigned long)
#else
//below is control message
#define TEST_VOW_PRINT 0x00
#define VOWEINT_GET_BUFSIZE 0x01
#define VOW_GET_STATUS 0x02
#define VOW_SET_CONTROL 0x03
#define VOW_SET_SPEAKER_MODEL 0x04
#define VOW_CLR_SPEAKER_MODEL 0x05
#define VOW_SET_INIT_MODEL 0x06
#define VOW_SET_FIR_MODEL 0x07
#define VOW_SET_NOISE_MODEL 0x08
#define VOW_SET_APREG_INFO 0x09
#define VOW_SET_REG_MODE 0x0A
#define VOW_FAKE_WAKEUP 0x0B
#endif
/***********************************************************************************
** Type Define
************************************************************************************/
enum VOW_Control_Cmd
{
VOWControlCmd_Init = 0,
VOWControlCmd_ReadVoiceData,
VOWControlCmd_EnableDebug,
VOWControlCmd_DisableDebug,
};
typedef enum VOW_REG_MODE_T {
VOW_MODE_MD32_VOW = 0,
VOW_MODE_VOICECOMMAND,
VOW_MODE_MULTIPLE_KEY,
VOW_MODE_MULTIPLE_KEY_VOICECOMMAND
}VOW_REG_MODE_T;
typedef enum VOW_EINT_STATUS{
VOW_EINT_DISABLE = -2,
VOW_EINT_FAIL = -1,
VOW_EINT_PASS = 0,
VOW_EINT_RETRY = 1,
NUM_OF_VOW_EINT_STATUS
}VOW_EINT_STATUS;
typedef enum VOW_FLAG_TYPE{
VOW_FLAG_DEBUG,
VOW_FLAG_PRE_LEARN,
VOW_FLAG_DMIC_LOWPOWER,
NUM_OF_VOW_FLAG_TYPE
}VOW_FLAG_TYPE;
typedef enum VOW_PWR_STATUS{
VOW_PWR_OFF = 0,
VOW_PWR_ON = 1,
NUM_OF_VOW_PWR_STATUS
}VOW_PWR_STATUS;
typedef enum VOW_IPI_RESULT
{
VOW_IPI_SUCCESS = 0,
VOW_IPI_CLR_SMODEL_ID_NOTMATCH,
VOW_IPI_SET_SMODEL_NO_FREE_SLOT,
}VOW_IPI_RESULT;
/*
struct VOW_EINT_DATA_STRUCT{
int size; // size of data section
int eint_status; // eint status
int id;
char *data; // reserved for future extension
}VOW_EINT_DATA_STRUCT;
*/
typedef struct{
long id;
long addr;
long size;
void *data;
}VOW_MODEL_INFO_T;
#endif //__VOW_H__