summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaga Radhesh <naga.radheshy@stericsson.com>2011-11-30 17:55:27 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:02:37 +0200
commite98611e7502dfd79bb992f6164b6664803c68c50 (patch)
tree66130538d5eb72cbc08aaf86989f99b381e310b5
parent968a56fa5c7fef757cd1df008f68c2e6c8aee0c8 (diff)
mach-ux500: Read the chip_id of LSM303
Check which accelerometer chip is mounted and read the chip ID to detect whether chip is LSM303DHL/LSM303DHLC. ST-Ericsson ID: 374970 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I950af090ccee2934a891adb179b6e6496762bd25 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40354 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/board-u5500.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c
index 5037a7694ca..8dd8ed02be8 100644
--- a/arch/arm/mach-ux500/board-u5500.c
+++ b/arch/arm/mach-ux500/board-u5500.c
@@ -743,6 +743,28 @@ static void __init u5500_cryp1_hash1_init(void)
db5500_add_hash1(&u5500_hash1_platform_data);
}
+static int __init u5500_accel_sensor_init(void)
+{
+ int status;
+ union i2c_smbus_data data;
+ struct i2c_adapter *i2c2;
+
+ i2c2 = i2c_get_adapter(2);
+ if (!i2c2) {
+ pr_err("failed to get i2c adapter\n");
+ return;
+ }
+ status = i2c_smbus_xfer(i2c2, 0x19 , 0,
+ I2C_SMBUS_READ, 0x0F ,
+ I2C_SMBUS_BYTE_DATA, &data);
+ if (status < 0)
+ lsm303dlh_pdata.chip_id = 0;
+ else
+ lsm303dlh_pdata.chip_id = data.byte;
+ i2c_put_adapter(i2c2);
+}
+module_init(u5500_accel_sensor_init);
+
static void __init u5500_init_machine(void)
{
struct device *parent = NULL;