Hello, Thanks for reviewing Jonathan! I did split the original patch into four parts. I should have done it in the first place, sorry about that. I did drop the ALS data from the buffer, as they are not really useful anyway. I also used iio_device_claim_direct_mode as requested. But making sure buffer and event capture are not done simultaneously is quite tricky as you mentionned. Thanks, Mathieu Changes from v1: * Split into four different patches. * Use iio_device_claim_direct_mode to protect raw access from buffer capture. * Requesting a sampling frequency above the limit is no longer possible. * Inline read_isr and write_isr functions. * Remove IIO_LIGHT data from buffer capture. * Make sure postenable and predisable functions respect the common form. * Do not set the trigger by default. * Remove the devm_iio_triggered_buffer_setup top half. Mathieu Othacehe (4): iio: vcnl4000: Factorize data reading and writing. iio: vcnl4000: Add event support for VCNL4010/20. iio: vcnl4000: Add sampling frequency support for VCNL4010/20. iio: vcnl4000: Add buffer support for VCNL4010/20. drivers/iio/light/Kconfig | 2 + drivers/iio/light/vcnl4000.c | 856 +++++++++++++++++++++++++++++++++-- 2 files changed, 813 insertions(+), 45 deletions(-) -- 2.26.0