1 /*
2  * Copyright 2019-2020, 2023-2024 NXP
3  * All rights reserved.
4  *
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef __SERIAL_PORT_INTERNAL_H__
10 #define __SERIAL_PORT_INTERNAL_H__
11 
12 /*******************************************************************************
13  * Definitions
14  ******************************************************************************/
15 
16 /*******************************************************************************
17  * API
18  ******************************************************************************/
19 
20 #if defined(__cplusplus)
21 extern "C" {
22 #endif /* _cplusplus */
23 
24 #if (defined(SERIAL_PORT_TYPE_UART) && (SERIAL_PORT_TYPE_UART > 0U))
25 serial_manager_status_t Serial_UartInit(serial_handle_t serialHandle, void *serialConfig);
26 serial_manager_status_t Serial_UartDeinit(serial_handle_t serialHandle);
27 serial_manager_status_t Serial_UartWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
28 serial_manager_status_t Serial_UartRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
29 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
30 serial_manager_status_t Serial_UartCancelWrite(serial_handle_t serialHandle);
31 serial_manager_status_t Serial_UartInstallTxCallback(serial_handle_t serialHandle,
32                                                      serial_manager_callback_t callback,
33                                                      void *callbackParam);
34 serial_manager_status_t Serial_UartInstallRxCallback(serial_handle_t serialHandle,
35                                                      serial_manager_callback_t callback,
36                                                      void *callbackParam);
37 void Serial_UartIsrFunction(serial_handle_t serialHandle);
38 #endif
39 serial_manager_status_t Serial_UartEnterLowpower(serial_handle_t serialHandle);
40 serial_manager_status_t Serial_UartExitLowpower(serial_handle_t serialHandle);
41 #endif
42 #if (defined(SERIAL_PORT_TYPE_UART_DMA) && (SERIAL_PORT_TYPE_UART_DMA > 0U))
43 serial_manager_status_t Serial_UartDmaInit(serial_handle_t serialHandle, void *serialConfig);
44 serial_manager_status_t Serial_UartDmaDeinit(serial_handle_t serialHandle);
45 serial_manager_status_t Serial_UartDmaWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
46 
47 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
48 serial_manager_status_t Serial_UartDmaCancelWrite(serial_handle_t serialHandle);
49 serial_manager_status_t Serial_UartDmaInstallTxCallback(serial_handle_t serialHandle,
50                                                         serial_manager_callback_t callback,
51                                                         void *callbackParam);
52 serial_manager_status_t Serial_UartDmaInstallRxCallback(serial_handle_t serialHandle,
53                                                         serial_manager_callback_t callback,
54                                                         void *callbackParam);
55 void Serial_UartDmaIsrFunction(serial_handle_t serialHandle);
56 #endif
57 serial_manager_status_t Serial_UartDmaEnterLowpower(serial_handle_t serialHandle);
58 serial_manager_status_t Serial_UartDmaExitLowpower(serial_handle_t serialHandle);
59 #endif
60 
61 #if (defined(SERIAL_PORT_TYPE_RPMSG) && (SERIAL_PORT_TYPE_RPMSG > 0U))
62 serial_manager_status_t Serial_RpmsgInit(serial_handle_t serialHandle, void *serialConfig);
63 serial_manager_status_t Serial_RpmsgDeinit(serial_handle_t serialHandle);
64 serial_manager_status_t Serial_RpmsgWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
65 serial_manager_status_t Serial_RpmsgWriteBlocking(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
66 #if !(defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
67 serial_manager_status_t Serial_RpmsgRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
68 #endif
69 
70 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
71 serial_manager_status_t Serial_RpmsgCancelWrite(serial_handle_t serialHandle);
72 serial_manager_status_t Serial_RpmsgInstallTxCallback(serial_handle_t serialHandle,
73                                                       serial_manager_callback_t callback,
74                                                       void *callbackParam);
75 serial_manager_status_t Serial_RpmsgInstallRxCallback(serial_handle_t serialHandle,
76                                                       serial_manager_callback_t callback,
77                                                       void *callbackParam);
78 #endif
79 serial_manager_status_t Serial_RpmsgEnterLowpower(serial_handle_t serialHandle);
80 serial_manager_status_t Serial_RpmsgExitLowpower(serial_handle_t serialHandle);
81 #endif
82 
83 #if (defined(SERIAL_PORT_TYPE_USBCDC) && (SERIAL_PORT_TYPE_USBCDC > 0U))
84 serial_manager_status_t Serial_UsbCdcInit(serial_handle_t serialHandle, void *config);
85 serial_manager_status_t Serial_UsbCdcDeinit(serial_handle_t serialHandle);
86 serial_manager_status_t Serial_UsbCdcWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
87 serial_manager_status_t Serial_UsbCdcRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
88 serial_manager_status_t Serial_UsbCdcCancelWrite(serial_handle_t serialHandle);
89 serial_manager_status_t Serial_UsbCdcInstallTxCallback(serial_handle_t serialHandle,
90                                                        serial_manager_callback_t callback,
91                                                        void *callbackParam);
92 serial_manager_status_t Serial_UsbCdcInstallRxCallback(serial_handle_t serialHandle,
93                                                        serial_manager_callback_t callback,
94                                                        void *callbackParam);
95 void Serial_UsbCdcIsrFunction(serial_handle_t serialHandle);
96 serial_manager_status_t Serial_UsbCdcGetConnectedStatus(serial_handle_t serialHandle);
97 #endif
98 
99 #if (defined(SERIAL_PORT_TYPE_SWO) && (SERIAL_PORT_TYPE_SWO > 0U))
100 serial_manager_status_t Serial_SwoInit(serial_handle_t serialHandle, void *config);
101 serial_manager_status_t Serial_SwoDeinit(serial_handle_t serialHandle);
102 serial_manager_status_t Serial_SwoWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
103 #if !(defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
104 serial_manager_status_t Serial_SwoRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
105 #endif
106 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
107 serial_manager_status_t Serial_SwoCancelWrite(serial_handle_t serialHandle);
108 serial_manager_status_t Serial_SwoInstallTxCallback(serial_handle_t serialHandle,
109                                                     serial_manager_callback_t callback,
110                                                     void *callbackParam);
111 serial_manager_status_t Serial_SwoInstallRxCallback(serial_handle_t serialHandle,
112                                                     serial_manager_callback_t callback,
113                                                     void *callbackParam);
114 void Serial_SwoIsrFunction(serial_handle_t serialHandle);
115 #endif
116 #endif
117 
118 #if (defined(SERIAL_PORT_TYPE_VIRTUAL) && (SERIAL_PORT_TYPE_VIRTUAL > 0U))
119 serial_manager_status_t Serial_PortVirtualInit(serial_handle_t serialHandle, void *config);
120 serial_manager_status_t Serial_PortVirtualDeinit(serial_handle_t serialHandle);
121 serial_manager_status_t Serial_PortVirtualWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
122 serial_manager_status_t Serial_PortVirtualRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
123 serial_manager_status_t Serial_PortVirtualCancelWrite(serial_handle_t serialHandle);
124 serial_manager_status_t Serial_PortVirtualInstallTxCallback(serial_handle_t serialHandle,
125                                                             serial_manager_callback_t callback,
126                                                             void *callbackParam);
127 serial_manager_status_t Serial_PortVirtualInstallRxCallback(serial_handle_t serialHandle,
128                                                             serial_manager_callback_t callback,
129                                                             void *callbackParam);
130 void Serial_PortVirtualIsrFunction(serial_handle_t serialHandle);
131 #endif
132 #if (defined(SERIAL_PORT_TYPE_SPI_MASTER) && SERIAL_PORT_TYPE_SPI_MASTER > 0U)
133 serial_manager_status_t Serial_SpiMasterInit(serial_handle_t serialHandle, void *serialConfig);
134 serial_manager_status_t Serial_SpiMasterDeinit(serial_handle_t serialHandle);
135 void Serial_SpiMasterTxCallback(hal_spi_master_handle_t handle, hal_spi_status_t status, void *callbackParam);
136 void Serial_SpiMasterRxCallback(hal_spi_master_handle_t handle, hal_spi_status_t status, void *callbackParam);
137 serial_manager_status_t Serial_SpiMasterWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
138 serial_manager_status_t Serial_SpiMasterRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
139 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
140 serial_manager_status_t Serial_SpiMasterInstallTxCallback(serial_handle_t serialHandle,
141                                                           serial_manager_callback_t callback,
142                                                           void *callbackParam);
143 serial_manager_status_t Serial_SpiMasterInstallRxCallback(serial_handle_t serialHandle,
144                                                           serial_manager_callback_t callback,
145                                                           void *callbackParam);
146 serial_manager_status_t Serial_SpiMasterCancelWrite(serial_handle_t serialHandle);
147 
148 #endif
149 #endif
150 
151 #if (defined(SERIAL_PORT_TYPE_SPI_SLAVE) && (SERIAL_PORT_TYPE_SPI_SLAVE > 0U))
152 serial_manager_status_t Serial_SpiSlaveInit(serial_handle_t serialHandle, void *serialConfig);
153 serial_manager_status_t Serial_SpiSlaveDeinit(serial_handle_t serialHandle);
154 void Serial_SpiSlaveTxCallback(hal_spi_slave_handle_t handle, hal_spi_status_t status, void *callbackParam);
155 void Serial_SpiSlaveRxCallback(hal_spi_slave_handle_t handle, hal_spi_status_t status, void *callbackParam);
156 serial_manager_status_t Serial_SpiSlaveWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
157 serial_manager_status_t Serial_SpiSlaveRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
158 
159 #if (defined(SERIAL_MANAGER_NON_BLOCKING_MODE) && (SERIAL_MANAGER_NON_BLOCKING_MODE > 0U))
160 serial_manager_status_t Serial_SpiSlaveInstallTxCallback(serial_handle_t serialHandle,
161                                                          serial_manager_callback_t callback,
162                                                          void *callbackParam);
163 serial_manager_status_t Serial_SpiSlaveInstallRxCallback(serial_handle_t serialHandle,
164                                                          serial_manager_callback_t callback,
165                                                          void *callbackParam);
166 serial_manager_status_t Serial_SpiSlaveCancelWrite(serial_handle_t serialHandle);
167 
168 #endif
169 #endif
170 
171 #if (defined(SERIAL_PORT_TYPE_BLE_WU) && (SERIAL_PORT_TYPE_BLE_WU > 0U))
172 serial_manager_status_t Serial_PortBleWuInit(serial_handle_t serialHandle, void *config);
173 serial_manager_status_t Serial_PortBleWuDeinit(serial_handle_t serialHandle);
174 serial_manager_status_t Serial_PortBleWuWrite(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
175 serial_manager_status_t Serial_PortBleWuRead(serial_handle_t serialHandle, uint8_t *buffer, uint32_t length);
176 serial_manager_status_t Serial_PortBleWuCancelWrite(serial_handle_t serialHandle);
177 serial_manager_status_t Serial_PortBleWuInstallTxCallback(serial_handle_t serialHandle,
178                                                           serial_manager_callback_t callback,
179                                                           void *callbackParam);
180 serial_manager_status_t Serial_PortBleWuInstallRxCallback(serial_handle_t serialHandle,
181                                                           serial_manager_callback_t callback,
182                                                           void *callbackParam);
183 void Serial_PortBleWuIsrFunction(serial_handle_t serialHandle);
184 #endif
185 
186 #if defined(__cplusplus)
187 }
188 #endif
189 
190 #endif /* __SERIAL_PORT_INTERNAL_H__ */
191