123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /*
- * Copyright (C) 2012 Invensense, Inc.
- *
- * This software is licensed under the terms of the GNU General Public
- * License version 2, as published by the Free Software Foundation, and
- * may be copied, distributed, and modified under those terms.
- *
- * 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 __MPU_H_
- #define __MPU_H_
- #ifdef __KERNEL__
- #include <linux/types.h>
- #include <linux/ioctl.h>
- #endif
- enum secondary_slave_type {
- SECONDARY_SLAVE_TYPE_NONE,
- SECONDARY_SLAVE_TYPE_ACCEL,
- SECONDARY_SLAVE_TYPE_COMPASS,
- SECONDARY_SLAVE_TYPE_PRESSURE,
- SECONDARY_SLAVE_TYPE_TYPES
- };
- enum ext_slave_id {
- ID_INVALID = 0,
- GYRO_ID_MPU3050,
- GYRO_ID_MPU6050A2,
- GYRO_ID_MPU6050B1,
- GYRO_ID_MPU6050B1_NO_ACCEL,
- GYRO_ID_ITG3500,
- ACCEL_ID_LIS331,
- ACCEL_ID_LSM303DLX,
- ACCEL_ID_LIS3DH,
- ACCEL_ID_KXSD9,
- ACCEL_ID_KXTF9,
- ACCEL_ID_BMA150,
- ACCEL_ID_BMA222,
- ACCEL_ID_BMA250,
- ACCEL_ID_ADXL34X,
- ACCEL_ID_MMA8450,
- ACCEL_ID_MMA845X,
- ACCEL_ID_MPU6050,
- COMPASS_ID_AK8963,
- COMPASS_ID_AK8975,
- COMPASS_ID_AK8972,
- COMPASS_ID_AMI30X,
- COMPASS_ID_AMI306,
- COMPASS_ID_YAS529,
- COMPASS_ID_YAS530,
- COMPASS_ID_HMC5883,
- COMPASS_ID_LSM303DLH,
- COMPASS_ID_LSM303DLM,
- COMPASS_ID_MMC314X,
- COMPASS_ID_HSCDTD002B,
- COMPASS_ID_HSCDTD004A,
- COMPASS_ID_MLX90399,
- COMPASS_ID_AK09911,
- PRESSURE_ID_BMP085,
- PRESSURE_ID_BMP280,
- };
- #define INV_PROD_KEY(ver, rev) (ver * 100 + rev)
- /**
- * struct mpu_platform_data - Platform data for the mpu driver
- * @int_config: Bits [7:3] of the int config register.
- * @level_shifter: 0: VLogic, 1: VDD
- * @orientation: Orientation matrix of the gyroscope
- * @sec_slave_type: secondary slave device type, can be compass, accel, etc
- * @sec_slave_id: id of the secondary slave device
- * @secondary_i2c_address: secondary device's i2c address
- * @secondary_orientation: secondary device's orientation matrix
- * @key: key for MPL library.
- *
- * Contains platform specific information on how to configure the MPU3050 to
- * work on this platform. The orientation matricies are 3x3 rotation matricies
- * that are applied to the data to rotate from the mounting orientation to the
- * platform orientation. The values must be one of 0, 1, or -1 and each row and
- * column should have exactly 1 non-zero value.
- */
- struct mpu_platform_data {
- __u8 int_config;
- __u8 level_shifter;
- __s8 orientation[9];
- enum secondary_slave_type sec_slave_type;
- enum ext_slave_id sec_slave_id;
- __u16 secondary_i2c_addr;
- __s8 secondary_orientation[9];
- __u8 dev_rev;
- __u8 key[16];
- enum secondary_slave_type aux_slave_type;
- enum ext_slave_id aux_slave_id;
- __u16 aux_i2c_addr;
- short irq;
- int mag_rst;
- };
- #endif /* __MPU_H_ */
|