1 /*
2  * Copyright (c) 2023 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * Header file for the INTEL LW UART
9  */
10 
11 #ifndef ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_
12 #define ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_
13 
14 /* End of packet feature.
15  * Driver will trigger interrupt upon receiving end of package character.
16  * Please enable CONFIG_UART_INTEL_LW_EOP to use this feature.
17  * Use the api: uart_drv_cmd with CMD_ENABLE_EOP to enable the feature.
18  * This cmd will write the ip register and also set a flag to the driver.
19  * The flag will modify uart_irq_callback_user_data_set
20  * to set call back function for eop interrupt.
21  * Flag is cleared after uart_irq_callback_user_data_set is called.
22  */
23 #define CMD_ENABLE_EOP          0x01
24 #define CMD_DISABLE_EOP         0x02
25 
26 /* Transmit break feature.
27  * Use uart_drv_cmd with CMD_TRBK_EN to break ongoing transmit.
28  * After this cmd, uart is unable to transmit any data.
29  * Please use CMD_TRBK_DIS to resume normal operation.
30  * Please also call uart_intel_lw_err_check, to clear the error caused
31  * by transmit break.
32  */
33 #define CMD_TRBK_EN             0x03
34 #define CMD_TRBK_DIS            0x04
35 
36 /* This driver supports interrupt driven api.
37  * Polling for data under normal operation, might cause unexpected behaviour.
38  * If users wish to poll for data, please use the api:
39  * uart_drv_cmd with CMD_POLL_ASSERT_RTS before polling out/in.
40  * Then use CMD_POLL_DEASSERT_RTS to resume normal operation after polling.
41  */
42 #define CMD_POLL_ASSERT_RTS     0x05
43 #define CMD_POLL_DEASSERT_RTS   0x06
44 
45 #endif /* ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_ */
46