Merge pull request #11297 from SteveCEvans/baro_state
[betaflight.git] / src / main / drivers / accgyro / accgyro_spi_mpu9250.h
blobab721d94a1cfe6487a7e5eab48080ff6f8d6c26a
1 /*
2 * This file is part of Cleanflight and Betaflight.
4 * Cleanflight and Betaflight are free software. You can redistribute
5 * this software and/or modify this software under the terms of the
6 * GNU General Public License as published by the Free Software
7 * Foundation, either version 3 of the License, or (at your option)
8 * any later version.
10 * Cleanflight and Betaflight are distributed in the hope that they
11 * will be useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 * See the GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this software.
18 * If not, see <http://www.gnu.org/licenses/>.
21 #pragma once
23 #include "drivers/bus.h"
25 #define mpu9250_CONFIG 0x1A
27 /* We should probably use these. :)
28 #define BITS_DLPF_CFG_256HZ 0x00
29 #define BITS_DLPF_CFG_188HZ 0x01
30 #define BITS_DLPF_CFG_98HZ 0x02
31 #define BITS_DLPF_CFG_42HZ 0x03
32 #define BITS_DLPF_CFG_20HZ 0x04
33 #define BITS_DLPF_CFG_10HZ 0x05
34 #define BITS_DLPF_CFG_5HZ 0x06
35 #define BITS_DLPF_CFG_2100HZ_NOLPF 0x07
38 #define GYRO_SCALE_FACTOR 0.00053292f // (4/131) * pi/180 (32.75 LSB = 1 DPS)
40 #define MPU9250_BIT_RESET (0x80)
42 // RF = Register Flag
43 #define MPU_RF_DATA_RDY_EN (1 << 0)
45 void mpu9250SpiResetGyro(void);
47 uint8_t mpu9250SpiDetect(const extDevice_t *dev);
49 bool mpu9250SpiAccDetect(accDev_t *acc);
50 bool mpu9250SpiGyroDetect(gyroDev_t *gyro);
52 bool mpu9250SpiWriteRegister(const extDevice_t *dev, uint8_t reg, uint8_t data);
53 bool mpu9250SpiWriteRegisterVerify(const extDevice_t *dev, uint8_t reg, uint8_t data);
54 bool mpu9250SpiReadRegBuf(const extDevice_t *dev, uint8_t reg, uint8_t length, uint8_t *data);