diff options
author | Robert Collins <rcollins@nvidia.com> | 2011-12-01 16:19:20 -0800 |
---|---|---|
committer | Rohan Somvanshi <rsomvanshi@nvidia.com> | 2012-02-13 22:19:09 -0800 |
commit | afe3f5978373561b7893afec9e1008316683f851 (patch) | |
tree | ef1eee1504d30580b4bde8a1e952528f8bc4d8d0 /arch | |
parent | 14cfecda97b635253c94aaee942437003ae5a3c6 (diff) |
mpu6050: Motion Libraries: Board files for Invensense MPU6050.
Invensense board files for MPU6050. MPL version 4.1.1.
Bug 825602
Signed-off-by: Robert Collins <rcollins@nvidia.com>
Reviewed-on: http://git-master/r/70373
(cherry picked from commit 2839895906a9c822e5c9f8abab68e33e9982c5a9)
Change-Id: I97eb4dcc075ab8b6f2bb583756dd10128924f10a
Signed-off-by: Pritesh Raithatha <praithatha@nvidia.com>
Reviewed-on: http://git-master/r/82717
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-by: Robert Collins <rcollins@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu-sensors.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-cardhu.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise-sensors.c | 21 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-enterprise.h | 4 |
4 files changed, 40 insertions, 15 deletions
diff --git a/arch/arm/mach-tegra/board-cardhu-sensors.c b/arch/arm/mach-tegra/board-cardhu-sensors.c index b1dd860c6cb0..0a4551facb0a 100644 --- a/arch/arm/mach-tegra/board-cardhu-sensors.c +++ b/arch/arm/mach-tegra/board-cardhu-sensors.c @@ -749,20 +749,28 @@ static int __init cam_tca6416_init(void) } #endif -#ifdef CONFIG_MPU_SENSORS_MPU3050 -static struct mpu_platform_data mpu3050_data = { +/* MPU board file definition */ +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) +#define MPU_GYRO_NAME "mpu3050" +#endif +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU6050) +#define MPU_GYRO_NAME "mpu6050" +#endif +static struct mpu_platform_data mpu_gyro_data = { .int_config = 0x10, .level_shifter = 0, .orientation = MPU_GYRO_ORIENTATION, /* Located in board_[platformname].h */ }; -static struct ext_slave_platform_data mpu3050_accel_data = { +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) +static struct ext_slave_platform_data mpu_accel_data = { .address = MPU_ACCEL_ADDR, .irq = 0, .adapt_num = MPU_ACCEL_BUS_NUM, .bus = EXT_SLAVE_BUS_SECONDARY, .orientation = MPU_ACCEL_ORIENTATION, /* Located in board_[platformname].h */ }; +#endif static struct ext_slave_platform_data mpu_compass_data = { .address = MPU_COMPASS_ADDR, @@ -776,15 +784,17 @@ static struct i2c_board_info __initdata inv_mpu_i2c2_board_info[] = { { I2C_BOARD_INFO(MPU_GYRO_NAME, MPU_GYRO_ADDR), .irq = TEGRA_GPIO_TO_IRQ(MPU_GYRO_IRQ_GPIO), - .platform_data = &mpu3050_data, + .platform_data = &mpu_gyro_data, }, +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) { I2C_BOARD_INFO(MPU_ACCEL_NAME, MPU_ACCEL_ADDR), #if MPU_ACCEL_IRQ_GPIO .irq = TEGRA_GPIO_TO_IRQ(MPU_ACCEL_IRQ_GPIO), #endif - .platform_data = &mpu3050_accel_data, + .platform_data = &mpu_accel_data, }, +#endif { I2C_BOARD_INFO(MPU_COMPASS_NAME, MPU_COMPASS_ADDR), #if MPU_COMPASS_IRQ_GPIO @@ -800,6 +810,7 @@ static void mpuirq_init(void) pr_info("*** MPU START *** mpuirq_init...\n"); +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) #if MPU_ACCEL_IRQ_GPIO /* ACCEL-IRQ assignment */ tegra_gpio_enable(MPU_ACCEL_IRQ_GPIO); @@ -816,6 +827,7 @@ static void mpuirq_init(void) return; } #endif +#endif /* MPU-IRQ assignment */ tegra_gpio_enable(MPU_GYRO_IRQ_GPIO); @@ -836,7 +848,6 @@ static void mpuirq_init(void) i2c_register_board_info(MPU_GYRO_BUS_NUM, inv_mpu_i2c2_board_info, ARRAY_SIZE(inv_mpu_i2c2_board_info)); } -#endif static struct i2c_board_info cardhu_i2c2_isl_board_info[] = { @@ -908,9 +919,7 @@ int __init cardhu_sensors_init(void) i2c_register_board_info(4, cardhu_i2c4_nct1008_board_info, ARRAY_SIZE(cardhu_i2c4_nct1008_board_info)); -#ifdef CONFIG_MPU_SENSORS_MPU3050 mpuirq_init(); -#endif return 0; } diff --git a/arch/arm/mach-tegra/board-cardhu.h b/arch/arm/mach-tegra/board-cardhu.h index be3d424a2fe7..f49e3a51fe3a 100644 --- a/arch/arm/mach-tegra/board-cardhu.h +++ b/arch/arm/mach-tegra/board-cardhu.h @@ -216,8 +216,9 @@ int cardhu_pm299_gpio_switch_regulator_init(void); int cardhu_pm299_regulator_init(void); void __init cardhu_tsensor_init(void); -/* Invensense MPU Definitions */ -#define MPU_GYRO_NAME "mpu3050" +#define MPU_TYPE_MPU3050 1 +#define MPU_TYPE_MPU6050 2 +#define MPU_GYRO_TYPE MPU_TYPE_MPU3050 #define MPU_GYRO_IRQ_GPIO TEGRA_GPIO_PX1 #define MPU_GYRO_ADDR 0x68 #define MPU_GYRO_BUS_NUM 2 diff --git a/arch/arm/mach-tegra/board-enterprise-sensors.c b/arch/arm/mach-tegra/board-enterprise-sensors.c index 68544692bcee..f3060a58bb0c 100644 --- a/arch/arm/mach-tegra/board-enterprise-sensors.c +++ b/arch/arm/mach-tegra/board-enterprise-sensors.c @@ -153,19 +153,28 @@ static void enterprise_nct1008_init(void) ARRAY_SIZE(enterprise_i2c4_nct1008_board_info)); } -static struct mpu_platform_data mpu3050_data = { +/* MPU board file definition */ +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) +#define MPU_GYRO_NAME "mpu3050" +#endif +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU6050) +#define MPU_GYRO_NAME "mpu6050" +#endif +static struct mpu_platform_data mpu_gyro_data = { .int_config = 0x10, .level_shifter = 0, .orientation = MPU_GYRO_ORIENTATION, /* Located in board_[platformname].h */ }; -static struct ext_slave_platform_data mpu3050_accel_data = { +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) +static struct ext_slave_platform_data mpu_accel_data = { .address = MPU_ACCEL_ADDR, .irq = 0, .adapt_num = MPU_ACCEL_BUS_NUM, .bus = EXT_SLAVE_BUS_SECONDARY, .orientation = MPU_ACCEL_ORIENTATION, /* Located in board_[platformname].h */ }; +#endif static struct ext_slave_platform_data mpu_compass_data = { .address = MPU_COMPASS_ADDR, @@ -179,15 +188,17 @@ static struct i2c_board_info __initdata inv_mpu_i2c2_board_info[] = { { I2C_BOARD_INFO(MPU_GYRO_NAME, MPU_GYRO_ADDR), .irq = TEGRA_GPIO_TO_IRQ(MPU_GYRO_IRQ_GPIO), - .platform_data = &mpu3050_data, + .platform_data = &mpu_gyro_data, }, +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) { I2C_BOARD_INFO(MPU_ACCEL_NAME, MPU_ACCEL_ADDR), #if MPU_ACCEL_IRQ_GPIO .irq = TEGRA_GPIO_TO_IRQ(MPU_ACCEL_IRQ_GPIO), #endif - .platform_data = &mpu3050_accel_data, + .platform_data = &mpu_accel_data, }, +#endif { I2C_BOARD_INFO(MPU_COMPASS_NAME, MPU_COMPASS_ADDR), #if MPU_COMPASS_IRQ_GPIO @@ -203,6 +214,7 @@ static void mpuirq_init(void) pr_info("*** MPU START *** mpuirq_init...\n"); +#if (MPU_GYRO_TYPE == MPU_TYPE_MPU3050) #if MPU_ACCEL_IRQ_GPIO /* ACCEL-IRQ assignment */ tegra_gpio_enable(MPU_ACCEL_IRQ_GPIO); @@ -219,6 +231,7 @@ static void mpuirq_init(void) return; } #endif +#endif /* MPU-IRQ assignment */ tegra_gpio_enable(MPU_GYRO_IRQ_GPIO); diff --git a/arch/arm/mach-tegra/board-enterprise.h b/arch/arm/mach-tegra/board-enterprise.h index 4829e301c8c8..e6a06513766b 100644 --- a/arch/arm/mach-tegra/board-enterprise.h +++ b/arch/arm/mach-tegra/board-enterprise.h @@ -54,7 +54,9 @@ void __init enterprise_tsensor_init(void); void enterprise_bpc_mgmt_init(void); /* Invensense MPU Definitions */ -#define MPU_GYRO_NAME "mpu3050" +#define MPU_TYPE_MPU3050 1 +#define MPU_TYPE_MPU6050 2 +#define MPU_GYRO_TYPE MPU_TYPE_MPU3050 #define MPU_GYRO_IRQ_GPIO TEGRA_GPIO_PH4 #define MPU_GYRO_ADDR 0x68 #define MPU_GYRO_BUS_NUM 0 |