Mon, May 22, 2023 at 04:26:17PM +0200, Astrid Rost kirjoitti:
Add illuminance integration time for vcnl4040 and vcnl4200.
Add read/write attribute for illuminance integration time and read
attribute for available integration times.
Set scale and sampling rate according to the integration time.
...
+ data->vcnl4200_al.sampling_rate = ktime_set(0, val * 1200000);
+ if (data->id == VCNL4200)
+ /* 24000 µlux/step * 50000 µs / val */
+ data->al_scale = div_u64(1200000000, val);
Without type these constant are integers. Is this okay with 32-bit builds?
+ else
+ /* 100000 µlux/step * 80000 µs / val */
+ data->al_scale = div_u64(8000000000, val);
Ditto.
Also, can you use constants from units.h (KILO) and time.h (USEC_PER_MSEC)?
...
+out:
out_unlock:
+ mutex_unlock(&data->vcnl4000_lock);
+ return ret;