diff --git a/bsps/include/dev/serial/zynq-uart-regs.h b/bsps/include/dev/serial/zynq-uart-regs.h index 1c2d3886cf..36ee774927 100644 --- a/bsps/include/dev/serial/zynq-uart-regs.h +++ b/bsps/include/dev/serial/zynq-uart-regs.h @@ -176,6 +176,11 @@ void zynq_uart_write_char_polled(volatile zynq_uart *regs, char c); */ void zynq_uart_reset_tx_flush(volatile zynq_uart *regs); +/** + * @brief Returns the Zynq UART input clock frequency in Hz. + */ +uint32_t zynq_uart_input_clock(void); + /** * @brief Calculates the clock and baud divisor of the best approximation of * the desired baud. diff --git a/bsps/shared/dev/serial/zynq-uart-input-clock.c b/bsps/shared/dev/serial/zynq-uart-input-clock.c new file mode 100644 index 0000000000..ece11e90f0 --- /dev/null +++ b/bsps/shared/dev/serial/zynq-uart-input-clock.c @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSDeviceSerialZynq + * + * @brief This source file contains the implementation of the polled Zynq UART + * support. + */ + +/* + * Copyright (C) 2024 embedded brains GmbH & Co. KG + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include + +uint32_t zynq_uart_input_clock(void) +{ + return ZYNQ_CLOCK_UART; +} diff --git a/bsps/shared/dev/serial/zynq-uart-polled.c b/bsps/shared/dev/serial/zynq-uart-polled.c index 5af4def2cd..4f8e312782 100644 --- a/bsps/shared/dev/serial/zynq-uart-polled.c +++ b/bsps/shared/dev/serial/zynq-uart-polled.c @@ -41,16 +41,6 @@ #include #include -/* - * Make weak and let the user override. - */ -uint32_t zynq_uart_input_clock(void) __attribute__ ((weak)); - -uint32_t zynq_uart_input_clock(void) -{ - return ZYNQ_CLOCK_UART; -} - static uint32_t zync_uart_baud_error( uint32_t selected_clock, uint32_t desired_baud, diff --git a/spec/build/bsps/objdevserialzynq.yml b/spec/build/bsps/objdevserialzynq.yml index a187ebfc10..c442650ae8 100644 --- a/spec/build/bsps/objdevserialzynq.yml +++ b/spec/build/bsps/objdevserialzynq.yml @@ -18,6 +18,7 @@ links: - role: build-dependency uid: optzynquartkernbase source: +- bsps/shared/dev/serial/zynq-uart-input-clock.c - bsps/shared/dev/serial/zynq-uart-kernel-io.c - bsps/shared/dev/serial/zynq-uart-polled.c - bsps/shared/dev/serial/zynq-uart.c