From 40f3b3fefa0b085253e62fb3a73a7a847e967cbe Mon Sep 17 00:00:00 2001 From: BarbUk Date: Mon, 17 Nov 2025 22:00:04 +0100 Subject: [PATCH] nrf52840_m2 update --- .../makerdiary/nrf52840_m2/Kconfig.defconfig | 10 ++++ .../nrf52840_m2/nrf52840_m2-pinctrl.dtsi | 56 +++++++++++++++++++ .../makerdiary/nrf52840_m2/nrf52840_m2.dts | 46 +++++++++++++-- .../nrf52840_m2/nrf52840_m2_defconfig | 4 +- 4 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 app/boards/makerdiary/nrf52840_m2/nrf52840_m2-pinctrl.dtsi diff --git a/app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig b/app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig index a7851c3b1..85ae54685 100644 --- a/app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig +++ b/app/boards/makerdiary/nrf52840_m2/Kconfig.defconfig @@ -13,4 +13,14 @@ endif # USB_DEVICE_STACK config BT_CTLR default BT +if ZMK_BACKLIGHT + +config PWM + default y + +config LED_PWM + default y + +endif # ZMK_BACKLIGHT + endif # BOARD_NRF52840_M2 diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2-pinctrl.dtsi b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2-pinctrl.dtsi new file mode 100644 index 000000000..00342f1e6 --- /dev/null +++ b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2-pinctrl.dtsi @@ -0,0 +1,56 @@ +&pinctrl { + /* configuration for spi0 device, default state */ + spi0_default: spi0_default { + /* node name is arbitrary */ + group1 { + /* main role: configure P1.11 as SPI clock, P0.02 as SPI MOSI, P0.03 as SPI MISO */ + psels = , + , + ; + }; + }; + + /* configuration for spi0 device, sleep state */ + spi0_sleep: spi0_sleep { + group1 { + /* main role: configure P1.11 as SPI clock, P0.02 as SPI MOSI, P0.03 as SPI MISO */ + psels = , + , + ; + low-power-enable; + }; + }; + + /* configuration for pwm device, default state */ + pwm0_default: pwm0_default { + group1 { + psels = , // LED 0 (red) + , // LED 1 (green) + ; // LED 2 (blue) + }; + }; + pwm0_sleep: pwm0_sleep { + group1 { + psels = , // LED 0 + , // LED 1 + ; // LED 2 + low-power-enable; + }; + }; + + /* configuration for i2c0 device, default state */ + i2c0_default: i2c0_default { + group1 { + psels = , + ; + }; + }; + + i2c0_sleep: i2c0_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; +}; diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts index f9ffee623..43b8ed32f 100644 --- a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts +++ b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2.dts @@ -7,6 +7,7 @@ /dts-v1/; #include #include +#include "nrf52840_m2-pinctrl.dtsi" / { model = "Makerdiary nRF52840 M.2 module"; @@ -17,18 +18,23 @@ zephyr,sram = &sram0; zephyr,flash = &flash0; zmk,battery = &vbatt; + zmk,backlight = &backlight; + zmk,led = &is31fl3733; }; leds { compatible = "gpio-leds"; - red_led: led_0 { + led1_red: led_1 { gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>; + label = "Red LED 1"; }; - green_led: led_1 { + led1_green: led_2 { gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; + label = "Green LED 1"; }; - blue_led: led_2 { + led1_blue: led_3 { gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; + label = "Blue LED 1"; }; }; @@ -39,6 +45,18 @@ full-ohms = <(1000000 + 1000000)>; }; + backlight: pwmleds { + compatible = "pwm-leds"; + red_pwm_led: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + }; + green_pwm_led: pwm_led_1 { + pwms = <&pwm0 1 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + }; + blue_pwm_led: pwm_led_2 { + pwms = <&pwm0 2 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + }; + }; }; &adc { @@ -57,12 +75,32 @@ status = "okay"; }; +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&i2c0 { + compatible = "nordic,nrf-twim"; + status = "okay"; + pinctrl-0 = <&i2c0_default>; + pinctrl-1 = <&i2c0_sleep>; + pinctrl-names = "default", "sleep"; + clock-frequency = ; + is31fl3733: is31fl3733@50 { + compatible = "issi,is31fl3733"; + reg = <0x50>; + sdb-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + }; +}; + zephyr_udc0: &usbd { compatible = "nordic,nrf-usbd"; status = "okay"; }; - &flash0 { /* * For more information, see: diff --git a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig index d0b01539e..3c4a0cb0e 100644 --- a/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig +++ b/app/boards/makerdiary/nrf52840_m2/nrf52840_m2_defconfig @@ -12,10 +12,10 @@ CONFIG_BUILD_OUTPUT_UF2=y CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_NVS=y -CONFIG_SETTINGS_NVS=y CONFIG_FLASH=y CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_MAP=y CONFIG_ZMK_USB=y -CONFIG_ZMK_BLE=y \ No newline at end of file +CONFIG_ZMK_BLE=y +CONFIG_PINCTRL=y