temp revert rk change
[firefly-linux-kernel-4.4.55.git] / include / linux / akm8975.h
1 /*
2  * Definitions for akm8975 compass chip.
3  */
4 #ifndef AKM8975_H
5 #define AKM8975_H
6
7 #include <linux/ioctl.h>
8
9 /*! \name AK8975 operation mode
10  \anchor AK8975_Mode
11  Defines an operation mode of the AK8975.*/
12 /*! @{*/
13 #define AK8975_MODE_SNG_MEASURE   0x01
14 #define AK8975_MODE_SELF_TEST     0x08
15 #define AK8975_MODE_FUSE_ACCESS   0x0F
16 #define AK8975_MODE_POWER_DOWN    0x00
17 /*! @}*/
18
19 /*! \name AK8975 register address
20 \anchor AK8975_REG
21 Defines a register address of the AK8975.*/
22 /*! @{*/
23 #define AK8975_REG_WIA          0x00
24 #define AK8975_REG_INFO         0x01
25 #define AK8975_REG_ST1          0x02
26 #define AK8975_REG_HXL          0x03
27 #define AK8975_REG_HXH          0x04
28 #define AK8975_REG_HYL          0x05
29 #define AK8975_REG_HYH          0x06
30 #define AK8975_REG_HZL          0x07
31 #define AK8975_REG_HZH          0x08
32 #define AK8975_REG_ST2          0x09
33 #define AK8975_REG_CNTL         0x0A
34 #define AK8975_REG_RSV          0x0B
35 #define AK8975_REG_ASTC         0x0C
36 #define AK8975_REG_TS1          0x0D
37 #define AK8975_REG_TS2          0x0E
38 #define AK8975_REG_I2CDIS       0x0F
39 /*! @}*/
40
41 /*! \name AK8975 fuse-rom address
42 \anchor AK8975_FUSE
43 Defines a read-only address of the fuse ROM of the AK8975.*/
44 /*! @{*/
45 #define AK8975_FUSE_ASAX        0x10
46 #define AK8975_FUSE_ASAY        0x11
47 #define AK8975_FUSE_ASAZ        0x12
48 /*! @}*/
49
50 #define AKMIO                   0xA1
51
52 /* IOCTLs for AKM library */
53 #define ECS_IOCTL_WRITE                 _IOW(AKMIO, 0x02, char[5])
54 #define ECS_IOCTL_READ                  _IOWR(AKMIO, 0x03, char[5])
55 #define ECS_IOCTL_SET_YPR               _IOW(AKMIO, 0x0C, short[12])
56 #define ECS_IOCTL_GET_OPEN_STATUS       _IOR(AKMIO, 0x0D, int)
57 #define ECS_IOCTL_GET_CLOSE_STATUS      _IOR(AKMIO, 0x0E, int)
58 #define ECS_IOCTL_GET_DELAY             _IOR(AKMIO, 0x30, short)
59
60 /* IOCTLs for APPs */
61 #define ECS_IOCTL_APP_SET_MFLAG         _IOW(AKMIO, 0x11, short)
62 #define ECS_IOCTL_APP_GET_MFLAG         _IOW(AKMIO, 0x12, short)
63 #define ECS_IOCTL_APP_SET_DELAY         _IOW(AKMIO, 0x18, short)
64 #define ECS_IOCTL_APP_GET_DELAY         ECS_IOCTL_GET_DELAY
65 /* Set raw magnetic vector flag */
66 #define ECS_IOCTL_APP_SET_MVFLAG        _IOW(AKMIO, 0x19, short)
67 /* Get raw magnetic vector flag */
68 #define ECS_IOCTL_APP_GET_MVFLAG        _IOR(AKMIO, 0x1A, short)
69
70 #endif
71