85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Definitions for BMA150 G-sensor chip.
 | 
						|
 */
 | 
						|
#ifndef BMA150_H
 | 
						|
#define BMA150_H
 | 
						|
 | 
						|
#include <linux/ioctl.h>
 | 
						|
 | 
						|
#define BMA150_I2C_NAME "bma150"
 | 
						|
#ifdef CONFIG_MACH_HTCLEO
 | 
						|
#define BMA150_G_SENSOR_NAME "bma150" // To be compatible with other userspace
 | 
						|
#else
 | 
						|
#define BMA150_G_SENSOR_NAME "bma150_uP_spi"
 | 
						|
#endif
 | 
						|
 | 
						|
#define BMAIO				0xA1
 | 
						|
 | 
						|
/* BMA150 register address */
 | 
						|
#define CHIP_ID_REG			0x00
 | 
						|
#define VERSION_REG			0x01
 | 
						|
#define X_AXIS_LSB_REG		0x02
 | 
						|
#define X_AXIS_MSB_REG		0x03
 | 
						|
#define Y_AXIS_LSB_REG		0x04
 | 
						|
#define Y_AXIS_MSB_REG		0x05
 | 
						|
#define Z_AXIS_LSB_REG		0x06
 | 
						|
#define Z_AXIS_MSB_REG		0x07
 | 
						|
#define TEMP_RD_REG			0x08
 | 
						|
#define SMB150_STATUS_REG	0x09
 | 
						|
#define SMB150_CTRL_REG		0x0a
 | 
						|
#define SMB150_CONF1_REG	0x0b
 | 
						|
#define LG_THRESHOLD_REG	0x0c
 | 
						|
#define LG_DURATION_REG		0x0d
 | 
						|
#define HG_THRESHOLD_REG	0x0e
 | 
						|
#define HG_DURATION_REG		0x0f
 | 
						|
#define MOTION_THRS_REG		0x10
 | 
						|
#define HYSTERESIS_REG		0x11
 | 
						|
#define CUSTOMER1_REG		0x12
 | 
						|
#define CUSTOMER2_REG		0x13
 | 
						|
#define RANGE_BWIDTH_REG	0x14
 | 
						|
#define SMB150_CONF2_REG	0x15
 | 
						|
 | 
						|
#define OFFS_GAIN_X_REG		0x16
 | 
						|
#define OFFS_GAIN_Y_REG		0x17
 | 
						|
#define OFFS_GAIN_Z_REG		0x18
 | 
						|
#define OFFS_GAIN_T_REG		0x19
 | 
						|
#define OFFSET_X_REG		0x1a
 | 
						|
#define OFFSET_Y_REG		0x1b
 | 
						|
#define OFFSET_Z_REG		0x1c
 | 
						|
#define OFFSET_T_REG		0x1d
 | 
						|
 | 
						|
 | 
						|
/* IOCTLs*/
 | 
						|
#define BMA_IOCTL_INIT                  _IO(BMAIO, 0x31)
 | 
						|
#define BMA_IOCTL_WRITE                 _IOW(BMAIO, 0x32, char[5])
 | 
						|
#define BMA_IOCTL_READ                  _IOWR(BMAIO, 0x33, char[5])
 | 
						|
#define BMA_IOCTL_READ_ACCELERATION    _IOWR(BMAIO, 0x34, short[7])
 | 
						|
#define BMA_IOCTL_SET_MODE	  _IOW(BMAIO, 0x35, short)
 | 
						|
#define BMA_IOCTL_GET_INT	  _IOR(BMAIO, 0x36, short)
 | 
						|
#define BMA_IOCTL_GET_CHIP_LAYOUT	_IOR(BMAIO, 0x37, short)
 | 
						|
 | 
						|
/* range and bandwidth */
 | 
						|
#define BMA_RANGE_2G			0
 | 
						|
#define BMA_RANGE_4G			1
 | 
						|
#define BMA_RANGE_8G			2
 | 
						|
 | 
						|
#define BMA_BW_25HZ		0
 | 
						|
#define BMA_BW_50HZ		1
 | 
						|
#define BMA_BW_100HZ		2
 | 
						|
#define BMA_BW_190HZ		3
 | 
						|
#define BMA_BW_375HZ		4
 | 
						|
#define BMA_BW_750HZ		5
 | 
						|
#define BMA_BW_1500HZ	6
 | 
						|
 | 
						|
/* mode settings */
 | 
						|
#define BMA_MODE_NORMAL   	0
 | 
						|
#define BMA_MODE_SLEEP       	1
 | 
						|
 | 
						|
struct bma150_platform_data {
 | 
						|
	int intr;
 | 
						|
	int microp_new_cmd;
 | 
						|
	int chip_layout;
 | 
						|
};
 | 
						|
 | 
						|
#endif
 |