summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaga RADHESH Y <naga.radheshy@stericsson.com>2012-02-14 07:46:54 +0100
committerPhilippe Langlais <philippe.langlais@linaro.org>2012-02-15 09:35:31 +0100
commitca615709ef2c2162920fdffbd5537ea0ed06264c (patch)
tree05316ff13d3584b3f22b3a13aa3b727c8d179bba
parenta9da60fca6b4bb3d57a96a469a5dc2d7d0cb4ac4 (diff)
mach-ux500:Add platform data of sensors for R3UIB
Add platform data for R3 UIB for sensors, change platform data for R2UIB for gyroscope ST-Ericsson ID: 374970 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I3a9d89841d5a746d444ec1c40491787ffef764b7 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com>
-rwxr-xr-xarch/arm/mach-ux500/board-mop500-cyttsp.c56
-rw-r--r--arch/arm/mach-ux500/board-mop500-u8500uib.c6
2 files changed, 59 insertions, 3 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-cyttsp.c b/arch/arm/mach-ux500/board-mop500-cyttsp.c
index 2aa27ea9b1f..c64f732d7c7 100755
--- a/arch/arm/mach-ux500/board-mop500-cyttsp.c
+++ b/arch/arm/mach-ux500/board-mop500-cyttsp.c
@@ -15,16 +15,60 @@
#include <linux/mfd/tc3589x.h>
#include <linux/mfd/dbx500-prcmu.h>
#include <linux/amba/pl022.h>
+#include <linux/lsm303dlh.h>
+#include <linux/l3g4200d.h>
#include <plat/pincfg.h>
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/irqs-db8500.h>
+#include <asm/mach-types.h>
#include "pins-db8500.h"
#include "board-mop500.h"
#include "devices-db8500.h"
#define NUM_SSP_CLIENTS 10
+/*
+ * LSM303DLH accelerometer + magnetometer & L3G4200D Gyroscope sensors
+ */
+static struct lsm303dlh_platform_data __initdata lsm303dlh_pdata_u8500_r3 = {
+ .name_a = "lsm303dlh.0",
+ .name_m = "lsm303dlh.1",
+ .axis_map_x = 1,
+ .axis_map_y = 0,
+ .axis_map_z = 2,
+ .negative_x = 1,
+ .negative_y = 1,
+ .negative_z = 1,
+};
+
+static struct l3g4200d_gyr_platform_data __initdata l3g4200d_pdata_u8500_r3 = {
+ .name_gyr = "l3g4200d",
+ .axis_map_x = 0,
+ .axis_map_y = 1,
+ .axis_map_z = 2,
+ .negative_x = 0,
+ .negative_y = 1,
+ .negative_z = 1,
+};
+static struct i2c_board_info __initdata mop500_i2c2_devices_u8500_r3[] = {
+ {
+ /* LSM303DLH Accelerometer */
+ I2C_BOARD_INFO("lsm303dlhc_a", 0x19),
+ .platform_data = &lsm303dlh_pdata_u8500_r3,
+ },
+ {
+ /* LSM303DLH Magnetometer */
+ I2C_BOARD_INFO("lsm303dlh_m", 0x1E),
+ .platform_data = &lsm303dlh_pdata_u8500_r3,
+ },
+ {
+ /* L3G4200D Gyroscope */
+ I2C_BOARD_INFO("l3g4200d", 0x68),
+ .platform_data = &l3g4200d_pdata_u8500_r3,
+ },
+};
+
/* cyttsp_gpio_board_init : configures the touch panel. */
static int cyttsp_plat_init(int on)
{
@@ -219,8 +263,20 @@ void __init mop500_u8500uib_r3_init(void)
mop500_cyttsp_init();
db8500_add_spi2(&mop500_spi2_data);
nmk_config_pin((GPIO64_GPIO | PIN_INPUT_PULLUP), false);
+ if (machine_is_hrefv60()) {
+ lsm303dlh_pdata_u8500_r3.irq_a1 = HREFV60_ACCEL_INT1_GPIO;
+ lsm303dlh_pdata_u8500_r3.irq_a2 = HREFV60_ACCEL_INT2_GPIO;
+ lsm303dlh_pdata_u8500_r3.irq_m = HREFV60_MAGNET_DRDY_GPIO;
+ } else {
+ lsm303dlh_pdata_u8500_r3.irq_a1 = GPIO_ACCEL_INT1;
+ lsm303dlh_pdata_u8500_r3.irq_a2 = GPIO_ACCEL_INT2;
+ lsm303dlh_pdata_u8500_r3.irq_m = GPIO_MAGNET_DRDY;
+ }
mop500_uib_i2c_add(0, mop500_i2c0_devices_u8500,
ARRAY_SIZE(mop500_i2c0_devices_u8500));
mop500_uib_i2c_add(0, mop500_i2c0_devices_u8500,
ARRAY_SIZE(mop500_i2c0_devices_u8500));
+
+ mop500_uib_i2c_add(2, mop500_i2c2_devices_u8500_r3,
+ ARRAY_SIZE(mop500_i2c2_devices_u8500_r3));
}
diff --git a/arch/arm/mach-ux500/board-mop500-u8500uib.c b/arch/arm/mach-ux500/board-mop500-u8500uib.c
index 20763004c4a..8c3232e3e3f 100644
--- a/arch/arm/mach-ux500/board-mop500-u8500uib.c
+++ b/arch/arm/mach-ux500/board-mop500-u8500uib.c
@@ -51,11 +51,11 @@ static struct lsm303dlh_platform_data __initdata lsm303dlh_pdata_u8500 = {
#ifdef CONFIG_SENSORS_L3G4200D
static struct l3g4200d_gyr_platform_data __initdata l3g4200d_pdata_u8500 = {
.name_gyr = "l3g4200d",
- .axis_map_x = 1,
- .axis_map_y = 0,
+ .axis_map_x = 0,
+ .axis_map_y = 1,
.axis_map_z = 2,
.negative_x = 0,
- .negative_y = 0,
+ .negative_y = 1,
.negative_z = 1,
};
#endif