Create UART backend for logging SP
Create UART adapter and backend for the UART driver.
Signed-off-by: Gabor Toth <gabor.toth2@arm.com>
Signed-off-by: Gabor Ambrus <gabor.ambrus@arm.com>
Change-Id: Id3adec616599959b3a5777d665fcfcadf0ccb91b
diff --git a/components/service/log/backend/uart/uart_backend.c b/components/service/log/backend/uart/uart_backend.c
new file mode 100644
index 0000000..5f13204
--- /dev/null
+++ b/components/service/log/backend/uart/uart_backend.c
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <service/log/backend/log_backend.h>
+#include <service/log/backend/uart/uart_adapter/uart_adapter.h>
+#include <stddef.h>
+
+static log_status_t uart_puts(void *context, const char *str)
+{
+ (void)context;
+ uart_hardware_puts(str);
+
+ return LOG_STATUS_SUCCESS;
+}
+
+struct log_backend *uart_backend_init(int uart_instance_num)
+{
+ int status = 0;
+ static struct log_backend backend = {0};
+ static const struct log_backend_interface interface = { uart_puts };
+
+ status = uart_adapter_init(uart_instance_num);
+
+ if (status != 0)
+ return NULL;
+
+ backend.context = NULL;
+ backend.interface = &interface;
+
+ return &backend;
+}
+
+void uart_backend_deinit(void)
+{
+ uart_adapter_deinit();
+}