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