blob: 24d7f8cad9e9425614d64acd059d4360762995d7 [file] [log] [blame]
Flemmardfb6d1e42013-05-23 15:18:38 -07001/******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
2*
3* File Name : r3gd20.h
4* Authors : MH - C&I BU - Application Team
5* : Carmine Iascone (carmine.iascone@st.com)
6* : Matteo Dameno (matteo.dameno@st.com)
7* : Both authors are willing to be considered the contact
8* : and update points for the driver.
9* Version : V 1.1.5 sysfs
10* Date : 2011/Sep/24
11* Description : R3GD20 digital output gyroscope sensor API
12*
13********************************************************************************
14*
15* This program is free software; you can redistribute it and/or modify
16* it under the terms of the GNU General Public License version 2 as
17* published by the Free Software Foundation.
18*
19* THE PRESENT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES
20* OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, FOR THE SOLE
21* PURPOSE TO SUPPORT YOUR APPLICATION DEVELOPMENT.
22* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
23* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
24* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
25* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
26*
27********************************************************************************
28* REVISON HISTORY
29*
30* VERSION | DATE | AUTHORS | DESCRIPTION
31* 1.0 | 2010/May/02 | Carmine Iascone | First Release
32* 1.1.3 | 2011/Jun/24 | Matteo Dameno | Corrects ODR Bug
33* 1.1.4 | 2011/Sep/02 | Matteo Dameno | SMB Bus Mng,
34* | | | forces BDU setting
35* 1.1.5 | 2011/Sep/24 | Matteo Dameno | Introduces FIFO Feat.
36* 1.1.5.1 | 2011/Nov/6 | Morris Chen | change name from l3g to r3g
37* | change default FS to 2000DPS
38* | change default poll_rate to 50ms
39* | chage the attribute of sysfs file as 666
40*******************************************************************************/
41
42#ifndef __R3GD20_H__
43#define __R3GD20_H__
44
45
46#define R3GD20_MIN_POLL_PERIOD_MS 2
47
48#define SAD0L 0x00
49#define SAD0H 0x01
50#define R3GD20_GYR_I2C_SADROOT 0x6A
51#define R3GD20_GYR_I2C_SAD_L ((R3GD20_GYR_I2C_SADROOT<<1)|SAD0L)
52#define R3GD20_GYR_I2C_SAD_H ((R3GD20_GYR_I2C_SADROOT<<1)|SAD0H)
53
54#define R3GD20_GYR_DEV_NAME "r3gd20_gyr"
55
56#define R3GD20_GYR_FS_250DPS 0x00
57#define R3GD20_GYR_FS_500DPS 0x10
58#define R3GD20_GYR_FS_2000DPS 0x30
59
60#define R3GD20_GYR_ENABLED 1
61#define R3GD20_GYR_DISABLED 0
62
63extern unsigned char gyro_gsensor_kvalue[37];
64
65#ifdef __KERNEL__
66struct r3gd20_gyr_platform_data {
67 int (*init)(void);
68 void (*exit)(void);
69 int (*power_on)(void);
70 int (*power_off)(void);
71 unsigned int poll_interval;
72 unsigned int min_interval;
73
74 u8 fs_range;
75
76
77 u8 watermark;
78 u8 fifomode;
79
80
81 int gpio_int1;
82 int gpio_int2;
83
84
85 u8 axis_map_x;
86 u8 axis_map_y;
87 u8 axis_map_z;
88
89 u8 negate_x;
90 u8 negate_y;
91 u8 negate_z;
92
93 int (*power_LPM)(int on);
94};
95#endif
96
97#endif