diff options
author | Chethan Krishna N <chethan.krishna@stericsson.com> | 2011-08-25 13:04:38 +0530 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@stericsson.com> | 2011-09-19 16:00:09 +0200 |
commit | a38b3ab78080e28487109ceab5d3cb4435bff8ed (patch) | |
tree | f6cade89212527a2a01cb75a3a6bf6bdffb11a39 /arch/arm | |
parent | 83177878674c623a2aefb37c1ceb10ea48116e41 (diff) |
lsm303dlh: Detect chip version at run time
Enable both drivers and detect which probe has to be called
based on hardware detected at run time.
Change-Id: I7020b63c4345a23404cf06418aebaa876c504c1e
Signed-off-by: Chethan Krishna N <chethan.krishna@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/27883
Reviewed-by: QATEST
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-ux500/board-u5500.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c index 9abc6cf06a7..6d6b5f29242 100644 --- a/arch/arm/mach-ux500/board-u5500.c +++ b/arch/arm/mach-ux500/board-u5500.c @@ -78,7 +78,6 @@ static struct av8100_platform_data av8100_plat_data = { .mclk_freq = 1, /* MCLK_RNG_22_27 */ }; - /* * leds LM3530 */ @@ -166,10 +165,23 @@ static struct i2c_board_info __initdata u5500_i2c1_devices[] = { }, }; -static struct i2c_board_info __initdata u5500_i2c2_devices[] = { +static struct i2c_board_info __initdata u5500v1_i2c2_sensor_devices[] = { + { + /* LSM303DLH Accelerometer */ + I2C_BOARD_INFO("lsm303dlh_a", 0x19), + .platform_data = &lsm303dlh_pdata, + }, + { + /* LSM303DLH Magnetometer */ + I2C_BOARD_INFO("lsm303dlh_m", 0x1E), + .platform_data = &lsm303dlh_pdata, + }, +}; + +static struct i2c_board_info __initdata u5500v2_i2c2_sensor_devices[] = { { - /* LSM303DLH Accelerometer */ - I2C_BOARD_INFO("lsm303dlh_a", 0x19), + /* LSM303DLHC Accelerometer */ + I2C_BOARD_INFO("lsm303dlhc_a", 0x19), .platform_data = &lsm303dlh_pdata, }, { @@ -177,6 +189,9 @@ static struct i2c_board_info __initdata u5500_i2c2_devices[] = { I2C_BOARD_INFO("lsm303dlh_m", 0x1E), .platform_data = &lsm303dlh_pdata, }, +}; + +static struct i2c_board_info __initdata u5500_i2c2_devices[] = { { /* Backlight */ I2C_BOARD_INFO("lm3530-led", 0x36), @@ -381,6 +396,12 @@ static void __init u5500_i2c_init(void) i2c_register_board_info(1, ARRAY_AND_SIZE(u5500_i2c1_devices)); i2c_register_board_info(2, ARRAY_AND_SIZE(u5500_i2c2_devices)); + + if (cpu_is_u5500v1()) + i2c_register_board_info(2, ARRAY_AND_SIZE(u5500v1_i2c2_sensor_devices)); + + if (cpu_is_u5500v2()) + i2c_register_board_info(2, ARRAY_AND_SIZE(u5500v2_i2c2_sensor_devices)); } static void __init u5500_uart_init(void) |