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 #define RBUFF_SIZE 8 /* Rx buffer size */ 20 21 /*! \name AK8975 register address 22 \anchor AK8975_REG 23 Defines a register address of the AK8975.*/ 24 /*! @{*/ 25 #define AK8975_REG_WIA 0x00 26 #define AK8975_REG_INFO 0x01 27 #define AK8975_REG_ST1 0x02 28 #define AK8975_REG_HXL 0x03 29 #define AK8975_REG_HXH 0x04 30 #define AK8975_REG_HYL 0x05 31 #define AK8975_REG_HYH 0x06 32 #define AK8975_REG_HZL 0x07 33 #define AK8975_REG_HZH 0x08 34 #define AK8975_REG_ST2 0x09 35 #define AK8975_REG_CNTL 0x0A 36 #define AK8975_REG_RSV 0x0B 37 #define AK8975_REG_ASTC 0x0C 38 #define AK8975_REG_TS1 0x0D 39 #define AK8975_REG_TS2 0x0E 40 #define AK8975_REG_I2CDIS 0x0F 41 /*! @}*/ 42 43 /*! \name AK8975 fuse-rom address 44 \anchor AK8975_FUSE 45 Defines a read-only address of the fuse ROM of the AK8975.*/ 46 /*! @{*/ 47 #define AK8975_FUSE_ASAX 0x10 48 #define AK8975_FUSE_ASAY 0x11 49 #define AK8975_FUSE_ASAZ 0x12 50 /*! @}*/ 51 52 #define AKMIO 0xA1 53 54 /* IOCTLs for AKM library */ 55 #define ECS_IOCTL_WRITE _IOW(AKMIO, 0x02, char[5]) 56 #define ECS_IOCTL_READ _IOWR(AKMIO, 0x03, char[5]) 57 #define ECS_IOCTL_GETDATA _IOR(AKMIO, 0x08, char[RBUFF_SIZE]) 58 #define ECS_IOCTL_SET_YPR _IOW(AKMIO, 0x0C, short[12]) 59 #define ECS_IOCTL_GET_OPEN_STATUS _IOR(AKMIO, 0x0D, int) 60 #define ECS_IOCTL_GET_CLOSE_STATUS _IOR(AKMIO, 0x0E, int) 61 #define ECS_IOCTL_GET_DELAY _IOR(AKMIO, 0x30, short) 62 63 /* IOCTLs for APPs */ 64 #define ECS_IOCTL_APP_SET_MFLAG _IOW(AKMIO, 0x11, short) 65 #define ECS_IOCTL_APP_GET_MFLAG _IOW(AKMIO, 0x12, short) 66 #define ECS_IOCTL_APP_SET_AFLAG _IOW(AKMIO, 0x13, short) 67 #define ECS_IOCTL_APP_GET_AFLAG _IOR(AKMIO, 0x14, short) 68 #define ECS_IOCTL_APP_SET_DELAY _IOW(AKMIO, 0x18, short) 69 #define ECS_IOCTL_APP_GET_DELAY ECS_IOCTL_GET_DELAY 70 #define ECS_IOCTL_APP_SET_MVFLAG _IOW(AKMIO, 0x19, short) /* Set raw magnetic vector flag */ 71 #define ECS_IOCTL_APP_GET_MVFLAG _IOR(AKMIO, 0x1A, short) /* Get raw magnetic vector flag */ 72 #define ECS_IOCTL_APP_SET_TFLAG _IOR(AKMIO, 0x15, short) 73 74 75 /* Default GPIO setting */ 76 #define ECS_INTR 140 77 78 struct akm8975_platform_data { 79 int intr; 80 }; 81 82 #endif 83 84