123 lines
4.4 KiB
C
Executable File
123 lines
4.4 KiB
C
Executable File
/* Copyright (c) 2009-2011, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
#ifndef LINUX_BMA254_MODULE_H
|
|
#define LINUX_BMA254_MODULE_H
|
|
|
|
|
|
#define BMA254_CHIP_ID 0x00
|
|
#define BMA254_XOUT 0x02
|
|
#define BMA254_YOUT 0x04
|
|
#define BMA254_ZOUT 0x06
|
|
#define BMA254_TEMP 0x08
|
|
#define BMA254_REG0B 0x0B
|
|
#define BMA254_REG0A 0x0A
|
|
#define BMA254_REG0F 0X0F
|
|
#define BMA254_REG10 0x10
|
|
#define BMA254_REG11 0x11
|
|
#define BMA254_REG14 0x14
|
|
#define SOFT_RESEET 0xB6
|
|
|
|
#define BMA2X2_RANGE_SET 3
|
|
#define MAX_DELAY 200
|
|
#define ABSMIN -128
|
|
#define ABSMAX 128
|
|
|
|
/*Mode for BMA254 only*/
|
|
#define BMA254_MODE_NORMAL 0x00
|
|
#define BMA254_MODE_LOWPOWER1 0x40
|
|
#define BMA254_MODE_SUSPEND 0x80
|
|
#define BMA254_MODE_DEEP_SUSPEND 0x20
|
|
|
|
/* Bandwidth */
|
|
#define BANDWIDTH_07_81 0x08
|
|
#define BANDWIDTH_15_63 0x09
|
|
#define BANDWIDTH_31_25 0x0A
|
|
#define BANDWIDTH_62_50 0x0B
|
|
#define BANDWIDTH_125 0x0C
|
|
#define BANDWIDTH_250 0x0D
|
|
|
|
/*add register for calibartion*/
|
|
#define BMA254_EEPROM_CTRL_REG 0x33
|
|
#define BMA254_OFFSET_CTRL_REG 0x36
|
|
#define BMA254_OFFSET_PARAMS_REG 0x37
|
|
#define BMA254_OFFSET_FILT_X_REG 0x38
|
|
#define BMA254_OFFSET_FILT_Y_REG 0x39
|
|
#define BMA254_OFFSET_FILT_Z_REG 0x3A
|
|
|
|
#define BMA254_EN_FAST_COMP__POS 5
|
|
#define BMA254_EN_FAST_COMP__LEN 2
|
|
#define BMA254_EN_FAST_COMP__MSK 0x60
|
|
#define BMA254_EN_FAST_COMP__REG BMA254_OFFSET_CTRL_REG
|
|
|
|
#define BMA254_COMP_TARGET_OFFSET_X__POS 1
|
|
#define BMA254_COMP_TARGET_OFFSET_X__LEN 2
|
|
#define BMA254_COMP_TARGET_OFFSET_X__MSK 0x06
|
|
#define BMA254_COMP_TARGET_OFFSET_X__REG BMA254_OFFSET_PARAMS_REG
|
|
|
|
#define BMA254_COMP_TARGET_OFFSET_Y__POS 3
|
|
#define BMA254_COMP_TARGET_OFFSET_Y__LEN 2
|
|
#define BMA254_COMP_TARGET_OFFSET_Y__MSK 0x18
|
|
#define BMA254_COMP_TARGET_OFFSET_Y__REG BMA254_OFFSET_PARAMS_REG
|
|
|
|
#define BMA254_COMP_TARGET_OFFSET_Z__POS 5
|
|
#define BMA254_COMP_TARGET_OFFSET_Z__LEN 2
|
|
#define BMA254_COMP_TARGET_OFFSET_Z__MSK 0x60
|
|
#define BMA254_COMP_TARGET_OFFSET_Z__REG BMA254_OFFSET_PARAMS_REG
|
|
|
|
#define BMA254_FAST_COMP_RDY_S__POS 4
|
|
#define BMA254_FAST_COMP_RDY_S__LEN 1
|
|
#define BMA254_FAST_COMP_RDY_S__MSK 0x10
|
|
#define BMA254_FAST_COMP_RDY_S__REG BMA254_OFFSET_CTRL_REG
|
|
|
|
#define BMA254_GET_BITSLICE(regvar, bitname)\
|
|
((regvar & bitname##__MSK) >> bitname##__POS)
|
|
#define BMA254_SET_BITSLICE(regvar, bitname, val)\
|
|
((regvar & ~bitname##__MSK) | ((val<<bitname##__POS)&bitname##__MSK))
|
|
/** \endcond */
|
|
|
|
/* SETTING THIS BIT UNLOCK'S WRITING SETTING REGISTERS TO EEPROM */
|
|
|
|
#define BMA254_UNLOCK_EE_WRITE_SETTING__POS 0
|
|
#define BMA254_UNLOCK_EE_WRITE_SETTING__LEN 1
|
|
#define BMA254_UNLOCK_EE_WRITE_SETTING__MSK 0x01
|
|
#define BMA254_UNLOCK_EE_WRITE_SETTING__REG BMA254_EEPROM_CTRL_REG
|
|
|
|
|
|
/* SETTING THIS BIT STARTS WRITING SETTING REGISTERS TO EEPROM */
|
|
|
|
#define BMA254_START_EE_WRITE_SETTING__POS 1
|
|
#define BMA254_START_EE_WRITE_SETTING__LEN 1
|
|
#define BMA254_START_EE_WRITE_SETTING__MSK 0x02
|
|
#define BMA254_START_EE_WRITE_SETTING__REG BMA254_EEPROM_CTRL_REG
|
|
|
|
/* STATUS OF WRITING TO EEPROM */
|
|
|
|
#define BMA254_EE_WRITE_SETTING_S__POS 2
|
|
#define BMA254_EE_WRITE_SETTING_S__LEN 1
|
|
#define BMA254_EE_WRITE_SETTING_S__MSK 0x04
|
|
#define BMA254_EE_WRITE_SETTING_S__REG BMA254_EEPROM_CTRL_REG
|
|
|
|
#ifdef CONFIG_BMA254_SMART_ALERT
|
|
#define BMA254_STATUS1_REG 0x09
|
|
#define BMA254_INT1_PAD_SEL_REG 0x19
|
|
#define BMA254_SLOPE_DURN_REG 0x27
|
|
#define BMA254_INT_ENABLE1_REG 0x16
|
|
#define BMA254_SLOPE_THRES_REG 0x28
|
|
#define BMA254_SLOPE_INT_S__REG BMA254_STATUS1_REG
|
|
#define BMA254_EN_INT1_PAD_SLOPE__REG BMA254_INT1_PAD_SEL_REG
|
|
#define BMA254_SLOPE_DUR__REG BMA254_SLOPE_DURN_REG
|
|
#define BMA254_EN_SLOPE_X_INT__REG BMA254_INT_ENABLE1_REG
|
|
#define BMA254_SLOPE_THRES__REG BMA254_SLOPE_THRES_REG
|
|
#endif
|
|
#endif
|