input: R3GD20: Add R3GD20 gyroscope for HTC
HTC kernel version: evitaul-jb-crc-3.4.10-ec474a3
Change-Id: I94ff18fb64b2d106ce4a80e19ef898e9d1f9b265
diff --git a/include/linux/r3gd20.h b/include/linux/r3gd20.h
new file mode 100644
index 0000000..24d7f8c
--- /dev/null
+++ b/include/linux/r3gd20.h
@@ -0,0 +1,97 @@
+/******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
+*
+* File Name : r3gd20.h
+* Authors : MH - C&I BU - Application Team
+* : Carmine Iascone (carmine.iascone@st.com)
+* : Matteo Dameno (matteo.dameno@st.com)
+* : Both authors are willing to be considered the contact
+* : and update points for the driver.
+* Version : V 1.1.5 sysfs
+* Date : 2011/Sep/24
+* Description : R3GD20 digital output gyroscope sensor API
+*
+********************************************************************************
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License version 2 as
+* published by the Free Software Foundation.
+*
+* THE PRESENT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES
+* OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, FOR THE SOLE
+* PURPOSE TO SUPPORT YOUR APPLICATION DEVELOPMENT.
+* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
+* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
+* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
+* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+*
+********************************************************************************
+* REVISON HISTORY
+*
+* VERSION | DATE | AUTHORS | DESCRIPTION
+* 1.0 | 2010/May/02 | Carmine Iascone | First Release
+* 1.1.3 | 2011/Jun/24 | Matteo Dameno | Corrects ODR Bug
+* 1.1.4 | 2011/Sep/02 | Matteo Dameno | SMB Bus Mng,
+* | | | forces BDU setting
+* 1.1.5 | 2011/Sep/24 | Matteo Dameno | Introduces FIFO Feat.
+* 1.1.5.1 | 2011/Nov/6 | Morris Chen | change name from l3g to r3g
+* | change default FS to 2000DPS
+* | change default poll_rate to 50ms
+* | chage the attribute of sysfs file as 666
+*******************************************************************************/
+
+#ifndef __R3GD20_H__
+#define __R3GD20_H__
+
+
+#define R3GD20_MIN_POLL_PERIOD_MS 2
+
+#define SAD0L 0x00
+#define SAD0H 0x01
+#define R3GD20_GYR_I2C_SADROOT 0x6A
+#define R3GD20_GYR_I2C_SAD_L ((R3GD20_GYR_I2C_SADROOT<<1)|SAD0L)
+#define R3GD20_GYR_I2C_SAD_H ((R3GD20_GYR_I2C_SADROOT<<1)|SAD0H)
+
+#define R3GD20_GYR_DEV_NAME "r3gd20_gyr"
+
+#define R3GD20_GYR_FS_250DPS 0x00
+#define R3GD20_GYR_FS_500DPS 0x10
+#define R3GD20_GYR_FS_2000DPS 0x30
+
+#define R3GD20_GYR_ENABLED 1
+#define R3GD20_GYR_DISABLED 0
+
+extern unsigned char gyro_gsensor_kvalue[37];
+
+#ifdef __KERNEL__
+struct r3gd20_gyr_platform_data {
+ int (*init)(void);
+ void (*exit)(void);
+ int (*power_on)(void);
+ int (*power_off)(void);
+ unsigned int poll_interval;
+ unsigned int min_interval;
+
+ u8 fs_range;
+
+
+ u8 watermark;
+ u8 fifomode;
+
+
+ int gpio_int1;
+ int gpio_int2;
+
+
+ u8 axis_map_x;
+ u8 axis_map_y;
+ u8 axis_map_z;
+
+ u8 negate_x;
+ u8 negate_y;
+ u8 negate_z;
+
+ int (*power_LPM)(int on);
+};
+#endif
+
+#endif