Add proximity sensor driver for Vishay vcnl3020. Only on-demand measurement is supported for now. Changes from v5: 1. add get_and_apply_property function for optional parameters. 2. minor changes. Changes from v4: 1. add vdd-supply,vddio-supply,interrupts properties into yaml. 2. led-current -> vishay,led-current-milliamp in yaml. 3. add possible values enum list. 4. add bulk_read for result hi/lo registers. 5. add description of vcnl3020_data structure. 6. vcnl3020 id table is removed. 7. make "vishay,led-current-milliamp" optional in yaml and code. Changes from v3: 1. minor changes. 2. add i2c block to fix dts section in yaml. Changes from v2: 1. using regmap_read_poll_timeout instead of do-while in measurement function. 2. change struct i2client* in vcnl3020_data to struct dev* 3. enable REGMAP_I2C in Kconfig Changes from v1: 1. using regmap interface instead of i2c_smbus_* calls. 2. switch from probe to probe_new. 3. s32/int32_t -> int Ivan Mikhaylov (2): iio: proximity: provide device tree binding document iio: proximity: Add driver support for vcnl3020 proximity sensor .../bindings/iio/proximity/vcnl3020.yaml | 65 +++++ drivers/iio/proximity/Kconfig | 11 + drivers/iio/proximity/Makefile | 1 + drivers/iio/proximity/vcnl3020.c | 234 ++++++++++++++++++ 4 files changed, 311 insertions(+) create mode 100644 Documentation/devicetree/bindings/iio/proximity/vcnl3020.yaml create mode 100644 drivers/iio/proximity/vcnl3020.c -- 2.21.1