| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- From 31857adcc9db7244a047a3a3550219f7559d8846 Mon Sep 17 00:00:00 2001
- From: Samuel Holland <[email protected]>
- Date: Wed, 4 Aug 2021 21:36:26 -0500
- Subject: [PATCH 054/117] dt-bindings: leds: Add Allwinner A100 LED controller
- The Allwinner A100, 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. All three implementations
- appear to be identical, so use the oldest as the fallback compatible.
- Series-changes: 2
- - 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
- Series-changes: 3
- - Removed quotes from enumeration values
- - Added vendor prefix to timing/format properties
- - Renamed "format" property to "pixel-format" for clarity
- - Dropped "vled-supply" as it is unrelated to the controller hardware
- Series-changes: 4
- - Use "default" instead of "maxItems" for timing properties
- Series-changes: 5
- - A100 contains the original implementation, so use that as the base
- compatible string, and rename the binding to match
- - Add "unevaluatedProperties: false" to the child multi-led binding
- Acked-by: Maxime Ripard <[email protected]>
- Reviewed-by: Rob Herring <[email protected]>
- Signed-off-by: Samuel Holland <[email protected]>
- ---
- .../leds/allwinner,sun50i-a100-ledc.yaml | 139 ++++++++++++++++++
- 1 file changed, 139 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/leds/allwinner,sun50i-a100-ledc.yaml
- --- /dev/null
- +++ b/Documentation/devicetree/bindings/leds/allwinner,sun50i-a100-ledc.yaml
- @@ -0,0 +1,139 @@
- +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
- +%YAML 1.2
- +---
- +$id: http://devicetree.org/schemas/leds/allwinner,sun50i-a100-ledc.yaml#
- +$schema: http://devicetree.org/meta-schemas/core.yaml#
- +
- +title: Allwinner A100 LED Controller Bindings
- +
- +maintainers:
- + - Samuel Holland <[email protected]>
- +
- +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-a100-ledc
- + - items:
- + - enum:
- + - allwinner,sun20i-d1-ledc
- + - allwinner,sun50i-r329-ledc
- + - const: allwinner,sun50i-a100-ledc
- +
- + reg:
- + maxItems: 1
- +
- + "#address-cells":
- + const: 1
- +
- + "#size-cells":
- + const: 0
- +
- + interrupts:
- + maxItems: 1
- +
- + 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
- +
- + allwinner,pixel-format:
- + description: Pixel format (subpixel transmission order), default is "grb"
- + enum:
- + - bgr
- + - brg
- + - gbr
- + - grb
- + - rbg
- + - rgb
- +
- + allwinner,t0h-ns:
- + default: 336
- + description: Length of high pulse when transmitting a "0" bit
- +
- + allwinner,t0l-ns:
- + default: 840
- + description: Length of low pulse when transmitting a "0" bit
- +
- + allwinner,t1h-ns:
- + default: 882
- + description: Length of high pulse when transmitting a "1" bit
- +
- + allwinner,t1l-ns:
- + default: 294
- + description: Length of low pulse when transmitting a "1" bit
- +
- + allwinner,treset-ns:
- + default: 300000
- + description: Minimum delay between transmission frames
- +
- +patternProperties:
- + "^multi-led@[0-9a-f]+$":
- + type: object
- + $ref: leds-class-multicolor.yaml#
- + unevaluatedProperties: false
- + properties:
- + reg:
- + minimum: 0
- + maximum: 1023
- + description: Index of the LED in the series (must be contiguous)
- +
- + required:
- + - reg
- +
- +required:
- + - compatible
- + - reg
- + - interrupts
- + - clocks
- + - clock-names
- + - resets
- + - dmas
- + - dma-names
- +
- +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-a100-ledc";
- + reg = <0x2008000 0x400>;
- + interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
- + clocks = <&ccu 12>, <&ccu 34>;
- + clock-names = "bus", "mod";
- + resets = <&ccu 12>;
- + dmas = <&dma 42>;
- + dma-names = "tx";
- + #address-cells = <1>;
- + #size-cells = <0>;
- +
- + multi-led@0 {
- + reg = <0x0>;
- + color = <LED_COLOR_ID_RGB>;
- + function = LED_FUNCTION_INDICATOR;
- + };
- + };
- +
- +...
|