diff options
-rw-r--r-- | zephyr/boards/riscv/asurada/asurada.dts | 13 | ||||
-rw-r--r-- | zephyr/include/cros/ite/it8xxx2.dtsi | 13 | ||||
-rw-r--r-- | zephyr/include/cros/nuvoton/npcx.dtsi | 1 | ||||
-rw-r--r-- | zephyr/shim/src/keyboard_raw.c | 28 |
4 files changed, 22 insertions, 33 deletions
diff --git a/zephyr/boards/riscv/asurada/asurada.dts b/zephyr/boards/riscv/asurada/asurada.dts index 7fad8ed720..fee639a730 100644 --- a/zephyr/boards/riscv/asurada/asurada.dts +++ b/zephyr/boards/riscv/asurada/asurada.dts @@ -140,19 +140,6 @@ enum-name = "I2C_PORT_USB_MUX1"; }; }; - - soc { - /delete-node/ kscan@f01d00; - - cros_kb_raw: cros-kb-raw@f01d00 { - compatible = "ite,it8xxx2-cros-kb-raw"; - reg = <0x00f01d00 0x29>; - label = "CROS_KB_RAW_0"; - interrupt-parent = <&intc>; - interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; - status = "disabled"; - }; - }; }; &uart1 { diff --git a/zephyr/include/cros/ite/it8xxx2.dtsi b/zephyr/include/cros/ite/it8xxx2.dtsi index 35676e03ce..d835d9d4f1 100644 --- a/zephyr/include/cros/ite/it8xxx2.dtsi +++ b/zephyr/include/cros/ite/it8xxx2.dtsi @@ -4,6 +4,7 @@ */ #include <cros/binman.dtsi> +#include <it8xxx2.dtsi> / { chosen { @@ -11,6 +12,7 @@ cros-ec,bbram = &bbram; cros-ec,espi = &espi0; cros-ec,flash = &fiu0; + cros-ec,raw-kb = &cros_kb_raw; cros-ec,watchdog = &twd0; }; @@ -75,6 +77,17 @@ reg = <0x80000000 0x100000>; label = "FLASH"; }; + + /delete-node/ kscan@f01d00; + + cros_kb_raw: cros-kb-raw@f01d00 { + compatible = "ite,it8xxx2-cros-kb-raw"; + reg = <0x00f01d00 0x29>; + label = "CROS_KB_RAW_0"; + interrupt-parent = <&intc>; + interrupts = <13 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; }; /* it8xxx2 has 1MB of flash. currently, we use 512KB from flash. */ diff --git a/zephyr/include/cros/nuvoton/npcx.dtsi b/zephyr/include/cros/nuvoton/npcx.dtsi index eecc533c74..0a658663a8 100644 --- a/zephyr/include/cros/nuvoton/npcx.dtsi +++ b/zephyr/include/cros/nuvoton/npcx.dtsi @@ -15,6 +15,7 @@ cros-ec,bbram = &bbram; cros-ec,espi = &espi0; cros-ec,flash = &fiu0; + cros-ec,raw-kb = &cros_kb_raw; cros-ec,watchdog = &twd0; }; diff --git a/zephyr/shim/src/keyboard_raw.c b/zephyr/shim/src/keyboard_raw.c index 8de585a78f..474e1af5da 100644 --- a/zephyr/shim/src/keyboard_raw.c +++ b/zephyr/shim/src/keyboard_raw.c @@ -15,19 +15,17 @@ LOG_MODULE_REGISTER(shim_cros_kb_raw, LOG_LEVEL_ERR); -#define CROS_KB_RAW_NODE DT_NODELABEL(cros_kb_raw) -static const struct device *cros_kb_raw_dev; +BUILD_ASSERT(DT_HAS_CHOSEN(cros_ec_raw_kb), + "a cros-ec,raw-kb device must be chosen"); +#define cros_kb_raw_dev DEVICE_DT_GET(DT_CHOSEN(cros_ec_raw_kb)) /** * Initialize the raw keyboard interface. */ void keyboard_raw_init(void) { - cros_kb_raw_dev = DEVICE_DT_GET(CROS_KB_RAW_NODE); - if (!device_is_ready(cros_kb_raw_dev)) { - LOG_ERR("Error: device %s is not ready", cros_kb_raw_dev->name); - return; - } + if (!device_is_ready(cros_kb_raw_dev)) + k_oops(); LOG_INF("%s", __func__); cros_kb_raw_init(cros_kb_raw_dev); @@ -46,10 +44,7 @@ void keyboard_raw_task_start(void) */ test_mockable void keyboard_raw_drive_column(int col) { - if (cros_kb_raw_dev) - cros_kb_raw_drive_column(cros_kb_raw_dev, col); - else - LOG_ERR("%s: no cros_kb_raw device!", __func__); + cros_kb_raw_drive_column(cros_kb_raw_dev, col); } /** @@ -58,11 +53,7 @@ test_mockable void keyboard_raw_drive_column(int col) */ test_mockable int keyboard_raw_read_rows(void) { - if (cros_kb_raw_dev) - return cros_kb_raw_read_rows(cros_kb_raw_dev); - - LOG_ERR("%s: no cros_kb_raw device!", __func__); - return -EIO; + return cros_kb_raw_read_rows(cros_kb_raw_dev); } /** @@ -70,8 +61,5 @@ test_mockable int keyboard_raw_read_rows(void) */ void keyboard_raw_enable_interrupt(int enable) { - if (cros_kb_raw_dev) - cros_kb_raw_enable_interrupt(cros_kb_raw_dev, enable); - else - LOG_ERR("%s: no cros_kb_raw device!", __func__); + cros_kb_raw_enable_interrupt(cros_kb_raw_dev, enable); } |