5#include "sw/device/lib/testing/uart_testutils.h"
17#include "sw/device/lib/testing/pinmux_testutils.h"
18#include "sw/device/lib/testing/test_framework/check.h"
23#define MODULE_ID MAKE_MODULE_ID('u', 't', 'u')
28static const pinmux_testutils_peripheral_pin_t kUartPinmuxPins[] = {
54static const pinmux_testutils_mio_pin_t
55 kUartSynthPins[kUartPinmuxChannelCount] = {
56 [kUartPinmuxChannelConsole] =
61 [kUartPinmuxChannelDut] = {
71static const pinmux_testutils_mio_pin_t kUartDvPins[4] = {
93static const uart_cfg_params_t kUartCfgParams[4] = {
147status_t uart_testutils_select_pinmux(
const dif_pinmux_t *pinmux,
149 uart_pinmux_channel_t channel) {
150 TRY_CHECK(channel < kUartPinmuxChannelCount &&
152 "Index out of bounds");
155 ? kUartDvPins[uart_idx]
156 : kUartSynthPins[channel];
158 TRY(dif_pinmux_input_select(pinmux, kUartPinmuxPins[uart_idx].peripheral_in,
160 TRY(dif_pinmux_output_select(pinmux, mio_pin.mio_out,
161 kUartPinmuxPins[uart_idx].outsel));
166status_t uart_testutils_detach_pinmux(
const dif_pinmux_t *pinmux,
168 TRY_CHECK(uart_idx <
ARRAYSIZE(kUartPinmuxPins),
"Index out of bounds");
170 TRY(dif_pinmux_input_select(pinmux, kUartPinmuxPins[uart_idx].peripheral_in,
176status_t uart_testutils_cfg_params(uint8_t uart_idx,
177 uart_cfg_params_t *params) {
178 TRY_CHECK(uart_idx <
ARRAYSIZE(kUartCfgParams),
"Index out of bounds");
180 *params = kUartCfgParams[uart_idx];