tizen 2.4 release
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / include / linux / i2c / lis3dh_zt.h
1
2 /******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
3 *
4 * File Name          : lis3dh_misc.h
5 * Authors            : MH - C&I BU - Application Team
6 *                    : Carmine Iascone (carmine.iascone@st.com)
7 *                    : Matteo Dameno (matteo.dameno@st.com)
8 * Version            : V 1.0.5
9 * Date               : 26/08/2010
10 *
11 ********************************************************************************
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License version 2 as
15 * published by the Free Software Foundation.
16 *
17 * THE PRESENT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES
18 * OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, FOR THE SOLE
19 * PURPOSE TO SUPPORT YOUR APPLICATION DEVELOPMENT.
20 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
21 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
22 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
23 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
24 *
25 * THIS SOFTWARE IS SPECIFICALLY DESIGNED FOR EXCLUSIVE USE WITH ST PARTS.
26 *
27 *******************************************************************************/
28 /*******************************************************************************
29 Version History.
30
31 Revision 1-0-0 05/11/2009
32 First Release
33 Revision 1-0-1 26/01/2010
34 Linux K&R Compliant Release
35 Revision 1-0-5 16/08/2010
36 Interrupt Management
37
38 *******************************************************************************/
39
40 #ifndef __LIS3DH_ZT_H__
41 #define __LIS3DH_ZT_H__
42
43 #include        <linux/ioctl.h> /* For IOCTL macros */
44 #include        <linux/input.h>
45
46 #ifndef DEBUG
47 #define DEBUG
48 #endif
49
50 #define SAD0L                   0x00
51 #define SAD0H                   0x01
52 #define LIS3DH_ACC_I2C_SADROOT  0x14 //lis3de
53 #define LIS3DH_ACC_I2C_SAD_L    ((LIS3DH_ACC_I2C_SADROOT<<1)|SAD0L)
54 #define LIS3DH_ACC_I2C_SAD_H    ((LIS3DH_ACC_I2C_SADROOT<<1)|SAD0H)
55 #define LIS3DH_ACC_DEV_NAME     "lis3dh_acc"
56
57 /* SAO pad is connected to GND, set LSB of SAD '0' */
58 #define LIS3DH_ACC_I2C_ADDR     LIS3DH_ACC_I2C_SAD_L
59 #define LIS3DH_ACC_I2C_NAME     LIS3DH_ACC_DEV_NAME
60
61 #define LIS3DH_ACC_IOCTL_BASE 77
62 /** The following define the IOCTL command values via the ioctl macros */
63 #define LIS3DH_ACC_IOCTL_SET_DELAY              _IOW(LIS3DH_ACC_IOCTL_BASE, 0, int)
64 #define LIS3DH_ACC_IOCTL_GET_DELAY              _IOR(LIS3DH_ACC_IOCTL_BASE, 1, int)
65 #define LIS3DH_ACC_IOCTL_SET_ENABLE             _IOW(LIS3DH_ACC_IOCTL_BASE, 2, int)
66 #define LIS3DH_ACC_IOCTL_GET_ENABLE             _IOR(LIS3DH_ACC_IOCTL_BASE, 3, int)
67 #define LIS3DH_ACC_IOCTL_SET_FULLSCALE          _IOW(LIS3DH_ACC_IOCTL_BASE, 4, int)
68 #define LIS3DH_ACC_IOCTL_SET_G_RANGE            LIS3DH_ACC_IOCTL_SET_FULLSCALE
69
70 #define LIS3DH_ACC_IOCTL_SET_CTRL_REG3          _IOW(LIS3DH_ACC_IOCTL_BASE, 6, int)
71 #define LIS3DH_ACC_IOCTL_SET_CTRL_REG6          _IOW(LIS3DH_ACC_IOCTL_BASE, 7, int)
72 #define LIS3DH_ACC_IOCTL_SET_DURATION1          _IOW(LIS3DH_ACC_IOCTL_BASE, 8, int)
73 #define LIS3DH_ACC_IOCTL_SET_THRESHOLD1         _IOW(LIS3DH_ACC_IOCTL_BASE, 9, int)
74 #define LIS3DH_ACC_IOCTL_SET_CONFIG1            _IOW(LIS3DH_ACC_IOCTL_BASE, 10, int)
75
76 #define LIS3DH_ACC_IOCTL_SET_DURATION2          _IOW(LIS3DH_ACC_IOCTL_BASE, 11, int)
77 #define LIS3DH_ACC_IOCTL_SET_THRESHOLD2         _IOW(LIS3DH_ACC_IOCTL_BASE, 12, int)
78 #define LIS3DH_ACC_IOCTL_SET_CONFIG2            _IOW(LIS3DH_ACC_IOCTL_BASE, 13, int)
79
80 #define LIS3DH_ACC_IOCTL_GET_SOURCE1            _IOW(LIS3DH_ACC_IOCTL_BASE, 14, int)
81 #define LIS3DH_ACC_IOCTL_GET_SOURCE2            _IOW(LIS3DH_ACC_IOCTL_BASE, 15, int)
82
83 #define LIS3DH_ACC_IOCTL_GET_TAP_SOURCE         _IOW(LIS3DH_ACC_IOCTL_BASE, 16, int)
84
85 #define LIS3DH_ACC_IOCTL_SET_TAP_TW             _IOW(LIS3DH_ACC_IOCTL_BASE, 17, int)
86 #define LIS3DH_ACC_IOCTL_SET_TAP_CFG            _IOW(LIS3DH_ACC_IOCTL_BASE, 18, int)
87 #define LIS3DH_ACC_IOCTL_SET_TAP_TLIM           _IOW(LIS3DH_ACC_IOCTL_BASE, 19, int)
88 #define LIS3DH_ACC_IOCTL_SET_TAP_THS            _IOW(LIS3DH_ACC_IOCTL_BASE, 20, int)
89 #define LIS3DH_ACC_IOCTL_SET_TAP_TLAT           _IOW(LIS3DH_ACC_IOCTL_BASE, 21, int)
90
91 #define LIS3DH_ACC_IOCTL_GET_COOR_XYZ           _IOW(LIS3DH_ACC_IOCTL_BASE, 22, int)
92
93 #define LIS3DH_ACC_IOCTL_GET_CHIP_ID            _IOR(LIS3DH_ACC_IOCTL_BASE, 255, char[32])
94
95 /************************************************/
96 /*      Accelerometer defines section           */
97 /************************************************/
98
99 /* Accelerometer Sensor Full Scale */
100 #define LIS3DH_ACC_FS_MASK              0x30
101 #define LIS3DH_ACC_G_2G                 0x00
102 #define LIS3DH_ACC_G_4G                 0x10
103 #define LIS3DH_ACC_G_8G                 0x20
104 #define LIS3DH_ACC_G_16G                0x30
105
106
107 /* Accelerometer Sensor Operating Mode */
108 #define LIS3DH_ACC_ENABLE               0x01
109 #define LIS3DH_ACC_DISABLE              0x00
110
111 #ifdef  __KERNEL__
112 struct lis3dh_acc_platform_data {
113         int poll_interval;
114         int min_interval;
115
116         u8 g_range;
117
118         u8 axis_map_x;
119         u8 axis_map_y;
120         u8 axis_map_z;
121
122         u8 negate_x;
123         u8 negate_y;
124         u8 negate_z;
125
126         int (*init)(void);
127         void (*exit)(void);
128         int (*power_on)(void);
129         int (*power_off)(void);
130
131         int gpio_int1;
132         int gpio_int2;
133
134 };
135 #endif  /* __KERNEL__ */
136
137 #endif  /* __LIS3DH_ZT_H__ */
138
139
140