diff mbox series

[1/2] dt-bindings: iio: light: Add APDS9160 binding

Message ID 20241119-apds9160-driver-v1-1-fa00675b4ea4@dimonoff.com (mailing list archive)
State Changes Requested
Headers show
Series Add support for Avago/Broadcom APDS9160 | expand

Commit Message

Mikael Gonella-Bolduc via B4 Relay Nov. 19, 2024, 8:36 p.m. UTC
From: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>

Add device tree bindings for APDS9160 driver

Signed-off-by: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
---
 .../bindings/iio/light/avago,apds9160.yaml         | 50 ++++++++++++++++++++++
 1 file changed, 50 insertions(+)

Comments

Conor Dooley Nov. 20, 2024, 5:18 p.m. UTC | #1
On Tue, Nov 19, 2024 at 03:36:56PM -0500, Mikael Gonella-Bolduc via B4 Relay wrote:
> From: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
> 
> Add device tree bindings for APDS9160 driver
> 
> Signed-off-by: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
> ---
>  .../bindings/iio/light/avago,apds9160.yaml         | 50 ++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..12e196b297fe523e4d324156041ef9c6900676eb
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
> @@ -0,0 +1,50 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/light/avago,apds9160.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom Combined Proximity & Ambient light sensor
> +
> +maintainers:
> +  - Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
> +
> +description: |
> +  Datasheet: https://docs.broadcom.com/docs/APDS-9160-003-DS
> +
> +properties:
> +  compatible:
> +    enum:
> +      - avago,apds9160
> +      - broadmobi,apds9160

What is the difference between these two devices? There's no match data,
makes it seem like there should be a fallback going on here.

> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  vdd-supply: true
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        apds9160@53 {
> +          compatible = "broadmobi,apds9160";
> +          reg = <0x53>;
> +          interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
> +          interrupt-parent = <&pinctrl>;
> +        };
> +    };
> +...
> 
> -- 
> 2.34.1
> 
>
Krzysztof Kozlowski Nov. 20, 2024, 5:22 p.m. UTC | #2
On 19/11/2024 21:36, Mikael Gonella-Bolduc via B4 Relay wrote:
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  vdd-supply: true
> +
> +additionalProperties: false

This goes after required:

> +
> +required:
> +  - compatible
> +  - reg

Supply not required?

> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        apds9160@53 {

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +          compatible = "broadmobi,apds9160";

Use 4 spaces for example indentation. Or at least something consistent.


Best regards,
Krzysztof
Krzysztof Kozlowski Nov. 20, 2024, 5:23 p.m. UTC | #3
On 20/11/2024 18:18, Conor Dooley wrote:
> On Tue, Nov 19, 2024 at 03:36:56PM -0500, Mikael Gonella-Bolduc via B4 Relay wrote:
>> From: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
>>
>> Add device tree bindings for APDS9160 driver
>>
>> Signed-off-by: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
>> ---
>>  .../bindings/iio/light/avago,apds9160.yaml         | 50 ++++++++++++++++++++++
>>  1 file changed, 50 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..12e196b297fe523e4d324156041ef9c6900676eb
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
>> @@ -0,0 +1,50 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/iio/light/avago,apds9160.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Broadcom Combined Proximity & Ambient light sensor
>> +
>> +maintainers:
>> +  - Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
>> +
>> +description: |
>> +  Datasheet: https://docs.broadcom.com/docs/APDS-9160-003-DS
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - avago,apds9160
>> +      - broadmobi,apds9160
> 
> What is the difference between these two devices? There's no match data,
> makes it seem like there should be a fallback going on here.
Same device names suggest this is some legacy. We don't take new
bindings for legacy stuff.

Best regards,
Krzysztof
Mikael Gonella-Bolduc Nov. 20, 2024, 8:26 p.m. UTC | #4
On Wed, Nov 20, 2024 at 06:23:11PM +0100, Krzysztof Kozlowski wrote:
> On 20/11/2024 18:18, Conor Dooley wrote:
> > On Tue, Nov 19, 2024 at 03:36:56PM -0500, Mikael Gonella-Bolduc via B4 Relay wrote:
> >> From: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
> >>
> >> Add device tree bindings for APDS9160 driver
> >>
> >> Signed-off-by: Mikael Gonella-Bolduc <mgonellabolduc@dimonoff.com>
> >> ---
> >>  .../bindings/iio/light/avago,apds9160.yaml         | 50 ++++++++++++++++++++++
> >>  1 file changed, 50 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
> >> new file mode 100644
> >> index 0000000000000000000000000000000000000000..12e196b297fe523e4d324156041ef9c6900676eb
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
> >> @@ -0,0 +1,50 @@
> >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/iio/light/avago,apds9160.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: Broadcom Combined Proximity & Ambient light sensor
> >> +
> >> +maintainers:
> >> +  - Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
> >> +
> >> +description: |
> >> +  Datasheet: https://docs.broadcom.com/docs/APDS-9160-003-DS
> >> +
> >> +properties:
> >> +  compatible:
> >> +    enum:
> >> +      - avago,apds9160
> >> +      - broadmobi,apds9160
> > 
> > What is the difference between these two devices? There's no match data,
> > makes it seem like there should be a fallback going on here.
> Same device names suggest this is some legacy. We don't take new
> bindings for legacy stuff.
> 
> Best regards,
> Krzysztof

Hi,
Thank you for the feedback.

There's no difference between these two devices, it's the same chip using two different names.
There's two names because the chip was first released before the Avago & Broadcom acquisition.

The datasheet available has the avago name in it and it's referenced using both names.
I did not know which name to include so I wrote both.

It's old but still being produced today and active for new designs.

Is it too old for the driver to be mainlined?
If not, which name should I use?

Best regards,
Mikael
Krzysztof Kozlowski Nov. 21, 2024, 7:52 a.m. UTC | #5
On 20/11/2024 21:26, Mikael Gonella-Bolduc wrote:
>>>> +$id: http://devicetree.org/schemas/iio/light/avago,apds9160.yaml#
>>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>>> +
>>>> +title: Broadcom Combined Proximity & Ambient light sensor
>>>> +
>>>> +maintainers:
>>>> +  - Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
>>>> +
>>>> +description: |
>>>> +  Datasheet: https://docs.broadcom.com/docs/APDS-9160-003-DS
>>>> +
>>>> +properties:
>>>> +  compatible:
>>>> +    enum:
>>>> +      - avago,apds9160
>>>> +      - broadmobi,apds9160
>>>
>>> What is the difference between these two devices? There's no match data,
>>> makes it seem like there should be a fallback going on here.
>> Same device names suggest this is some legacy. We don't take new
>> bindings for legacy stuff.
>>
>> Best regards,
>> Krzysztof
> 
> Hi,
> Thank you for the feedback.
> 
> There's no difference between these two devices, it's the same chip using two different names.
> There's two names because the chip was first released before the Avago & Broadcom acquisition.
> 
> The datasheet available has the avago name in it and it's referenced using both names.
> I did not know which name to include so I wrote both.

Choose only one. Preferably newer one. Just notice that broadcom and
broadmobi are a bit different entities, according to vendor prefixes.

> 
> It's old but still being produced today and active for new designs.
> 
> Is it too old for the driver to be mainlined?

No, it is fine.

> If not, which name should I use?


Best regards,
Krzysztof
Jonathan Cameron Nov. 24, 2024, 7:26 p.m. UTC | #6
On Wed, 20 Nov 2024 18:22:43 +0100
Krzysztof Kozlowski <krzk@kernel.org> wrote:

> On 19/11/2024 21:36, Mikael Gonella-Bolduc via B4 Relay wrote:
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  vdd-supply: true
> > +
> > +additionalProperties: false  
> 
> This goes after required:
> 
> > +
> > +required:
> > +  - compatible
> > +  - reg  
> 
> Supply not required?

Just for background on this.  Linux will happily provide
you a stub regulator if the supply is not in dt, but we decided a while ago
that it was more accurate to have the supplies as required properties as that
would allow us to distinguish between those that are needed for operation
and those that are actually optional like reference voltages where there
is the option of an on chip reference if the external one isn't connected.

So almost certainly just make it required here.

Jonathan

> 
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        apds9160@53 {  
> 
> Node names should be generic. See also an explanation and list of
> examples (not exhaustive) in DT specification:
> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> 
> 
> > +          compatible = "broadmobi,apds9160";  
> 
> Use 4 spaces for example indentation. Or at least something consistent.
> 
> 
> Best regards,
> Krzysztof
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..12e196b297fe523e4d324156041ef9c6900676eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/light/avago,apds9160.yaml
@@ -0,0 +1,50 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/avago,apds9160.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom Combined Proximity & Ambient light sensor
+
+maintainers:
+  - Mikael Gonella-Bolduc <m.gonella.bolduc@gmail.com>
+
+description: |
+  Datasheet: https://docs.broadcom.com/docs/APDS-9160-003-DS
+
+properties:
+  compatible:
+    enum:
+      - avago,apds9160
+      - broadmobi,apds9160
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        apds9160@53 {
+          compatible = "broadmobi,apds9160";
+          reg = <0x53>;
+          interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
+          interrupt-parent = <&pinctrl>;
+        };
+    };
+...