|  | /** @file | 
|  | * @brief Modem interface for UART header file. | 
|  | * | 
|  | * Modem interface UART handling for modem context driver. | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * Copyright (c) 2019 Foundries.io | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef ZEPHYR_INCLUDE_DRIVERS_MODEM_MODEM_IFACE_UART_H_ | 
|  | #define ZEPHYR_INCLUDE_DRIVERS_MODEM_MODEM_IFACE_UART_H_ | 
|  |  | 
|  | #include <kernel.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | struct modem_iface_uart_data { | 
|  | /* HW flow control */ | 
|  | bool hw_flow_control; | 
|  |  | 
|  | /* ring buffer char buffer */ | 
|  | char *rx_rb_buf; | 
|  | size_t rx_rb_buf_len; | 
|  |  | 
|  | /* ring buffer */ | 
|  | struct ring_buf rx_rb; | 
|  |  | 
|  | /* rx semaphore */ | 
|  | struct k_sem rx_sem; | 
|  | }; | 
|  |  | 
|  | /** | 
|  | * @brief  Init modem interface device for UART | 
|  | * | 
|  | * @details This can be called after the init if the UART is changed. | 
|  | * | 
|  | * @param  *iface: modem interface to initialize. | 
|  | * @param  *dev_name: name of the UART device to use | 
|  | * | 
|  | * @retval 0 if ok, < 0 if error. | 
|  | */ | 
|  | int modem_iface_uart_init_dev(struct modem_iface *iface, | 
|  | const struct device *dev); | 
|  |  | 
|  | /** | 
|  | * @brief  Init modem interface for UART | 
|  | * | 
|  | * @param  *iface: modem interface to initialize. | 
|  | * @param  *data: modem interface data to use | 
|  | * @param  *dev_name: name of the UART device to use | 
|  | * | 
|  | * @retval 0 if ok, < 0 if error. | 
|  | */ | 
|  | int modem_iface_uart_init(struct modem_iface *iface, | 
|  | struct modem_iface_uart_data *data, | 
|  | const struct device *dev); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* ZEPHYR_INCLUDE_DRIVERS_MODEM_MODEM_IFACE_UART_H_ */ |