blob: 8ad8c26aab8352a1c57c556371ebe45bbbce8d05 [file] [log] [blame]
/*
* Copyright (c) 2023 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* Header file for the INTEL LW UART
*/
#ifndef ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_
#define ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_
/* End of packet feature.
* Driver will trigger interrupt upon receiving end of package character.
* Please enable CONFIG_UART_INTEL_LW_EOP to use this feature.
* Use the api: uart_drv_cmd with CMD_ENABLE_EOP to enable the feature.
* This cmd will write the ip register and also set a flag to the driver.
* The flag will modify uart_irq_callback_user_data_set
* to set call back function for eop interrupt.
* Flag is cleared after uart_irq_callback_user_data_set is called.
*/
#define CMD_ENABLE_EOP 0x01
#define CMD_DISABLE_EOP 0x02
/* Transmit break feature.
* Use uart_drv_cmd with CMD_TRBK_EN to break ongoing transmit.
* After this cmd, uart is unable to transmit any data.
* Please use CMD_TRBK_DIS to resume normal operation.
* Please also call uart_intel_lw_err_check, to clear the error caused
* by transmit break.
*/
#define CMD_TRBK_EN 0x03
#define CMD_TRBK_DIS 0x04
/* This driver supports interrupt driven api.
* Polling for data under normal operation, might cause unexpected behaviour.
* If users wish to poll for data, please use the api:
* uart_drv_cmd with CMD_POLL_ASSERT_RTS before polling out/in.
* Then use CMD_POLL_DEASSERT_RTS to resume normal operation after polling.
*/
#define CMD_POLL_ASSERT_RTS 0x05
#define CMD_POLL_DEASSERT_RTS 0x06
#endif /* ZEPHYR_DRIVERS_SERIAL_UART_INTEL_LW_H_ */