Add proximity sensor driver for Vishay vcnl3020. Only on-demand measurement is supported for now. Changes from v9: 1. minor changes. 2. pass microamps from dts, not register value. Changes from v8: 1. add vcnl3020 prefix into get_and_apply_property function. 2. add bsd license into yaml. 3. vishay,led-current-milliamp -> vishay,led-current-microamp. 4. add default value into vishay,led-current-microamp and change register values into microamps. Changes from v7: 1. forgot to add Reviewed-by tag. Changes from v6: 1. minor changes 1.1 remove VCNL_DRV_NAME 1.2 add braces in get_and_apply_property 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 | 64 +++++ drivers/iio/proximity/Kconfig | 11 + drivers/iio/proximity/Makefile | 1 + drivers/iio/proximity/vcnl3020.c | 235 ++++++++++++++++++ 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