/* * Copyright (c) 2016 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ /** * @addtogroup t_driver_uart * @{ * @defgroup t_uart_basic test_uart_basic_operations * @} */ #include #include "test_uart.h" #ifdef CONFIG_SHELL TC_CMD_DEFINE(test_uart_configure) TC_CMD_DEFINE(test_uart_config_get) TC_CMD_DEFINE(test_uart_poll_out) TC_CMD_DEFINE(test_uart_poll_in) #if CONFIG_UART_INTERRUPT_DRIVEN TC_CMD_DEFINE(test_uart_fifo_read) TC_CMD_DEFINE(test_uart_fifo_fill) TC_CMD_DEFINE(test_uart_pending) #endif SHELL_CMD_REGISTER(test_uart_configure, NULL, NULL, TC_CMD_ITEM(test_uart_configure)); SHELL_CMD_REGISTER(test_uart_config_get, NULL, NULL, TC_CMD_ITEM(test_uart_config_get)); SHELL_CMD_REGISTER(test_uart_poll_in, NULL, NULL, TC_CMD_ITEM(test_uart_poll_in)); SHELL_CMD_REGISTER(test_uart_poll_out, NULL, NULL, TC_CMD_ITEM(test_uart_poll_out)); #if CONFIG_UART_INTERRUPT_DRIVEN SHELL_CMD_REGISTER(test_uart_fifo_read, NULL, NULL, TC_CMD_ITEM(test_uart_fifo_read)); SHELL_CMD_REGISTER(test_uart_fifo_fill, NULL, NULL, TC_CMD_ITEM(test_uart_fifo_fill)); SHELL_CMD_REGISTER(test_uart_pending, NULL, NULL, TC_CMD_ITEM(test_uart_pending)); #endif #endif void *uart_basic_setup(void) { #if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) const struct device *dev; uint32_t dtr = 0; dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console)); if (!device_is_ready(dev) || usb_enable(NULL)) { return NULL; } while (!dtr) { uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr); k_sleep(K_MSEC(100)); } #endif return NULL; } #ifndef CONFIG_SHELL ZTEST_SUITE(uart_basic_api, NULL, uart_basic_setup, NULL, NULL, NULL); /* The UART pending test should be test finally. */ ZTEST_SUITE(uart_basic_api_pending, NULL, uart_basic_setup, NULL, NULL, NULL); #endif