[PATCH v2 2/4] dt-bindings: leds: commonize leds property

Aleksandrs Vinarskis posted 4 patches 4 days, 13 hours ago
There is a newer version of this series
[PATCH v2 2/4] dt-bindings: leds: commonize leds property
Posted by Aleksandrs Vinarskis 4 days, 13 hours ago
A number of existing schemas use 'leds' property to provide
phandle-array of LED(s) to the consumer. Additionally, with the
upcoming privacy-led support in device-tree, v4l2 subnode could be a
LED consumer, meaning that all camera sensors should support 'leds'
and 'led-names' property via common 'video-interface-devices.yaml'.

To avoid dublication, commonize 'leds' property from existing schemas
to newly introduced 'led-consumer.yaml'.

Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com>
---
 .../devicetree/bindings/leds/backlight/led-backlight.yaml          | 7 +------
 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml  | 6 +-----
 .../devicetree/bindings/media/video-interface-devices.yaml         | 3 +++
 3 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
index f5554da6bc6c73e94c4a2c32b150b28351b25f16..5e19b4376715eeb05cb789255db209ed27f8822f 100644
--- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
+++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
@@ -18,17 +18,12 @@ description:
 
 allOf:
   - $ref: common.yaml#
+  - $ref: /schemas/leds/leds-consumer.yaml#
 
 properties:
   compatible:
     const: led-backlight
 
-  leds:
-    description: A list of LED nodes
-    $ref: /schemas/types.yaml#/definitions/phandle-array
-    items:
-      maxItems: 1
-
 required:
   - compatible
   - leds
diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
index 8ed059a5a724f68389a1d0c4396c85b9ccb2d9af..b4f326e8822a3bf452b22f5b9fa7189696f760a4 100644
--- a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
+++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
@@ -17,16 +17,12 @@ properties:
   compatible:
     const: leds-group-multicolor
 
-  leds:
-    description:
-      An aray of monochromatic leds
-    $ref: /schemas/types.yaml#/definitions/phandle-array
-
 required:
   - leds
 
 allOf:
   - $ref: leds-class-multicolor.yaml#
+  - $ref: /schemas/leds/leds-consumer.yaml#
 
 unevaluatedProperties: false
 
diff --git a/Documentation/devicetree/bindings/media/video-interface-devices.yaml b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
index cf7712ad297c01c946fa4dfdaf9a21646e125099..1e25cea0ff71da2cfd1c7c4642713199f3542c0a 100644
--- a/Documentation/devicetree/bindings/media/video-interface-devices.yaml
+++ b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
@@ -10,6 +10,9 @@ maintainers:
   - Jacopo Mondi <jacopo@jmondi.org>
   - Sakari Ailus <sakari.ailus@linux.intel.com>
 
+allOf:
+  - $ref: /schemas/leds/leds-consumer.yaml#
+
 properties:
   flash-leds:
     $ref: /schemas/types.yaml#/definitions/phandle-array

-- 
2.48.1
Re: [PATCH v2 2/4] dt-bindings: leds: commonize leds property
Posted by Rob Herring 4 days, 6 hours ago
On Fri, Sep 05, 2025 at 09:59:30AM +0200, Aleksandrs Vinarskis wrote:
> A number of existing schemas use 'leds' property to provide
> phandle-array of LED(s) to the consumer. Additionally, with the
> upcoming privacy-led support in device-tree, v4l2 subnode could be a
> LED consumer, meaning that all camera sensors should support 'leds'
> and 'led-names' property via common 'video-interface-devices.yaml'.
> 
> To avoid dublication, commonize 'leds' property from existing schemas
> to newly introduced 'led-consumer.yaml'.
> 
> Signed-off-by: Aleksandrs Vinarskis <alex@vinarskis.com>
> ---
>  .../devicetree/bindings/leds/backlight/led-backlight.yaml          | 7 +------
>  Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml  | 6 +-----
>  .../devicetree/bindings/media/video-interface-devices.yaml         | 3 +++
>  3 files changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> index f5554da6bc6c73e94c4a2c32b150b28351b25f16..5e19b4376715eeb05cb789255db209ed27f8822f 100644
> --- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> +++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> @@ -18,17 +18,12 @@ description:
>  
>  allOf:
>    - $ref: common.yaml#
> +  - $ref: /schemas/leds/leds-consumer.yaml#

Drop.

>  
>  properties:
>    compatible:
>      const: led-backlight
>  
> -  leds:
> -    description: A list of LED nodes
> -    $ref: /schemas/types.yaml#/definitions/phandle-array
> -    items:
> -      maxItems: 1

You need to keep the property here:

leds: true

> -
>  required:
>    - compatible
>    - leds
> diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> index 8ed059a5a724f68389a1d0c4396c85b9ccb2d9af..b4f326e8822a3bf452b22f5b9fa7189696f760a4 100644
> --- a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> @@ -17,16 +17,12 @@ properties:
>    compatible:
>      const: leds-group-multicolor
>  
> -  leds:
> -    description:
> -      An aray of monochromatic leds
> -    $ref: /schemas/types.yaml#/definitions/phandle-array
> -
>  required:
>    - leds
>  
>  allOf:
>    - $ref: leds-class-multicolor.yaml#
> +  - $ref: /schemas/leds/leds-consumer.yaml#


Same comments in this one.

>  
>  unevaluatedProperties: false
>  
> diff --git a/Documentation/devicetree/bindings/media/video-interface-devices.yaml b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> index cf7712ad297c01c946fa4dfdaf9a21646e125099..1e25cea0ff71da2cfd1c7c4642713199f3542c0a 100644
> --- a/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> +++ b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> @@ -10,6 +10,9 @@ maintainers:
>    - Jacopo Mondi <jacopo@jmondi.org>
>    - Sakari Ailus <sakari.ailus@linux.intel.com>
>  
> +allOf:
> +  - $ref: /schemas/leds/leds-consumer.yaml#

This can be dropped. The user still has to define how many entries and 
what the values of led-names are.

> +
>  properties:
>    flash-leds:
>      $ref: /schemas/types.yaml#/definitions/phandle-array
> 
> -- 
> 2.48.1
>
Re: [PATCH v2 2/4] dt-bindings: leds: commonize leds property
Posted by Aleksandrs Vinarskis 4 days, 4 hours ago




On Friday, September 5th, 2025 at 17:24, Rob Herring <robh@kernel.org> wrote:

> 
> 
> On Fri, Sep 05, 2025 at 09:59:30AM +0200, Aleksandrs Vinarskis wrote:
> 
> > A number of existing schemas use 'leds' property to provide
> > phandle-array of LED(s) to the consumer. Additionally, with the
> > upcoming privacy-led support in device-tree, v4l2 subnode could be a
> > LED consumer, meaning that all camera sensors should support 'leds'
> > and 'led-names' property via common 'video-interface-devices.yaml'.
> > 
> > To avoid dublication, commonize 'leds' property from existing schemas
> > to newly introduced 'led-consumer.yaml'.
> > 
> > Signed-off-by: Aleksandrs Vinarskis alex@vinarskis.com
> > ---
> > .../devicetree/bindings/leds/backlight/led-backlight.yaml | 7 +------
> > Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml | 6 +-----
> > .../devicetree/bindings/media/video-interface-devices.yaml | 3 +++
> > 3 files changed, 5 insertions(+), 11 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > index f5554da6bc6c73e94c4a2c32b150b28351b25f16..5e19b4376715eeb05cb789255db209ed27f8822f 100644
> > --- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > +++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > @@ -18,17 +18,12 @@ description:
> > 
> > allOf:
> > - $ref: common.yaml#
> > + - $ref: /schemas/leds/leds-consumer.yaml#
> 
> 
> Drop.
> 
> > properties:
> > compatible:
> > const: led-backlight
> > 
> > - leds:
> > - description: A list of LED nodes
> > - $ref: /schemas/types.yaml#/definitions/phandle-array
> > - items:
> > - maxItems: 1
> 
> 
> You need to keep the property here:
> 
> leds: true
> 
> > -
> > required:
> > - compatible
> > - leds
> > diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > index 8ed059a5a724f68389a1d0c4396c85b9ccb2d9af..b4f326e8822a3bf452b22f5b9fa7189696f760a4 100644
> > --- a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > @@ -17,16 +17,12 @@ properties:
> > compatible:
> > const: leds-group-multicolor
> > 
> > - leds:
> > - description:
> > - An aray of monochromatic leds
> > - $ref: /schemas/types.yaml#/definitions/phandle-array
> > -
> > required:
> > - leds
> > 
> > allOf:
> > - $ref: leds-class-multicolor.yaml#
> > + - $ref: /schemas/leds/leds-consumer.yaml#
> 
> 
> 
> Same comments in this one.
> 
> > unevaluatedProperties: false
> > 
> > diff --git a/Documentation/devicetree/bindings/media/video-interface-devices.yaml b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > index cf7712ad297c01c946fa4dfdaf9a21646e125099..1e25cea0ff71da2cfd1c7c4642713199f3542c0a 100644
> > --- a/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > +++ b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > @@ -10,6 +10,9 @@ maintainers:
> > - Jacopo Mondi jacopo@jmondi.org
> > - Sakari Ailus sakari.ailus@linux.intel.com
> > 
> > +allOf:
> > + - $ref: /schemas/leds/leds-consumer.yaml#
> 
> 
> This can be dropped. The user still has to define how many entries and
> what the values of led-names are.

Hmm, but where should it be added then? If I just drop it, MIPI camera schemas which are based on 'video-interface-devices.yaml' and have 'unevaluatedProperties: false' throw warnings because 'leds' was not expected. Including the example in 'led-consumer.yaml' as found by your bot (because of patch order your bot only run on 1/4, adding this very change fixes it).
In this case, v4l2 subnode is the LED user, which is some camera. It seems most/all of these cameras are based on this binding, so instead of adding new led related properties to all of them, I thought this is a good common place for it... Shall I add #entries and available options for 'led-names' here to make it complete?

Thanks,
Alex

> 
> > +
> > properties:
> > flash-leds:
> > $ref: /schemas/types.yaml#/definitions/phandle-array
> > 
> > --
> > 2.48.1
Re: [PATCH v2 2/4] dt-bindings: leds: commonize leds property
Posted by Rob Herring 3 days, 22 hours ago
On Fri, Sep 05, 2025 at 04:48:52PM +0000, Aleksandrs Vinarskis wrote:
> On Friday, September 5th, 2025 at 17:24, Rob Herring <robh@kernel.org> wrote:
> 
> > 
> > 
> > On Fri, Sep 05, 2025 at 09:59:30AM +0200, Aleksandrs Vinarskis wrote:
> > 
> > > A number of existing schemas use 'leds' property to provide
> > > phandle-array of LED(s) to the consumer. Additionally, with the
> > > upcoming privacy-led support in device-tree, v4l2 subnode could be a
> > > LED consumer, meaning that all camera sensors should support 'leds'
> > > and 'led-names' property via common 'video-interface-devices.yaml'.
> > > 
> > > To avoid dublication, commonize 'leds' property from existing schemas
> > > to newly introduced 'led-consumer.yaml'.
> > > 
> > > Signed-off-by: Aleksandrs Vinarskis alex@vinarskis.com
> > > ---
> > > .../devicetree/bindings/leds/backlight/led-backlight.yaml | 7 +------
> > > Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml | 6 +-----
> > > .../devicetree/bindings/media/video-interface-devices.yaml | 3 +++
> > > 3 files changed, 5 insertions(+), 11 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > > index f5554da6bc6c73e94c4a2c32b150b28351b25f16..5e19b4376715eeb05cb789255db209ed27f8822f 100644
> > > --- a/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > > +++ b/Documentation/devicetree/bindings/leds/backlight/led-backlight.yaml
> > > @@ -18,17 +18,12 @@ description:
> > > 
> > > allOf:
> > > - $ref: common.yaml#
> > > + - $ref: /schemas/leds/leds-consumer.yaml#
> > 
> > 
> > Drop.
> > 
> > > properties:
> > > compatible:
> > > const: led-backlight
> > > 
> > > - leds:
> > > - description: A list of LED nodes
> > > - $ref: /schemas/types.yaml#/definitions/phandle-array
> > > - items:
> > > - maxItems: 1
> > 
> > 
> > You need to keep the property here:
> > 
> > leds: true
> > 
> > > -
> > > required:
> > > - compatible
> > > - leds
> > > diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > > index 8ed059a5a724f68389a1d0c4396c85b9ccb2d9af..b4f326e8822a3bf452b22f5b9fa7189696f760a4 100644
> > > --- a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > > +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml
> > > @@ -17,16 +17,12 @@ properties:
> > > compatible:
> > > const: leds-group-multicolor
> > > 
> > > - leds:
> > > - description:
> > > - An aray of monochromatic leds
> > > - $ref: /schemas/types.yaml#/definitions/phandle-array
> > > -
> > > required:
> > > - leds
> > > 
> > > allOf:
> > > - $ref: leds-class-multicolor.yaml#
> > > + - $ref: /schemas/leds/leds-consumer.yaml#
> > 
> > 
> > 
> > Same comments in this one.
> > 
> > > unevaluatedProperties: false
> > > 
> > > diff --git a/Documentation/devicetree/bindings/media/video-interface-devices.yaml b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > > index cf7712ad297c01c946fa4dfdaf9a21646e125099..1e25cea0ff71da2cfd1c7c4642713199f3542c0a 100644
> > > --- a/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > > +++ b/Documentation/devicetree/bindings/media/video-interface-devices.yaml
> > > @@ -10,6 +10,9 @@ maintainers:
> > > - Jacopo Mondi jacopo@jmondi.org
> > > - Sakari Ailus sakari.ailus@linux.intel.com
> > > 
> > > +allOf:
> > > + - $ref: /schemas/leds/leds-consumer.yaml#
> > 
> > 
> > This can be dropped. The user still has to define how many entries and
> > what the values of led-names are.
> 
> Hmm, but where should it be added then? If I just drop it, MIPI 
> camera schemas which are based on 'video-interface-devices.yaml' and 
> have 'unevaluatedProperties: false' throw warnings because 'leds' was 
> not expected. Including the example in 'led-consumer.yaml' as found 
> by your bot (because of patch order your bot only run on 1/4, adding 
> this very change fixes it).

> In this case, v4l2 subnode is the LED user, which is some camera. It 
> seems most/all of these cameras are based on this binding, so instead 
> of adding new led related properties to all of them, I thought this 
> is a good common place for it... Shall I add #entries and available 
> options for 'led-names' here to make it complete?

Every camera doesn't have the same LEDs, so you have to define exactly 
what's there for each one. If you want to do it in 
video-interface-devices.yanl, then you are standardizing it for 
everyone. Maybe that's fine? If so, you need something like:

leds:
  minItems: 1
  maxItems: 2

led-names:
  items:
    enum:
      - flash
      - privacy

Rob