diff options
author | Keith Short <keithshort@chromium.org> | 2022-05-12 16:26:02 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-05-31 20:54:00 +0000 |
commit | d7fafa9b52565238ed151f6681bd6e2d899ea04c (patch) | |
tree | 68fd5bb4c73e57682fc15a867aa547c21476de4f | |
parent | 74bde68fa512922cd05b4b19ea1e967d94ccf78b (diff) | |
download | chrome-ec-d7fafa9b52565238ed151f6681bd6e2d899ea04c.tar.gz |
zephyr: npcx: update kb raw driver for pinctrl
Update the Nuvoton cros_kb_raw driver to use pinctrl instead of pinmux.
BUG=b:232543902
BRANCH=none
TEST=zmake testall
TEST=verify keyboard on herobrine
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: I1479d89c597d4d04b71507d63ecd4c42253f8bbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3646962
Reviewed-by: Wai-Hong Tam <waihong@google.com>
Reviewed-by: Mulin Chao <mlchao@nuvoton.com>
-rw-r--r-- | zephyr/boards/arm/npcx7/npcx7.dts | 41 | ||||
-rw-r--r-- | zephyr/boards/arm/npcx9/npcx9.dtsi | 45 | ||||
-rw-r--r-- | zephyr/boards/arm/npcx_evb/npcx_evb.dtsi | 43 | ||||
-rw-r--r-- | zephyr/drivers/cros_kb_raw/cros_kb_raw_npcx.c | 20 | ||||
-rw-r--r-- | zephyr/dts/bindings/cros_kb_raw/nuvoton,npcx-cros-kb-raw.yaml | 7 | ||||
-rw-r--r-- | zephyr/include/cros/nuvoton/npcx.dtsi | 30 |
6 files changed, 82 insertions, 104 deletions
diff --git a/zephyr/boards/arm/npcx7/npcx7.dts b/zephyr/boards/arm/npcx7/npcx7.dts index 2ea0c965ec..e615789e16 100644 --- a/zephyr/boards/arm/npcx7/npcx7.dts +++ b/zephyr/boards/arm/npcx7/npcx7.dts @@ -54,25 +54,26 @@ &cros_kb_raw { status = "okay"; /* No KSO2 (it's inverted and implemented by GPIO) */ - pinctrl-0 = <&alt7_no_ksi0_sl - &alt7_no_ksi1_sl - &alt7_no_ksi2_sl - &alt7_no_ksi3_sl - &alt7_no_ksi4_sl - &alt7_no_ksi5_sl - &alt7_no_ksi6_sl - &alt7_no_ksi7_sl - &alt8_no_kso00_sl - &alt8_no_kso01_sl - &alt8_no_kso03_sl - &alt8_no_kso04_sl - &alt8_no_kso05_sl - &alt8_no_kso06_sl - &alt8_no_kso07_sl - &alt9_no_kso08_sl - &alt9_no_kso09_sl - &alt9_no_kso10_sl - &alt9_no_kso11_sl - &alt9_no_kso12_sl + pinctrl-0 = <&ksi0_gp31 + &ksi1_gp30 + &ksi2_gp27 + &ksi3_gp26 + &ksi4_gp25 + &ksi5_gp24 + &ksi6_gp23 + &ksi7_gp22 + &kso00_gp21 + &kso01_gp20 + &kso03_gp16 + &kso04_gp15 + &kso05_gp14 + &kso06_gp13 + &kso07_gp12 + &kso08_gp11 + &kso09_gp10 + &kso10_gp07 + &kso11_gp06 + &kso12_gp05 >; + pinctrl-names = "default"; }; diff --git a/zephyr/boards/arm/npcx9/npcx9.dtsi b/zephyr/boards/arm/npcx9/npcx9.dtsi index fa4fb6809f..57a6422da7 100644 --- a/zephyr/boards/arm/npcx9/npcx9.dtsi +++ b/zephyr/boards/arm/npcx9/npcx9.dtsi @@ -49,27 +49,28 @@ &cros_kb_raw { status = "okay"; /* No KSO2 (it's inverted and implemented by GPIO) */ - pinctrl-0 = <&alt7_no_ksi0_sl - &alt7_no_ksi1_sl - &alt7_no_ksi2_sl - &alt7_no_ksi3_sl - &alt7_no_ksi4_sl - &alt7_no_ksi5_sl - &alt7_no_ksi6_sl - &alt7_no_ksi7_sl - &alt8_no_kso00_sl - &alt8_no_kso01_sl - &alt8_no_kso03_sl - &alt8_no_kso04_sl - &alt8_no_kso05_sl - &alt8_no_kso06_sl - &alt8_no_kso07_sl - &alt9_no_kso08_sl - &alt9_no_kso09_sl - &alt9_no_kso10_sl - &alt9_no_kso11_sl - &alt9_no_kso12_sl - &alt9_no_kso13_sl - &alt9_no_kso14_sl + pinctrl-0 = <&ksi0_gp31 + &ksi1_gp30 + &ksi2_gp27 + &ksi3_gp26 + &ksi4_gp25 + &ksi5_gp24 + &ksi6_gp23 + &ksi7_gp22 + &kso00_gp21 + &kso01_gp20 + &kso03_gp16 + &kso04_gp15 + &kso05_gp14 + &kso06_gp13 + &kso07_gp12 + &kso08_gp11 + &kso09_gp10 + &kso10_gp07 + &kso11_gp06 + &kso12_gp05 + &kso13_gp04 + &kso14_gp82 >; + pinctrl-names = "default"; }; diff --git a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi index f1fb277302..9a9f221bfc 100644 --- a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi +++ b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi @@ -146,26 +146,27 @@ &cros_kb_raw { status = "okay"; - pinctrl-0 = <&alt7_no_ksi0_sl - &alt7_no_ksi1_sl - &alt7_no_ksi2_sl - &alt7_no_ksi3_sl - &alt7_no_ksi4_sl - &alt7_no_ksi5_sl - &alt7_no_ksi6_sl - &alt7_no_ksi7_sl - &alt8_no_kso00_sl - &alt8_no_kso01_sl - &alt8_no_kso02_sl - &alt8_no_kso03_sl - &alt8_no_kso04_sl - &alt8_no_kso05_sl - &alt8_no_kso06_sl - &alt8_no_kso07_sl - &alt9_no_kso08_sl - &alt9_no_kso09_sl - &alt9_no_kso10_sl - &alt9_no_kso11_sl - &alt9_no_kso12_sl + pinctrl-0 = <&ksi0_gp31 + &ksi1_gp30 + &ksi2_gp27 + &ksi3_gp26 + &ksi4_gp25 + &ksi5_gp24 + &ksi6_gp23 + &ksi7_gp22 + &kso00_gp21 + &kso01_gp20 + &kso02_gp17 + &kso03_gp16 + &kso04_gp15 + &kso05_gp14 + &kso06_gp13 + &kso07_gp12 + &kso08_gp11 + &kso09_gp10 + &kso10_gp07 + &kso11_gp06 + &kso12_gp05 >; + pinctrl-names = "default"; }; diff --git a/zephyr/drivers/cros_kb_raw/cros_kb_raw_npcx.c b/zephyr/drivers/cros_kb_raw/cros_kb_raw_npcx.c index 492c0aae82..cc60794d24 100644 --- a/zephyr/drivers/cros_kb_raw/cros_kb_raw_npcx.c +++ b/zephyr/drivers/cros_kb_raw/cros_kb_raw_npcx.c @@ -9,6 +9,7 @@ #include <zephyr/dt-bindings/clock/npcx_clock.h> #include <drivers/cros_kb_raw.h> #include <zephyr/drivers/clock_control.h> +#include <zephyr/drivers/pinctrl.h> #include <zephyr/kernel.h> #include <soc.h> #include <soc/nuvoton_npcx/reg_def_cros.h> @@ -37,9 +38,8 @@ struct cros_kb_raw_npcx_config { uintptr_t base; /* clock configuration */ struct npcx_clk_cfg clk_cfg; - /* pinmux configuration */ - const uint8_t alts_size; - const struct npcx_alt *alts_list; + /* Pin control configuration */ + const struct pinctrl_dev_config *pcfg; /* Keyboard scan input (KSI) wake-up irq */ int irq; /* Size of keyboard inputs-wui mapping array */ @@ -175,6 +175,7 @@ static int cros_kb_raw_npcx_init(const struct device *dev) { const struct cros_kb_raw_npcx_config *const config = DRV_CONFIG(dev); struct kbs_reg *const inst = HAL_INSTANCE(dev); + int ret; /* Pull-up KBSIN0-7 internally */ inst->KBSINPU = 0xFF; @@ -198,8 +199,12 @@ static int cros_kb_raw_npcx_init(const struct device *dev) SET_FIELD(inst->KBSCTL, NPCX_KBSCTL_KBHDRV_FIELD, 0x01); } - /* Configure pin-mux for kscan device */ - npcx_pinctrl_mux_configure(config->alts_list, config->alts_size, 1); + /* Configure pin control for kscan device */ + ret = pinctrl_apply_state(config->pcfg, PINCTRL_STATE_DEFAULT); + if (ret < 0) { + LOG_ERR("KB Raw pinctrl setup failed (%d)", ret); + return ret; + } /* Drive all column lines to low for detection any key press */ cros_kb_raw_npcx_drive_column(dev, KEYBOARD_COLUMN_ALL); @@ -220,16 +225,15 @@ static const struct cros_kb_raw_driver_api cros_kb_raw_npcx_driver_api = { .enable_interrupt = cros_kb_raw_npcx_enable_interrupt, }; -static const struct npcx_alt cros_kb_raw_alts[] = NPCX_DT_ALT_ITEMS_LIST(0); +PINCTRL_DT_INST_DEFINE(0); static const struct cros_kb_raw_npcx_config cros_kb_raw_cfg = { .base = DT_INST_REG_ADDR(0), - .alts_size = ARRAY_SIZE(cros_kb_raw_alts), - .alts_list = cros_kb_raw_alts, .clk_cfg = NPCX_DT_CLK_CFG_ITEM(0), .irq = DT_INST_IRQN(0), .wui_size = NPCX_DT_WUI_ITEMS_LEN(0), .wui_maps = NPCX_DT_WUI_ITEMS_LIST(0), + .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(0), }; /* Verify there's exactly 1 enabled cros,kb-raw-npcx node. */ diff --git a/zephyr/dts/bindings/cros_kb_raw/nuvoton,npcx-cros-kb-raw.yaml b/zephyr/dts/bindings/cros_kb_raw/nuvoton,npcx-cros-kb-raw.yaml index 7544039ffc..241cd11cbf 100644 --- a/zephyr/dts/bindings/cros_kb_raw/nuvoton,npcx-cros-kb-raw.yaml +++ b/zephyr/dts/bindings/cros_kb_raw/nuvoton,npcx-cros-kb-raw.yaml @@ -5,7 +5,7 @@ description: Nuvoton, NPCX-cros-kb-raw node compatible: "nuvoton,npcx-cros-kb-raw" -include: cros-kb-raw-controller.yaml +include: [cros-kb-raw-controller.yaml, pinctrl-device.yaml] properties: reg: @@ -15,9 +15,10 @@ properties: required: true pinctrl-0: - type: phandles required: true - description: configurations of pinmux controllers + + pinctrl-names: + required: true wui_maps: type: phandles diff --git a/zephyr/include/cros/nuvoton/npcx.dtsi b/zephyr/include/cros/nuvoton/npcx.dtsi index 92e36427e5..dbc4c3daaa 100644 --- a/zephyr/include/cros/nuvoton/npcx.dtsi +++ b/zephyr/include/cros/nuvoton/npcx.dtsi @@ -81,36 +81,6 @@ label = "CROS_KB_RAW_0"; interrupts = <49 4>; clocks = <&pcc NPCX_CLOCK_BUS_APB1 NPCX_PWDWN_CTL1 0>; - /* - * No KSO2 (It's inverted and implemented by GPIO for - * CONFIG_KEYBOARD_COL2_INVERTED.) - */ - pinctrl-0 = <&alt7_no_ksi0_sl - &alt7_no_ksi1_sl - &alt7_no_ksi2_sl - &alt7_no_ksi3_sl - &alt7_no_ksi4_sl - &alt7_no_ksi5_sl - &alt7_no_ksi6_sl - &alt7_no_ksi7_sl - &alt8_no_kso00_sl - &alt8_no_kso01_sl - &alt8_no_kso03_sl - &alt8_no_kso04_sl - &alt8_no_kso05_sl - &alt8_no_kso06_sl - &alt8_no_kso07_sl - &alt9_no_kso08_sl - &alt9_no_kso09_sl - &alt9_no_kso10_sl - &alt9_no_kso11_sl - &alt9_no_kso12_sl - &alt9_no_kso13_sl - &alt9_no_kso14_sl - &alt9_no_kso15_sl - &alta_no_kso16_sl - &alta_no_kso17_sl - >; wui_maps = <&wui_io31 &wui_io30 &wui_io27 &wui_io26 &wui_io25 &wui_io24 &wui_io23 &wui_io22>; }; |