/* * SPDX-License-Identifier: BSD-2-Clause * * Copyright (c) 2021 Gabriel Somlo * * Authors: * Gabriel Somlo */ #include #include #include #include static int serial_litex_init(void *fdt, int nodeoff, const struct fdt_match *match) { uint64_t reg_addr, reg_size; int rc; if (nodeoff < 0 || !fdt) return SBI_ENODEV; rc = fdt_get_node_addr_size(fdt, nodeoff, 0, ®_addr, ®_size); if (rc < 0 || !reg_addr || !reg_size) return SBI_ENODEV; return litex_uart_init(reg_addr); } static const struct fdt_match serial_litex_match[] = { { .compatible = "litex,liteuart" }, { }, }; struct fdt_serial fdt_serial_litex = { .match_table = serial_litex_match, .init = serial_litex_init };