Messages in this thread | | | Date | Tue, 29 Nov 2022 17:54:52 +0100 | Subject | Re: [PATCH 2/3] dt-bindings: leds: add dt schema for worldsemi,ws2812b-spi | From | Krzysztof Kozlowski <> |
| |
On 29/11/2022 15:09, Chuanhong Guo wrote: > This patch adds dt binding schema for WorldSemi WS2812B driven using SPI > bus. > > Signed-off-by: Chuanhong Guo <gch981213@gmail.com> > --- > .../bindings/leds/worldsemi,ws2812b-spi.yaml | 131 ++++++++++++++++++ > 1 file changed, 131 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/worldsemi,ws2812b-spi.yaml > > diff --git a/Documentation/devicetree/bindings/leds/worldsemi,ws2812b-spi.yaml b/Documentation/devicetree/bindings/leds/worldsemi,ws2812b-spi.yaml > new file mode 100644 > index 000000000000..8544bde4f261 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/worldsemi,ws2812b-spi.yaml > @@ -0,0 +1,131 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/worldsemi,ws2812b-spi.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: WS2812B LEDs driven using SPI > + > +maintainers: > + - Chuanhong Guo <gch981213@gmail.com> > + > +description: | > + WorldSemi WS2812B is a individually addressable LED chip that can be chained > + together and controlled individually using a single wire. > + This driver simulates the protocol used by this LED chip with SPI bus.
Drop references to Linux driver, unless important for the binding.
> + Typical setups includes connecting the data pin of the LED chain to MOSI as > + the only device or using CS and MOSI with a tri-state voltage-level shifter > + for the data pin. > + The SPI frequency needs to be 2.105MHz~2.85MHz for the timing to be correct > + and the controller needs to send all the bytes continuously. > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +properties: > + compatible: > + const: worldsemi,ws2812b-spi
Drop "-spi". Compatibles are not supposed to include bus information. The same for file name.
> + > + reg: > + description: The chip-select line on the SPI bus
Drop description, it's obvious.
> + maxItems: 1 > + > + spi-max-frequency: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Maximum SPI clocking speed of the device in Hz.
No need for ref and description. It comes from spi-peripheral-props.
> + minimum: 2105000 > + maximum: 2850000 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^multi-led(@[0-9a-f])?$":
Why unit address is optional?
> + type: object > + $ref: leds-class-multicolor.yaml#
unevaluatedProperties: false
> + > + properties: > + color-index: > + description: | > + A 3-item array specifying color of each components in this LED. It > + should be one of the LED_COLOR_ID_* prefixed definitions from the > + header include/dt-bindings/leds/common.h. Defaults to > + <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE> > + if unspecified. > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 3
Drop minItems.... but see comment below:
> + maxItems: 3
Why this is different than other multi-color LEDs? I would expect here children with common.yaml.
> + > + default-intensity: > + description: | > + An array of 3 integer specifying the default intensity of each color > + components in this LED. <255 255 255> if unspecified. > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 3
Drop minItems.... but:
> + maxItems: 3 > + items: > + minimum: 0 > + maximum: 255
default: 255
What controls the intensity? Don't you have PWM there?
> + > + reg: > + description: | > + Which LED this node represents. The reg of the first LED on the chain > + is 0.
maxItems: 1
> + > + required: > + - reg > + - color > + - function > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + ws2812b@0 {
Node names should be generic. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "worldsemi,ws2812b-spi"; > + reg = <0>;
compatible is first property, reg is second.
Best regards, Krzysztof
| |