aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/device-tree/Bindings/leds/allwinner,sun50i-a100-ledc.yaml
blob: 760cb336dccb5c4a7ecb9f24f9f2c6a5f3176a1e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# 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

maintainers:
  - Samuel Holland <samuel@sholland.org>

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

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;
      };
    };

...