From 2ebad47eaa9a1a7bd7bceb82d8f61bcbd367eb00 Mon Sep 17 00:00:00 2001 From: Fabio Baltieri Date: Fri, 26 May 2023 16:35:18 +0000 Subject: [PATCH] drivers: serial: ite_it8xxx2: add a dedicated priority symbol The uart_ite_it8xxx2 is relying on a node that depends on a matching ns16550 symbol, such as: ite_uart1_wrapper: uartwrapper@f02720 { compatible = "ite,it8xxx2-uart"; ... uart-dev = <&uart1>; }; But the two are currently setup to initialize at the same level and priority. Add a dedicated priority symbol so that the wrapper device is always initialized after the main one, regardless of the linker order. Signed-off-by: Fabio Baltieri --- drivers/serial/Kconfig.it8xxx2 | 9 +++++++++ drivers/serial/uart_ite_it8xxx2.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/serial/Kconfig.it8xxx2 b/drivers/serial/Kconfig.it8xxx2 index a58ff6764fe..0a7a59ce08d 100644 --- a/drivers/serial/Kconfig.it8xxx2 +++ b/drivers/serial/Kconfig.it8xxx2 @@ -11,3 +11,12 @@ config UART_ITE_IT8XXX2 to handle IT8XXX2 specific UART features. In addition to use pm_action_cb, we also need to make some setting at uart_it8xxx2_init. + +config UART_ITE_IT8XXX2_INIT_PRIORITY + int "ITE IT8XXX2 UART wrapper init priority" + default 51 + depends on UART_ITE_IT8XXX2 + help + Initialization priority for the UART wrapper driver on ITE IT8XXX2, + must be set to a lower priority than the matching ns16550 device + (CONFIG_SERIAL_INIT_PRIORITY). diff --git a/drivers/serial/uart_ite_it8xxx2.c b/drivers/serial/uart_ite_it8xxx2.c index 166fee9a93c..9bf79e570eb 100644 --- a/drivers/serial/uart_ite_it8xxx2.c +++ b/drivers/serial/uart_ite_it8xxx2.c @@ -203,7 +203,7 @@ static int uart_it8xxx2_init(const struct device *dev) &uart_it8xxx2_data_##inst, \ &uart_it8xxx2_cfg_##inst, \ PRE_KERNEL_1, \ - CONFIG_SERIAL_INIT_PRIORITY, \ + CONFIG_UART_ITE_IT8XXX2_INIT_PRIORITY, \ NULL); DT_INST_FOREACH_STATUS_OKAY(UART_ITE_IT8XXX2_INIT)