feat(backlight): add tests
This commit is contained in:
parent
ce843825e8
commit
2c0fe3934d
24 changed files with 285 additions and 3 deletions
|
@ -330,9 +330,7 @@ endif
|
|||
|
||||
menuconfig ZMK_BACKLIGHT
|
||||
bool "LED backlight"
|
||||
select PWM
|
||||
select LED
|
||||
select ZMK_LED_PWM
|
||||
|
||||
if ZMK_BACKLIGHT
|
||||
|
||||
|
|
|
@ -44,6 +44,8 @@ static struct backlight_state state = {.brightness = CONFIG_ZMK_BACKLIGHT_BRT_ST
|
|||
|
||||
static int zmk_backlight_update() {
|
||||
uint8_t brt = zmk_backlight_get_brt();
|
||||
LOG_DBG("Update backlight brightness: %d%%", brt);
|
||||
|
||||
for (int i = 0; i < BACKLIGHT_NUM_LEDS; i++) {
|
||||
int rc = led_set_brightness(backlight_dev, i, brt);
|
||||
if (rc != 0) {
|
||||
|
|
1
app/tests/backlight/basic/events.patterns
Normal file
1
app/tests/backlight/basic/events.patterns
Normal file
|
@ -0,0 +1 @@
|
|||
s/.*zmk_backlight_update: //p
|
9
app/tests/backlight/basic/keycode_events.snapshot
Normal file
9
app/tests/backlight/basic/keycode_events.snapshot
Normal file
|
@ -0,0 +1,9 @@
|
|||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 60%
|
||||
Update backlight brightness: 80%
|
||||
Update backlight brightness: 60%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 40%
|
14
app/tests/backlight/basic/native_posix.conf
Normal file
14
app/tests/backlight/basic/native_posix.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
CONFIG_KSCAN=n
|
||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_EMUL=y
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
||||
CONFIG_LED_GPIO=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
30
app/tests/backlight/basic/native_posix.keymap
Normal file
30
app/tests/backlight/basic/native_posix.keymap
Normal file
|
@ -0,0 +1,30 @@
|
|||
#include "../behavior_keymap.dtsi"
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_OFF */
|
||||
ZMK_MOCK_PRESS(1,1,10)
|
||||
ZMK_MOCK_RELEASE(1,1,10)
|
||||
/* BL_OFF */
|
||||
ZMK_MOCK_PRESS(1,1,10)
|
||||
ZMK_MOCK_RELEASE(1,1,10)
|
||||
/* BL_ON */
|
||||
ZMK_MOCK_PRESS(1,0,10)
|
||||
ZMK_MOCK_RELEASE(1,0,10)
|
||||
/* BL_ON */
|
||||
ZMK_MOCK_PRESS(1,0,10)
|
||||
ZMK_MOCK_RELEASE(1,0,10)
|
||||
>;
|
||||
};
|
34
app/tests/backlight/behavior_keymap.dtsi
Normal file
34
app/tests/backlight/behavior_keymap.dtsi
Normal file
|
@ -0,0 +1,34 @@
|
|||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <behaviors.dtsi>
|
||||
#include <dt-bindings/zmk/kscan_mock.h>
|
||||
#include <dt-bindings/zmk/backlight.h>
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zmk,backlight = &backlight;
|
||||
};
|
||||
|
||||
backlight: leds {
|
||||
compatible = "gpio-leds";
|
||||
led_0 {
|
||||
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
|
||||
label = "Backlight LED 0";
|
||||
};
|
||||
led_1 {
|
||||
gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
|
||||
label = "Backlight LED 1";
|
||||
};
|
||||
};
|
||||
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
label ="Default keymap";
|
||||
|
||||
default_layer {
|
||||
bindings = <
|
||||
&bl BL_INC &bl BL_DEC
|
||||
&bl BL_ON &bl BL_OFF
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
1
app/tests/backlight/config-brt/events.patterns
Normal file
1
app/tests/backlight/config-brt/events.patterns
Normal file
|
@ -0,0 +1 @@
|
|||
s/.*zmk_backlight_update: //p
|
3
app/tests/backlight/config-brt/keycode_events.snapshot
Normal file
3
app/tests/backlight/config-brt/keycode_events.snapshot
Normal file
|
@ -0,0 +1,3 @@
|
|||
Update backlight brightness: 60%
|
||||
Update backlight brightness: 80%
|
||||
Update backlight brightness: 60%
|
15
app/tests/backlight/config-brt/native_posix.conf
Normal file
15
app/tests/backlight/config-brt/native_posix.conf
Normal file
|
@ -0,0 +1,15 @@
|
|||
CONFIG_KSCAN=n
|
||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_EMUL=y
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
||||
CONFIG_LED_GPIO=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
||||
CONFIG_ZMK_BACKLIGHT_BRT_START=60
|
12
app/tests/backlight/config-brt/native_posix.keymap
Normal file
12
app/tests/backlight/config-brt/native_posix.keymap
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include "../behavior_keymap.dtsi"
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
>;
|
||||
};
|
1
app/tests/backlight/config-on/events.patterns
Normal file
1
app/tests/backlight/config-on/events.patterns
Normal file
|
@ -0,0 +1 @@
|
|||
s/.*zmk_backlight_update: //p
|
3
app/tests/backlight/config-on/keycode_events.snapshot
Normal file
3
app/tests/backlight/config-on/keycode_events.snapshot
Normal file
|
@ -0,0 +1,3 @@
|
|||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 0%
|
15
app/tests/backlight/config-on/native_posix.conf
Normal file
15
app/tests/backlight/config-on/native_posix.conf
Normal file
|
@ -0,0 +1,15 @@
|
|||
CONFIG_KSCAN=n
|
||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_EMUL=y
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
||||
CONFIG_LED_GPIO=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
||||
CONFIG_ZMK_BACKLIGHT_ON_START=n
|
12
app/tests/backlight/config-on/native_posix.keymap
Normal file
12
app/tests/backlight/config-on/native_posix.keymap
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include "../behavior_keymap.dtsi"
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
/* BL_ON */
|
||||
ZMK_MOCK_PRESS(1,0,10)
|
||||
ZMK_MOCK_RELEASE(1,0,10)
|
||||
/* BL_OFF */
|
||||
ZMK_MOCK_PRESS(1,1,10)
|
||||
ZMK_MOCK_RELEASE(1,1,10)
|
||||
>;
|
||||
};
|
1
app/tests/backlight/config-step/events.patterns
Normal file
1
app/tests/backlight/config-step/events.patterns
Normal file
|
@ -0,0 +1 @@
|
|||
s/.*zmk_backlight_update: //p
|
11
app/tests/backlight/config-step/keycode_events.snapshot
Normal file
11
app/tests/backlight/config-step/keycode_events.snapshot
Normal file
|
@ -0,0 +1,11 @@
|
|||
Update backlight brightness: 60%
|
||||
Update backlight brightness: 90%
|
||||
Update backlight brightness: 100%
|
||||
Update backlight brightness: 100%
|
||||
Update backlight brightness: 70%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 10%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 30%
|
||||
Update backlight brightness: 60%
|
16
app/tests/backlight/config-step/native_posix.conf
Normal file
16
app/tests/backlight/config-step/native_posix.conf
Normal file
|
@ -0,0 +1,16 @@
|
|||
CONFIG_KSCAN=n
|
||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_EMUL=y
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
||||
CONFIG_LED_GPIO=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
||||
CONFIG_ZMK_BACKLIGHT_BRT_START=60
|
||||
CONFIG_ZMK_BACKLIGHT_BRT_STEP=30
|
36
app/tests/backlight/config-step/native_posix.keymap
Normal file
36
app/tests/backlight/config-step/native_posix.keymap
Normal file
|
@ -0,0 +1,36 @@
|
|||
#include "../behavior_keymap.dtsi"
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
>;
|
||||
};
|
1
app/tests/backlight/low-brightness/events.patterns
Normal file
1
app/tests/backlight/low-brightness/events.patterns
Normal file
|
@ -0,0 +1 @@
|
|||
s/.*zmk_backlight_update: //p
|
12
app/tests/backlight/low-brightness/keycode_events.snapshot
Normal file
12
app/tests/backlight/low-brightness/keycode_events.snapshot
Normal file
|
@ -0,0 +1,12 @@
|
|||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 20%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 20%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 60%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 40%
|
||||
Update backlight brightness: 20%
|
||||
Update backlight brightness: 0%
|
||||
Update backlight brightness: 20%
|
14
app/tests/backlight/low-brightness/native_posix.conf
Normal file
14
app/tests/backlight/low-brightness/native_posix.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
CONFIG_KSCAN=n
|
||||
CONFIG_ZMK_KSCAN_MOCK_DRIVER=y
|
||||
CONFIG_ZMK_KSCAN_GPIO_DRIVER=n
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_GPIO_EMUL=y
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_DEBUG=y
|
||||
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||
|
||||
CONFIG_LED_GPIO=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
39
app/tests/backlight/low-brightness/native_posix.keymap
Normal file
39
app/tests/backlight/low-brightness/native_posix.keymap
Normal file
|
@ -0,0 +1,39 @@
|
|||
#include "../behavior_keymap.dtsi"
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_ON */
|
||||
ZMK_MOCK_PRESS(1,0,10)
|
||||
ZMK_MOCK_RELEASE(1,0,10)
|
||||
/* BL_OFF */
|
||||
ZMK_MOCK_PRESS(1,1,10)
|
||||
ZMK_MOCK_RELEASE(1,1,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
/* BL_OFF */
|
||||
ZMK_MOCK_PRESS(1,1,10)
|
||||
ZMK_MOCK_RELEASE(1,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_DEC */
|
||||
ZMK_MOCK_PRESS(0,1,10)
|
||||
ZMK_MOCK_RELEASE(0,1,10)
|
||||
/* BL_INC */
|
||||
ZMK_MOCK_PRESS(0,0,10)
|
||||
ZMK_MOCK_RELEASE(0,0,10)
|
||||
>;
|
||||
};
|
|
@ -7,9 +7,11 @@ Backlight is a feature used to control array of LEDs, usually placed through or
|
|||
|
||||
## Enabling Backlight
|
||||
|
||||
To enable backlight on your board or shield, simply enable the `CONFIG_ZMK_BACKLIGHT` configuration values in the `.conf` file of your user config directory as such:
|
||||
To enable backlight on your board or shield, add the following lines to your `.conf` file of your user config directory as such:
|
||||
|
||||
```
|
||||
CONFIG_PWM=y
|
||||
CONFIG_LED_PWM=y
|
||||
CONFIG_ZMK_BACKLIGHT=y
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in a new issue