1# Copyright (c) 2019, Linaro Limited
2# Copyright (c) 2019, Nordic Semiconductor ASA
3#
4# SPDX-License-Identifier: Apache-2.0
5
6description: |
7  Worldsemi WS2812 (and compatible) LED controller
8
9  Driver bindings for daisy chains of WS2812 (and compatible devices
10  like SK6812, or Everlight B1414) LED controllers.
11
12  The PWM protocol is described here:
13  https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
14
15  A 0 bit's pulse width is between 200 and 500 ns. A 1 bit's is
16  at least 550 ns, with 700 ns or so typical. Pixel order is GRB.
17
18  You can connect the device to either a GPIO on your SoC, or a SPI
19  MOSI line. Use the worldsemi,ws2812-spi.yaml or
20  worldsemi,ws2812-gpio.yaml bindings instead of this file after
21  making your choice.
22
23  Everlight B1414:
24
25  The specification of the Everlight B1414 LED controller is slightly different.
26  For the control signal (waveform) each bit is described with a 1.2 us pulse:
27
28    0 bit: 300 ns high and 900 ns low.
29    1 bit: 900 ns high and 300 ns low.
30
31  There is a +/- 80 ns tolerance for each timing.
32
33  The latch/reset delay is 250 us and it must be set using the reset-delay
34  property. The pixel order depends on the model and it can be configured
35  using the color-mapping property.
36
37include: led-strip.yaml
38
39properties:
40  reset-delay:
41    type: int
42    default: 8
43    description: |
44      Minimum delay to wait (in microseconds) to make sure that the strip has
45      latched the signal. If omitted, a default value of 8 microseconds is used.
46      This default is good for the WS2812 controllers. Note that despite the
47      WS2812 datasheet states that a 50 microseconds delay is required, it seems
48      6 microseconds is enough. The default is set to 8 microseconds just to be
49      safe.
50