diff --git a/drivers/pinctrl/pinctrl_ite_it8xxx2.c b/drivers/pinctrl/pinctrl_ite_it8xxx2.c index 2c7bd3efe1e..742f5e766fe 100644 --- a/drivers/pinctrl/pinctrl_ite_it8xxx2.c +++ b/drivers/pinctrl/pinctrl_ite_it8xxx2.c @@ -249,8 +249,19 @@ static int pinctrl_kscan_it8xxx2_configure_pins(const pinctrl_soc_pin_t *pins) return -EINVAL; } - /* Set a pin of KSI[7:0]/KSO[15:0] to kbs mode */ - *reg_gctrl &= ~pin_mask; + switch (pins->alt_func) { + case IT8XXX2_ALT_FUNC_1: + /* Set a pin of KSI[7:0]/KSO[15:0] to kbs mode */ + *reg_gctrl &= ~pin_mask; + break; + case IT8XXX2_ALT_DEFAULT: + /* Set a pin of KSI[7:0]/KSO[15:0] to gpio mode */ + *reg_gctrl |= pin_mask; + break; + default: + LOG_ERR("Alternate function not supported"); + return -ENOTSUP; + } return 0; } diff --git a/dts/riscv/ite/it8xxx2-pinctrl-map.dtsi b/dts/riscv/ite/it8xxx2-pinctrl-map.dtsi index 7f05fc26065..505c19823f1 100644 --- a/dts/riscv/ite/it8xxx2-pinctrl-map.dtsi +++ b/dts/riscv/ite/it8xxx2-pinctrl-map.dtsi @@ -211,6 +211,86 @@ bias-pull-up; }; + /* Keyboard sleep function */ + ksi0_sleep: ksi0_sleep { + pinmuxs = <&pinctrlksi 0 IT8XXX2_ALT_DEFAULT>; + }; + ksi1_sleep: ksi1_sleep { + pinmuxs = <&pinctrlksi 1 IT8XXX2_ALT_DEFAULT>; + }; + ksi2_sleep: ksi2_sleep { + pinmuxs = <&pinctrlksi 2 IT8XXX2_ALT_DEFAULT>; + }; + ksi3_sleep: ksi3_sleep { + pinmuxs = <&pinctrlksi 3 IT8XXX2_ALT_DEFAULT>; + }; + ksi4_sleep: ksi4_sleep { + pinmuxs = <&pinctrlksi 4 IT8XXX2_ALT_DEFAULT>; + }; + ksi5_sleep: ksi5_sleep { + pinmuxs = <&pinctrlksi 5 IT8XXX2_ALT_DEFAULT>; + }; + ksi6_sleep: ksi6_sleep { + pinmuxs = <&pinctrlksi 6 IT8XXX2_ALT_DEFAULT>; + }; + ksi7_sleep: ksi7_sleep { + pinmuxs = <&pinctrlksi 7 IT8XXX2_ALT_DEFAULT>; + }; + kso0_sleep: kso0_sleep { + pinmuxs = <&pinctrlksol 0 IT8XXX2_ALT_DEFAULT>; + }; + kso1_sleep: kso1_sleep { + pinmuxs = <&pinctrlksol 1 IT8XXX2_ALT_DEFAULT>; + }; + kso2_sleep: kso2_sleep { + pinmuxs = <&pinctrlksol 2 IT8XXX2_ALT_DEFAULT>; + }; + kso3_sleep: kso3_sleep { + pinmuxs = <&pinctrlksol 3 IT8XXX2_ALT_DEFAULT>; + }; + kso4_sleep: kso4_sleep { + pinmuxs = <&pinctrlksol 4 IT8XXX2_ALT_DEFAULT>; + }; + kso5_sleep: kso5_sleep { + pinmuxs = <&pinctrlksol 5 IT8XXX2_ALT_DEFAULT>; + }; + kso6_sleep: kso6_sleep { + pinmuxs = <&pinctrlksol 6 IT8XXX2_ALT_DEFAULT>; + }; + kso7_sleep: kso7_sleep { + pinmuxs = <&pinctrlksol 7 IT8XXX2_ALT_DEFAULT>; + }; + kso8_sleep: kso8_sleep { + pinmuxs = <&pinctrlksoh 0 IT8XXX2_ALT_DEFAULT>; + }; + kso9_sleep: kso9_sleep { + pinmuxs = <&pinctrlksoh 1 IT8XXX2_ALT_DEFAULT>; + }; + kso10_sleep: kso10_sleep { + pinmuxs = <&pinctrlksoh 2 IT8XXX2_ALT_DEFAULT>; + }; + kso11_sleep: kso11_sleep { + pinmuxs = <&pinctrlksoh 3 IT8XXX2_ALT_DEFAULT>; + }; + kso12_sleep: kso12_sleep { + pinmuxs = <&pinctrlksoh 4 IT8XXX2_ALT_DEFAULT>; + }; + kso13_sleep: kso13_sleep { + pinmuxs = <&pinctrlksoh 5 IT8XXX2_ALT_DEFAULT>; + }; + kso14_sleep: kso14_sleep { + pinmuxs = <&pinctrlksoh 6 IT8XXX2_ALT_DEFAULT>; + }; + kso15_sleep: kso15_sleep { + pinmuxs = <&pinctrlksoh 7 IT8XXX2_ALT_DEFAULT>; + }; + kso16_gpc3_sleep: kso16_gpc3_sleep { + pinmuxs = <&pinctrlc 3 IT8XXX2_ALT_DEFAULT>; + }; + kso17_gpc5_sleep: kso17_gpc5_sleep { + pinmuxs = <&pinctrlc 5 IT8XXX2_ALT_DEFAULT>; + }; + /* PECI alternate function */ peci_gpf6_default: peci_gpf6_default { pinmuxs = <&pinctrlf 6 IT8XXX2_ALT_FUNC_3>;