2020-05-06 01:11:01

by Ivan Mikhaylov

[permalink] [raw]
Subject: [PATCH v12 0/2] iio: proximity: driver for vcnl3020

Add proximity sensor driver for Vishay vcnl3020. Only on-demand
measurement is supported for now.

Changes from v11:
1. minor changes to yaml.

Changes from v10:
1. add vcnl3020_property struct for optional properties.

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):
dt-bindings: proximity: provide vcnl3020 device tree binding document
iio: proximity: Add driver support for vcnl3020 proximity sensor

.../iio/proximity/vishay,vcnl3020.yaml | 65 +++++
drivers/iio/proximity/Kconfig | 11 +
drivers/iio/proximity/Makefile | 1 +
drivers/iio/proximity/vcnl3020.c | 258 ++++++++++++++++++
4 files changed, 335 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml
create mode 100644 drivers/iio/proximity/vcnl3020.c

--
2.21.1


2020-05-06 01:11:28

by Ivan Mikhaylov

[permalink] [raw]
Subject: [PATCH v12 1/2] dt-bindings: proximity: provide vcnl3020 device tree binding document

Mostly standard i2c driver with some additional led-current option
for vcnl3020.

Signed-off-by: Ivan Mikhaylov <[email protected]>
---
.../iio/proximity/vishay,vcnl3020.yaml | 65 +++++++++++++++++++
1 file changed, 65 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml

diff --git a/Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml b/Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml
new file mode 100644
index 000000000000..408dee17cdf5
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/vcnl3020.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Integrated Proximity Sensor With Infrared Emitter
+
+maintainers:
+ - Ivan Mikhaylov <[email protected]>
+
+description: |
+ The VCNL3020 is a fully integrated proximity sensor. Fully integrated means
+ that the infrared emitter is included in the package. It has 16-bit
+ resolution. It includes a signal processing IC and features standard I2C
+ communication interface. It features an interrupt function.
+
+ Specifications about the devices can be found at:
+ https://www.vishay.com/docs/84150/vcnl3020.pdf
+
+properties:
+ compatible:
+ enum:
+ - vishay,vcnl3020
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ vdd-supply:
+ description: Regulator that provides power to the sensor
+
+ vddio-supply:
+ description: Regulator that provides power to the bus
+
+ vishay,led-current-microamp:
+ description:
+ IR LED current value with valid Range = 0 to 20d. e.g. 0 = 0 mA,
+ 1 = 10 mA, 20 = 200 mA. LED Current is limited to 200 mA for values
+ higher than decimal 20. The drive current for the LED used in proximity
+ sensing.
+ enum: [0, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000,
+ 100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000,
+ 180000, 190000, 200000]
+ default: 20000
+
+required:
+ - compatible
+ - reg
+
+examples:
+ - |
+ i2c {
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ proximity@13 {
+ compatible = "vishay,vcnl3020";
+ reg = <0x13>;
+ vishay,led-current-microamp = <200000>;
+ };
+ };
--
2.21.1

2020-05-07 02:30:14

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v12 1/2] dt-bindings: proximity: provide vcnl3020 device tree binding document

On Wed, 6 May 2020 04:08:08 +0300, Ivan Mikhaylov wrote:
> Mostly standard i2c driver with some additional led-current option
> for vcnl3020.
>
> Signed-off-by: Ivan Mikhaylov <[email protected]>
> ---
> .../iio/proximity/vishay,vcnl3020.yaml | 65 +++++++++++++++++++
> 1 file changed, 65 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml
>

My bot found errors running 'make dt_binding_check' on your patch:

Documentation/devicetree/bindings/iio/proximity/vishay,vcnl3020.yaml: $id: relative path/filename doesn't match actual path or filename
expected: http://devicetree.org/schemas/iio/proximity/vishay,vcnl3020.yaml#

See https://patchwork.ozlabs.org/patch/1284005

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure dt-schema is up to date:

pip3 install git+https://github.com/devicetree-org/dt-schema.git@master --upgrade

Please check and re-submit.