This commit is contained in:
Julien Virey 2025-12-05 17:25:08 +08:00 committed by GitHub
commit b7372789a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 113 additions and 14 deletions

View File

@ -0,0 +1,34 @@
&pinctrl {
/* configuration for pwm device, default state */
pwm0_default: pwm0_default {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 30)>, // LED 0 (red)
<NRF_PSEL(PWM_OUT1, 0, 29)>, // LED 1 (green)
<NRF_PSEL(PWM_OUT2, 0, 31)>; // LED 2 (blue)
};
};
pwm0_sleep: pwm0_sleep {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 30)>, // LED 0
<NRF_PSEL(PWM_OUT1, 0, 29)>, // LED 1
<NRF_PSEL(PWM_OUT2, 0, 31)>; // LED 2
low-power-enable;
};
};
/* configuration for i2c0 device, default state */
i2c0_default: i2c0_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 1, 5)>,
<NRF_PSEL(TWIM_SCL, 1, 6)>;
};
};
i2c0_sleep: i2c0_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 1, 5)>,
<NRF_PSEL(TWIM_SCL, 1, 6)>;
low-power-enable;
};
};
};

View File

@ -6,6 +6,7 @@
/dts-v1/; /dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi> #include <nordic/nrf52840_qiaa.dtsi>
#include "nrf52840_m2-pinctrl.dtsi"
/ { / {
model = "Makerdiary nRF52840 M.2 module"; model = "Makerdiary nRF52840 M.2 module";
@ -20,14 +21,17 @@
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
red_led: led_0 { led1_red: led_1 {
gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>; gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
label = "Red LED 1";
}; };
green_led: led_1 { led1_green: led_2 {
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
label = "Green LED 1";
}; };
blue_led: led_2 { led1_blue: led_3 {
gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
label = "Blue LED 1";
}; };
}; };
@ -38,6 +42,18 @@
full-ohms = <(1000000 + 1000000)>; full-ohms = <(1000000 + 1000000)>;
}; };
pwmleds: 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 { &adc {
@ -56,12 +72,32 @@
status = "okay"; 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 = <I2C_BITRATE_FAST>;
is31fl3733: is31fl3733@50 {
compatible = "issi,is31fl3733";
reg = <0x50>;
sdb-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
};
};
zephyr_udc0: &usbd { zephyr_udc0: &usbd {
compatible = "nordic,nrf-usbd"; compatible = "nordic,nrf-usbd";
status = "okay"; status = "okay";
}; };
&flash0 { &flash0 {
/* /*
* For more information, see: * For more information, see:

View File

@ -16,10 +16,10 @@ CONFIG_BUILD_OUTPUT_UF2=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_NVS=y CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_FLASH=y CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y CONFIG_FLASH_MAP=y
CONFIG_ZMK_USB=y CONFIG_ZMK_USB=y
CONFIG_ZMK_BLE=y CONFIG_ZMK_BLE=y
CONFIG_PINCTRL=y

View File

@ -6,4 +6,14 @@ if SHIELD_M60
config ZMK_KEYBOARD_NAME config ZMK_KEYBOARD_NAME
default "m60" default "m60"
if ZMK_BACKLIGHT
config PWM
default y
config LED_PWM
default y
endif # ZMK_BACKLIGHT
endif endif

View File

@ -7,6 +7,7 @@
#include <behaviors.dtsi> #include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h> #include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h> #include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/backlight.h>
/ { / {
keymap0: keymap { keymap0: keymap {
@ -14,13 +15,18 @@
default_layer { default_layer {
display-name = "Default Layer"; display-name = "Default Layer";
// ------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSPC | // ╭─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────────╮
// | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ⌫ |
// | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | // |─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───────|
// | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | // | ─>| | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
// | CTL | WIN | ALT | SPACE | ALT | MO(1) | WIN | CTRL | // |───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴───────|
// ------------------------------------------------------------------------------------------ // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ↵ |
// |────────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴────────────|
// | ⇧ | Z | X | C | V | B | N | M | , | . | / | ⇧ |
// |──────┬───┴──┬──┴──┬──┴─────┴─────┴─────┴─────┴─────┴───┬─┴─────┼─────┴┬──────┬────────|
// | Ctrl | Win | Alt | | Alt | MO(1)| WIN | Ctrl |
// ╰──────┴──────┴─────┴────────────────────────────────────┴───────┴──────┴──────┴────────╯
bindings = < bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
@ -32,9 +38,21 @@
fn_layer { fn_layer {
display-name = "Fn Layer"; display-name = "Fn Layer";
// ╭─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────────╮
// | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | BOOT |
// |─────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───────|
// | ─>| | BTc | BLt | BLc | | | | | | | | | | reset |
// |───────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴───────|
// | CAPS | BT0 | BT1 | BT2 | BT3 | BT4 | ← | ↓ | ↑ | → | | | ↵ |
// |────────┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴────────────|
// | ⇧ | | | | | | | | | | | ⇧ |
// |──────┬───┴──┬──┴──┬──┴─────┴─────┴─────┴─────┴─────┴───┬─┴─────┼─────┴┬──────┬────────|
// | Ctrl | Win | alt | | alt | MO(1)| WIN | Ctrl |
// ╰──────┴──────┴─────┴────────────────────────────────────┴───────┴──────┴──────┴────────╯
bindings = < bindings = <
&kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bootloader &kp GRAVE &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &bootloader
&trans &bt BT_CLR &none &none &none &none &none &none &none &none &none &none &none &sys_reset &trans &bt BT_CLR &bl BL_TOG &bl BL_CYCLE &none &none &none &none &none &none &none &none &none &sys_reset
&trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &none &trans &trans &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp LEFT &kp DOWN &kp UP &kp RIGHT &none &none &trans
&trans &none &none &none &none &none &none &none &none &none &none &trans &trans &none &none &none &none &none &none &none &none &none &none &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans

View File

@ -12,6 +12,7 @@
chosen { chosen {
zmk,kscan = &kscan0; zmk,kscan = &kscan0;
zmk,physical-layout = &layout_60_ansi; zmk,physical-layout = &layout_60_ansi;
zmk,backlight = &pwmleds;
}; };
kscan0: kscan { kscan0: kscan {