From: Onur Atilla <oati...@gmail.com> The als_int_enable switch decides whether the sensor interrupt signal is triggered by both proximity and the ambient light sensors or only by the proximity sensor.
The low and high threshold values are set to their minimum and maximum in order to disable ALS interrupt. If als_int_enable is set to 0, then the INT output signal of the sensor will not be used by the ALS, but only by the proximity sensor. The interrupt setting can be changed during runtime by defining new threshold values for the ambient light sensor. Signed-off-by: Onur Atilla <oati...@gmail.com> Signed-off-by: Andi Shyti <a...@etezian.org> --- drivers/misc/bh1770glc.c | 10 ++++++++++ include/linux/i2c/bh1770glc.h | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/misc/bh1770glc.c b/drivers/misc/bh1770glc.c index 383cefe..526cdb6 100644 --- a/drivers/misc/bh1770glc.c +++ b/drivers/misc/bh1770glc.c @@ -1280,6 +1280,16 @@ static int bh1770_probe(struct i2c_client *client, chip->lux_threshold_lo = BH1770_LUX_DEF_THRES; chip->lux_threshold_hi = BH1770_LUX_DEF_THRES; + /* Modify the ALS threshold values + * only if ALS interrupt is disabled by the platform data. + * Setting the low threshold and the high threshold to the + * lowest and highest values, respectively, disables the IRQ for ALS. + */ + if (chip->pdata->als_int_enable == 0) { + chip->lux_threshold_lo = 0; + chip->lux_threshold_hi = BH1770_LUX_RANGE; + } + if (chip->pdata->glass_attenuation == 0) chip->lux_ga = BH1770_NEUTRAL_GA; else diff --git a/include/linux/i2c/bh1770glc.h b/include/linux/i2c/bh1770glc.h index aaf0906..6fb4488 100644 --- a/include/linux/i2c/bh1770glc.h +++ b/include/linux/i2c/bh1770glc.h @@ -53,6 +53,7 @@ struct bh1770_platform_data { u8 prox_hysteresis; u8 prox_min_thresh_BH1770; u8 prox_min_thresh_SFH7770; + u8 als_int_enable; int (*setup_resources)(void); int (*release_resources)(void); }; -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/