Message ID | 20220624112106.111351-1-krzysztof.kozlowski@linaro.org |
---|---|
State | New |
Headers | show |
Series | dt-bindings: leds: class-multicolor: reference class directly in multi-led node | expand |
On Fri, 24 Jun 2022 13:21:06 +0200, Krzysztof Kozlowski wrote: > The leds/common.yaml is referenced directly in each LED node, which > leads to people doing the same with leds/leds-class-multicolor.yaml. > This is not correct because leds-class-multicolor.yaml defined multi-led > property and its children. Some schemas implemented this incorrect. > > Rework this to match same behavior common.yaml, so expect the multi-led > node to reference the leds-class-multicolor.yaml. Fixing allows to add > unevaluatedProperties:false. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > This will conflict with any new users of leds-class-multicolor, e.g.: > https://lore.kernel.org/all/20220623115631.22209-4-peterwu.pub@gmail.com/ > > The new users should be updated to match the usage introduced here. > --- > .../leds/cznic,turris-omnia-leds.yaml | 2 ++ > .../bindings/leds/leds-class-multicolor.yaml | 32 +++++++++---------- > .../devicetree/bindings/leds/leds-lp50xx.yaml | 2 ++ > .../bindings/leds/leds-pwm-multicolor.yaml | 5 ++- > .../bindings/leds/leds-qcom-lpg.yaml | 2 ++ > 5 files changed, 24 insertions(+), 19 deletions(-) > Reviewed-by: Rob Herring <robh@kernel.org>
On 24/06/2022 13:21, Krzysztof Kozlowski wrote: > The leds/common.yaml is referenced directly in each LED node, which > leads to people doing the same with leds/leds-class-multicolor.yaml. > This is not correct because leds-class-multicolor.yaml defined multi-led > property and its children. Some schemas implemented this incorrect. > > Rework this to match same behavior common.yaml, so expect the multi-led > node to reference the leds-class-multicolor.yaml. Fixing allows to add > unevaluatedProperties:false. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > This will conflict with any new users of leds-class-multicolor, e.g.: > https://lore.kernel.org/all/20220623115631.22209-4-peterwu.pub@gmail.com/ > > The new users should be updated to match the usage introduced here. Pavel, Any comments from your side? It's waiting for a bit and folks are sending more and more wrong multicolor bindings... Best regards, Krzysztof
Hi! > The leds/common.yaml is referenced directly in each LED node, which > leads to people doing the same with leds/leds-class-multicolor.yaml. > This is not correct because leds-class-multicolor.yaml defined multi-led > property and its children. Some schemas implemented this incorrect. > > Rework this to match same behavior common.yaml, so expect the multi-led > node to reference the leds-class-multicolor.yaml. Fixing allows to add > unevaluatedProperties:false. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Thanks, applied. Best regards, Pavel
On Fri, Jun 24, 2022 at 5:21 AM Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > > The leds/common.yaml is referenced directly in each LED node, which > leads to people doing the same with leds/leds-class-multicolor.yaml. > This is not correct because leds-class-multicolor.yaml defined multi-led > property and its children. Some schemas implemented this incorrect. > > Rework this to match same behavior common.yaml, so expect the multi-led > node to reference the leds-class-multicolor.yaml. Fixing allows to add > unevaluatedProperties:false. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > --- > > This will conflict with any new users of leds-class-multicolor, e.g.: > https://lore.kernel.org/all/20220623115631.22209-4-peterwu.pub@gmail.com/ > > The new users should be updated to match the usage introduced here. > --- > .../leds/cznic,turris-omnia-leds.yaml | 2 ++ > .../bindings/leds/leds-class-multicolor.yaml | 32 +++++++++---------- > .../devicetree/bindings/leds/leds-lp50xx.yaml | 2 ++ > .../bindings/leds/leds-pwm-multicolor.yaml | 5 ++- > .../bindings/leds/leds-qcom-lpg.yaml | 2 ++ > 5 files changed, 24 insertions(+), 19 deletions(-) Looks like this introduced a new warning: /builds/robherring/linux-dt/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.example.dtb: led-controller: multi-led: Unevaluated properties are not allowed ('max-brightness' was unexpected) From schema: /builds/robherring/linux-dt/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml Rob
diff --git a/Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml b/Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml index 9362b1ef9e88..14bebe1ad8f8 100644 --- a/Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml +++ b/Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml @@ -33,6 +33,8 @@ patternProperties: "^multi-led@[0-9a-b]$": type: object $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false + description: This node represents one of the RGB LED devices on Turris Omnia. No subnodes need to be added for subchannels since this controller only diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml index f41d021ed677..12693483231f 100644 --- a/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml +++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml @@ -19,22 +19,22 @@ description: | LED class. Common LED nodes and properties are inherited from the common.yaml within this documentation directory. -patternProperties: - "^multi-led(@[0-9a-f])?$": - type: object - description: Represents the LEDs that are to be grouped. - properties: - color: - description: | - For multicolor LED support this property should be defined as either - LED_COLOR_ID_RGB or LED_COLOR_ID_MULTI which can be found in - include/linux/leds/common.h. - enum: [ 8, 9 ] - - $ref: "common.yaml#" - - required: - - color +properties: + $nodename: + pattern: "^multi-led(@[0-9a-f])?$" + + color: + description: | + For multicolor LED support this property should be defined as either + LED_COLOR_ID_RGB or LED_COLOR_ID_MULTI which can be found in + include/linux/leds/common.h. + enum: [ 8, 9 ] + +required: + - color + +allOf: + - $ref: "common.yaml#" additionalProperties: true diff --git a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml index d11898567313..d44bf48b3c2f 100644 --- a/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml +++ b/Documentation/devicetree/bindings/leds/leds-lp50xx.yaml @@ -56,6 +56,8 @@ patternProperties: '^multi-led@[0-9a-f]$': type: object $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false + properties: reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml index fdaf04e03a8d..e9fdecdaf84d 100644 --- a/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml +++ b/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml @@ -19,6 +19,8 @@ properties: multi-led: type: object + $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false patternProperties: "^led-[0-9a-z]+$": @@ -42,9 +44,6 @@ properties: required: - compatible -allOf: - - $ref: leds-class-multicolor.yaml# - additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml b/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml index 409a4c7298e1..fe336fa16518 100644 --- a/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml +++ b/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml @@ -58,6 +58,8 @@ properties: multi-led: type: object $ref: leds-class-multicolor.yaml# + unevaluatedProperties: false + properties: "#address-cells": const: 1
The leds/common.yaml is referenced directly in each LED node, which leads to people doing the same with leds/leds-class-multicolor.yaml. This is not correct because leds-class-multicolor.yaml defined multi-led property and its children. Some schemas implemented this incorrect. Rework this to match same behavior common.yaml, so expect the multi-led node to reference the leds-class-multicolor.yaml. Fixing allows to add unevaluatedProperties:false. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- This will conflict with any new users of leds-class-multicolor, e.g.: https://lore.kernel.org/all/20220623115631.22209-4-peterwu.pub@gmail.com/ The new users should be updated to match the usage introduced here. --- .../leds/cznic,turris-omnia-leds.yaml | 2 ++ .../bindings/leds/leds-class-multicolor.yaml | 32 +++++++++---------- .../devicetree/bindings/leds/leds-lp50xx.yaml | 2 ++ .../bindings/leds/leds-pwm-multicolor.yaml | 5 ++- .../bindings/leds/leds-qcom-lpg.yaml | 2 ++ 5 files changed, 24 insertions(+), 19 deletions(-)