From: Chuanhong Guo <gch981213@gmail.com>
To: linux-leds@vger.kernel.org
Cc: Chuanhong Guo <gch981213@gmail.com>, Pavel Machek <pavel@ucw.cz>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Stanislav Jakubek <stano.jakubek@gmail.com>,
Linus Walleij <linus.walleij@linaro.org>,
Shawn Guo <shawnguo@kernel.org>,
Johan Hovold <johan+linaro@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Marijn Suijten <marijn.suijten@somainline.org>,
Sven Schwermer <sven.schwermer@disruptive-technologies.com>,
devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND
FLATTENED DEVICE TREE BINDINGS),
linux-kernel@vger.kernel.org (open list)
Subject: [PATCH v4 0/3] leds: add driver for SPI driven WorldSemi WS2812B RGB LEDs
Date: Mon, 12 Dec 2022 12:55:55 +0800 [thread overview]
Message-ID: <20221212045558.69602-1-gch981213@gmail.com> (raw)
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
next reply other threads:[~2022-12-12 4:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-12 4:55 Chuanhong Guo [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221212045558.69602-1-gch981213@gmail.com \
--to=gch981213@gmail.com \
--cc=andersson@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=johan+linaro@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=pavel@ucw.cz \
--cc=robh+dt@kernel.org \
--cc=shawnguo@kernel.org \
--cc=stano.jakubek@gmail.com \
--cc=sven.schwermer@disruptive-technologies.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.