Flemmard | 2344785 | 2013-04-25 21:53:22 -0700 | [diff] [blame] | 1 | #ifndef BMA250_H |
| 2 | #define BMA250_H |
| 3 | |
| 4 | #include <linux/ioctl.h> |
| 5 | |
| 6 | #define SENSOR_NAME "bma250" |
| 7 | #define ABSMIN -512 |
| 8 | #define ABSMAX 512 |
| 9 | #define SLOPE_THRESHOLD_VALUE 32 |
| 10 | #define SLOPE_DURATION_VALUE 1 |
| 11 | #define INTERRUPT_LATCH_MODE 13 |
| 12 | #define INTERRUPT_ENABLE 1 |
| 13 | #define INTERRUPT_DISABLE 0 |
| 14 | #define MAP_SLOPE_INTERRUPT 2 |
| 15 | #define SLOPE_X_INDEX 5 |
| 16 | #define SLOPE_Y_INDEX 6 |
| 17 | #define SLOPE_Z_INDEX 7 |
| 18 | #define BMA250_MAX_DELAY 200 |
| 19 | #define BMA250_CHIP_ID 3 |
| 20 | #define BMA250_RANGE_SET 0 |
| 21 | #define BMA250_BW_SET 2 |
| 22 | |
| 23 | #define LOW_G_INTERRUPT REL_Z |
| 24 | #define HIGH_G_INTERRUPT REL_HWHEEL |
| 25 | #define SLOP_INTERRUPT REL_DIAL |
| 26 | #define DOUBLE_TAP_INTERRUPT REL_WHEEL |
| 27 | #define SINGLE_TAP_INTERRUPT REL_MISC |
| 28 | #define ORIENT_INTERRUPT ABS_PRESSURE |
| 29 | #define FLAT_INTERRUPT ABS_DISTANCE |
| 30 | |
| 31 | |
| 32 | #define HIGH_G_INTERRUPT_X_HAPPENED 1 |
| 33 | #define HIGH_G_INTERRUPT_Y_HAPPENED 2 |
| 34 | #define HIGH_G_INTERRUPT_Z_HAPPENED 3 |
| 35 | #define HIGH_G_INTERRUPT_X_NEGATIVE_HAPPENED 4 |
| 36 | #define HIGH_G_INTERRUPT_Y_NEGATIVE_HAPPENED 5 |
| 37 | #define HIGH_G_INTERRUPT_Z_NEGATIVE_HAPPENED 6 |
| 38 | #define SLOPE_INTERRUPT_X_HAPPENED 7 |
| 39 | #define SLOPE_INTERRUPT_Y_HAPPENED 8 |
| 40 | #define SLOPE_INTERRUPT_Z_HAPPENED 9 |
| 41 | #define SLOPE_INTERRUPT_X_NEGATIVE_HAPPENED 10 |
| 42 | #define SLOPE_INTERRUPT_Y_NEGATIVE_HAPPENED 11 |
| 43 | #define SLOPE_INTERRUPT_Z_NEGATIVE_HAPPENED 12 |
| 44 | #define DOUBLE_TAP_INTERRUPT_HAPPENED 13 |
| 45 | #define SINGLE_TAP_INTERRUPT_HAPPENED 14 |
| 46 | #define UPWARD_PORTRAIT_UP_INTERRUPT_HAPPENED 15 |
| 47 | #define UPWARD_PORTRAIT_DOWN_INTERRUPT_HAPPENED 16 |
| 48 | #define UPWARD_LANDSCAPE_LEFT_INTERRUPT_HAPPENED 17 |
| 49 | #define UPWARD_LANDSCAPE_RIGHT_INTERRUPT_HAPPENED 18 |
| 50 | #define DOWNWARD_PORTRAIT_UP_INTERRUPT_HAPPENED 19 |
| 51 | #define DOWNWARD_PORTRAIT_DOWN_INTERRUPT_HAPPENED 20 |
| 52 | #define DOWNWARD_LANDSCAPE_LEFT_INTERRUPT_HAPPENED 21 |
| 53 | #define DOWNWARD_LANDSCAPE_RIGHT_INTERRUPT_HAPPENED 22 |
| 54 | #define FLAT_INTERRUPT_TURE_HAPPENED 23 |
| 55 | #define FLAT_INTERRUPT_FALSE_HAPPENED 24 |
| 56 | #define LOW_G_INTERRUPT_HAPPENED 25 |
| 57 | |
| 58 | #define PAD_LOWG 0 |
| 59 | #define PAD_HIGHG 1 |
| 60 | #define PAD_SLOP 2 |
| 61 | #define PAD_DOUBLE_TAP 3 |
| 62 | #define PAD_SINGLE_TAP 4 |
| 63 | #define PAD_ORIENT 5 |
| 64 | #define PAD_FLAT 6 |
| 65 | |
| 66 | |
| 67 | #define BMA250_CHIP_ID_REG 0x00 |
| 68 | #define BMA250_VERSION_REG 0x01 |
| 69 | #define BMA250_X_AXIS_LSB_REG 0x02 |
| 70 | #define BMA250_X_AXIS_MSB_REG 0x03 |
| 71 | #define BMA250_Y_AXIS_LSB_REG 0x04 |
| 72 | #define BMA250_Y_AXIS_MSB_REG 0x05 |
| 73 | #define BMA250_Z_AXIS_LSB_REG 0x06 |
| 74 | #define BMA250_Z_AXIS_MSB_REG 0x07 |
| 75 | #define BMA250_TEMP_RD_REG 0x08 |
| 76 | #define BMA250_STATUS1_REG 0x09 |
| 77 | #define BMA250_STATUS2_REG 0x0A |
| 78 | #define BMA250_STATUS_TAP_SLOPE_REG 0x0B |
| 79 | #define BMA250_STATUS_ORIENT_HIGH_REG 0x0C |
| 80 | #define BMA250_RANGE_SEL_REG 0x0F |
| 81 | #define BMA250_BW_SEL_REG 0x10 |
| 82 | #define BMA250_MODE_CTRL_REG 0x11 |
| 83 | #define BMA250_LOW_NOISE_CTRL_REG 0x12 |
| 84 | #define BMA250_DATA_CTRL_REG 0x13 |
| 85 | #define BMA250_RESET_REG 0x14 |
| 86 | #define BMA250_INT_ENABLE1_REG 0x16 |
| 87 | #define BMA250_INT_ENABLE2_REG 0x17 |
| 88 | #define BMA250_INT1_PAD_SEL_REG 0x19 |
| 89 | #define BMA250_INT_DATA_SEL_REG 0x1A |
| 90 | #define BMA250_INT2_PAD_SEL_REG 0x1B |
| 91 | #define BMA250_INT_SRC_REG 0x1E |
| 92 | #define BMA250_INT_SET_REG 0x20 |
| 93 | #define BMA250_INT_CTRL_REG 0x21 |
| 94 | #define BMA250_LOW_DURN_REG 0x22 |
| 95 | #define BMA250_LOW_THRES_REG 0x23 |
| 96 | #define BMA250_LOW_HIGH_HYST_REG 0x24 |
| 97 | #define BMA250_HIGH_DURN_REG 0x25 |
| 98 | #define BMA250_HIGH_THRES_REG 0x26 |
| 99 | #define BMA250_SLOPE_DURN_REG 0x27 |
| 100 | #define BMA250_SLOPE_THRES_REG 0x28 |
| 101 | #define BMA250_TAP_PARAM_REG 0x2A |
| 102 | #define BMA250_TAP_THRES_REG 0x2B |
| 103 | #define BMA250_ORIENT_PARAM_REG 0x2C |
| 104 | #define BMA250_THETA_BLOCK_REG 0x2D |
| 105 | #define BMA250_THETA_FLAT_REG 0x2E |
| 106 | #define BMA250_FLAT_HOLD_TIME_REG 0x2F |
| 107 | #define BMA250_STATUS_LOW_POWER_REG 0x31 |
| 108 | #define BMA250_SELF_TEST_REG 0x32 |
| 109 | #define BMA250_EEPROM_CTRL_REG 0x33 |
| 110 | #define BMA250_SERIAL_CTRL_REG 0x34 |
| 111 | #define BMA250_CTRL_UNLOCK_REG 0x35 |
| 112 | #define BMA250_OFFSET_CTRL_REG 0x36 |
| 113 | #define BMA250_OFFSET_PARAMS_REG 0x37 |
| 114 | #define BMA250_OFFSET_FILT_X_REG 0x38 |
| 115 | #define BMA250_OFFSET_FILT_Y_REG 0x39 |
| 116 | #define BMA250_OFFSET_FILT_Z_REG 0x3A |
| 117 | #define BMA250_OFFSET_UNFILT_X_REG 0x3B |
| 118 | #define BMA250_OFFSET_UNFILT_Y_REG 0x3C |
| 119 | #define BMA250_OFFSET_UNFILT_Z_REG 0x3D |
| 120 | #define BMA250_SPARE_0_REG 0x3E |
| 121 | #define BMA250_SPARE_1_REG 0x3F |
| 122 | |
| 123 | #define BMA250_ACC_X_LSB__POS 6 |
| 124 | #define BMA250_ACC_X_LSB__LEN 2 |
| 125 | #define BMA250_ACC_X_LSB__MSK 0xC0 |
| 126 | #define BMA250_ACC_X_LSB__REG BMA250_X_AXIS_LSB_REG |
| 127 | |
| 128 | #define BMA250_ACC_X_MSB__POS 0 |
| 129 | #define BMA250_ACC_X_MSB__LEN 8 |
| 130 | #define BMA250_ACC_X_MSB__MSK 0xFF |
| 131 | #define BMA250_ACC_X_MSB__REG BMA250_X_AXIS_MSB_REG |
| 132 | |
| 133 | #define BMA250_ACC_Y_LSB__POS 6 |
| 134 | #define BMA250_ACC_Y_LSB__LEN 2 |
| 135 | #define BMA250_ACC_Y_LSB__MSK 0xC0 |
| 136 | #define BMA250_ACC_Y_LSB__REG BMA250_Y_AXIS_LSB_REG |
| 137 | |
| 138 | #define BMA250_ACC_Y_MSB__POS 0 |
| 139 | #define BMA250_ACC_Y_MSB__LEN 8 |
| 140 | #define BMA250_ACC_Y_MSB__MSK 0xFF |
| 141 | #define BMA250_ACC_Y_MSB__REG BMA250_Y_AXIS_MSB_REG |
| 142 | |
| 143 | #define BMA250_ACC_Z_LSB__POS 6 |
| 144 | #define BMA250_ACC_Z_LSB__LEN 2 |
| 145 | #define BMA250_ACC_Z_LSB__MSK 0xC0 |
| 146 | #define BMA250_ACC_Z_LSB__REG BMA250_Z_AXIS_LSB_REG |
| 147 | |
| 148 | #define BMA250_ACC_Z_MSB__POS 0 |
| 149 | #define BMA250_ACC_Z_MSB__LEN 8 |
| 150 | #define BMA250_ACC_Z_MSB__MSK 0xFF |
| 151 | #define BMA250_ACC_Z_MSB__REG BMA250_Z_AXIS_MSB_REG |
| 152 | |
| 153 | #define BMA250_RANGE_SEL__POS 0 |
| 154 | #define BMA250_RANGE_SEL__LEN 4 |
| 155 | #define BMA250_RANGE_SEL__MSK 0x0F |
| 156 | #define BMA250_RANGE_SEL__REG BMA250_RANGE_SEL_REG |
| 157 | |
| 158 | #define BMA250_BANDWIDTH__POS 0 |
| 159 | #define BMA250_BANDWIDTH__LEN 5 |
| 160 | #define BMA250_BANDWIDTH__MSK 0x1F |
| 161 | #define BMA250_BANDWIDTH__REG BMA250_BW_SEL_REG |
| 162 | |
| 163 | #define BMA250_EN_LOW_POWER__POS 6 |
| 164 | #define BMA250_EN_LOW_POWER__LEN 1 |
| 165 | #define BMA250_EN_LOW_POWER__MSK 0x40 |
| 166 | #define BMA250_EN_LOW_POWER__REG BMA250_MODE_CTRL_REG |
| 167 | |
| 168 | #define BMA250_EN_SUSPEND__POS 7 |
| 169 | #define BMA250_EN_SUSPEND__LEN 1 |
| 170 | #define BMA250_EN_SUSPEND__MSK 0x80 |
| 171 | #define BMA250_EN_SUSPEND__REG BMA250_MODE_CTRL_REG |
| 172 | |
| 173 | #define BMA250_INT_MODE_SEL__POS 0 |
| 174 | #define BMA250_INT_MODE_SEL__LEN 4 |
| 175 | #define BMA250_INT_MODE_SEL__MSK 0x0F |
| 176 | #define BMA250_INT_MODE_SEL__REG BMA250_INT_CTRL_REG |
| 177 | |
| 178 | #define BMA250_LOWG_INT_S__POS 0 |
| 179 | #define BMA250_LOWG_INT_S__LEN 1 |
| 180 | #define BMA250_LOWG_INT_S__MSK 0x01 |
| 181 | #define BMA250_LOWG_INT_S__REG BMA250_STATUS1_REG |
| 182 | |
| 183 | #define BMA250_HIGHG_INT_S__POS 1 |
| 184 | #define BMA250_HIGHG_INT_S__LEN 1 |
| 185 | #define BMA250_HIGHG_INT_S__MSK 0x02 |
| 186 | #define BMA250_HIGHG_INT_S__REG BMA250_STATUS1_REG |
| 187 | |
| 188 | #define BMA250_SLOPE_INT_S__POS 2 |
| 189 | #define BMA250_SLOPE_INT_S__LEN 1 |
| 190 | #define BMA250_SLOPE_INT_S__MSK 0x04 |
| 191 | #define BMA250_SLOPE_INT_S__REG BMA250_STATUS1_REG |
| 192 | |
| 193 | #define BMA250_DOUBLE_TAP_INT_S__POS 4 |
| 194 | #define BMA250_DOUBLE_TAP_INT_S__LEN 1 |
| 195 | #define BMA250_DOUBLE_TAP_INT_S__MSK 0x10 |
| 196 | #define BMA250_DOUBLE_TAP_INT_S__REG BMA250_STATUS1_REG |
| 197 | |
| 198 | #define BMA250_SINGLE_TAP_INT_S__POS 5 |
| 199 | #define BMA250_SINGLE_TAP_INT_S__LEN 1 |
| 200 | #define BMA250_SINGLE_TAP_INT_S__MSK 0x20 |
| 201 | #define BMA250_SINGLE_TAP_INT_S__REG BMA250_STATUS1_REG |
| 202 | |
| 203 | #define BMA250_ORIENT_INT_S__POS 6 |
| 204 | #define BMA250_ORIENT_INT_S__LEN 1 |
| 205 | #define BMA250_ORIENT_INT_S__MSK 0x40 |
| 206 | #define BMA250_ORIENT_INT_S__REG BMA250_STATUS1_REG |
| 207 | |
| 208 | #define BMA250_FLAT_INT_S__POS 7 |
| 209 | #define BMA250_FLAT_INT_S__LEN 1 |
| 210 | #define BMA250_FLAT_INT_S__MSK 0x80 |
| 211 | #define BMA250_FLAT_INT_S__REG BMA250_STATUS1_REG |
| 212 | |
| 213 | #define BMA250_DATA_INT_S__POS 7 |
| 214 | #define BMA250_DATA_INT_S__LEN 1 |
| 215 | #define BMA250_DATA_INT_S__MSK 0x80 |
| 216 | #define BMA250_DATA_INT_S__REG BMA250_STATUS2_REG |
| 217 | |
| 218 | #define BMA250_SLOPE_FIRST_X__POS 0 |
| 219 | #define BMA250_SLOPE_FIRST_X__LEN 1 |
| 220 | #define BMA250_SLOPE_FIRST_X__MSK 0x01 |
| 221 | #define BMA250_SLOPE_FIRST_X__REG BMA250_STATUS_TAP_SLOPE_REG |
| 222 | |
| 223 | #define BMA250_SLOPE_FIRST_Y__POS 1 |
| 224 | #define BMA250_SLOPE_FIRST_Y__LEN 1 |
| 225 | #define BMA250_SLOPE_FIRST_Y__MSK 0x02 |
| 226 | #define BMA250_SLOPE_FIRST_Y__REG BMA250_STATUS_TAP_SLOPE_REG |
| 227 | |
| 228 | #define BMA250_SLOPE_FIRST_Z__POS 2 |
| 229 | #define BMA250_SLOPE_FIRST_Z__LEN 1 |
| 230 | #define BMA250_SLOPE_FIRST_Z__MSK 0x04 |
| 231 | #define BMA250_SLOPE_FIRST_Z__REG BMA250_STATUS_TAP_SLOPE_REG |
| 232 | |
| 233 | #define BMA250_SLOPE_SIGN_S__POS 3 |
| 234 | #define BMA250_SLOPE_SIGN_S__LEN 1 |
| 235 | #define BMA250_SLOPE_SIGN_S__MSK 0x08 |
| 236 | #define BMA250_SLOPE_SIGN_S__REG BMA250_STATUS_TAP_SLOPE_REG |
| 237 | |
| 238 | #define BMA250_TAP_FIRST_X__POS 4 |
| 239 | #define BMA250_TAP_FIRST_X__LEN 1 |
| 240 | #define BMA250_TAP_FIRST_X__MSK 0x10 |
| 241 | #define BMA250_TAP_FIRST_X__REG BMA250_STATUS_TAP_SLOPE_REG |
| 242 | |
| 243 | #define BMA250_TAP_FIRST_Y__POS 5 |
| 244 | #define BMA250_TAP_FIRST_Y__LEN 1 |
| 245 | #define BMA250_TAP_FIRST_Y__MSK 0x20 |
| 246 | #define BMA250_TAP_FIRST_Y__REG BMA250_STATUS_TAP_SLOPE_REG |
| 247 | |
| 248 | #define BMA250_TAP_FIRST_Z__POS 6 |
| 249 | #define BMA250_TAP_FIRST_Z__LEN 1 |
| 250 | #define BMA250_TAP_FIRST_Z__MSK 0x40 |
| 251 | #define BMA250_TAP_FIRST_Z__REG BMA250_STATUS_TAP_SLOPE_REG |
| 252 | |
| 253 | #define BMA250_TAP_FIRST_XYZ__POS 4 |
| 254 | #define BMA250_TAP_FIRST_XYZ__LEN 3 |
| 255 | #define BMA250_TAP_FIRST_XYZ__MSK 0x70 |
| 256 | #define BMA250_TAP_FIRST_XYZ__REG BMA250_STATUS_TAP_SLOPE_REG |
| 257 | |
| 258 | #define BMA250_TAP_SIGN_S__POS 7 |
| 259 | #define BMA250_TAP_SIGN_S__LEN 1 |
| 260 | #define BMA250_TAP_SIGN_S__MSK 0x80 |
| 261 | #define BMA250_TAP_SIGN_S__REG BMA250_STATUS_TAP_SLOPE_REG |
| 262 | |
| 263 | #define BMA250_HIGHG_FIRST_X__POS 0 |
| 264 | #define BMA250_HIGHG_FIRST_X__LEN 1 |
| 265 | #define BMA250_HIGHG_FIRST_X__MSK 0x01 |
| 266 | #define BMA250_HIGHG_FIRST_X__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 267 | |
| 268 | #define BMA250_HIGHG_FIRST_Y__POS 1 |
| 269 | #define BMA250_HIGHG_FIRST_Y__LEN 1 |
| 270 | #define BMA250_HIGHG_FIRST_Y__MSK 0x02 |
| 271 | #define BMA250_HIGHG_FIRST_Y__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 272 | |
| 273 | #define BMA250_HIGHG_FIRST_Z__POS 2 |
| 274 | #define BMA250_HIGHG_FIRST_Z__LEN 1 |
| 275 | #define BMA250_HIGHG_FIRST_Z__MSK 0x04 |
| 276 | #define BMA250_HIGHG_FIRST_Z__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 277 | |
| 278 | #define BMA250_HIGHG_SIGN_S__POS 3 |
| 279 | #define BMA250_HIGHG_SIGN_S__LEN 1 |
| 280 | #define BMA250_HIGHG_SIGN_S__MSK 0x08 |
| 281 | #define BMA250_HIGHG_SIGN_S__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 282 | |
| 283 | #define BMA250_ORIENT_S__POS 4 |
| 284 | #define BMA250_ORIENT_S__LEN 3 |
| 285 | #define BMA250_ORIENT_S__MSK 0x70 |
| 286 | #define BMA250_ORIENT_S__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 287 | |
| 288 | #define BMA250_FLAT_S__POS 7 |
| 289 | #define BMA250_FLAT_S__LEN 1 |
| 290 | #define BMA250_FLAT_S__MSK 0x80 |
| 291 | #define BMA250_FLAT_S__REG BMA250_STATUS_ORIENT_HIGH_REG |
| 292 | |
| 293 | #define BMA250_EN_SLOPE_X_INT__POS 0 |
| 294 | #define BMA250_EN_SLOPE_X_INT__LEN 1 |
| 295 | #define BMA250_EN_SLOPE_X_INT__MSK 0x01 |
| 296 | #define BMA250_EN_SLOPE_X_INT__REG BMA250_INT_ENABLE1_REG |
| 297 | |
| 298 | #define BMA250_EN_SLOPE_Y_INT__POS 1 |
| 299 | #define BMA250_EN_SLOPE_Y_INT__LEN 1 |
| 300 | #define BMA250_EN_SLOPE_Y_INT__MSK 0x02 |
| 301 | #define BMA250_EN_SLOPE_Y_INT__REG BMA250_INT_ENABLE1_REG |
| 302 | |
| 303 | #define BMA250_EN_SLOPE_Z_INT__POS 2 |
| 304 | #define BMA250_EN_SLOPE_Z_INT__LEN 1 |
| 305 | #define BMA250_EN_SLOPE_Z_INT__MSK 0x04 |
| 306 | #define BMA250_EN_SLOPE_Z_INT__REG BMA250_INT_ENABLE1_REG |
| 307 | |
| 308 | #define BMA250_EN_SLOPE_XYZ_INT__POS 0 |
| 309 | #define BMA250_EN_SLOPE_XYZ_INT__LEN 3 |
| 310 | #define BMA250_EN_SLOPE_XYZ_INT__MSK 0x07 |
| 311 | #define BMA250_EN_SLOPE_XYZ_INT__REG BMA250_INT_ENABLE1_REG |
| 312 | |
| 313 | #define BMA250_EN_DOUBLE_TAP_INT__POS 4 |
| 314 | #define BMA250_EN_DOUBLE_TAP_INT__LEN 1 |
| 315 | #define BMA250_EN_DOUBLE_TAP_INT__MSK 0x10 |
| 316 | #define BMA250_EN_DOUBLE_TAP_INT__REG BMA250_INT_ENABLE1_REG |
| 317 | |
| 318 | #define BMA250_EN_SINGLE_TAP_INT__POS 5 |
| 319 | #define BMA250_EN_SINGLE_TAP_INT__LEN 1 |
| 320 | #define BMA250_EN_SINGLE_TAP_INT__MSK 0x20 |
| 321 | #define BMA250_EN_SINGLE_TAP_INT__REG BMA250_INT_ENABLE1_REG |
| 322 | |
| 323 | #define BMA250_EN_ORIENT_INT__POS 6 |
| 324 | #define BMA250_EN_ORIENT_INT__LEN 1 |
| 325 | #define BMA250_EN_ORIENT_INT__MSK 0x40 |
| 326 | #define BMA250_EN_ORIENT_INT__REG BMA250_INT_ENABLE1_REG |
| 327 | |
| 328 | #define BMA250_EN_FLAT_INT__POS 7 |
| 329 | #define BMA250_EN_FLAT_INT__LEN 1 |
| 330 | #define BMA250_EN_FLAT_INT__MSK 0x80 |
| 331 | #define BMA250_EN_FLAT_INT__REG BMA250_INT_ENABLE1_REG |
| 332 | |
| 333 | #define BMA250_EN_HIGHG_X_INT__POS 0 |
| 334 | #define BMA250_EN_HIGHG_X_INT__LEN 1 |
| 335 | #define BMA250_EN_HIGHG_X_INT__MSK 0x01 |
| 336 | #define BMA250_EN_HIGHG_X_INT__REG BMA250_INT_ENABLE2_REG |
| 337 | |
| 338 | #define BMA250_EN_HIGHG_Y_INT__POS 1 |
| 339 | #define BMA250_EN_HIGHG_Y_INT__LEN 1 |
| 340 | #define BMA250_EN_HIGHG_Y_INT__MSK 0x02 |
| 341 | #define BMA250_EN_HIGHG_Y_INT__REG BMA250_INT_ENABLE2_REG |
| 342 | |
| 343 | #define BMA250_EN_HIGHG_Z_INT__POS 2 |
| 344 | #define BMA250_EN_HIGHG_Z_INT__LEN 1 |
| 345 | #define BMA250_EN_HIGHG_Z_INT__MSK 0x04 |
| 346 | #define BMA250_EN_HIGHG_Z_INT__REG BMA250_INT_ENABLE2_REG |
| 347 | |
| 348 | #define BMA250_EN_HIGHG_XYZ_INT__POS 2 |
| 349 | #define BMA250_EN_HIGHG_XYZ_INT__LEN 1 |
| 350 | #define BMA250_EN_HIGHG_XYZ_INT__MSK 0x04 |
| 351 | #define BMA250_EN_HIGHG_XYZ_INT__REG BMA250_INT_ENABLE2_REG |
| 352 | |
| 353 | #define BMA250_EN_LOWG_INT__POS 3 |
| 354 | #define BMA250_EN_LOWG_INT__LEN 1 |
| 355 | #define BMA250_EN_LOWG_INT__MSK 0x08 |
| 356 | #define BMA250_EN_LOWG_INT__REG BMA250_INT_ENABLE2_REG |
| 357 | |
| 358 | #define BMA250_EN_NEW_DATA_INT__POS 4 |
| 359 | #define BMA250_EN_NEW_DATA_INT__LEN 1 |
| 360 | #define BMA250_EN_NEW_DATA_INT__MSK 0x10 |
| 361 | #define BMA250_EN_NEW_DATA_INT__REG BMA250_INT_ENABLE2_REG |
| 362 | |
| 363 | #define BMA250_EN_INT1_PAD_LOWG__POS 0 |
| 364 | #define BMA250_EN_INT1_PAD_LOWG__LEN 1 |
| 365 | #define BMA250_EN_INT1_PAD_LOWG__MSK 0x01 |
| 366 | #define BMA250_EN_INT1_PAD_LOWG__REG BMA250_INT1_PAD_SEL_REG |
| 367 | |
| 368 | #define BMA250_EN_INT1_PAD_HIGHG__POS 1 |
| 369 | #define BMA250_EN_INT1_PAD_HIGHG__LEN 1 |
| 370 | #define BMA250_EN_INT1_PAD_HIGHG__MSK 0x02 |
| 371 | #define BMA250_EN_INT1_PAD_HIGHG__REG BMA250_INT1_PAD_SEL_REG |
| 372 | |
| 373 | #define BMA250_EN_INT1_PAD_SLOPE__POS 2 |
| 374 | #define BMA250_EN_INT1_PAD_SLOPE__LEN 1 |
| 375 | #define BMA250_EN_INT1_PAD_SLOPE__MSK 0x04 |
| 376 | #define BMA250_EN_INT1_PAD_SLOPE__REG BMA250_INT1_PAD_SEL_REG |
| 377 | |
| 378 | #define BMA250_EN_INT1_PAD_DB_TAP__POS 4 |
| 379 | #define BMA250_EN_INT1_PAD_DB_TAP__LEN 1 |
| 380 | #define BMA250_EN_INT1_PAD_DB_TAP__MSK 0x10 |
| 381 | #define BMA250_EN_INT1_PAD_DB_TAP__REG BMA250_INT1_PAD_SEL_REG |
| 382 | |
| 383 | #define BMA250_EN_INT1_PAD_SNG_TAP__POS 5 |
| 384 | #define BMA250_EN_INT1_PAD_SNG_TAP__LEN 1 |
| 385 | #define BMA250_EN_INT1_PAD_SNG_TAP__MSK 0x20 |
| 386 | #define BMA250_EN_INT1_PAD_SNG_TAP__REG BMA250_INT1_PAD_SEL_REG |
| 387 | |
| 388 | #define BMA250_EN_INT1_PAD_ORIENT__POS 6 |
| 389 | #define BMA250_EN_INT1_PAD_ORIENT__LEN 1 |
| 390 | #define BMA250_EN_INT1_PAD_ORIENT__MSK 0x40 |
| 391 | #define BMA250_EN_INT1_PAD_ORIENT__REG BMA250_INT1_PAD_SEL_REG |
| 392 | |
| 393 | #define BMA250_EN_INT1_PAD_FLAT__POS 7 |
| 394 | #define BMA250_EN_INT1_PAD_FLAT__LEN 1 |
| 395 | #define BMA250_EN_INT1_PAD_FLAT__MSK 0x80 |
| 396 | #define BMA250_EN_INT1_PAD_FLAT__REG BMA250_INT1_PAD_SEL_REG |
| 397 | |
| 398 | #define BMA250_EN_INT2_PAD_LOWG__POS 0 |
| 399 | #define BMA250_EN_INT2_PAD_LOWG__LEN 1 |
| 400 | #define BMA250_EN_INT2_PAD_LOWG__MSK 0x01 |
| 401 | #define BMA250_EN_INT2_PAD_LOWG__REG BMA250_INT2_PAD_SEL_REG |
| 402 | |
| 403 | #define BMA250_EN_INT2_PAD_HIGHG__POS 1 |
| 404 | #define BMA250_EN_INT2_PAD_HIGHG__LEN 1 |
| 405 | #define BMA250_EN_INT2_PAD_HIGHG__MSK 0x02 |
| 406 | #define BMA250_EN_INT2_PAD_HIGHG__REG BMA250_INT2_PAD_SEL_REG |
| 407 | |
| 408 | #define BMA250_EN_INT2_PAD_SLOPE__POS 2 |
| 409 | #define BMA250_EN_INT2_PAD_SLOPE__LEN 1 |
| 410 | #define BMA250_EN_INT2_PAD_SLOPE__MSK 0x04 |
| 411 | #define BMA250_EN_INT2_PAD_SLOPE__REG BMA250_INT2_PAD_SEL_REG |
| 412 | |
| 413 | #define BMA250_EN_INT2_PAD_DB_TAP__POS 4 |
| 414 | #define BMA250_EN_INT2_PAD_DB_TAP__LEN 1 |
| 415 | #define BMA250_EN_INT2_PAD_DB_TAP__MSK 0x10 |
| 416 | #define BMA250_EN_INT2_PAD_DB_TAP__REG BMA250_INT2_PAD_SEL_REG |
| 417 | |
| 418 | #define BMA250_EN_INT2_PAD_SNG_TAP__POS 5 |
| 419 | #define BMA250_EN_INT2_PAD_SNG_TAP__LEN 1 |
| 420 | #define BMA250_EN_INT2_PAD_SNG_TAP__MSK 0x20 |
| 421 | #define BMA250_EN_INT2_PAD_SNG_TAP__REG BMA250_INT2_PAD_SEL_REG |
| 422 | |
| 423 | #define BMA250_EN_INT2_PAD_ORIENT__POS 6 |
| 424 | #define BMA250_EN_INT2_PAD_ORIENT__LEN 1 |
| 425 | #define BMA250_EN_INT2_PAD_ORIENT__MSK 0x40 |
| 426 | #define BMA250_EN_INT2_PAD_ORIENT__REG BMA250_INT2_PAD_SEL_REG |
| 427 | |
| 428 | #define BMA250_EN_INT2_PAD_FLAT__POS 7 |
| 429 | #define BMA250_EN_INT2_PAD_FLAT__LEN 1 |
| 430 | #define BMA250_EN_INT2_PAD_FLAT__MSK 0x80 |
| 431 | #define BMA250_EN_INT2_PAD_FLAT__REG BMA250_INT2_PAD_SEL_REG |
| 432 | |
| 433 | #define BMA250_EN_INT1_PAD_NEWDATA__POS 0 |
| 434 | #define BMA250_EN_INT1_PAD_NEWDATA__LEN 1 |
| 435 | #define BMA250_EN_INT1_PAD_NEWDATA__MSK 0x01 |
| 436 | #define BMA250_EN_INT1_PAD_NEWDATA__REG BMA250_INT_DATA_SEL_REG |
| 437 | |
| 438 | #define BMA250_EN_INT2_PAD_NEWDATA__POS 7 |
| 439 | #define BMA250_EN_INT2_PAD_NEWDATA__LEN 1 |
| 440 | #define BMA250_EN_INT2_PAD_NEWDATA__MSK 0x80 |
| 441 | #define BMA250_EN_INT2_PAD_NEWDATA__REG BMA250_INT_DATA_SEL_REG |
| 442 | |
| 443 | |
| 444 | #define BMA250_UNFILT_INT_SRC_LOWG__POS 0 |
| 445 | #define BMA250_UNFILT_INT_SRC_LOWG__LEN 1 |
| 446 | #define BMA250_UNFILT_INT_SRC_LOWG__MSK 0x01 |
| 447 | #define BMA250_UNFILT_INT_SRC_LOWG__REG BMA250_INT_SRC_REG |
| 448 | |
| 449 | #define BMA250_UNFILT_INT_SRC_HIGHG__POS 1 |
| 450 | #define BMA250_UNFILT_INT_SRC_HIGHG__LEN 1 |
| 451 | #define BMA250_UNFILT_INT_SRC_HIGHG__MSK 0x02 |
| 452 | #define BMA250_UNFILT_INT_SRC_HIGHG__REG BMA250_INT_SRC_REG |
| 453 | |
| 454 | #define BMA250_UNFILT_INT_SRC_SLOPE__POS 2 |
| 455 | #define BMA250_UNFILT_INT_SRC_SLOPE__LEN 1 |
| 456 | #define BMA250_UNFILT_INT_SRC_SLOPE__MSK 0x04 |
| 457 | #define BMA250_UNFILT_INT_SRC_SLOPE__REG BMA250_INT_SRC_REG |
| 458 | |
| 459 | #define BMA250_UNFILT_INT_SRC_TAP__POS 4 |
| 460 | #define BMA250_UNFILT_INT_SRC_TAP__LEN 1 |
| 461 | #define BMA250_UNFILT_INT_SRC_TAP__MSK 0x10 |
| 462 | #define BMA250_UNFILT_INT_SRC_TAP__REG BMA250_INT_SRC_REG |
| 463 | |
| 464 | #define BMA250_UNFILT_INT_SRC_DATA__POS 5 |
| 465 | #define BMA250_UNFILT_INT_SRC_DATA__LEN 1 |
| 466 | #define BMA250_UNFILT_INT_SRC_DATA__MSK 0x20 |
| 467 | #define BMA250_UNFILT_INT_SRC_DATA__REG BMA250_INT_SRC_REG |
| 468 | |
| 469 | #define BMA250_INT1_PAD_ACTIVE_LEVEL__POS 0 |
| 470 | #define BMA250_INT1_PAD_ACTIVE_LEVEL__LEN 1 |
| 471 | #define BMA250_INT1_PAD_ACTIVE_LEVEL__MSK 0x01 |
| 472 | #define BMA250_INT1_PAD_ACTIVE_LEVEL__REG BMA250_INT_SET_REG |
| 473 | |
| 474 | #define BMA250_INT2_PAD_ACTIVE_LEVEL__POS 2 |
| 475 | #define BMA250_INT2_PAD_ACTIVE_LEVEL__LEN 1 |
| 476 | #define BMA250_INT2_PAD_ACTIVE_LEVEL__MSK 0x04 |
| 477 | #define BMA250_INT2_PAD_ACTIVE_LEVEL__REG BMA250_INT_SET_REG |
| 478 | |
| 479 | #define BMA250_INT1_PAD_OUTPUT_TYPE__POS 1 |
| 480 | #define BMA250_INT1_PAD_OUTPUT_TYPE__LEN 1 |
| 481 | #define BMA250_INT1_PAD_OUTPUT_TYPE__MSK 0x02 |
| 482 | #define BMA250_INT1_PAD_OUTPUT_TYPE__REG BMA250_INT_SET_REG |
| 483 | |
| 484 | #define BMA250_INT2_PAD_OUTPUT_TYPE__POS 3 |
| 485 | #define BMA250_INT2_PAD_OUTPUT_TYPE__LEN 1 |
| 486 | #define BMA250_INT2_PAD_OUTPUT_TYPE__MSK 0x08 |
| 487 | #define BMA250_INT2_PAD_OUTPUT_TYPE__REG BMA250_INT_SET_REG |
| 488 | |
| 489 | |
| 490 | #define BMA250_INT_MODE_SEL__POS 0 |
| 491 | #define BMA250_INT_MODE_SEL__LEN 4 |
| 492 | #define BMA250_INT_MODE_SEL__MSK 0x0F |
| 493 | #define BMA250_INT_MODE_SEL__REG BMA250_INT_CTRL_REG |
| 494 | |
| 495 | |
| 496 | #define BMA250_INT_RESET_LATCHED__POS 7 |
| 497 | #define BMA250_INT_RESET_LATCHED__LEN 1 |
| 498 | #define BMA250_INT_RESET_LATCHED__MSK 0x80 |
| 499 | #define BMA250_INT_RESET_LATCHED__REG BMA250_INT_CTRL_REG |
| 500 | |
| 501 | #define BMA250_LOWG_DUR__POS 0 |
| 502 | #define BMA250_LOWG_DUR__LEN 8 |
| 503 | #define BMA250_LOWG_DUR__MSK 0xFF |
| 504 | #define BMA250_LOWG_DUR__REG BMA250_LOW_DURN_REG |
| 505 | |
| 506 | #define BMA250_LOWG_THRES__POS 0 |
| 507 | #define BMA250_LOWG_THRES__LEN 8 |
| 508 | #define BMA250_LOWG_THRES__MSK 0xFF |
| 509 | #define BMA250_LOWG_THRES__REG BMA250_LOW_THRES_REG |
| 510 | |
| 511 | #define BMA250_LOWG_HYST__POS 0 |
| 512 | #define BMA250_LOWG_HYST__LEN 2 |
| 513 | #define BMA250_LOWG_HYST__MSK 0x03 |
| 514 | #define BMA250_LOWG_HYST__REG BMA250_LOW_HIGH_HYST_REG |
| 515 | |
| 516 | #define BMA250_LOWG_INT_MODE__POS 2 |
| 517 | #define BMA250_LOWG_INT_MODE__LEN 1 |
| 518 | #define BMA250_LOWG_INT_MODE__MSK 0x04 |
| 519 | #define BMA250_LOWG_INT_MODE__REG BMA250_LOW_HIGH_HYST_REG |
| 520 | |
| 521 | #define BMA250_HIGHG_DUR__POS 0 |
| 522 | #define BMA250_HIGHG_DUR__LEN 8 |
| 523 | #define BMA250_HIGHG_DUR__MSK 0xFF |
| 524 | #define BMA250_HIGHG_DUR__REG BMA250_HIGH_DURN_REG |
| 525 | |
| 526 | #define BMA250_HIGHG_THRES__POS 0 |
| 527 | #define BMA250_HIGHG_THRES__LEN 8 |
| 528 | #define BMA250_HIGHG_THRES__MSK 0xFF |
| 529 | #define BMA250_HIGHG_THRES__REG BMA250_HIGH_THRES_REG |
| 530 | |
| 531 | #define BMA250_HIGHG_HYST__POS 6 |
| 532 | #define BMA250_HIGHG_HYST__LEN 2 |
| 533 | #define BMA250_HIGHG_HYST__MSK 0xC0 |
| 534 | #define BMA250_HIGHG_HYST__REG BMA250_LOW_HIGH_HYST_REG |
| 535 | |
| 536 | #define BMA250_SLOPE_DUR__POS 0 |
| 537 | #define BMA250_SLOPE_DUR__LEN 2 |
| 538 | #define BMA250_SLOPE_DUR__MSK 0x03 |
| 539 | #define BMA250_SLOPE_DUR__REG BMA250_SLOPE_DURN_REG |
| 540 | |
| 541 | #define BMA250_SLOPE_THRES__POS 0 |
| 542 | #define BMA250_SLOPE_THRES__LEN 8 |
| 543 | #define BMA250_SLOPE_THRES__MSK 0xFF |
| 544 | #define BMA250_SLOPE_THRES__REG BMA250_SLOPE_THRES_REG |
| 545 | |
| 546 | #define BMA250_TAP_DUR__POS 0 |
| 547 | #define BMA250_TAP_DUR__LEN 3 |
| 548 | #define BMA250_TAP_DUR__MSK 0x07 |
| 549 | #define BMA250_TAP_DUR__REG BMA250_TAP_PARAM_REG |
| 550 | |
| 551 | #define BMA250_TAP_SHOCK_DURN__POS 6 |
| 552 | #define BMA250_TAP_SHOCK_DURN__LEN 1 |
| 553 | #define BMA250_TAP_SHOCK_DURN__MSK 0x40 |
| 554 | #define BMA250_TAP_SHOCK_DURN__REG BMA250_TAP_PARAM_REG |
| 555 | |
| 556 | #define BMA250_TAP_QUIET_DURN__POS 7 |
| 557 | #define BMA250_TAP_QUIET_DURN__LEN 1 |
| 558 | #define BMA250_TAP_QUIET_DURN__MSK 0x80 |
| 559 | #define BMA250_TAP_QUIET_DURN__REG BMA250_TAP_PARAM_REG |
| 560 | |
| 561 | #define BMA250_TAP_THRES__POS 0 |
| 562 | #define BMA250_TAP_THRES__LEN 5 |
| 563 | #define BMA250_TAP_THRES__MSK 0x1F |
| 564 | #define BMA250_TAP_THRES__REG BMA250_TAP_THRES_REG |
| 565 | |
| 566 | #define BMA250_TAP_SAMPLES__POS 6 |
| 567 | #define BMA250_TAP_SAMPLES__LEN 2 |
| 568 | #define BMA250_TAP_SAMPLES__MSK 0xC0 |
| 569 | #define BMA250_TAP_SAMPLES__REG BMA250_TAP_THRES_REG |
| 570 | |
| 571 | #define BMA250_ORIENT_MODE__POS 0 |
| 572 | #define BMA250_ORIENT_MODE__LEN 2 |
| 573 | #define BMA250_ORIENT_MODE__MSK 0x03 |
| 574 | #define BMA250_ORIENT_MODE__REG BMA250_ORIENT_PARAM_REG |
| 575 | |
| 576 | #define BMA250_ORIENT_BLOCK__POS 2 |
| 577 | #define BMA250_ORIENT_BLOCK__LEN 2 |
| 578 | #define BMA250_ORIENT_BLOCK__MSK 0x0C |
| 579 | #define BMA250_ORIENT_BLOCK__REG BMA250_ORIENT_PARAM_REG |
| 580 | |
| 581 | #define BMA250_ORIENT_HYST__POS 4 |
| 582 | #define BMA250_ORIENT_HYST__LEN 3 |
| 583 | #define BMA250_ORIENT_HYST__MSK 0x70 |
| 584 | #define BMA250_ORIENT_HYST__REG BMA250_ORIENT_PARAM_REG |
| 585 | |
| 586 | #define BMA250_ORIENT_AXIS__POS 7 |
| 587 | #define BMA250_ORIENT_AXIS__LEN 1 |
| 588 | #define BMA250_ORIENT_AXIS__MSK 0x80 |
| 589 | #define BMA250_ORIENT_AXIS__REG BMA250_THETA_BLOCK_REG |
| 590 | |
| 591 | #define BMA250_THETA_BLOCK__POS 0 |
| 592 | #define BMA250_THETA_BLOCK__LEN 6 |
| 593 | #define BMA250_THETA_BLOCK__MSK 0x3F |
| 594 | #define BMA250_THETA_BLOCK__REG BMA250_THETA_BLOCK_REG |
| 595 | |
| 596 | #define BMA250_THETA_FLAT__POS 0 |
| 597 | #define BMA250_THETA_FLAT__LEN 6 |
| 598 | #define BMA250_THETA_FLAT__MSK 0x3F |
| 599 | #define BMA250_THETA_FLAT__REG BMA250_THETA_FLAT_REG |
| 600 | |
| 601 | #define BMA250_FLAT_HOLD_TIME__POS 4 |
| 602 | #define BMA250_FLAT_HOLD_TIME__LEN 2 |
| 603 | #define BMA250_FLAT_HOLD_TIME__MSK 0x30 |
| 604 | #define BMA250_FLAT_HOLD_TIME__REG BMA250_FLAT_HOLD_TIME_REG |
| 605 | |
| 606 | #define BMA250_EN_SELF_TEST__POS 0 |
| 607 | #define BMA250_EN_SELF_TEST__LEN 2 |
| 608 | #define BMA250_EN_SELF_TEST__MSK 0x03 |
| 609 | #define BMA250_EN_SELF_TEST__REG BMA250_SELF_TEST_REG |
| 610 | |
| 611 | |
| 612 | |
| 613 | #define BMA250_NEG_SELF_TEST__POS 2 |
| 614 | #define BMA250_NEG_SELF_TEST__LEN 1 |
| 615 | #define BMA250_NEG_SELF_TEST__MSK 0x04 |
| 616 | #define BMA250_NEG_SELF_TEST__REG BMA250_SELF_TEST_REG |
| 617 | |
| 618 | |
| 619 | #define BMA250_LOW_POWER_MODE_S__POS 0 |
| 620 | #define BMA250_LOW_POWER_MODE_S__LEN 1 |
| 621 | #define BMA250_LOW_POWER_MODE_S__MSK 0x01 |
| 622 | #define BMA250_LOW_POWER_MODE_S__REG BMA250_STATUS_LOW_POWER_REG |
| 623 | |
| 624 | #define BMA250_EN_FAST_COMP__POS 5 |
| 625 | #define BMA250_EN_FAST_COMP__LEN 2 |
| 626 | #define BMA250_EN_FAST_COMP__MSK 0x60 |
| 627 | #define BMA250_EN_FAST_COMP__REG BMA250_OFFSET_CTRL_REG |
| 628 | |
| 629 | #define BMA250_FAST_COMP_RDY_S__POS 4 |
| 630 | #define BMA250_FAST_COMP_RDY_S__LEN 1 |
| 631 | #define BMA250_FAST_COMP_RDY_S__MSK 0x10 |
| 632 | #define BMA250_FAST_COMP_RDY_S__REG BMA250_OFFSET_CTRL_REG |
| 633 | |
| 634 | #define BMA250_COMP_TARGET_OFFSET_X__POS 1 |
| 635 | #define BMA250_COMP_TARGET_OFFSET_X__LEN 2 |
| 636 | #define BMA250_COMP_TARGET_OFFSET_X__MSK 0x06 |
| 637 | #define BMA250_COMP_TARGET_OFFSET_X__REG BMA250_OFFSET_PARAMS_REG |
| 638 | |
| 639 | #define BMA250_COMP_TARGET_OFFSET_Y__POS 3 |
| 640 | #define BMA250_COMP_TARGET_OFFSET_Y__LEN 2 |
| 641 | #define BMA250_COMP_TARGET_OFFSET_Y__MSK 0x18 |
| 642 | #define BMA250_COMP_TARGET_OFFSET_Y__REG BMA250_OFFSET_PARAMS_REG |
| 643 | |
| 644 | #define BMA250_COMP_TARGET_OFFSET_Z__POS 5 |
| 645 | #define BMA250_COMP_TARGET_OFFSET_Z__LEN 2 |
| 646 | #define BMA250_COMP_TARGET_OFFSET_Z__MSK 0x60 |
| 647 | #define BMA250_COMP_TARGET_OFFSET_Z__REG BMA250_OFFSET_PARAMS_REG |
| 648 | |
| 649 | #define BMA250_UNLOCK_EE_WRITE_SETTING__POS 0 |
| 650 | #define BMA250_UNLOCK_EE_WRITE_SETTING__LEN 1 |
| 651 | #define BMA250_UNLOCK_EE_WRITE_SETTING__MSK 0x01 |
| 652 | #define BMA250_UNLOCK_EE_WRITE_SETTING__REG BMA250_EEPROM_CTRL_REG |
| 653 | |
| 654 | #define BMA250_START_EE_WRITE_SETTING__POS 1 |
| 655 | #define BMA250_START_EE_WRITE_SETTING__LEN 1 |
| 656 | #define BMA250_START_EE_WRITE_SETTING__MSK 0x02 |
| 657 | #define BMA250_START_EE_WRITE_SETTING__REG BMA250_EEPROM_CTRL_REG |
| 658 | |
| 659 | #define BMA250_EE_WRITE_SETTING_S__POS 2 |
| 660 | #define BMA250_EE_WRITE_SETTING_S__LEN 1 |
| 661 | #define BMA250_EE_WRITE_SETTING_S__MSK 0x04 |
| 662 | #define BMA250_EE_WRITE_SETTING_S__REG BMA250_EEPROM_CTRL_REG |
| 663 | |
| 664 | #define BMA250_RANGE_2G 0 |
| 665 | #define BMA250_RANGE_4G 1 |
| 666 | #define BMA250_RANGE_8G 2 |
| 667 | #define BMA250_RANGE_16G 3 |
| 668 | |
| 669 | #define BMA250_BW_7_81HZ 0x08 |
| 670 | #define BMA250_BW_15_63HZ 0x09 |
| 671 | #define BMA250_BW_31_25HZ 0x0A |
| 672 | #define BMA250_BW_62_50HZ 0x0B |
| 673 | #define BMA250_BW_125HZ 0x0C |
| 674 | #define BMA250_BW_250HZ 0x0D |
| 675 | #define BMA250_BW_500HZ 0x0E |
| 676 | #define BMA250_BW_1000HZ 0x0F |
| 677 | |
| 678 | #define BMA250_MODE_NORMAL 0 |
| 679 | #define BMA250_MODE_LOWPOWER 1 |
| 680 | #define BMA250_MODE_SUSPEND 2 |
| 681 | |
| 682 | #define BMA250_GET_BITSLICE(regvar, bitname)\ |
| 683 | ((regvar & bitname##__MSK) >> bitname##__POS) |
| 684 | |
| 685 | #define BMA250_SET_BITSLICE(regvar, bitname, val)\ |
| 686 | ((regvar & ~bitname##__MSK) | ((val<<bitname##__POS)&bitname##__MSK)) |
| 687 | |
| 688 | #define BMA250_I2C_NAME "bma250" |
| 689 | |
| 690 | #define BMAIO 0xA1 |
| 691 | |
| 692 | #define bma250_CHIP_ID_REG 0x00 |
| 693 | #define bma250_X_AXIS_LSB_REG 0x2 |
| 694 | #define bma250_RANGE_SEL_REG 0x0F |
| 695 | #define bma250_BW_SEL_REG 0x10 |
| 696 | #define bma250_MODE_CTRL_REG 0x11 |
| 697 | |
| 698 | #define BMA_IOCTL_INIT _IO(BMAIO, 0x31) |
| 699 | #define BMA_IOCTL_WRITE _IOW(BMAIO, 0x32, char[5]) |
| 700 | #define BMA_IOCTL_READ _IOWR(BMAIO, 0x33, char[5]) |
| 701 | #define BMA_IOCTL_READ_ACCELERATION _IOWR(BMAIO, 0x34, short[7]) |
| 702 | #define BMA_IOCTL_SET_MODE _IOW(BMAIO, 0x35, short) |
| 703 | #define BMA_IOCTL_GET_INT _IOR(BMAIO, 0x36, short) |
| 704 | #define BMA_IOCTL_GET_CHIP_LAYOUT _IOR(BMAIO, 0x37, short) |
| 705 | #define BMA_IOCTL_GET_CALI_MODE _IOR(BMAIO, 0x38, short) |
| 706 | #define BMA_IOCTL_SET_CALI_MODE _IOW(BMAIO, 0x39, short) |
| 707 | #define BMA_IOCTL_READ_CALI_VALUE _IOR(BMAIO, 0x3a, char[3]) |
| 708 | #define BMA_IOCTL_WRITE_CALI_VALUE _IOW(BMAIO, 0x3b, int) |
| 709 | #define BMA_IOCTL_GET_UPDATE_USER_CALI_DATA _IOR(BMAIO, 0x3c, short) |
| 710 | #define BMA_IOCTL_SET_UPDATE_USER_CALI_DATA _IOW(BMAIO, 0x3d, short) |
| 711 | |
| 712 | #define BMA_RANGE_2G 0x3 |
| 713 | #define BMA_RANGE_4G 0x5 |
| 714 | #define BMA_RANGE_8G 0x8 |
| 715 | #define BMA_RANGE_16G 0xC |
| 716 | |
| 717 | #define BMA_BW_7_81HZ 0x8 |
| 718 | #define BMA_BW_15_63HZ 0x9 |
| 719 | #define BMA_BW_31_25HZ 0xA |
| 720 | #define BMA_BW_62_5HZ 0xB |
| 721 | #define BMA_BW_125HZ 0xC |
| 722 | #define BMA_BW_250HZ 0xD |
| 723 | #define BMA_BW_500HZ 0xE |
| 724 | #define BMA_BW_1000HZ 0xF |
| 725 | |
| 726 | #define E_OUT_OF_RANGE (char)(-2) |
| 727 | |
| 728 | #define bma250_MODE_NORMAL 0 |
| 729 | #define bma250_MODE_SUSPEND 1 |
| 730 | |
| 731 | extern unsigned int gs_kvalue; |
| 732 | |
| 733 | struct bma250_platform_data { |
| 734 | int intr; |
| 735 | int chip_layout; |
| 736 | int calibration_mode; |
| 737 | int gs_kvalue; |
| 738 | unsigned int (*G_Sensor_Compass_POR)(void); |
| 739 | |
| 740 | |
| 741 | u8 axis_map_x; |
| 742 | u8 axis_map_y; |
| 743 | u8 axis_map_z; |
| 744 | |
| 745 | u8 negate_x; |
| 746 | u8 negate_y; |
| 747 | u8 negate_z; |
| 748 | |
| 749 | int (*power_LPM)(int on); |
| 750 | }; |
| 751 | |
| 752 | #endif |