platform: fpga/common: Add a fdt parsing helper functions

Different DT based platforms from the sam family may reuse IP blocks with
different configurations. These different configurations can be obtained
by parsing the device tree.

Add a FDT parser framework that can parse various device configurations from
device tree. Currently, the parsing algorithms doesn't cover all the use cases
or possible combination of DT configurations. It will be improved over time.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
Atish Patra
2020-03-23 12:48:57 -07:00
committed by Anup Patel
parent fb84879e66
commit d1d6560a87
2 changed files with 136 additions and 0 deletions

View File

@@ -9,6 +9,26 @@
#ifndef __FDT_HELPER_H__
#define __FDT_HELPER_H__
struct platform_uart_data {
unsigned long addr;
unsigned long freq;
unsigned long baud;
};
struct platform_plic_data {
unsigned long addr;
unsigned long num_src;
};
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_clint(void *fdt, unsigned long *clint_addr,
const char *compatible);
/**
* Fix up the CPU node in the device tree
*