78 lines
3.5 KiB
C
Executable File
78 lines
3.5 KiB
C
Executable File
#define KXTIK_DEVID 0x05 //chip id
|
|
#define KXTIK_RANGE 2000000
|
|
|
|
#define KXTIK_XOUT_HPF_L (0x00) /* 0000 0000 */
|
|
#define KXTIK_XOUT_HPF_H (0x01) /* 0000 0001 */
|
|
#define KXTIK_YOUT_HPF_L (0x02) /* 0000 0010 */
|
|
#define KXTIK_YOUT_HPF_H (0x03) /* 0000 0011 */
|
|
#define KXTIK_ZOUT_HPF_L (0x04) /* 0001 0100 */
|
|
#define KXTIK_ZOUT_HPF_H (0x05) /* 0001 0101 */
|
|
#define KXTIK_XOUT_L (0x06) /* 0000 0110 */
|
|
#define KXTIK_XOUT_H (0x07) /* 0000 0111 */
|
|
#define KXTIK_YOUT_L (0x08) /* 0000 1000 */
|
|
#define KXTIK_YOUT_H (0x09) /* 0000 1001 */
|
|
#define KXTIK_ZOUT_L (0x0A) /* 0001 1010 */
|
|
#define KXTIK_ZOUT_H (0x0B) /* 0001 1011 */
|
|
#define KXTIK_ST_RESP (0x0C) /* 0000 1100 */
|
|
#define KXTIK_WHO_AM_I (0x0F) /* 0000 1111 */
|
|
#define KXTIK_TILT_POS_CUR (0x10) /* 0001 0000 */
|
|
#define KXTIK_TILT_POS_PRE (0x11) /* 0001 0001 */
|
|
#define KXTIK_INT_SRC_REG1 (0x15) /* 0001 0101 */
|
|
#define KXTIK_INT_SRC_REG2 (0x16) /* 0001 0110 */
|
|
#define KXTIK_STATUS_REG (0x18) /* 0001 1000 */
|
|
#define KXTIK_INT_REL (0x1A) /* 0001 1010 */
|
|
#define KXTIK_CTRL_REG1 (0x1B) /* 0001 1011 */
|
|
#define KXTIK_CTRL_REG2 (0x1C) /* 0001 1100 */
|
|
#define KXTIK_CTRL_REG3 (0x1D) /* 0001 1101 */
|
|
#define KXTIK_INT_CTRL_REG1 (0x1E) /* 0001 1110 */
|
|
#define KXTIK_INT_CTRL_REG2 (0x1F) /* 0001 1111 */
|
|
#define KXTIK_INT_CTRL_REG3 (0x20) /* 0010 0000 */
|
|
#define KXTIK_DATA_CTRL_REG (0x21) /* 0010 0001 */
|
|
#define KXTIK_TILT_TIMER (0x28) /* 0010 1000 */
|
|
#define KXTIK_WUF_TIMER (0x29) /* 0010 1001 */
|
|
#define KXTIK_TDT_TIMER (0x2B) /* 0010 1011 */
|
|
#define KXTIK_TDT_H_THRESH (0x2C) /* 0010 1100 */
|
|
#define KXTIK_TDT_L_THRESH (0x2D) /* 0010 1101 */
|
|
#define KXTIK_TDT_TAP_TIMER (0x2E) /* 0010 1110 */
|
|
#define KXTIK_TDT_TOTAL_TIMER (0x2F) /* 0010 1111 */
|
|
#define KXTIK_TDT_LATENCY_TIMER (0x30) /* 0011 0000 */
|
|
#define KXTIK_TDT_WINDOW_TIMER (0x31) /* 0011 0001 */
|
|
#define KXTIK_WUF_THRESH (0x5A) /* 0101 1010 */
|
|
#define KXTIK_TILT_ANGLE (0x5C) /* 0101 1100 */
|
|
#define KXTIK_HYST_SET (0x5F) /* 0101 1111 */
|
|
|
|
/* CONTROL REGISTER 1 BITS */
|
|
#define KXTIK_DISABLE 0x7F
|
|
#define KXTIK_ENABLE (1 << 7)
|
|
/* INPUT_ABS CONSTANTS */
|
|
#define FUZZ 3
|
|
#define FLAT 3
|
|
/* RESUME STATE INDICES */
|
|
#define RES_DATA_CTRL 0
|
|
#define RES_CTRL_REG1 1
|
|
#define RES_INT_CTRL1 2
|
|
#define RESUME_ENTRIES 3
|
|
|
|
/* CTRL_REG1: set resolution, g-range, data ready enable */
|
|
/* Output resolution: 8-bit valid or 12-bit valid */
|
|
#define KXTIK_RES_8BIT 0
|
|
#define KXTIK_RES_12BIT (1 << 6)
|
|
/* Output g-range: +/-2g, 4g, or 8g */
|
|
#define KXTIK_G_2G 0
|
|
#define KXTIK_G_4G (1 << 3)
|
|
#define KXTIK_G_8G (1 << 4)
|
|
|
|
/* DATA_CTRL_REG: controls the output data rate of the part */
|
|
#define KXTIK_ODR12_5F 0
|
|
#define KXTIK_ODR25F 1
|
|
#define KXTIK_ODR50F 2
|
|
#define KXTIK_ODR100F 3
|
|
#define KXTIK_ODR200F 4
|
|
#define KXTIK_ODR400F 5
|
|
#define KXTIK_ODR800F 6
|
|
|
|
/* kxtik */
|
|
#define KXTIK_PRECISION 12
|
|
#define KXTIK_BOUNDARY (0x1 << (KXTIK_PRECISION - 1))
|
|
#define KXTIK_GRAVITY_STEP KXTIK_RANGE / KXTIK_BOUNDARY
|