Commit Graph

9 Commits

Author SHA1 Message Date
Vadim Yanitskiy 59afb8f14c soft_uart: add osmo_soft_uart_{get,set}_name()
Change-Id: Iabf29f42d876035481011fa8e8a51c0590fe63b8
Related: OS#4396
2023-12-03 02:19:33 +00:00
Vadim Yanitskiy d4b94ceb88 soft_uart: fix spelling in doxygen docs
Change-Id: Ib719d1fe4ee6c058860e861c91ec2417d9dff0af
2023-11-24 03:00:02 +07:00
Vadim Yanitskiy 0d78a00b9f soft_uart: implement OSMO_SUART_PARITY_{MARK,SPACE}
Change-Id: I4c8fe5bfdcc2f4eb52c259d1e62d06684cd8f823
Related: OS#4396
2023-11-21 20:17:11 +07:00
Vadim Yanitskiy 03f0ed78ef soft_uart: allow manually flushing the receive buffer
Change-Id: Id600a2db99e6cb84866cbdcfcd4f78265e067291
Related: OS#4396
2023-11-21 18:50:09 +07:00
Vadim Yanitskiy c9fc77f541 soft_uart: implement the transmitter
Change-Id: Ibcd9643227e5616efd8bbd7a1430feda6fcef45c
Related: OS#4396
2023-11-21 00:58:53 +07:00
Vadim Yanitskiy 82a1ae785e soft_uart: make osmo_soft_uart_alloc() accept *cfg
Let the API user pass their own default config when allocating
a soft-UART.  Make the default config publicly accessible.

Change-Id: I7e78d60c747a8805064d5e4bacfd47a30bc65cba
Related: OS#4396
2023-11-21 00:58:53 +07:00
Vadim Yanitskiy cdde67186b soft_uart: split osmo_soft_uart_enable()
The problem with a single function controlling both Rx and Tx is
that enabling/disabling one of the directions requires knowing
state of the other one.  In other words, disabling Tx requires
knowing the state of Rx, which may be inconvenient.

Change-Id: Ieacc7e639304eeb14fdb298c7e14d772c136ca6e
Related: OS#4396
2023-11-21 00:58:53 +07:00
Vadim Yanitskiy 877cfed3b2 soft_uart: add osmo_soft_uart_free()
Change-Id: I2fdcf6116144d8f16cf4167c37cfa7215d16337f
Related: OS#4396
2023-11-21 00:58:53 +07:00
Harald Welte dc023cfc2e core: Add software UART implementation
This patch brings a Work-in-Progress implementation of the software
UART (Universal Asynchronous Receiver/Transmitter) to libosmocore.

Not only it will be useful in the context of retro-networking, but
also it's needed for the MS-side CSD implementation (see OS#4396).

It should be noted that the definition of struct osmo_soft_uart
is intentionally kept private, since the API is not stable yet.

Currently, the following limitations apply:

* Only the receiver part is implemented, the transmitter is TBD.
* Parity checking is not implemented in the receiver part.
* Software flow control is not implemented.

These missing components will be addressed in subsequent patches.

Change-Id: I2ca95963fd5852ddb89bdd35b86b31489127fe84
2023-11-21 00:58:53 +07:00