From 37acfeb2cbddacf0781c7d2b2a65161e83926fe5 Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Sun, 28 Jan 2024 16:54:18 -0800 Subject: [PATCH] refactor(shields): Use dynamic display PD for ZMK Uno. --- app/boards/shields/zmk_uno/Kconfig.defconfig | 2 ++ app/boards/shields/zmk_uno/zmk_uno.dtsi | 21 ++++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/app/boards/shields/zmk_uno/Kconfig.defconfig b/app/boards/shields/zmk_uno/Kconfig.defconfig index 617457de8b8d..8d2ab18b7a4e 100644 --- a/app/boards/shields/zmk_uno/Kconfig.defconfig +++ b/app/boards/shields/zmk_uno/Kconfig.defconfig @@ -6,6 +6,8 @@ if SHIELD_ZMK_UNO_BASE config SHIELD_ZMK_UNO_PM bool "ZMK Uno Automatic Power Management" default y + select ZMK_POWER_DOMAINS + select ZMK_POWER_DOMAINS_DYNAMIC_DEFAULT select PM_DEVICE select PM_DEVICE_POWER_DOMAIN select PM_DEVICE_RUNTIME diff --git a/app/boards/shields/zmk_uno/zmk_uno.dtsi b/app/boards/shields/zmk_uno/zmk_uno.dtsi index 8fe0c7184515..cd2cbeecef36 100644 --- a/app/boards/shields/zmk_uno/zmk_uno.dtsi +++ b/app/boards/shields/zmk_uno/zmk_uno.dtsi @@ -9,22 +9,6 @@ &arduino_i2c { status = "okay"; - - oled: ssd1306@3c { - compatible = "solomon,ssd1306fb"; - reg = <0x3c>; - label = "DISPLAY"; - width = <128>; - height = <64>; - segment-offset = <0>; - page-offset = <0>; - display-offset = <0>; - multiplex-ratio = <63>; - prechargep = <0x22>; - - power-domain = <&core_power_domain>; - zephyr,pm-device-runtime-auto; - }; }; nice_view_spi: &arduino_spi { @@ -66,10 +50,13 @@ nice_view_spi: &arduino_spi { zmk,backlight = &backlight; zmk,underglow = &led_strip; zephyr,display = &oled; + zmk,display-default-power-domain = &core_power_domain; }; core_power_domain: core_power_domain { - compatible = "power-domain-gpio"; + // The "power-domain" compatible is needed for any PDs used for that have dynamic deps, + // e.g. for displays or RGB not assigned to the PD in the devicetree statically. + compatible = "power-domain-gpio", "power-domain"; startup-delay-us = <2000>; off-on-delay-us = <2000>; enable-gpios = <&arduino_header 0 GPIO_ACTIVE_LOW>;