2 * Definitions for akm8963 compass chip.
7 #include <linux/ioctl.h>
9 #define AKM8963_I2C_NAME "akm8963"
11 #define SENSOR_DATA_SIZE 8
12 #define YPR_DATA_SIZE 12
15 #define ACC_DATA_FLAG 0
16 #define MAG_DATA_FLAG 1
17 #define ORI_DATA_FLAG 2
18 #define AKM_NUM_SENSORS 3
20 #define ACC_DATA_READY (1<<(ACC_DATA_FLAG))
21 #define MAG_DATA_READY (1<<(MAG_DATA_FLAG))
22 #define ORI_DATA_READY (1<<(ORI_DATA_FLAG))
24 /*! \name AK8963 constant definition
26 Constant definitions of the AK8963.*/
27 #define AK8963_MEASUREMENT_TIME_US 10000
29 /*! \name AK8963 operation mode
31 Defines an operation mode of the AK8963.*/
33 #define AK8963_MODE_SNG_MEASURE 0x01
34 #define AK8963_MODE_SELF_TEST 0x08
35 #define AK8963_MODE_FUSE_ACCESS 0x0F
36 #define AK8963_MODE_POWERDOWN 0x00
40 /*! \name AK8963 register address
42 Defines a register address of the AK8963.*/
44 #define AK8963_REG_WIA 0x00
45 #define AK8963_REG_INFO 0x01
46 #define AK8963_REG_ST1 0x02
47 #define AK8963_REG_HXL 0x03
48 #define AK8963_REG_HXH 0x04
49 #define AK8963_REG_HYL 0x05
50 #define AK8963_REG_HYH 0x06
51 #define AK8963_REG_HZL 0x07
52 #define AK8963_REG_HZH 0x08
53 #define AK8963_REG_ST2 0x09
54 #define AK8963_REG_CNTL1 0x0A
55 #define AK8963_REG_CNTL2 0x0B
56 #define AK8963_REG_ASTC 0x0C
57 #define AK8963_REG_TS1 0x0D
58 #define AK8963_REG_TS2 0x0E
59 #define AK8963_REG_I2CDIS 0x0F
62 /*! \name AK8963 fuse-rom address
64 Defines a read-only address of the fuse ROM of the AK8963.*/
66 #define AK8963_FUSE_ASAX 0x10
67 #define AK8963_FUSE_ASAY 0x11
68 #define AK8963_FUSE_ASAZ 0x12
73 /* IOCTLs for AKM library */
74 #define ECS_IOCTL_READ _IOWR(AKMIO, 0x01, char*)
75 #define ECS_IOCTL_WRITE _IOW(AKMIO, 0x02, char*)
76 #define ECS_IOCTL_SET_MODE _IOW(AKMIO, 0x03, short)
77 #define ECS_IOCTL_GETDATA _IOR(AKMIO, 0x04, char[SENSOR_DATA_SIZE])
78 #define ECS_IOCTL_SET_YPR _IOW(AKMIO, 0x05, int[YPR_DATA_SIZE])
79 #define ECS_IOCTL_GET_OPEN_STATUS _IOR(AKMIO, 0x06, int)
80 #define ECS_IOCTL_GET_CLOSE_STATUS _IOR(AKMIO, 0x07, int)
81 #define ECS_IOCTL_GET_DELAY _IOR(AKMIO, 0x08, long long int[AKM_NUM_SENSORS])
82 #define ECS_IOCTL_GET_LAYOUT _IOR(AKMIO, 0x09, char)
83 #define ECS_IOCTL_GET_OUTBIT _IOR(AKMIO, 0x0B, char)
84 #define ECS_IOCTL_RESET _IO(AKMIO, 0x0C)
85 #define ECS_IOCTL_GET_ACCEL _IOR(AKMIO, 0x30, short[3])
87 struct akm8963_platform_data {