linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor
@ 2020-03-16 17:46 Guido Günther
  2020-03-16 17:46 ` [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format Guido Günther
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Guido Günther @ 2020-03-16 17:46 UTC (permalink / raw)
  To: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Guido Günther, Marco Felsch, Thomas Gleixner, linux-iio,
	linux-kernel, devicetree

If an object can be considered close to the device that has the proximity
sensor built in is hardware dependent. Allowing to configure the property via
device tree allows to export this device specific value to userspace via
ext_info. This is useful for e.g. iio-sensor-proxy.

This came up when adding proximity support to iio-sensor-proxy [1], [2], it is
not meant as a vcnl4000 thing but rather as something useful for other proximity
sensors too in the future.

Changes from v1:
- as per review comments by Jonathan Cameron
  https://lore.kernel.org/linux-iio/20200221120519.43b72007@archlinux/
  Document new sysfs file in Documentation/ABI/testing/sysfs-bus-iio-proximity
- convert bindings to yaml
- bindings: fix typo in near-level property

[1]: https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/merge_requests/298
[2]: https://lore.kernel.org/linux-iio/20200210154153.GA26903@bogon.m.sigxcpu.org/

Guido Günther (4):
  dt-bindings: iio: vcnl4000: convert bindings to YAML format
  dt-bindings: iio: light: vcnl4000: Add near-level
  iio: vcnl4000: Export near level property for proximity sensor
  Documentation: ABI: document IIO in_proximity_near_level file

 .../ABI/testing/sysfs-bus-iio-proximity       | 10 ++++
 .../bindings/iio/light/vcnl4000.txt           | 24 ---------
 .../bindings/iio/light/vcnl4000.yaml          | 53 +++++++++++++++++++
 drivers/iio/light/vcnl4000.c                  | 26 +++++++++
 4 files changed, 89 insertions(+), 24 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-proximity
 delete mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.txt
 create mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml

-- 
2.23.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format
  2020-03-16 17:46 [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
@ 2020-03-16 17:46 ` Guido Günther
  2020-03-22 17:29   ` Jonathan Cameron
  2020-03-16 17:46 ` [PATCH v2 2/4] dt-bindings: iio: light: vcnl4000: Add near-level Guido Günther
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Guido Günther @ 2020-03-16 17:46 UTC (permalink / raw)
  To: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Guido Günther, Marco Felsch, Thomas Gleixner, linux-iio,
	linux-kernel, devicetree

Convert the vcnl4000 device tree bindings to the new YAML format.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 .../bindings/iio/light/vcnl4000.txt           | 24 ----------
 .../bindings/iio/light/vcnl4000.yaml          | 45 +++++++++++++++++++
 2 files changed, 45 insertions(+), 24 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.txt
 create mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml

diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt b/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
deleted file mode 100644
index 955af4555c90..000000000000
--- a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-VISHAY VCNL4000 -  Ambient Light and proximity sensor
-
-This driver supports the VCNL4000/10/20/40 and VCNL4200 chips
-
-Required properties:
-
-	-compatible: must be one of :
-        vishay,vcnl4000
-        vishay,vcnl4010
-        vishay,vcnl4020
-        vishay,vcnl4040
-        vishay,vcnl4200
-
-	-reg: I2C address of the sensor, should be one from below based on the model:
-        0x13
-        0x51
-        0x60
-
-Example:
-
-light-sensor@51 {
-	compatible = "vishay,vcnl4200";
-	reg = <0x51>;
-};
diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
new file mode 100644
index 000000000000..74d53cfbeb85
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/vcnl4000.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: VISHAY VCNL4000 ambient light and proximity sensor
+
+maintainers:
+  - Peter Meerwald <pmeerw@pmeerw.net>
+
+description: |
+  Ambient light sensing with proximity detection over an i2c
+  interface.
+
+properties:
+  compatible:
+    enum:
+      - vishay,vcnl4000
+      - vishay,vcnl4010
+      - vishay,vcnl4020
+      - vishay,vcnl4040
+      - vishay,vcnl4200
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+- |
+  i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      light-sensor@51 {
+              compatible = "vishay,vcnl4200";
+              reg = <0x51>;
+      };
+  };
+...
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 2/4] dt-bindings: iio: light: vcnl4000: Add near-level
  2020-03-16 17:46 [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
  2020-03-16 17:46 ` [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format Guido Günther
@ 2020-03-16 17:46 ` Guido Günther
  2020-03-16 17:46 ` [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
  2020-03-16 17:46 ` [PATCH v2 4/4] Documentation: ABI: document IIO in_proximity_near_level file Guido Günther
  3 siblings, 0 replies; 12+ messages in thread
From: Guido Günther @ 2020-03-16 17:46 UTC (permalink / raw)
  To: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Guido Günther, Marco Felsch, Thomas Gleixner, linux-iio,
	linux-kernel, devicetree

This value indicates when userspace should consider an object
near to the sensor/device.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
index 74d53cfbeb85..fc24800f530a 100644
--- a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
+++ b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
@@ -25,6 +25,13 @@ properties:
   reg:
     maxItems: 1
 
+  near-level:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Raw proximity values equal or above this level should be
+      considered 'near' to the device (an object is near to the
+      sensor).
+
 required:
   - compatible
   - reg
@@ -40,6 +47,7 @@ examples:
       light-sensor@51 {
               compatible = "vishay,vcnl4200";
               reg = <0x51>;
+              near-level = <220>;
       };
   };
 ...
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor
  2020-03-16 17:46 [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
  2020-03-16 17:46 ` [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format Guido Günther
  2020-03-16 17:46 ` [PATCH v2 2/4] dt-bindings: iio: light: vcnl4000: Add near-level Guido Günther
@ 2020-03-16 17:46 ` Guido Günther
  2020-03-16 18:23   ` Lars-Peter Clausen
  2020-03-22  0:21   ` Andy Shevchenko
  2020-03-16 17:46 ` [PATCH v2 4/4] Documentation: ABI: document IIO in_proximity_near_level file Guido Günther
  3 siblings, 2 replies; 12+ messages in thread
From: Guido Günther @ 2020-03-16 17:46 UTC (permalink / raw)
  To: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Guido Günther, Marco Felsch, Thomas Gleixner, linux-iio,
	linux-kernel, devicetree

When an object can be considered close to the sensor is hardware
dependent. Allowing to configure the property via device tree
allows to configure this device specific value.

This is useful for e.g. iio-sensor-proxy to indicate to userspace
if an object is close to the sensor.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 drivers/iio/light/vcnl4000.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index 38fcd9a26046..7111118e0fda 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -83,6 +83,7 @@ struct vcnl4000_data {
 	struct mutex vcnl4000_lock;
 	struct vcnl4200_channel vcnl4200_al;
 	struct vcnl4200_channel vcnl4200_ps;
+	uint32_t near_level;
 };
 
 struct vcnl4000_chip_spec {
@@ -342,6 +343,26 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = {
 	},
 };
 
+
+static ssize_t vcnl4000_read_near_level(struct iio_dev *indio_dev,
+					uintptr_t priv,
+					const struct iio_chan_spec *chan,
+					char *buf)
+{
+	struct vcnl4000_data *data = iio_priv(indio_dev);
+
+	return sprintf(buf, "%u\n", data->near_level);
+}
+
+static const struct iio_chan_spec_ext_info vcnl4000_ext_info[] = {
+	{
+		.name = "near_level",
+		.shared = IIO_SEPARATE,
+		.read = vcnl4000_read_near_level,
+	},
+	{ /* sentinel */ }
+};
+
 static const struct iio_chan_spec vcnl4000_channels[] = {
 	{
 		.type = IIO_LIGHT,
@@ -350,6 +371,7 @@ static const struct iio_chan_spec vcnl4000_channels[] = {
 	}, {
 		.type = IIO_PROXIMITY,
 		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
+		.ext_info = vcnl4000_ext_info,
 	}
 };
 
@@ -439,6 +461,10 @@ static int vcnl4000_probe(struct i2c_client *client,
 	dev_dbg(&client->dev, "%s Ambient light/proximity sensor, Rev: %02x\n",
 		data->chip_spec->prod, data->rev);
 
+	if (device_property_read_u32(&client->dev, "near-level",
+				     &data->near_level) < 0)
+		data->near_level = 0;
+
 	indio_dev->dev.parent = &client->dev;
 	indio_dev->info = &vcnl4000_info;
 	indio_dev->channels = vcnl4000_channels;
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 4/4] Documentation: ABI: document IIO in_proximity_near_level file
  2020-03-16 17:46 [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
                   ` (2 preceding siblings ...)
  2020-03-16 17:46 ` [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
@ 2020-03-16 17:46 ` Guido Günther
  3 siblings, 0 replies; 12+ messages in thread
From: Guido Günther @ 2020-03-16 17:46 UTC (permalink / raw)
  To: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Guido Günther, Marco Felsch, Thomas Gleixner, linux-iio,
	linux-kernel, devicetree

The vcnl4000 IIO driver introduced a new attribute
"in_proximity_near_level".  This adds it to the list of documented ABI
for sysfs-bus-iio.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
---
 Documentation/ABI/testing/sysfs-bus-iio-proximity | 10 ++++++++++
 1 file changed, 10 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-proximity

diff --git a/Documentation/ABI/testing/sysfs-bus-iio-proximity b/Documentation/ABI/testing/sysfs-bus-iio-proximity
new file mode 100644
index 000000000000..43b16533a85a
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-bus-iio-proximity
@@ -0,0 +1,10 @@
+What:		/sys/bus/iio/devices/iio:deviceX/in_proximity_near_level
+Date:		March 2020
+KernelVersion:	5.7
+Contact:	linux-iio@vger.kernel.org
+Description:
+		Near level for proximity sensors. This is a single integer
+		value that tells user space when an object should be
+		considered close to the device. If the value read from the
+		sensor is above or equal to the value in this file an object
+		should typically be considered near.
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor
  2020-03-16 17:46 ` [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
@ 2020-03-16 18:23   ` Lars-Peter Clausen
  2020-03-17 12:05     ` Guido Günther
  2020-03-22  0:21   ` Andy Shevchenko
  1 sibling, 1 reply; 12+ messages in thread
From: Lars-Peter Clausen @ 2020-03-16 18:23 UTC (permalink / raw)
  To: Guido Günther, Tomas Novotny, Jonathan Cameron,
	Hartmut Knaack, Peter Meerwald-Stadler, Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree

On 3/16/20 6:46 PM, Guido Günther wrote:
> [...]
> +static ssize_t vcnl4000_read_near_level(struct iio_dev *indio_dev,
> +					uintptr_t priv,
> +					const struct iio_chan_spec *chan,
> +					char *buf)
> +{
> +	struct vcnl4000_data *data = iio_priv(indio_dev);
> +
> +	return sprintf(buf, "%u\n", data->near_level);
> +}
> +
> +static const struct iio_chan_spec_ext_info vcnl4000_ext_info[] = {
> +	{
> +		.name = "near_level",

Generally having properties with a underscore in them breaks generic 
parsing of the property name by userspace applications. This is because 
we use underscores to separate different components (type, modifier, 
etc.) of the attribute from each other.

Do you think calling this "nearlevel" would work?

I know there are existing bad examples of properties that use an 
underscore, but we should try to limit introducing new ones.

> +		.shared = IIO_SEPARATE,
> +		.read = vcnl4000_read_near_level,
> +	},
> +	{ /* sentinel */ }
> +};
> +
>   static const struct iio_chan_spec vcnl4000_channels[] = {
>   	{
>   		.type = IIO_LIGHT,
> @@ -350,6 +371,7 @@ static const struct iio_chan_spec vcnl4000_channels[] = {
>   	}, {
>   		.type = IIO_PROXIMITY,
>   		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> +		.ext_info = vcnl4000_ext_info,
>   	}
>   };
>   
> @@ -439,6 +461,10 @@ static int vcnl4000_probe(struct i2c_client *client,
>   	dev_dbg(&client->dev, "%s Ambient light/proximity sensor, Rev: %02x\n",
>   		data->chip_spec->prod, data->rev);
>   
> +	if (device_property_read_u32(&client->dev, "near-level",
> +				     &data->near_level) < 0)
> +		data->near_level = 0;
> +
>   	indio_dev->dev.parent = &client->dev;
>   	indio_dev->info = &vcnl4000_info;
>   	indio_dev->channels = vcnl4000_channels;



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor
  2020-03-16 18:23   ` Lars-Peter Clausen
@ 2020-03-17 12:05     ` Guido Günther
  2020-03-17 13:11       ` Lars-Peter Clausen
  0 siblings, 1 reply; 12+ messages in thread
From: Guido Günther @ 2020-03-17 12:05 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Peter Meerwald-Stadler, Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree

Hi,
On Mon, Mar 16, 2020 at 07:23:01PM +0100, Lars-Peter Clausen wrote:
> On 3/16/20 6:46 PM, Guido Günther wrote:
> > [...]
> > +static ssize_t vcnl4000_read_near_level(struct iio_dev *indio_dev,
> > +					uintptr_t priv,
> > +					const struct iio_chan_spec *chan,
> > +					char *buf)
> > +{
> > +	struct vcnl4000_data *data = iio_priv(indio_dev);
> > +
> > +	return sprintf(buf, "%u\n", data->near_level);
> > +}
> > +
> > +static const struct iio_chan_spec_ext_info vcnl4000_ext_info[] = {
> > +	{
> > +		.name = "near_level",
> 
> Generally having properties with a underscore in them breaks generic parsing
> of the property name by userspace applications. This is because we use
> underscores to separate different components (type, modifier, etc.) of the
> attribute from each other.
> 
> Do you think calling this "nearlevel" would work?

That works as well. I'll change that for v3.

For my education: Is the type, modifier policy written down somewhere
(similar to
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/leds/leds-class.rst#n44
)?

Cheers,
 -- Guido

> 
> I know there are existing bad examples of properties that use an underscore,
> but we should try to limit introducing new ones.
> 
> > +		.shared = IIO_SEPARATE,
> > +		.read = vcnl4000_read_near_level,
> > +	},
> > +	{ /* sentinel */ }
> > +};
> > +
> >   static const struct iio_chan_spec vcnl4000_channels[] = {
> >   	{
> >   		.type = IIO_LIGHT,
> > @@ -350,6 +371,7 @@ static const struct iio_chan_spec vcnl4000_channels[] = {
> >   	}, {
> >   		.type = IIO_PROXIMITY,
> >   		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> > +		.ext_info = vcnl4000_ext_info,
> >   	}
> >   };
> > @@ -439,6 +461,10 @@ static int vcnl4000_probe(struct i2c_client *client,
> >   	dev_dbg(&client->dev, "%s Ambient light/proximity sensor, Rev: %02x\n",
> >   		data->chip_spec->prod, data->rev);
> > +	if (device_property_read_u32(&client->dev, "near-level",
> > +				     &data->near_level) < 0)
> > +		data->near_level = 0;
> > +
> >   	indio_dev->dev.parent = &client->dev;
> >   	indio_dev->info = &vcnl4000_info;
> >   	indio_dev->channels = vcnl4000_channels;
> 
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor
  2020-03-17 12:05     ` Guido Günther
@ 2020-03-17 13:11       ` Lars-Peter Clausen
  0 siblings, 0 replies; 12+ messages in thread
From: Lars-Peter Clausen @ 2020-03-17 13:11 UTC (permalink / raw)
  To: Guido Günther
  Cc: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Peter Meerwald-Stadler, Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree

On 3/17/20 1:05 PM, Guido Günther wrote:
> Hi,
> On Mon, Mar 16, 2020 at 07:23:01PM +0100, Lars-Peter Clausen wrote:
>> On 3/16/20 6:46 PM, Guido Günther wrote:
>>> [...]
>>> +static ssize_t vcnl4000_read_near_level(struct iio_dev *indio_dev,
>>> +					uintptr_t priv,
>>> +					const struct iio_chan_spec *chan,
>>> +					char *buf)
>>> +{
>>> +	struct vcnl4000_data *data = iio_priv(indio_dev);
>>> +
>>> +	return sprintf(buf, "%u\n", data->near_level);
>>> +}
>>> +
>>> +static const struct iio_chan_spec_ext_info vcnl4000_ext_info[] = {
>>> +	{
>>> +		.name = "near_level",
>> Generally having properties with a underscore in them breaks generic parsing
>> of the property name by userspace applications. This is because we use
>> underscores to separate different components (type, modifier, etc.) of the
>> attribute from each other.
>>
>> Do you think calling this "nearlevel" would work?
> That works as well. I'll change that for v3.
>
> For my education: Is the type, modifier policy written down somewhere
> (similar to
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/leds/leds-class.rst#n44
> )?

Good point, this is quite badly documented at the moment.

The only thing I could find is this presentation by Daniel 
https://events.static.linuxfound.org/sites/events/files/slides/lceu15_baluta.pdf#page=9

- Lars


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor
  2020-03-16 17:46 ` [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
  2020-03-16 18:23   ` Lars-Peter Clausen
@ 2020-03-22  0:21   ` Andy Shevchenko
  1 sibling, 0 replies; 12+ messages in thread
From: Andy Shevchenko @ 2020-03-22  0:21 UTC (permalink / raw)
  To: Guido Günther
  Cc: Tomas Novotny, Jonathan Cameron, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio,
	Linux Kernel Mailing List, devicetree

On Mon, Mar 16, 2020 at 7:47 PM Guido Günther <agx@sigxcpu.org> wrote:
>
> When an object can be considered close to the sensor is hardware
> dependent. Allowing to configure the property via device tree
> allows to configure this device specific value.
>
> This is useful for e.g. iio-sensor-proxy to indicate to userspace
> if an object is close to the sensor.

...

> @@ -342,6 +343,26 @@ static const struct vcnl4000_chip_spec vcnl4000_chip_spec_cfg[] = {
>         },
>  };
>

> +

No need for this blank line.

> +static ssize_t vcnl4000_read_near_level(struct iio_dev *indio_dev,
> +                                       uintptr_t priv,
> +                                       const struct iio_chan_spec *chan,
> +                                       char *buf)

...

> +       if (device_property_read_u32(&client->dev, "near-level",
> +                                    &data->near_level) < 0)

It doesn't return > 0. So, you may drop that and put everything to one
line I think.

> +               data->near_level = 0;

-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format
  2020-03-16 17:46 ` [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format Guido Günther
@ 2020-03-22 17:29   ` Jonathan Cameron
  2020-03-22 17:37     ` Nishant Malpani
  0 siblings, 1 reply; 12+ messages in thread
From: Jonathan Cameron @ 2020-03-22 17:29 UTC (permalink / raw)
  To: Guido Günther
  Cc: Tomas Novotny, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree, Rob Herring

On Mon, 16 Mar 2020 18:46:17 +0100
Guido Günther <agx@sigxcpu.org> wrote:

> Convert the vcnl4000 device tree bindings to the new YAML format.
> 
> Signed-off-by: Guido Günther <agx@sigxcpu.org>
Looks good to me. However, I've made far too many mistakes in
DT binding review recently, so will definitely be waiting for Rob to
get a chance to look at it!

Jonathan

> ---
>  .../bindings/iio/light/vcnl4000.txt           | 24 ----------
>  .../bindings/iio/light/vcnl4000.yaml          | 45 +++++++++++++++++++
>  2 files changed, 45 insertions(+), 24 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.txt
>  create mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt b/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
> deleted file mode 100644
> index 955af4555c90..000000000000
> --- a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -VISHAY VCNL4000 -  Ambient Light and proximity sensor
> -
> -This driver supports the VCNL4000/10/20/40 and VCNL4200 chips
> -
> -Required properties:
> -
> -	-compatible: must be one of :
> -        vishay,vcnl4000
> -        vishay,vcnl4010
> -        vishay,vcnl4020
> -        vishay,vcnl4040
> -        vishay,vcnl4200
> -
> -	-reg: I2C address of the sensor, should be one from below based on the model:
> -        0x13
> -        0x51
> -        0x60
> -
> -Example:
> -
> -light-sensor@51 {
> -	compatible = "vishay,vcnl4200";
> -	reg = <0x51>;
> -};
> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> new file mode 100644
> index 000000000000..74d53cfbeb85
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> @@ -0,0 +1,45 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/light/vcnl4000.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: VISHAY VCNL4000 ambient light and proximity sensor
> +
> +maintainers:
> +  - Peter Meerwald <pmeerw@pmeerw.net>
> +
> +description: |
> +  Ambient light sensing with proximity detection over an i2c
> +  interface.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - vishay,vcnl4000
> +      - vishay,vcnl4010
> +      - vishay,vcnl4020
> +      - vishay,vcnl4040
> +      - vishay,vcnl4200
> +
> +  reg:
> +    maxItems: 1
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +- |
> +  i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +
> +      light-sensor@51 {
> +              compatible = "vishay,vcnl4200";
> +              reg = <0x51>;
> +      };
> +  };
> +...


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format
  2020-03-22 17:29   ` Jonathan Cameron
@ 2020-03-22 17:37     ` Nishant Malpani
  2020-03-22 18:24       ` Jonathan Cameron
  0 siblings, 1 reply; 12+ messages in thread
From: Nishant Malpani @ 2020-03-22 17:37 UTC (permalink / raw)
  To: Jonathan Cameron, Guido Günther
  Cc: Tomas Novotny, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree, Rob Herring

On 22/03/20 10:59 pm, Jonathan Cameron wrote:
> On Mon, 16 Mar 2020 18:46:17 +0100
> Guido Günther <agx@sigxcpu.org> wrote:
> 
>> Convert the vcnl4000 device tree bindings to the new YAML format.
>>
>> Signed-off-by: Guido Günther <agx@sigxcpu.org>
> Looks good to me. However, I've made far too many mistakes in
> DT binding review recently, so will definitely be waiting for Rob to
> get a chance to look at it!
> 
> Jonathan
> 
>> ---
>>   .../bindings/iio/light/vcnl4000.txt           | 24 ----------
>>   .../bindings/iio/light/vcnl4000.yaml          | 45 +++++++++++++++++++
>>   2 files changed, 45 insertions(+), 24 deletions(-)
>>   delete mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.txt
>>   create mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt b/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
>> deleted file mode 100644
>> index 955af4555c90..000000000000
>> --- a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
>> +++ /dev/null
>> @@ -1,24 +0,0 @@
>> -VISHAY VCNL4000 -  Ambient Light and proximity sensor
>> -
>> -This driver supports the VCNL4000/10/20/40 and VCNL4200 chips
>> -
>> -Required properties:
>> -
>> -	-compatible: must be one of :
>> -        vishay,vcnl4000
>> -        vishay,vcnl4010
>> -        vishay,vcnl4020
>> -        vishay,vcnl4040
>> -        vishay,vcnl4200
>> -
>> -	-reg: I2C address of the sensor, should be one from below based on the model:
>> -        0x13
>> -        0x51
>> -        0x60
>> -
>> -Example:
>> -
>> -light-sensor@51 {
>> -	compatible = "vishay,vcnl4200";
>> -	reg = <0x51>;
>> -};
>> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
>> new file mode 100644
>> index 000000000000..74d53cfbeb85
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
>> @@ -0,0 +1,45 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/iio/light/vcnl4000.yaml#
Shouldn't the devicetree binding document be named with the manufacturer 
part as well?

With regards,
Nishant

>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: VISHAY VCNL4000 ambient light and proximity sensor
>> +
>> +maintainers:
>> +  - Peter Meerwald <pmeerw@pmeerw.net>
>> +
>> +description: |
>> +  Ambient light sensing with proximity detection over an i2c
>> +  interface.
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - vishay,vcnl4000
>> +      - vishay,vcnl4010
>> +      - vishay,vcnl4020
>> +      - vishay,vcnl4040
>> +      - vishay,vcnl4200
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +- |
>> +  i2c {
>> +      #address-cells = <1>;
>> +      #size-cells = <0>;
>> +
>> +      light-sensor@51 {
>> +              compatible = "vishay,vcnl4200";
>> +              reg = <0x51>;
>> +      };
>> +  };
>> +...
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format
  2020-03-22 17:37     ` Nishant Malpani
@ 2020-03-22 18:24       ` Jonathan Cameron
  0 siblings, 0 replies; 12+ messages in thread
From: Jonathan Cameron @ 2020-03-22 18:24 UTC (permalink / raw)
  To: Nishant Malpani
  Cc: Guido Günther, Tomas Novotny, Hartmut Knaack,
	Lars-Peter Clausen, Peter Meerwald-Stadler,
	Angus Ainslie (Purism),
	Marco Felsch, Thomas Gleixner, linux-iio, linux-kernel,
	devicetree, Rob Herring

On Sun, 22 Mar 2020 23:07:00 +0530
Nishant Malpani <nish.malpani25@gmail.com> wrote:

> On 22/03/20 10:59 pm, Jonathan Cameron wrote:
> > On Mon, 16 Mar 2020 18:46:17 +0100
> > Guido Günther <agx@sigxcpu.org> wrote:
> >   
> >> Convert the vcnl4000 device tree bindings to the new YAML format.
> >>
> >> Signed-off-by: Guido Günther <agx@sigxcpu.org>  
> > Looks good to me. However, I've made far too many mistakes in
> > DT binding review recently, so will definitely be waiting for Rob to
> > get a chance to look at it!
> > 
> > Jonathan
> >   
> >> ---
> >>   .../bindings/iio/light/vcnl4000.txt           | 24 ----------
> >>   .../bindings/iio/light/vcnl4000.yaml          | 45 +++++++++++++++++++
> >>   2 files changed, 45 insertions(+), 24 deletions(-)
> >>   delete mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.txt
> >>   create mode 100644 Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt b/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
> >> deleted file mode 100644
> >> index 955af4555c90..000000000000
> >> --- a/Documentation/devicetree/bindings/iio/light/vcnl4000.txt
> >> +++ /dev/null
> >> @@ -1,24 +0,0 @@
> >> -VISHAY VCNL4000 -  Ambient Light and proximity sensor
> >> -
> >> -This driver supports the VCNL4000/10/20/40 and VCNL4200 chips
> >> -
> >> -Required properties:
> >> -
> >> -	-compatible: must be one of :
> >> -        vishay,vcnl4000
> >> -        vishay,vcnl4010
> >> -        vishay,vcnl4020
> >> -        vishay,vcnl4040
> >> -        vishay,vcnl4200
> >> -
> >> -	-reg: I2C address of the sensor, should be one from below based on the model:
> >> -        0x13
> >> -        0x51
> >> -        0x60
> >> -
> >> -Example:
> >> -
> >> -light-sensor@51 {
> >> -	compatible = "vishay,vcnl4200";
> >> -	reg = <0x51>;
> >> -};
> >> diff --git a/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> >> new file mode 100644
> >> index 000000000000..74d53cfbeb85
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/iio/light/vcnl4000.yaml
> >> @@ -0,0 +1,45 @@
> >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/iio/light/vcnl4000.yaml#  
> Shouldn't the devicetree binding document be named with the manufacturer 
> part as well?

Yup. Good spot.  Told you I kept missing things ;)

Jonathan

> 
> With regards,
> Nishant
> 
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: VISHAY VCNL4000 ambient light and proximity sensor
> >> +
> >> +maintainers:
> >> +  - Peter Meerwald <pmeerw@pmeerw.net>
> >> +
> >> +description: |
> >> +  Ambient light sensing with proximity detection over an i2c
> >> +  interface.
> >> +
> >> +properties:
> >> +  compatible:
> >> +    enum:
> >> +      - vishay,vcnl4000
> >> +      - vishay,vcnl4010
> >> +      - vishay,vcnl4020
> >> +      - vishay,vcnl4040
> >> +      - vishay,vcnl4200
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +required:
> >> +  - compatible
> >> +  - reg
> >> +
> >> +additionalProperties: false
> >> +
> >> +examples:
> >> +- |
> >> +  i2c {
> >> +      #address-cells = <1>;
> >> +      #size-cells = <0>;
> >> +
> >> +      light-sensor@51 {
> >> +              compatible = "vishay,vcnl4200";
> >> +              reg = <0x51>;
> >> +      };
> >> +  };
> >> +...  
> >   


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-03-22 18:24 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-16 17:46 [PATCH v2 0/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
2020-03-16 17:46 ` [PATCH v2 1/4] dt-bindings: iio: vcnl4000: convert bindings to YAML format Guido Günther
2020-03-22 17:29   ` Jonathan Cameron
2020-03-22 17:37     ` Nishant Malpani
2020-03-22 18:24       ` Jonathan Cameron
2020-03-16 17:46 ` [PATCH v2 2/4] dt-bindings: iio: light: vcnl4000: Add near-level Guido Günther
2020-03-16 17:46 ` [PATCH v2 3/4] iio: vcnl4000: Export near level property for proximity sensor Guido Günther
2020-03-16 18:23   ` Lars-Peter Clausen
2020-03-17 12:05     ` Guido Günther
2020-03-17 13:11       ` Lars-Peter Clausen
2020-03-22  0:21   ` Andy Shevchenko
2020-03-16 17:46 ` [PATCH v2 4/4] Documentation: ABI: document IIO in_proximity_near_level file Guido Günther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).