]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: light: stk3310: add support for stk3013
authorKaustabh Chakraborty <kauschluss@disroot.org>
Fri, 26 Jul 2024 18:53:32 +0000 (00:23 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 3 Aug 2024 09:13:44 +0000 (10:13 +0100)
Add support for Sensortek's STK3013 in the driver. The part bears the
product ID 0x31.

As seen in [1], Sensortek lists STK3013 as a proximity sensor. But it
has been experimentally observed that they do have ambient light sensing
capabilities. Furthermore, [2] implements a proximity and ambient light
sensor driver for STK3x1x devices, which is also indicative of the fact
that these parts are also ambient light sensors.

[1] https://www.sensortek.com.tw/index.php/en/products/optical-sensor/
[2] https://android.googlesource.com/kernel/msm.git/+/e6dfa4641d88201e8019be19ff557e5d2cf4572f

Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
Link: https://patch.msgid.link/20240727-stk3310-v4-2-02497b1407ba@disroot.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/light/stk3310.c

index 48a971de6a0442b6ac22840893740534186a2370..ed20b67145463d253a0dff28a4c1c3e02e710319 100644 (file)
@@ -35,6 +35,7 @@
 #define STK3310_STATE_EN_ALS                   BIT(1)
 #define STK3310_STATE_STANDBY                  0x00
 
+#define STK3013_CHIP_ID_VAL                    0x31
 #define STK3310_CHIP_ID_VAL                    0x13
 #define STK3311_CHIP_ID_VAL                    0x1D
 #define STK3311A_CHIP_ID_VAL                   0x15
@@ -84,6 +85,7 @@ static const struct reg_field stk3310_reg_field_flag_nf =
                                REG_FIELD(STK3310_REG_FLAG, 0, 0);
 
 static const u8 stk3310_chip_ids[] = {
+       STK3013_CHIP_ID_VAL,
        STK3310_CHIP_ID_VAL,
        STK3311A_CHIP_ID_VAL,
        STK3311S34_CHIP_ID_VAL,
@@ -700,6 +702,7 @@ static DEFINE_SIMPLE_DEV_PM_OPS(stk3310_pm_ops, stk3310_suspend,
                                stk3310_resume);
 
 static const struct i2c_device_id stk3310_i2c_id[] = {
+       { "STK3013" },
        { "STK3310" },
        { "STK3311" },
        { "STK3335" },
@@ -708,6 +711,7 @@ static const struct i2c_device_id stk3310_i2c_id[] = {
 MODULE_DEVICE_TABLE(i2c, stk3310_i2c_id);
 
 static const struct acpi_device_id stk3310_acpi_id[] = {
+       {"STK3013", 0},
        {"STK3310", 0},
        {"STK3311", 0},
        {}
@@ -716,6 +720,7 @@ static const struct acpi_device_id stk3310_acpi_id[] = {
 MODULE_DEVICE_TABLE(acpi, stk3310_acpi_id);
 
 static const struct of_device_id stk3310_of_match[] = {
+       { .compatible = "sensortek,stk3013", },
        { .compatible = "sensortek,stk3310", },
        { .compatible = "sensortek,stk3311", },
        { .compatible = "sensortek,stk3335", },