Home | History | Annotate | Download | only in libsensors
      1 /*
      2  * Definitions for akm8973 compass chip.
      3  */
      4 #ifndef AKM8973_H
      5 #define AKM8973_H
      6 
      7 #include <linux/ioctl.h>
      8 
      9 #define AKM8973_I2C_NAME "ak8973b"
     10 
     11 #define AKMIO                   0xA1
     12 
     13 /* IOCTLs for AKM library */
     14 #define ECS_IOCTL_WRITE         _IOW(AKMIO, 0x01, char*)
     15 #define ECS_IOCTL_READ          _IOWR(AKMIO, 0x02, char*)
     16 #define ECS_IOCTL_RESET         _IO(AKMIO, 0x03)
     17 #define ECS_IOCTL_SET_MODE      _IOW(AKMIO, 0x04, short)
     18 #define ECS_IOCTL_GETDATA       _IOR(AKMIO, 0x05, char[SENSOR_DATA_SIZE])
     19 #define ECS_IOCTL_SET_YPR               _IOW(AKMIO, 0x06, short[12])
     20 #define ECS_IOCTL_GET_OPEN_STATUS       _IOR(AKMIO, 0x07, int)
     21 #define ECS_IOCTL_GET_CLOSE_STATUS      _IOR(AKMIO, 0x08, int)
     22 #define ECS_IOCTL_GET_DELAY             _IOR(AKMIO, 0x30, int64_t)
     23 #define ECS_IOCTL_GET_PROJECT_NAME      _IOR(AKMIO, 0x0D, char[64])
     24 #define ECS_IOCTL_GET_MATRIX            _IOR(AKMIO, 0x0E, short [4][3][3])
     25 
     26 /* IOCTLs for APPs */
     27 #define ECS_IOCTL_APP_SET_MODE          _IOW(AKMIO, 0x10, short)
     28 #define ECS_IOCTL_APP_SET_MFLAG         _IOW(AKMIO, 0x11, short)
     29 #define ECS_IOCTL_APP_GET_MFLAG         _IOW(AKMIO, 0x12, short)
     30 #define ECS_IOCTL_APP_SET_AFLAG         _IOW(AKMIO, 0x13, short)
     31 #define ECS_IOCTL_APP_GET_AFLAG         _IOR(AKMIO, 0x14, short)
     32 #define ECS_IOCTL_APP_SET_TFLAG         _IOR(AKMIO, 0x15, short)
     33 #define ECS_IOCTL_APP_GET_TFLAG         _IOR(AKMIO, 0x16, short)
     34 #define ECS_IOCTL_APP_RESET_PEDOMETER   _IO(AKMIO, 0x17)
     35 #define ECS_IOCTL_APP_SET_DELAY         _IOW(AKMIO, 0x18, int64_t)
     36 #define ECS_IOCTL_APP_GET_DELAY         ECS_IOCTL_GET_DELAY
     37 
     38 /* Set raw magnetic vector flag */
     39 #define ECS_IOCTL_APP_SET_MVFLAG        _IOW(AKMIO, 0x19, short)
     40 
     41 /* Get raw magnetic vector flag */
     42 #define ECS_IOCTL_APP_GET_MVFLAG        _IOR(AKMIO, 0x1A, short)
     43 
     44 struct akm8973_platform_data {
     45         short layouts[4][3][3];
     46         char project_name[64];
     47         int gpio_RST;
     48         int gpio_INT;
     49 };
     50 
     51 #endif
     52