Re: [PATCH] dt-bindings: leds: bcm6358: Convert to DT schema
Conor Dooley <[email protected]>
| Newsgroups | dev.linux.lists.linux-kernel-mentees,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-leds |
|---|---|
| Message-ID | <20260525-wreckage-gap-9d857408445a@spud> |
On Mon, May 25, 2026 at 09:02:58AM +0530, Ninad Naik wrote: > Convert the brcm,bcm6358 to DT schema. > > Signed-off-by: Ninad Naik <[email protected]> > --- > > Referred to this thread: > https://lore.kernel.org/all/[email protected]/ > and added the fixes suggested. > > .../bindings/leds/brcm,bcm6358-leds.yaml | 98 ++++++++++++ > .../devicetree/bindings/leds/leds-bcm6358.txt | 143 ------------------ > 2 files changed, 98 insertions(+), 143 deletions(-) > create mode 100644 Documentation/devicetree/bindings/leds/brcm,bcm6358-leds.yaml > delete mode 100644 Documentation/devicetree/bindings/leds/leds-bcm6358.txt > > diff --git a/Documentation/devicetree/bindings/leds/brcm,bcm6358-leds.yaml b/Documentation/devicetree/bindings/leds/brcm,bcm6358-leds.yaml > new file mode 100644 > index 000000000000..a61417e5690b > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/brcm,bcm6358-leds.yaml > @@ -0,0 +1,98 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/brcm,bcm6358-leds.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LEDs connected to Broadcom BCM6358 controller > + > +description: | > + This controller is present on BCM6358 and BCM6368. > + In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller), > + which can either be controlled by software (exporting the 74x164 as spi-gpio. > + See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or > + by hardware using this driver. > + > +maintainers: > + - Jonas Gorski <[email protected]> > + > +properties: > + compatible: > + const: brcm,bcm6358-leds > + > + reg: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + brcm,clk-div: > + description: SCK signal divider. > + default: 1 > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [1, 2, 4, 8] > + > + brcm,clk-dat-low: > + description: Makes clock and data signals active low. > + type: boolean > + > +patternProperties: > + "^led@(0|1?[0-9a-f])$": > + type: object > + $ref: common.yaml# > + description: Each LED is represented as a sub-node of > + this device. > + > + properties: > + reg: > + description: LED pin number. > + minimum: 0 > + maximum: 31 Is this missing a maxItems: 1? > + > + required: > + - reg > + > + unevaluatedProperties: false I wonder if this should be additionalProperties: false instead, and list the three properties mentioned by the text binding explicitly? Cheers, Conor. > + > +required: > + - compatible > + - reg > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + led-controller@fffe00d0 { > + compatible = "brcm,bcm6358-leds"; > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <0xfffe00d0 0x8>; > + > + led@0 { > + reg = <0>; > + active-low; > + label = "white:alarm"; > + }; > + led@2 { > + reg = <2>; > + active-low; > + label = "white:tv"; > + }; > + led@3 { > + reg = <3>; > + active-low; > + label = "white:tel"; > + }; > + led@4 { > + reg = <4>; > + active-low; > + label = "white:adsl"; > + }; > + }; > +... > diff --git a/Documentation/devicetree/bindings/leds/leds-bcm6358.txt b/Documentation/devicetree/bindings/leds/leds-bcm6358.txt > deleted file mode 100644 > index 211ffc3c4a20..000000000000 > --- a/Documentation/devicetree/bindings/leds/leds-bcm6358.txt > +++ /dev/null > @@ -1,143 +0,0 @@ > -LEDs connected to Broadcom BCM6358 controller > - > -This controller is present on BCM6358 and BCM6368. > -In these SoCs there are Serial LEDs (LEDs connected to a 74x164 controller), > -which can either be controlled by software (exporting the 74x164 as spi-gpio. > -See Documentation/devicetree/bindings/gpio/fairchild,74hc595.yaml), or > -by hardware using this driver. > - > -Required properties: > - - compatible : should be "brcm,bcm6358-leds". > - - #address-cells : must be 1. > - - #size-cells : must be 0. > - - reg : BCM6358 LED controller address and size. > - > -Optional properties: > - - brcm,clk-div : SCK signal divider. Possible values are 1, 2, 4 and 8. > - Default : 1 > - - brcm,clk-dat-low : Boolean, makes clock and data signals active low. > - Default : false > - > -Each LED is represented as a sub-node of the brcm,bcm6358-leds device. > - > -LED sub-node required properties: > - - reg : LED pin number (only LEDs 0 to 31 are valid). > - > -LED sub-node optional properties: > - - label : see Documentation/devicetree/bindings/leds/common.txt > - - default-state : see > - Documentation/devicetree/bindings/leds/common.txt > - - linux,default-trigger : see > - Documentation/devicetree/bindings/leds/common.txt > - > -Examples: > -Scenario 1 : BCM6358 > - leds0: led-controller@fffe00d0 { > - compatible = "brcm,bcm6358-leds"; > - #address-cells = <1>; > - #size-cells = <0>; > - reg = <0xfffe00d0 0x8>; > - > - alarm_white { > - reg = <0>; > - active-low; > - label = "white:alarm"; > - }; > - tv_white { > - reg = <2>; > - active-low; > - label = "white:tv"; > - }; > - tel_white { > - reg = <3>; > - active-low; > - label = "white:tel"; > - }; > - adsl_white { > - reg = <4>; > - active-low; > - label = "white:adsl"; > - }; > - }; > - > -Scenario 2 : BCM6368 > - leds0: led-controller@100000d0 { > - compatible = "brcm,bcm6358-leds"; > - #address-cells = <1>; > - #size-cells = <0>; > - reg = <0x100000d0 0x8>; > - brcm,pol-low; > - brcm,clk-div = <4>; > - > - power_red { > - reg = <0>; > - active-low; > - label = "red:power"; > - }; > - power_green { > - reg = <1>; > - active-low; > - label = "green:power"; > - default-state = "on"; > - }; > - power_blue { > - reg = <2>; > - label = "blue:power"; > - }; > - broadband_red { > - reg = <3>; > - active-low; > - label = "red:broadband"; > - }; > - broadband_green { > - reg = <4>; > - label = "green:broadband"; > - }; > - broadband_blue { > - reg = <5>; > - active-low; > - label = "blue:broadband"; > - }; > - wireless_red { > - reg = <6>; > - active-low; > - label = "red:wireless"; > - }; > - wireless_green { > - reg = <7>; > - active-low; > - label = "green:wireless"; > - }; > - wireless_blue { > - reg = <8>; > - label = "blue:wireless"; > - }; > - phone_red { > - reg = <9>; > - active-low; > - label = "red:phone"; > - }; > - phone_green { > - reg = <10>; > - active-low; > - label = "green:phone"; > - }; > - phone_blue { > - reg = <11>; > - label = "blue:phone"; > - }; > - upgrading_red { > - reg = <12>; > - active-low; > - label = "red:upgrading"; > - }; > - upgrading_green { > - reg = <13>; > - active-low; > - label = "green:upgrading"; > - }; > - upgrading_blue { > - reg = <14>; > - label = "blue:upgrading"; > - }; > - }; > -- > 2.54.0 >
signature.asc
(application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCahSBggAKCRB4tDGHoIJi 0ifxAQCEb2+eL04iJerEDKA2/t/uYSvDzjV3klHLRevvl+tDYgEA25dMjhqzbW48 iuCsr55q749vfy6CeT/X4kQf8tGKEQ4= =PZ2p -----END PGP SIGNATURE-----