Platform: x86: chromeos_laptop - Add Taos tsl2563 device
authorBenson Leung <bleung@chromium.org>
Fri, 1 Feb 2013 22:34:45 +0000 (14:34 -0800)
committerMatthew Garrett <matthew.garrett@nebula.com>
Wed, 27 Feb 2013 13:30:39 +0000 (08:30 -0500)
Two legacy Chromebooks, the Cr-48, and the Acer AC700,
are equipped with a Taos tsl2563 light sensor.
This will instantiate the sensor on those laptops.

Signed-off-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
drivers/platform/x86/chromeos_laptop.c

index 9293c66d52c1858a425821c1986665ec2479060d..188b7dac77806c8e3b9f37a7a5bea1347ea13f38 100644 (file)
@@ -27,6 +27,7 @@
 
 #define CYAPA_TP_I2C_ADDR      0x67
 #define ISL_ALS_I2C_ADDR       0x44
+#define TAOS_ALS_I2C_ADDR      0x29
 
 static struct i2c_client *als;
 static struct i2c_client *tp;
@@ -49,6 +50,10 @@ static struct i2c_board_info __initdata isl_als_device = {
        I2C_BOARD_INFO("isl29018", ISL_ALS_I2C_ADDR),
 };
 
+static struct i2c_board_info __initdata tsl2563_als_device = {
+       I2C_BOARD_INFO("tsl2563", TAOS_ALS_I2C_ADDR),
+};
+
 static struct i2c_client __init *__add_probed_i2c_device(
                const char *name,
                int bus,
@@ -159,6 +164,13 @@ static int __init setup_isl29018_als(const struct dmi_system_id *id)
        return 0;
 }
 
+static int __init setup_tsl2563_als(const struct dmi_system_id *id)
+{
+       /* add tsl2563 light sensor on smbus */
+       als = add_smbus_device(NULL, &tsl2563_als_device);
+       return 0;
+}
+
 static struct dmi_system_id __initdata chromeos_laptop_dmi_table[] = {
        {
                .ident = "Samsung Series 5 550 - Touchpad",
@@ -183,6 +195,20 @@ static struct dmi_system_id __initdata chromeos_laptop_dmi_table[] = {
                },
                .callback = setup_cyapa_smbus_tp,
        },
+       {
+               .ident = "Cr-48 - Light Sensor",
+               .matches = {
+                       DMI_MATCH(DMI_PRODUCT_NAME, "Mario"),
+               },
+               .callback = setup_tsl2563_als,
+       },
+       {
+               .ident = "Acer AC700 - Light Sensor",
+               .matches = {
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ZGB"),
+               },
+               .callback = setup_tsl2563_als,
+       },
        { }
 };
 MODULE_DEVICE_TABLE(dmi, chromeos_laptop_dmi_table);