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