1 /*
2  * Copyright (c) 2016 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @addtogroup t_driver_uart
9  * @{
10  * @defgroup t_uart_basic test_uart_basic_operations
11  * @}
12  */
13 
14 #include <zephyr/usb/usb_device.h>
15 #include "test_uart.h"
16 
17 #ifdef CONFIG_SHELL
18 TC_CMD_DEFINE(test_uart_configure)
19 TC_CMD_DEFINE(test_uart_config_get)
20 TC_CMD_DEFINE(test_uart_poll_out)
21 TC_CMD_DEFINE(test_uart_poll_in)
22 #if CONFIG_UART_INTERRUPT_DRIVEN
23 TC_CMD_DEFINE(test_uart_fifo_read)
24 TC_CMD_DEFINE(test_uart_fifo_fill)
25 TC_CMD_DEFINE(test_uart_pending)
26 #endif
27 
28 SHELL_CMD_REGISTER(test_uart_configure, NULL, NULL,
29 			TC_CMD_ITEM(test_uart_configure));
30 SHELL_CMD_REGISTER(test_uart_config_get, NULL, NULL,
31 			TC_CMD_ITEM(test_uart_config_get));
32 SHELL_CMD_REGISTER(test_uart_poll_in, NULL, NULL,
33 			TC_CMD_ITEM(test_uart_poll_in));
34 SHELL_CMD_REGISTER(test_uart_poll_out, NULL, NULL,
35 			TC_CMD_ITEM(test_uart_poll_out));
36 #if CONFIG_UART_INTERRUPT_DRIVEN
37 SHELL_CMD_REGISTER(test_uart_fifo_read, NULL, NULL,
38 			TC_CMD_ITEM(test_uart_fifo_read));
39 SHELL_CMD_REGISTER(test_uart_fifo_fill, NULL, NULL,
40 			TC_CMD_ITEM(test_uart_fifo_fill));
41 SHELL_CMD_REGISTER(test_uart_pending, NULL, NULL,
42 			TC_CMD_ITEM(test_uart_pending));
43 #endif
44 
45 
46 #endif
47 
uart_basic_setup(void)48 void *uart_basic_setup(void)
49 {
50 #if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
51 	const struct device *dev;
52 	uint32_t dtr = 0;
53 
54 	dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
55 	if (!device_is_ready(dev) || usb_enable(NULL)) {
56 		return NULL;
57 	}
58 
59 	while (!dtr) {
60 		uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr);
61 		k_sleep(K_MSEC(100));
62 	}
63 #endif
64 	return NULL;
65 }
66 
67 #ifndef CONFIG_SHELL
68 ZTEST_SUITE(uart_basic_api, NULL, uart_basic_setup, NULL, NULL, NULL);
69 
70 /* The UART pending test should be test finally. */
71 ZTEST_SUITE(uart_basic_api_pending, NULL, uart_basic_setup, NULL, NULL, NULL);
72 #endif
73