blob: 24d7f8cad9e9425614d64acd059d4360762995d7 [file] [log] [blame]
/******************** (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