#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;
#define GSENSOR_DEV_PATH "/dev/mma8452_daemon"
-
#endif