On Sun, Oct 03, 2021 at 09:26:00PM -0500, Samuel Holland wrote: > The Allwinner R329 and D1 SoCs contain an LED controller designed to > drive a series of RGB LED pixels. It supports PIO and DMA transfers, and > has configurable timing and pixel format. > > Signed-off-by: Samuel Holland <samuel@xxxxxxxxxxxx> > --- > > Changes from v1: > - Fixed typo leading to duplicate t1h-ns property > - Removed "items" layer in definition of dmas/dma-names > - Replaced uint32 type reference with maxItems in timing properties > > .../leds/allwinner,sun50i-r329-ledc.yaml | 140 ++++++++++++++++++ > 1 file changed, 140 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/allwinner,sun50i-r329-ledc.yaml > > diff --git a/Documentation/devicetree/bindings/leds/allwinner,sun50i-r329-ledc.yaml b/Documentation/devicetree/bindings/leds/allwinner,sun50i-r329-ledc.yaml > new file mode 100644 > index 000000000000..d70cb2393a2e > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/allwinner,sun50i-r329-ledc.yaml > @@ -0,0 +1,140 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/allwinner,sun50i-r329-ledc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Allwinner R329 LED Controller Bindings > + > +maintainers: > + - Samuel Holland <samuel@xxxxxxxxxxxx> > + > +description: > + The LED controller found in Allwinner sunxi SoCs uses a one-wire serial > + interface to drive up to 1024 RGB LEDs. > + > +properties: > + compatible: > + oneOf: > + - const: allwinner,sun50i-r329-ledc > + - items: > + - enum: > + - allwinner,sun20i-d1-ledc > + - const: allwinner,sun50i-r329-ledc > + > + reg: > + maxItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + clocks: > + items: > + - description: Bus clock > + - description: Module clock > + > + clock-names: > + items: > + - const: bus > + - const: mod > + > + resets: > + maxItems: 1 > + > + dmas: > + maxItems: 1 > + description: TX DMA channel > + > + dma-names: > + const: tx > + > + interrupts: > + maxItems: 1 > + > + vled-supply: > + description: Regulator supplying power to external LEDs > + > + format: > + description: Pixel format (subpixel transmission order), default is "grb" > + enum: > + - "bgr" > + - "brg" > + - "gbr" > + - "grb" > + - "rbg" > + - "rgb" Don't need quotes. > + > + t0h-ns: > + maxItems: 1 > + description: Length of high pulse when transmitting a "0" bit > + > + t0l-ns: > + maxItems: 1 > + description: Length of low pulse when transmitting a "0" bit > + > + t1h-ns: > + maxItems: 1 > + description: Length of high pulse when transmitting a "1" bit > + > + t1l-ns: > + maxItems: 1 > + description: Length of low pulse when transmitting a "1" bit > + > + treset-ns: All these need a vendor prefix. > + maxItems: 1 > + description: Minimum delay between transmission frames > + > +patternProperties: > + "^multi-led@[0-9a-f]+$": > + type: object > + $ref: leds-class-multicolor.yaml# > + properties: > + reg: > + minimum: 0 > + maximum: 1023 > + description: Index of the LED in the series (must be contiguous) > + > + required: > + - reg > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - resets > + - dmas > + - dma-names > + - interrupts > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/leds/common.h> > + > + ledc: led-controller@2008000 { > + compatible = "allwinner,sun20i-d1-ledc", > + "allwinner,sun50i-r329-ledc"; > + reg = <0x2008000 0x400>; > + #address-cells = <1>; > + #size-cells = <0>; > + clocks = <&ccu 12>, <&ccu 34>; > + clock-names = "bus", "mod"; > + resets = <&ccu 12>; > + dmas = <&dma 42>; > + dma-names = "tx"; > + interrupts = <36 IRQ_TYPE_LEVEL_HIGH>; > + > + multi-led@0 { > + reg = <0x0>; > + color = <LED_COLOR_ID_RGB>; > + function = LED_FUNCTION_INDICATOR; > + }; > + }; > + > +... > -- > 2.32.0 > >