All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs
@ 2022-12-12  4:55 Chuanhong Guo
  2022-12-12  4:55 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add an entry for WorldSemi Chuanhong Guo
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Chuanhong Guo @ 2022-12-12  4:55 UTC (permalink / raw)
  To: linux-leds
  Cc: Chuanhong Guo, Pavel Machek, Rob Herring, Krzysztof Kozlowski,
	Stanislav Jakubek, Linus Walleij, Shawn Guo, Johan Hovold,
	Bjorn Andersson, Marijn Suijten, Sven Schwermer,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list

This patch adds support for driving a chain of WS2812B LED chips
using SPI bus.

WorldSemi WS2812B is a individually addressable LED chip that
can be chained together and controlled individually using a
single wire. The chip recognize a long pulse as a bit of 1 and
a short pulse as a bit of 0. Host sends a continuous stream
of 24-bits color values, each LED chip takes the first 3 byte
it receives as its color value and passes the leftover bytes to
the next LED on the chain.

This driver simulates this protocol using SPI bus by sending
a long pulse as 3'b110 and a short pulse as 3'b100. The SPI
frequency needs to be 2.105MHz~2.85MHz for the timing to be
correct and the controller needs to transfer all the bytes
continuously.

Changes since v1:
various dt binding fixes
add support for default-brightness

Changes since v2:
more dt binding fixes
drop default-brightness and default-intensity

Changes since v3:
1. add more comments
2. rename reg to cascade
3. redo some line breaking
4. move duplicated pointer calculation into ws2812b_set_byte
5. reword error message
6. get ws2812b_priv from led cdev->dev->parent

Chuanhong Guo (3):
  dt-bindings: vendor-prefixes: add an entry for WorldSemi
  dt-bindings: leds: add worldsemi,ws2812b
  leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs

 .../bindings/leds/worldsemi,ws2812b.yaml      | 116 +++++++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 drivers/leds/rgb/Kconfig                      |  11 +
 drivers/leds/rgb/Makefile                     |   1 +
 drivers/leds/rgb/leds-ws2812b.c               | 231 ++++++++++++++++++
 5 files changed, 361 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/worldsemi,ws2812b.yaml
 create mode 100644 drivers/leds/rgb/leds-ws2812b.c

-- 
2.38.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-01-20  5:07 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-12  4:55 [PATCH v4 0/3] leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs Chuanhong Guo
2022-12-12  4:55 ` [PATCH v4 1/3] dt-bindings: vendor-prefixes: add an entry for WorldSemi Chuanhong Guo
2022-12-12  4:55 ` [PATCH v4 2/3] dt-bindings: leds: add worldsemi,ws2812b Chuanhong Guo
2022-12-12  8:56   ` Krzysztof Kozlowski
2022-12-23 12:48     ` Lee Jones
2022-12-23 17:19     ` Pavel Machek
2022-12-24  5:52       ` Chuanhong Guo
2022-12-24 12:53       ` Krzysztof Kozlowski
2023-01-09 16:52         ` Lee Jones
2023-01-10  9:24           ` Krzysztof Kozlowski
2023-01-10 10:21             ` Lee Jones
2023-01-11 18:53               ` Chuanhong Guo
2023-01-12  9:16                 ` Krzysztof Kozlowski
2023-01-13 14:56                 ` Lee Jones
2023-01-14 12:29                   ` Chuanhong Guo
2023-01-19 14:46                     ` Lee Jones
2022-12-12  4:55 ` [PATCH v4 3/3] leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs Chuanhong Guo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.