2023-10-27 07:46:17

by Subhajit Ghosh

[permalink] [raw]
Subject: [PATCH v2 1/2] dt-bindings: iio: light: Avago APDS9306

v1 -> v2
- No change

v0 -> v1
- Squashing Avago (Broadcom) APDS9300 and APDS9960 schemas into one as
they look similar
- Adding support for APDS9306 in the same schema file
- Adding mandatory interrupt property requirement for APDS9960 as per the
driver's probe method which fails if interrupt bindings are not defined.
Both APDS9300 and APDS9306 (this patch set) supports sensors with and
without hardware interrupt bindings
- In the device tree example, replacing interrupt type number with macro
from irq.h
- Updated the vin to vdd which is the same for all the three sensors
- Used proper "Datasheet:" tags

Signed-off-by: Subhajit Ghosh <[email protected]>
---
.../bindings/iio/light/avago,apds9300.yaml | 35 ++++++++++++---
.../bindings/iio/light/avago,apds9960.yaml | 44 -------------------
2 files changed, 30 insertions(+), 49 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml

diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
index 206af44f2c43..7a24a97d0594 100644
--- a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
+++ b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
@@ -4,17 +4,26 @@
$id: http://devicetree.org/schemas/iio/light/avago,apds9300.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

-title: Avago APDS9300 ambient light sensor
+title: Avago Gesture, RGB, ALS and Proximity sensors

maintainers:
- Jonathan Cameron <[email protected]>
+ - Matt Ranostay <[email protected]>
+ - Subhajit Ghosh <[email protected]>

description: |
- Datasheet at https://www.avagotech.com/docs/AV02-1077EN
+ Avago (Broadcom) optical and proximity sensors with I2C interfaces.
+ Datasheet: https://docs.broadcom.com/doc/AV02-1077EN
+ Datasheet: https://docs.broadcom.com/doc/AV02-4191EN
+ Datasheet: https://docs.broadcom.com/doc/AV02-4755EN

properties:
compatible:
- const: avago,apds9300
+ oneOf:
+ - enum:
+ - avago,apds9300
+ - avago,apds9306
+ - avago,apds9960

reg:
maxItems: 1
@@ -22,14 +31,30 @@ properties:
interrupts:
maxItems: 1

-additionalProperties: false
+ vdd-supply: true

required:
- compatible
- reg

+allOf:
+ - $ref: ../common.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - avago,apds9960
+ then:
+ required:
+ - interrupts
+
+additionalProperties: false
+
examples:
- |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
i2c {
#address-cells = <1>;
#size-cells = <0>;
@@ -38,7 +63,7 @@ examples:
compatible = "avago,apds9300";
reg = <0x39>;
interrupt-parent = <&gpio2>;
- interrupts = <29 8>;
+ interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
};
};
...
diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
deleted file mode 100644
index f06e0fda5629..000000000000
--- a/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/iio/light/avago,apds9960.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Avago APDS9960 gesture/RGB/ALS/proximity sensor
-
-maintainers:
- - Matt Ranostay <[email protected]>
-
-description: |
- Datasheet at https://www.avagotech.com/docs/AV02-4191EN
-
-properties:
- compatible:
- const: avago,apds9960
-
- reg:
- maxItems: 1
-
- interrupts:
- maxItems: 1
-
-additionalProperties: false
-
-required:
- - compatible
- - reg
-
-examples:
- - |
- i2c {
- #address-cells = <1>;
- #size-cells = <0>;
-
- light-sensor@39 {
- compatible = "avago,apds9960";
- reg = <0x39>;
- interrupt-parent = <&gpio1>;
- interrupts = <16 1>;
- };
- };
-...
--
2.34.1


2023-10-27 08:12:09

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt-bindings: iio: light: Avago APDS9306

On 27/10/2023 09:45, Subhajit Ghosh wrote:
> v1 -> v2
> - No change
>


Missing commit msg.

> v0 -> v1
> - Squashing Avago (Broadcom) APDS9300 and APDS9960 schemas into one as
> they look similar
> - Adding support for APDS9306 in the same schema file
> - Adding mandatory interrupt property requirement for APDS9960 as per the
> driver's probe method which fails if interrupt bindings are not defined.
> Both APDS9300 and APDS9306 (this patch set) supports sensors with and
> without hardware interrupt bindings
> - In the device tree example, replacing interrupt type number with macro
> from irq.h
> - Updated the vin to vdd which is the same for all the three sensors
> - Used proper "Datasheet:" tags

This is changelog, so after ---.

>
> Signed-off-by: Subhajit Ghosh <[email protected]>
> ---
> .../bindings/iio/light/avago,apds9300.yaml | 35 ++++++++++++---
> .../bindings/iio/light/avago,apds9960.yaml | 44 -------------------
> 2 files changed, 30 insertions(+), 49 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> index 206af44f2c43..7a24a97d0594 100644
> --- a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> +++ b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> @@ -4,17 +4,26 @@
> $id: http://devicetree.org/schemas/iio/light/avago,apds9300.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Avago APDS9300 ambient light sensor
> +title: Avago Gesture, RGB, ALS and Proximity sensors
>
> maintainers:
> - Jonathan Cameron <[email protected]>
> + - Matt Ranostay <[email protected]>
> + - Subhajit Ghosh <[email protected]>
>
> description: |
> - Datasheet at https://www.avagotech.com/docs/AV02-1077EN
> + Avago (Broadcom) optical and proximity sensors with I2C interfaces.
> + Datasheet: https://docs.broadcom.com/doc/AV02-1077EN
> + Datasheet: https://docs.broadcom.com/doc/AV02-4191EN
> + Datasheet: https://docs.broadcom.com/doc/AV02-4755EN
>
> properties:
> compatible:
> - const: avago,apds9300
> + oneOf:

Drop

> + - enum:
> + - avago,apds9300
> + - avago,apds9306
> + - avago,apds9960

I don't understand what is happening here. At all. Some compatibles are
moved, some are added, nothing explains why you are doing it.


Best regards,
Krzysztof

2023-10-27 08:55:59

by Subhajit Ghosh

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt-bindings: iio: light: Avago APDS9306


>>
>> properties:
>> compatible:
>> - const: avago,apds9300
>> + oneOf:
>
> Drop
Sorry, do you mean I should not use the "oneOf"?
>
>> + - enum:
>> + - avago,apds9300
>> + - avago,apds9306
>> + - avago,apds9960
>
> I don't understand what is happening here. At all. Some compatibles are
> moved, some are added, nothing explains why you are doing it.
>
>
> Best regards,
> Krzysztof
>
I have formatted the commit message wrongly, it will be fixed at once.
I am trying to add the support for all the three sensors in the same schema file.

Regards,
Subhajit Ghosh


2023-10-27 11:04:24

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt-bindings: iio: light: Avago APDS9306

On 27/10/2023 10:55, Subhajit Ghosh wrote:
>
>>>
>>> properties:
>>> compatible:
>>> - const: avago,apds9300
>>> + oneOf:
>>
>> Drop
> Sorry, do you mean I should not use the "oneOf"?

Yep. You do not need it - you do not have more than one item.


>>
>>> + - enum:
>>> + - avago,apds9300
>>> + - avago,apds9306
>>> + - avago,apds9960
>>
>> I don't understand what is happening here. At all. Some compatibles are
>> moved, some are added, nothing explains why you are doing it.
>>
>>
>> Best regards,
>> Krzysztof
>>
> I have formatted the commit message wrongly, it will be fixed at once.
> I am trying to add the support for all the three sensors in the same schema file.

One commit does one logical thing. Moving things is one thing. Adding
things is another.

Best regards,
Krzysztof

2023-10-28 13:31:35

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] dt-bindings: iio: light: Avago APDS9306

On Fri, 27 Oct 2023 18:15:44 +1030
Subhajit Ghosh <[email protected]> wrote:

> v1 -> v2
> - No change
>
> v0 -> v1
> - Squashing Avago (Broadcom) APDS9300 and APDS9960 schemas into one as
> they look similar
> - Adding support for APDS9306 in the same schema file
The fact this belongs below the --- has already been mentioned.

These first two things are different types of change.
Patch 1: Combine bindings.
Patch 2: Add new device entry to combined binding
Patch 3: Add driver support.

> - Adding mandatory interrupt property requirement for APDS9960 as per the
> driver's probe method which fails if interrupt bindings are not defined.
> Both APDS9300 and APDS9306 (this patch set) supports sensors with and
> without hardware interrupt bindings
> - In the device tree example, replacing interrupt type number with macro
> from irq.h
> - Updated the vin to vdd which is the same for all the three sensors
> - Used proper "Datasheet:" tags
>
> Signed-off-by: Subhajit Ghosh <[email protected]>
> ---
> .../bindings/iio/light/avago,apds9300.yaml | 35 ++++++++++++---
> .../bindings/iio/light/avago,apds9960.yaml | 44 -------------------
> 2 files changed, 30 insertions(+), 49 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> index 206af44f2c43..7a24a97d0594 100644
> --- a/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> +++ b/Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
> @@ -4,17 +4,26 @@
> $id: http://devicetree.org/schemas/iio/light/avago,apds9300.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Avago APDS9300 ambient light sensor
> +title: Avago Gesture, RGB, ALS and Proximity sensors
>
> maintainers:
> - Jonathan Cameron <[email protected]>
> + - Matt Ranostay <[email protected]>
> + - Subhajit Ghosh <[email protected]>
>
> description: |
> - Datasheet at https://www.avagotech.com/docs/AV02-1077EN
> + Avago (Broadcom) optical and proximity sensors with I2C interfaces.
> + Datasheet: https://docs.broadcom.com/doc/AV02-1077EN
> + Datasheet: https://docs.broadcom.com/doc/AV02-4191EN
> + Datasheet: https://docs.broadcom.com/doc/AV02-4755EN
>
> properties:
> compatible:
> - const: avago,apds9300
> + oneOf:
Don't need the oneOf. Lots of examples of this in tree!

enum:
- ...

> + - enum:
> + - avago,apds9300
> + - avago,apds9306
> + - avago,apds9960
>
> reg:
> maxItems: 1
> @@ -22,14 +31,30 @@ properties:
> interrupts:
> maxItems: 1
>
> -additionalProperties: false
> + vdd-supply: true
>
> required:
> - compatible
> - reg
>
> +allOf:
> + - $ref: ../common.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - avago,apds9960
> + then:
> + required:
> + - interrupts

It is very rare that a binding for a sensor 'requires' interrupts.
They are more commonly a nice to have.

Note that the driver failing doesn't mean the binding should change.
Unless there is a very strong requirement (polling can't be done for
some reason - or device is largely pointless with out the interrupt)
then we normally keep it optional in the binding.

Someone can fix the driver later if they care about it!

Also, if this fix is correct, it needs to be a precursor patch handing
just this tightening of the binding. The rest of the series then goes
on top of that.

Jonathan


> +
> +additionalProperties: false
> +
> examples:
> - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> i2c {
> #address-cells = <1>;
> #size-cells = <0>;
> @@ -38,7 +63,7 @@ examples:
> compatible = "avago,apds9300";
> reg = <0x39>;
> interrupt-parent = <&gpio2>;
> - interrupts = <29 8>;
> + interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
> };
> };
> ...
> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
> deleted file mode 100644
> index f06e0fda5629..000000000000
> --- a/Documentation/devicetree/bindings/iio/light/avago,apds9960.yaml
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> -%YAML 1.2
> ----
> -$id: http://devicetree.org/schemas/iio/light/avago,apds9960.yaml#
> -$schema: http://devicetree.org/meta-schemas/core.yaml#
> -
> -title: Avago APDS9960 gesture/RGB/ALS/proximity sensor
> -
> -maintainers:
> - - Matt Ranostay <[email protected]>
> -
> -description: |
> - Datasheet at https://www.avagotech.com/docs/AV02-4191EN
> -
> -properties:
> - compatible:
> - const: avago,apds9960
> -
> - reg:
> - maxItems: 1
> -
> - interrupts:
> - maxItems: 1
> -
> -additionalProperties: false
> -
> -required:
> - - compatible
> - - reg
> -
> -examples:
> - - |
> - i2c {
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - light-sensor@39 {
> - compatible = "avago,apds9960";
> - reg = <0x39>;
> - interrupt-parent = <&gpio1>;
> - interrupts = <16 1>;
> - };
> - };
> -...