summaryrefslogtreecommitdiff
path: root/arch/arm/mach-ux500/board-u5500.c
diff options
context:
space:
mode:
authorChethan Krishna N <chethan.krishna@stericsson.com>2011-08-25 13:04:38 +0530
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 16:00:09 +0200
commita38b3ab78080e28487109ceab5d3cb4435bff8ed (patch)
treef6cade89212527a2a01cb75a3a6bf6bdffb11a39 /arch/arm/mach-ux500/board-u5500.c
parent83177878674c623a2aefb37c1ceb10ea48116e41 (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/mach-ux500/board-u5500.c')
-rw-r--r--arch/arm/mach-ux500/board-u5500.c29
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)