diff options
author | Naga Radhesh <naga.radheshy@stericsson.com> | 2011-11-30 17:55:27 +0530 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:02:37 +0200 |
commit | e98611e7502dfd79bb992f6164b6664803c68c50 (patch) | |
tree | 66130538d5eb72cbc08aaf86989f99b381e310b5 | |
parent | 968a56fa5c7fef757cd1df008f68c2e6c8aee0c8 (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.c | 22 |
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; |