diff --git a/boards/arm/npcx7m6fb_evb/npcx7m6fb_evb.dts b/boards/arm/npcx7m6fb_evb/npcx7m6fb_evb.dts index debcc367de5..ca2eb8c3fa7 100644 --- a/boards/arm/npcx7m6fb_evb/npcx7m6fb_evb.dts +++ b/boards/arm/npcx7m6fb_evb/npcx7m6fb_evb.dts @@ -70,7 +70,9 @@ &uart1 { status = "okay"; current-speed = <115200>; - pinctrl-0 = <&altc_uart1_sl2>; /* Use UART1_SL2 ie. PIN64.65 */ + /* Use UART1_SL2 ie. PIN64.65 */ + pinctrl-0 = <&uart1_2_sin_sout_gp64_65>; + pinctrl-names = "default"; }; &pwm6 { diff --git a/boards/arm/npcx9m6f_evb/npcx9m6f_evb.dts b/boards/arm/npcx9m6f_evb/npcx9m6f_evb.dts index 5911bfae827..871eee84fa9 100644 --- a/boards/arm/npcx9m6f_evb/npcx9m6f_evb.dts +++ b/boards/arm/npcx9m6f_evb/npcx9m6f_evb.dts @@ -83,7 +83,9 @@ status = "okay"; current-speed = <115200>; /* Use UART1_SL2 ie. PIN64.65 */ - pinctrl-0 = <&altj_cr_sin1_sl2 &altj_cr_sout1_sl2>; + pinctrl-0 = <&uart1_2_sin_gp64 + &uart1_2_sout_gp65>; + pinctrl-names = "default"; }; &pwm6 { diff --git a/drivers/serial/uart_npcx.c b/drivers/serial/uart_npcx.c index 722a15b6bd4..2247912ac55 100644 --- a/drivers/serial/uart_npcx.c +++ b/drivers/serial/uart_npcx.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -31,8 +32,7 @@ struct uart_npcx_config { /* int-mux configuration */ const struct npcx_wui uart_rx_wui; /* pinmux configuration */ - const uint8_t alts_size; - const struct npcx_alt *alts_list; + const struct pinctrl_dev_config *pcfg; }; enum uart_pm_policy_state_flag { @@ -499,7 +499,11 @@ static int uart_npcx_init(const struct device *dev) } /* Configure pin-mux for uart device */ - npcx_pinctrl_mux_configure(config->alts_list, config->alts_size, 1); + ret = pinctrl_apply_state(config->pcfg, PINCTRL_STATE_DEFAULT); + if (ret < 0) { + LOG_ERR("UART pinctrl setup failed (%d)", ret); + return ret; + } return 0; } @@ -524,14 +528,13 @@ static int uart_npcx_init(const struct device *dev) #define NPCX_UART_INIT(i) \ NPCX_UART_IRQ_CONFIG_FUNC_DECL(i); \ \ - static const struct npcx_alt uart_alts##i[] = NPCX_DT_ALT_ITEMS_LIST(i); \ + PINCTRL_DT_INST_DEFINE(i); \ \ static const struct uart_npcx_config uart_npcx_cfg_##i = { \ .inst = (struct uart_reg *)DT_INST_REG_ADDR(i), \ .clk_cfg = NPCX_DT_CLK_CFG_ITEM(i), \ .uart_rx_wui = NPCX_DT_WUI_ITEM_BY_NAME(0, uart_rx), \ - .alts_size = ARRAY_SIZE(uart_alts##i), \ - .alts_list = uart_alts##i, \ + .pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(i), \ NPCX_UART_IRQ_CONFIG_FUNC_INIT(i) \ }; \ \ diff --git a/dts/arm/nuvoton/npcx7.dtsi b/dts/arm/nuvoton/npcx7.dtsi index 0a48e7040cc..80c2bf3fd60 100644 --- a/dts/arm/nuvoton/npcx7.dtsi +++ b/dts/arm/nuvoton/npcx7.dtsi @@ -76,7 +76,6 @@ reg = <0x400C4000 0x2000>; interrupts = <33 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB2 NPCX_PWDWN_CTL1 4>; - pinctrl-0 = <&alta_uart1_sl1>; /* PIN10.11 */ uart-rx = <&wui_cr_sin1>; status = "disabled"; label = "UART_1"; @@ -87,7 +86,6 @@ reg = <0x400C6000 0x2000>; interrupts = <32 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB2 NPCX_PWDWN_CTL7 6>; - pinctrl-0 = <&alta_uart2_sl>; /* PIN75.86 */ uart-rx = <&wui_cr_sin2>; status = "disabled"; label = "UART_2"; diff --git a/dts/arm/nuvoton/npcx9.dtsi b/dts/arm/nuvoton/npcx9.dtsi index 49d7dac2e31..0c3a9f6c59d 100644 --- a/dts/arm/nuvoton/npcx9.dtsi +++ b/dts/arm/nuvoton/npcx9.dtsi @@ -77,7 +77,6 @@ reg = <0x400E0000 0x2000>; interrupts = <33 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB4 NPCX_PWDWN_CTL1 4>; - pinctrl-0 = <&altj_cr_sin1_sl1 &altj_cr_sout1_sl1>; /* PIN10.11 */ uart-rx = <&wui_cr_sin1>; status = "disabled"; label = "UART_1"; @@ -88,7 +87,6 @@ reg = <0x400E2000 0x2000>; interrupts = <32 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB4 NPCX_PWDWN_CTL7 6>; - pinctrl-0 = <&altj_cr_sin2_sl &altj_cr_sout2_sl>; /* PIN75.86 */ uart-rx = <&wui_cr_sin2>; status = "disabled"; label = "UART_2"; @@ -99,7 +97,6 @@ reg = <0x400E4000 0x2000>; interrupts = <38 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB4 NPCX_PWDWN_CTL7 4>; - pinctrl-0 = <&altj_cr_sin3_sl &altj_cr_sout3_sl>; /* PIND3.D6 */ uart-rx = <&wui_cr_sin3>; status = "disabled"; label = "UART_3"; @@ -110,7 +107,6 @@ reg = <0x400E6000 0x2000>; interrupts = <39 3>; clocks = <&pcc NPCX_CLOCK_BUS_APB4 NPCX_PWDWN_CTL7 3>; - pinctrl-0 = <&alte_cr_sin4_sl &alte_cr_sout4_sl>; /* PIN17.35 */ uart-rx = <&wui_cr_sin4>; status = "disabled"; label = "UART_4"; diff --git a/dts/bindings/serial/nuvoton,npcx-uart.yaml b/dts/bindings/serial/nuvoton,npcx-uart.yaml index d0e0e86d149..8b309a90d77 100644 --- a/dts/bindings/serial/nuvoton,npcx-uart.yaml +++ b/dts/bindings/serial/nuvoton,npcx-uart.yaml @@ -5,7 +5,7 @@ description: Nuvoton, NPCX-UART node compatible: "nuvoton,npcx-uart" -include: uart-controller.yaml +include: [uart-controller.yaml, pinctrl-device.yaml] properties: reg: @@ -13,9 +13,9 @@ properties: clocks: required: true pinctrl-0: - type: phandles required: true - description: configurations of pinmux controllers + pinctrl-names: + required: true uart-rx: type: phandle required: true