| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /* BMA255 motion sensor driver
- *
- *
- * This software program is licensed subject to the GNU General Public License
- * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html
- * (C) Copyright 2011 Bosch Sensortec GmbH
- * All Rights Reserved
- */
- #ifndef BMA255_H
- #define BMA255_H
-
- #include <linux/ioctl.h>
- /* 7-bit addr: 0x18 (SDO connected to GND); 0x19 (SDO connected to VDDIO) */
- #define BMA255_I2C_ADDR 0x18
- /* chip ID */
- #define BMA255_FIXED_DEVID 0xFA
- /* BMA255 Register Map (Please refer to BMA255 Specifications) */
- #define BMA255_REG_DEVID 0x00
- #define BMA255_REG_OFSX 0x16
- #define BMA255_REG_OFSX_HIGH 0x1A
- #define BMA255_REG_BW_RATE 0x10
- #define BMA255_BW_MASK 0x1f
- #define BMA255_BW_200HZ 0x0d
- #define BMA255_BW_100HZ 0x0c
- #define BMA255_BW_50HZ 0x0b
- #define BMA255_BW_25HZ 0x0a
- #define BMA255_REG_POWER_CTL 0x11
- #define BMA255_REG_DATA_FORMAT 0x0f
- #define BMA255_RANGE_MASK 0x0f
- #define BMA255_RANGE_2G 0x03
- #define BMA255_RANGE_4G 0x05
- #define BMA255_RANGE_8G 0x08
- #define BMA255_REG_DATAXLOW 0x02
- #define BMA255_REG_DATA_RESOLUTION 0x14
- #define BMA255_MEASURE_MODE 0x80
- #define BMA255_SELF_TEST 0x32
- #define BMA255_SELF_TEST_AXIS_X 0x01
- #define BMA255_SELF_TEST_AXIS_Y 0x02
- #define BMA255_SELF_TEST_AXIS_Z 0x03
- #define BMA255_SELF_TEST_POSITIVE 0x00
- #define BMA255_SELF_TEST_NEGATIVE 0x04
- #define BMA255_INT_REG_1 0x16
- #define BMA255_INT_REG_2 0x17
- #define BMA255_FIFO_MODE_REG 0x3E
- #define BMA255_FIFO_DATA_OUTPUT_REG 0x3F
- #define BMA255_STATUS_FIFO_REG 0x0E
- #define BMA255_SUCCESS 0
- #define BMA255_ERR_I2C -1
- #define BMA255_ERR_STATUS -3
- #define BMA255_ERR_SETUP_FAILURE -4
- #define BMA255_ERR_GETGSENSORDATA -5
- #define BMA255_ERR_IDENTIFICATION -6
-
- #define BMA255_BUFSIZE 256
- /* power mode */
- #define BMA255_MODE_CTRL_REG 0x11
- #define BMA255_MODE_CTRL__POS 5
- #define BMA255_MODE_CTRL__LEN 3
- #define BMA255_MODE_CTRL__MSK 0xE0
- #define BMA255_MODE_CTRL__REG BMA255_MODE_CTRL_REG
- #define BMA255_LOW_POWER_CTRL_REG 0x12
- #define BMA255_LOW_POWER_MODE__POS 6
- #define BMA255_LOW_POWER_MODE__LEN 1
- #define BMA255_LOW_POWER_MODE__MSK 0x40
- #define BMA255_LOW_POWER_MODE__REG BMA255_LOW_POWER_CTRL_REG
- /* range */
- #define BMA255_RANGE_SEL_REG 0x0F
- #define BMA255_RANGE_SEL__POS 0
- #define BMA255_RANGE_SEL__LEN 4
- #define BMA255_RANGE_SEL__MSK 0x0F
- #define BMA255_RANGE_SEL__REG BMA255_RANGE_SEL_REG
- /* bandwidth */
- #define BMA255_BW_7_81HZ 0x08
- #define BMA255_BW_15_63HZ 0x09
- #define BMA255_BW_31_25HZ 0x0A
- #define BMA255_BW_62_50HZ 0x0B
- #define BMA255_BW_125HZ 0x0C
- #define BMA255_BW_250HZ 0x0D
- #define BMA255_BW_500HZ 0x0E
- #define BMA255_BW_1000HZ 0x0F
- #define BMA255_BW_SEL_REG 0x10
- #define BMA255_BANDWIDTH__POS 0
- #define BMA255_BANDWIDTH__LEN 5
- #define BMA255_BANDWIDTH__MSK 0x1F
- #define BMA255_BANDWIDTH__REG BMA255_BW_SEL_REG
- //tad3sgh add ++
- #define CONVERT_M 1
- #define CONVERT_M_DIV 4
- #define CONVERT_O 1
- #define CONVERT_O_DIV 71 //(C_PI_F32X * AXIS_RESOLUTION_FACTOR / 180)
- #define CONVERT_G 1
- #define CONVERT_G_DIV 938
- #define CONVERT_VRV 1
- #define CONVERT_VRV_DIV (0x40000000)
- #define CONVERT_VLA_DIV 16384
- #define CONVERT_VG_DIV 16384
- //tad3sgh add --
- #endif
|