Skip to content

Commit c07bb77

Browse files
nordic-krchnashif
authored andcommitted
drivers: uart: Clarity timeout in uart_rx_enable and add doxygen links
Timeout parameter was not definied clearly. Added clarification together doxygen links to events used in the description. Signed-off-by: Krzysztof Chruscinski <[email protected]>
1 parent 1778e11 commit c07bb77

File tree

1 file changed

+53
-35
lines changed

1 file changed

+53
-35
lines changed

include/drivers/uart.h

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -43,44 +43,50 @@ enum uart_line_ctrl {
4343
*
4444
* Receiving:
4545
* 1. To start receiving, uart_rx_enable has to be called with first buffer
46-
* 2. When receiving starts to current buffer, UART_RX_BUF_REQUEST will be
47-
* generated, in response to that user can either:
46+
* 2. When receiving starts to current buffer,
47+
* @ref uart_event_type::UART_RX_BUF_REQUEST will be generated, in response
48+
* to that user can either:
4849
*
4950
* - Provide second buffer using uart_rx_buf_rsp, when first buffer is
5051
* filled, receiving will automatically start to second buffer.
5152
* - Ignore the event, this way when current buffer is filled UART_RX_DONE
5253
* event will be generated and receiving will be stopped.
5354
*
54-
* 3. If some data was received and timeout occurred UART_RX_RDY event will be
55-
* generated. It can happen multiples times for the same buffer. RX timeout
56-
* is counted from last byte received i.e. if no data was received, there
57-
* won't be any timeout event.
58-
* 4. After buffer is filled UART_RX_RDY will be generated, immediately
59-
* followed by UART_RX_BUF_RELEASED indicating that current buffer is no
60-
* longer used.
55+
* 3. If some data was received and timeout occurred
56+
* @ref uart_event_type::UART_RX_RDY event will be generated. It can happen
57+
* multiples times for the same buffer. RX timeout is counted from last byte
58+
* received i.e. if no data was received, there won't be any timeout event.
59+
* 4. After buffer is filled @ref uart_event_type::UART_RX_RDY will be
60+
* generated, immediately followed by
61+
* @ref uart_event_type::UART_RX_BUF_RELEASED indicating that current buffer
62+
* is no longer used.
6163
* 5. If there was second buffer provided, it will become current buffer and
6264
* we start again at point 2.
6365
* If no second buffer was specified receiving is stopped and
64-
* UART_RX_DISABLED event is generated. After that whole process can be
65-
* repeated.
66+
* @ref uart_event_type::UART_RX_DISABLED event is generated. After that
67+
* whole process can be repeated.
6668
*
67-
* Any time during reception UART_RX_STOPPED event can occur. if there is any
68-
* data received, UART_RX_RDY event will be generated. It will be followed by
69-
* UART_RX_BUF_RELEASED event for every buffer currently passed to driver and
70-
* finally by UART_RX_DISABLED event.
69+
* Any time during reception @ref uart_event_type::UART_RX_STOPPED event can
70+
* occur. if there is any data received, @ref uart_event_type::UART_RX_RDY
71+
* event will be generated. It will be followed by
72+
* @ref uart_event_type::UART_RX_BUF_RELEASED event for every buffer currently
73+
* passed to driver and finally by @ref uart_event_type::UART_RX_DISABLED event.
7174
*
7275
* Receiving can be disabled using uart_rx_disable, after calling that
73-
* function, if there is any data received, UART_RX_RDY event will be generated.
74-
* UART_RX_BUF_RELEASED event will be generated for every buffer currently
75-
* passed to driver and finally UART_RX_DISABLED event will occur.
76+
* function, if there is any data received,
77+
* @ref uart_event_type::UART_RX_RDY event will be generated.
78+
* @ref uart_event_type::UART_RX_BUF_RELEASED event will be generated for every
79+
* buffer currently passed to driver and finally
80+
* @ref uart_event_type::UART_RX_DISABLED event will occur.
7681
*
7782
* Transmitting:
7883
* 1. Transmitting starts by uart_tx function.
79-
* 2. If whole buffer was transmitted UART_TX_DONE is generated.
80-
* If timeout occurred UART_TX_ABORTED will be generated.
84+
* 2. If whole buffer was transmitted @ref uart_event_type::UART_TX_DONE is
85+
* generated. If timeout occurred @ref uart_event_type::UART_TX_ABORTED will
86+
* be generated.
8187
*
82-
* Transmitting can be aborted using uart_tx_abort, after calling that
83-
* function UART_TX_ABORTED event will be generated.
88+
* Transmitting can be aborted using @ref uart_tx_abort, after calling that
89+
* function @ref uart_event_type::UART_TX_ABORTED event will be generated.
8490
*
8591
*/
8692
enum uart_event_type {
@@ -102,7 +108,8 @@ enum uart_event_type {
102108
* This can happen multiple times in the same buffer.
103109
* - When provided buffer is full.
104110
* - After uart_rx_disable().
105-
* - After stopping due to external event (UART_RX_STOPPED).
111+
* - After stopping due to external event
112+
* (@ref uart_event_type::UART_RX_STOPPED).
106113
*/
107114
UART_RX_RDY,
108115
/**
@@ -204,13 +211,17 @@ struct uart_event {
204211
enum uart_event_type type;
205212
/** @brief Event data */
206213
union uart_event_data {
207-
/** @brief UART_TX_DONE and UART_TX_ABORTED events data. */
214+
/** @brief @ref uart_event_type::UART_TX_DONE and
215+
* @ref uart_event_type::UART_TX_ABORTED events data.
216+
*/
208217
struct uart_event_tx tx;
209-
/** @brief UART_RX_RDY event data. */
218+
/** @brief @ref uart_event_type::UART_RX_RDY event data. */
210219
struct uart_event_rx rx;
211-
/** @brief UART_RX_BUF_RELEASED event data. */
220+
/** @brief @ref uart_event_type::UART_RX_BUF_RELEASED event
221+
* data.
222+
*/
212223
struct uart_event_rx_buf rx_buf;
213-
/** @brief UART_RX_STOPPED event data. */
224+
/** @brief @ref uart_event_type::UART_RX_STOPPED event data. */
214225
struct uart_event_rx_stop rx_stop;
215226
} data;
216227
};
@@ -483,7 +494,8 @@ static inline int z_impl_uart_tx(const struct device *dev, const uint8_t *buf,
483494
/**
484495
* @brief Abort current TX transmission.
485496
*
486-
* UART_TX_DONE event will be generated with amount of data sent.
497+
* @ref uart_event_type::UART_TX_DONE event will be generated with amount of
498+
* data sent.
487499
*
488500
* @param dev UART device structure.
489501
*
@@ -510,12 +522,16 @@ static inline int z_impl_uart_tx_abort(const struct device *dev)
510522
*
511523
* Function sets given buffer as first buffer for receiving and returns
512524
* immediately. After that event handler, set using @ref uart_callback_set,
513-
* is called with UART_RX_RDY or UART_RX_BUF_REQUEST events.
525+
* is called with @ref uart_event_type::UART_RX_RDY or
526+
* @ref uart_event_type::UART_RX_BUF_REQUEST events.
514527
*
515528
* @param dev UART device structure.
516529
* @param buf Pointer to receive buffer.
517530
* @param len Buffer length.
518-
* @param timeout Timeout in milliseconds. @ref SYS_FOREVER_MS disables timeout.
531+
* @param timeout Inactivity period after receiving at least a byte which
532+
* triggers @ref uart_event_type::UART_RX_RDY event. Given in
533+
* milliseconds. @ref SYS_FOREVER_MS disables timeout. See
534+
* @ref uart_event_type for details.
519535
*
520536
* @retval -ENOTSUP If not supported.
521537
* @retval -EBUSY RX already in progress.
@@ -541,7 +557,8 @@ static inline int z_impl_uart_rx_enable(const struct device *dev,
541557
}
542558

543559
/**
544-
* @brief Provide receive buffer in response to UART_RX_BUF_REQUEST event.
560+
* @brief Provide receive buffer in response to
561+
* @ref uart_event_type::UART_RX_BUF_REQUEST event.
545562
*
546563
* Provide pointer to RX buffer, which will be used when current buffer is
547564
* filled.
@@ -576,10 +593,11 @@ static inline int uart_rx_buf_rsp(const struct device *dev, uint8_t *buf,
576593
/**
577594
* @brief Disable RX
578595
*
579-
* UART_RX_BUF_RELEASED event will be generated for every buffer scheduled,
580-
* after that UART_RX_DISABLED event will be generated. Additionally, if there
581-
* is any pending received data, the UART_RX_RDY event for that data will be
582-
* generated before the UART_RX_BUF_RELEASED events.
596+
* @ref uart_event_type::UART_RX_BUF_RELEASED event will be generated for every
597+
* buffer scheduled, after that @ref uart_event_type::UART_RX_DISABLED event
598+
* will be generated. Additionally, if there is any pending received data, the
599+
* @ref uart_event_type::UART_RX_RDY event for that data will be generated
600+
* before the @ref uart_event_type::UART_RX_BUF_RELEASED events.
583601
*
584602
* @param dev UART device structure.
585603
*

0 commit comments

Comments
 (0)