From 488f0d04eae1fd256506d9e32eb0e2011bac8fa8 Mon Sep 17 00:00:00 2001 From: TheSnowfield <17957399+TheSnowfield@users.noreply.github.com> Date: Thu, 3 Apr 2025 05:13:28 +0800 Subject: [PATCH] sakurapi-rk3308b: ws2812-vleds spi driver dtso for on-board leds --- .../archive/rockchip64-6.12/overlay/Makefile | 1 + .../rockchip-sakurapi-rk3308b-ws2812.dtso | 62 +++++++++++++++++++ .../archive/rockchip64-6.14/overlay/Makefile | 1 + .../rockchip-sakurapi-rk3308b-ws2812.dtso | 62 +++++++++++++++++++ .../archive/rockchip64-6.6/overlay/Makefile | 1 + .../archive/rockchip64-6.9/overlay/Makefile | 1 + .../rockchip-sakurapi-rk3308b-ws2812.dtso | 62 +++++++++++++++++++ 7 files changed, 190 insertions(+) create mode 100644 patch/kernel/archive/rockchip64-6.12/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso create mode 100644 patch/kernel/archive/rockchip64-6.14/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso create mode 100644 patch/kernel/archive/rockchip64-6.9/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso diff --git a/patch/kernel/archive/rockchip64-6.12/overlay/Makefile b/patch/kernel/archive/rockchip64-6.12/overlay/Makefile index 59a0114ec..fd90f1e36 100644 --- a/patch/kernel/archive/rockchip64-6.12/overlay/Makefile +++ b/patch/kernel/archive/rockchip64-6.12/overlay/Makefile @@ -6,6 +6,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ rk3308-bs.dtbo rk3308-bs@1.3ghz.dtbo \ rk3308-emmc.dtbo \ rk3308-sdio@10mhz.dtbo rk3308-sdio@4mhz.dtbo \ + rockchip-sakurapi-rk3308b-ws2812.dtbo \ rockchip-rockpi4cplus-usb-host.dtbo \ rockchip-rockpro64-lcd.dtbo \ rockchip-rk3318-box-cpu-hs.dtbo \ diff --git a/patch/kernel/archive/rockchip64-6.12/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso b/patch/kernel/archive/rockchip64-6.12/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso new file mode 100644 index 000000000..fc94f4a48 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.12/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/* + * For SakuraPi Rk3308B: Enable on-board ws2812 LEDs + * Need to load an external driver, see https://github.com/Sakura-Pi/ws2812-vleds + * + * (C) Copyright 2025 TheSnowfield + */ + +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spi1>; + __overlay__ { + + status = "okay"; + + ws2812@0 { + compatible = "ws2812-vleds"; + reg = <0>; + + // tested spi clk 6750000hz on rk3308b + spi-max-frequency = <6750000>; + + leds { + + // user defined + ws_led3: vled3 { + label = "ws-led3"; + default-state = "off"; + color-value = "#69b3f2"; + }; + + // user defined + ws_led2: vled2 { + label = "ws-led2"; + default-state = "off"; + color-value = "#9376c8"; + }; + + // user defined + ws_led1: vled1 { + label = "ws-led1"; + default-state = "off"; + color-value = "#b66bc3"; + }; + + // mmc1(emmc) r/w state + ws_led0: vled0 { + label = "ws-led0"; + default-state = "on"; + linux,default-trigger = "mmc1"; + color-value = "#eb698f"; + }; + + }; + }; + }; + }; +}; diff --git a/patch/kernel/archive/rockchip64-6.14/overlay/Makefile b/patch/kernel/archive/rockchip64-6.14/overlay/Makefile index 59a0114ec..fd90f1e36 100644 --- a/patch/kernel/archive/rockchip64-6.14/overlay/Makefile +++ b/patch/kernel/archive/rockchip64-6.14/overlay/Makefile @@ -6,6 +6,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ rk3308-bs.dtbo rk3308-bs@1.3ghz.dtbo \ rk3308-emmc.dtbo \ rk3308-sdio@10mhz.dtbo rk3308-sdio@4mhz.dtbo \ + rockchip-sakurapi-rk3308b-ws2812.dtbo \ rockchip-rockpi4cplus-usb-host.dtbo \ rockchip-rockpro64-lcd.dtbo \ rockchip-rk3318-box-cpu-hs.dtbo \ diff --git a/patch/kernel/archive/rockchip64-6.14/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso b/patch/kernel/archive/rockchip64-6.14/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso new file mode 100644 index 000000000..fc94f4a48 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.14/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/* + * For SakuraPi Rk3308B: Enable on-board ws2812 LEDs + * Need to load an external driver, see https://github.com/Sakura-Pi/ws2812-vleds + * + * (C) Copyright 2025 TheSnowfield + */ + +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spi1>; + __overlay__ { + + status = "okay"; + + ws2812@0 { + compatible = "ws2812-vleds"; + reg = <0>; + + // tested spi clk 6750000hz on rk3308b + spi-max-frequency = <6750000>; + + leds { + + // user defined + ws_led3: vled3 { + label = "ws-led3"; + default-state = "off"; + color-value = "#69b3f2"; + }; + + // user defined + ws_led2: vled2 { + label = "ws-led2"; + default-state = "off"; + color-value = "#9376c8"; + }; + + // user defined + ws_led1: vled1 { + label = "ws-led1"; + default-state = "off"; + color-value = "#b66bc3"; + }; + + // mmc1(emmc) r/w state + ws_led0: vled0 { + label = "ws-led0"; + default-state = "on"; + linux,default-trigger = "mmc1"; + color-value = "#eb698f"; + }; + + }; + }; + }; + }; +}; diff --git a/patch/kernel/archive/rockchip64-6.6/overlay/Makefile b/patch/kernel/archive/rockchip64-6.6/overlay/Makefile index 3e219a726..bca4146e2 100644 --- a/patch/kernel/archive/rockchip64-6.6/overlay/Makefile +++ b/patch/kernel/archive/rockchip64-6.6/overlay/Makefile @@ -5,6 +5,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ rk3308-bs.dtbo rk3308-bs@1.3ghz.dtbo \ rk3308-emmc.dtbo \ rk3308-sdio@10mhz.dtbo rk3308-sdio@4mhz.dtbo \ + rockchip-sakurapi-rk3308b-ws2812.dtbo \ rockchip-rockpi4cplus-usb-host.dtbo \ rockchip-rockpro64-lcd.dtbo \ rockchip-rk3318-box-cpu-hs.dtbo \ diff --git a/patch/kernel/archive/rockchip64-6.9/overlay/Makefile b/patch/kernel/archive/rockchip64-6.9/overlay/Makefile index c9652c305..1aa3dc7fd 100644 --- a/patch/kernel/archive/rockchip64-6.9/overlay/Makefile +++ b/patch/kernel/archive/rockchip64-6.9/overlay/Makefile @@ -5,6 +5,7 @@ dtbo-$(CONFIG_ARCH_ROCKCHIP) += \ rk3308-bs.dtbo rk3308-bs@1.3ghz.dtbo \ rk3308-emmc.dtbo \ rk3308-sdio@10mhz.dtbo rk3308-sdio@4mhz.dtbo \ + rockchip-sakurapi-rk3308b-ws2812.dtbo \ rockchip-rockpi4cplus-usb-host.dtbo \ rockchip-rockpro64-lcd.dtbo \ rockchip-rk3318-box-cpu-hs.dtbo \ diff --git a/patch/kernel/archive/rockchip64-6.9/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso b/patch/kernel/archive/rockchip64-6.9/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso new file mode 100644 index 000000000..fc94f4a48 --- /dev/null +++ b/patch/kernel/archive/rockchip64-6.9/overlay/rockchip-sakurapi-rk3308b-ws2812.dtso @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: GPL-2.0+ + +/* + * For SakuraPi Rk3308B: Enable on-board ws2812 LEDs + * Need to load an external driver, see https://github.com/Sakura-Pi/ws2812-vleds + * + * (C) Copyright 2025 TheSnowfield + */ + +/dts-v1/; +/plugin/; + +/ { + fragment@0 { + target = <&spi1>; + __overlay__ { + + status = "okay"; + + ws2812@0 { + compatible = "ws2812-vleds"; + reg = <0>; + + // tested spi clk 6750000hz on rk3308b + spi-max-frequency = <6750000>; + + leds { + + // user defined + ws_led3: vled3 { + label = "ws-led3"; + default-state = "off"; + color-value = "#69b3f2"; + }; + + // user defined + ws_led2: vled2 { + label = "ws-led2"; + default-state = "off"; + color-value = "#9376c8"; + }; + + // user defined + ws_led1: vled1 { + label = "ws-led1"; + default-state = "off"; + color-value = "#b66bc3"; + }; + + // mmc1(emmc) r/w state + ws_led0: vled0 { + label = "ws-led0"; + default-state = "on"; + linux,default-trigger = "mmc1"; + color-value = "#eb698f"; + }; + + }; + }; + }; + }; +};