opensbi/include/sbi_utils/fdt/fdt_helper.h

50 lines
1.2 KiB
C

// SPDX-License-Identifier: BSD-2-Clause
/*
* fdt_helper.h - Flat Device Tree parsing helper routines
* Implement helper routines to parse FDT nodes on top of
* libfdt for OpenSBI usage
*
* Copyright (C) 2020 Bin Meng <bmeng.cn@gmail.com>
*/
#ifndef __FDT_HELPER_H__
#define __FDT_HELPER_H__
struct fdt_match {
const char *compatible;
void *data;
};
struct platform_uart_data {
unsigned long addr;
unsigned long freq;
unsigned long baud;
unsigned long reg_shift;
unsigned long reg_io_width;
};
struct platform_plic_data {
unsigned long addr;
unsigned long num_src;
};
const struct fdt_match *fdt_match_node(void *fdt, int nodeoff,
const struct fdt_match *match_table);
int fdt_find_match(void *fdt, const struct fdt_match *match_table,
const struct fdt_match **out_match);
int fdt_parse_uart8250_node(void *fdt, int nodeoffset,
struct platform_uart_data *uart);
int fdt_parse_uart8250(void *fdt, struct platform_uart_data *uart,
const char *compatible);
int fdt_parse_plic(void *fdt, struct platform_plic_data *plic,
const char *compatible);
int fdt_parse_compat_addr(void *fdt, unsigned long *addr,
const char *compatible);
#endif /* __FDT_HELPER_H__ */