Message ID | 20221207040904.582585-1-gch981213@gmail.com |
---|---|
Headers | show |
Series | leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs | expand |
Hi! > 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. Is this the same thing as NeoPixel? If so, that may be better-known name. Best regards, Pavel
Hi! On Tue, Dec 13, 2022 at 5:03 PM Pavel Machek <pavel@ucw.cz> wrote: > > Hi! > > > 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. > > Is this the same thing as NeoPixel? If so, that may be better-known > name. NeoPixel is the name used by Adafruit for WS2812B based LED strips. Even though that name may be better-known, this driver is for the WS2812B LED chips, not for the specific Adafruit products made using those chips. So I think it's more appropriate to go with worldsemi,ws2812b instead of NeoPixel for the driver name.
Hi! > > > 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. > > > > Is this the same thing as NeoPixel? If so, that may be better-known > > name. > > NeoPixel is the name used by Adafruit for WS2812B based LED > strips. Even though that name may be better-known, this driver > is for the WS2812B LED chips, not for the specific Adafruit > products made using those chips. So I think it's more appropriate > to go with worldsemi,ws2812b instead of NeoPixel for the driver > name. Still, it would be suitable to mention the "NeoPixel" name in the comment at begining of driver, and in Kconfig text. Best regards, Pavel