soc: rockchip: add virtual poweroff support
[firefly-linux-kernel-4.4.55.git] / include / linux / mma8452.h
old mode 100644 (file)
new mode 100755 (executable)
index e2061f0..ef9e4f6
 #define MMAIO                          0xA1
 
 /* IOCTLs for MMA8452 library */
-#define ECS_IOCTL_INIT                  _IO(MMAIO, 0x01)
-#define ECS_IOCTL_RESET                  _IO(MMAIO, 0x04)
-#define ECS_IOCTL_CLOSE                           _IO(MMAIO, 0x02)
-#define ECS_IOCTL_START                             _IO(MMAIO, 0x03)
-#define ECS_IOCTL_GETDATA               _IOR(MMAIO, 0x08, char[RBUFF_SIZE+1])
+#define MMA_IOCTL_INIT                  _IO(MMAIO, 0x01)
+#define MMA_IOCTL_RESET                  _IO(MMAIO, 0x04)
+#define MMA_IOCTL_CLOSE                           _IO(MMAIO, 0x02)
+#define MMA_IOCTL_START                             _IO(MMAIO, 0x03)
+#define MMA_IOCTL_GETDATA               _IOR(MMAIO, 0x08, char[RBUFF_SIZE+1])
 
 /* IOCTLs for APPs */
-#define ECS_IOCTL_APP_SET_RATE         _IOW(MMAIO, 0x10, char)
+#define MMA_IOCTL_APP_SET_RATE         _IOW(MMAIO, 0x10, char)
 
 
 /*rate*/
 #define MMA8452_ASLP_RATE_1P56        3
 #define MMA8452_ASLP_RATE_SHIFT                  6
 
-#define ACTIVE_MASK                            1
-#define FREAD_MASK                             2
+/*Auto-adapt mma845x series*/
+/*Modified by Yick @ROCKCHIP 
+  xieyi@rockchips.com*/
+/*
+  Range: unit(ug 1g=1 000 000 ug)
+                option(2g,4g,8g)
+                G would be defined on android HAL
+  Precision: bit wide of valid data
+  Boundary: Max positive count
+  Gravity_step: gravity value indicated by per count
+ */
+#define FREAD_MASK                             0 /* enabled(1<<1) only if reading MSB 8bits*/
+#define MMA845X_RANGE                  2000000
+/* mma8451 */
+#define MMA8451_PRECISION       14
+#define MMA8451_BOUNDARY        (0x1 << (MMA8451_PRECISION - 1))
+#define MMA8451_GRAVITY_STEP    MMA845X_RANGE / MMA8451_BOUNDARY
+
+/* mma8452 */
+#define MMA8452_PRECISION       12
+#define MMA8452_BOUNDARY        (0x1 << (MMA8452_PRECISION - 1))
+#define MMA8452_GRAVITY_STEP    MMA845X_RANGE / MMA8452_BOUNDARY
+
+/* mma8453 */
+#define MMA8453_PRECISION       10
+#define MMA8453_BOUNDARY        (0x1 << (MMA8453_PRECISION - 1))
+#define MMA8453_GRAVITY_STEP    MMA845X_RANGE / MMA8453_BOUNDARY
 
+/*End of precision adaption*/
 
+#define MMA8452_TOTAL_TIME      10
 
+#define ACTIVE_MASK                            1
 
 /*status*/
 #define MMA8452_SUSPEND           2
 #define MMA8452_OPEN           1
 #define MMA8452_CLOSE          0
 
-
-
-//#define MMA8452_IIC_ADDR         0x98  
 #define MMA8452_REG_LEN         11
-#define MMA8452_GRAVITY_STEP    156 //2g full scale range
-#define MMA8452_PRECISION       8 //8bit data
-#define MMA8452_BOUNDARY        (0x1 << (MMA8452_PRECISION - 1))
-#define MMA8452_TOTAL_TIME      10
-
-
-/*
-struct mma8452_platform_data {
-       int reset;
-       int clk_on;
-       int intr;
-};
-
-*/
-
-struct mma8452_data {
-    char  status;
-    char  curr_tate;
-       struct input_dev *input_dev;
-       struct i2c_client *client;
-       struct work_struct work;
-       struct delayed_work delaywork;  /*report second event*/
-};
 
 struct mma8452_axis {
        int x;
@@ -132,6 +134,5 @@ struct mma8452_axis {
 
 #define  GSENSOR_DEV_PATH    "/dev/mma8452_daemon"
 
-
 #endif