From bd8d572884d45cd2fbf8ca3fed31369654208545 Mon Sep 17 00:00:00 2001 From: KnoblesseOblige Date: Wed, 10 Mar 2021 09:39:23 -0600 Subject: [PATCH] Updated paw to include RGB support. --- app/boards/arm/paw/Kconfig.defconfig | 6 ++++++ app/boards/arm/paw/paw.dts | 24 ++++++++++++++++++++++++ app/boards/arm/paw/paw_defconfig | 1 + 3 files changed, 31 insertions(+) diff --git a/app/boards/arm/paw/Kconfig.defconfig b/app/boards/arm/paw/Kconfig.defconfig index 89c2c192..824afa12 100644 --- a/app/boards/arm/paw/Kconfig.defconfig +++ b/app/boards/arm/paw/Kconfig.defconfig @@ -25,4 +25,10 @@ config ZMK_BLE config ZMK_USB default y +config ZMK_RGB_UNDERGLOW + default y + +config WS2812_STRIP + default y + endif # BOARD_PAW diff --git a/app/boards/arm/paw/paw.dts b/app/boards/arm/paw/paw.dts index cc281ca6..28ccbdf9 100644 --- a/app/boards/arm/paw/paw.dts +++ b/app/boards/arm/paw/paw.dts @@ -19,6 +19,7 @@ zephyr,sram = &sram0; zephyr,flash = &flash0; zmk,kscan = &kscan0; + zmk,underglow = &led_strip; }; kscan0: kscan { @@ -43,6 +44,29 @@ */ }; +&spi1 { + compatible = "nordic,nrf-spim"; + status = "okay"; + mosi-pin = <22>; + // Unused pins, needed for SPI definition, but not used by the ws2812 driver itself. + sck-pin = <6>; + miso-pin = <7>; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + label = "WS2812"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <4>; /* number of LEDs */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + }; +}; + &gpio0 { status = "okay"; }; diff --git a/app/boards/arm/paw/paw_defconfig b/app/boards/arm/paw/paw_defconfig index 9f2880b8..c332ef8f 100644 --- a/app/boards/arm/paw/paw_defconfig +++ b/app/boards/arm/paw/paw_defconfig @@ -20,3 +20,4 @@ CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_CLOCK_CONTROL_NRF=y CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y +