| From 22f6d73edc70adbbb79f4aa1b3a3f846a14cee82 Mon Sep 17 00:00:00 2001 |
| From: Tomas Novotny <tomas@novotny.cz> |
| Date: Tue, 18 Feb 2020 16:44:50 +0100 |
| Subject: [PATCH] iio: light: vcnl4000: update sampling periods for vcnl4200 |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| commit b42aa97ed5f1169cfd37175ef388ea62ff2dcf43 upstream. |
| |
| Vishay has published a new version of "Designing the VCNL4200 Into an |
| Application" application note in October 2019. The new version specifies |
| that there is +-20% of part to part tolerance. This explains the drift |
| seen during experiments. The proximity pulse width is also changed from |
| 32us to 30us. According to the support, the tolerance also applies to |
| ambient light. |
| |
| So update the sampling periods. As the reading is blocking, current |
| users may notice slightly longer response time. |
| |
| Fixes: be38866fbb97 ("iio: vcnl4000: add support for VCNL4200") |
| Reviewed-by: Guido GΓΌnther <agx@sigxcpu.org> |
| Signed-off-by: Tomas Novotny <tomas@novotny.cz> |
| Cc: <Stable@vger.kernel.org> |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c |
| index de2e4988569e..5a8ba42c877b 100644 |
| --- a/drivers/iio/light/vcnl4000.c |
| +++ b/drivers/iio/light/vcnl4000.c |
| @@ -167,10 +167,10 @@ static int vcnl4200_init(struct vcnl4000_data *data) |
| data->vcnl4200_ps.reg = VCNL4200_PS_DATA; |
| switch (id) { |
| case VCNL4200_PROD_ID: |
| - /* Integration time is 50ms, but the experiments */ |
| - /* show 54ms in total. */ |
| - data->vcnl4200_al.sampling_rate = ktime_set(0, 54000 * 1000); |
| - data->vcnl4200_ps.sampling_rate = ktime_set(0, 4200 * 1000); |
| + /* Default wait time is 50ms, add 20% tolerance. */ |
| + data->vcnl4200_al.sampling_rate = ktime_set(0, 60000 * 1000); |
| + /* Default wait time is 4.8ms, add 20% tolerance. */ |
| + data->vcnl4200_ps.sampling_rate = ktime_set(0, 5760 * 1000); |
| data->al_scale = 24000; |
| break; |
| case VCNL4040_PROD_ID: |
| -- |
| 2.7.4 |
| |