2 /******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
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)
11 ********************************************************************************
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.
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.
25 * THIS SOFTWARE IS SPECIFICALLY DESIGNED FOR EXCLUSIVE USE WITH ST PARTS.
27 *******************************************************************************/
28 /*******************************************************************************
31 Revision 1-0-0 05/11/2009
33 Revision 1-0-1 26/01/2010
34 Linux K&R Compliant Release
35 Revision 1-0-5 16/08/2010
38 *******************************************************************************/
40 #ifndef __LIS3DH_ZT_H__
41 #define __LIS3DH_ZT_H__
43 #include <linux/ioctl.h> /* For IOCTL macros */
44 #include <linux/input.h>
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"
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
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
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)
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)
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)
83 #define LIS3DH_ACC_IOCTL_GET_TAP_SOURCE _IOW(LIS3DH_ACC_IOCTL_BASE, 16, int)
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)
91 #define LIS3DH_ACC_IOCTL_GET_COOR_XYZ _IOW(LIS3DH_ACC_IOCTL_BASE, 22, int)
93 #define LIS3DH_ACC_IOCTL_GET_CHIP_ID _IOR(LIS3DH_ACC_IOCTL_BASE, 255, char[32])
95 /************************************************/
96 /* Accelerometer defines section */
97 /************************************************/
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
107 /* Accelerometer Sensor Operating Mode */
108 #define LIS3DH_ACC_ENABLE 0x01
109 #define LIS3DH_ACC_DISABLE 0x00
112 struct lis3dh_acc_platform_data {
128 int (*power_on)(void);
129 int (*power_off)(void);
135 #endif /* __KERNEL__ */
137 #endif /* __LIS3DH_ZT_H__ */