[PATCH v3 1/5] lib: utils/fdt: Add fdt_parse_timebase_frequency() function
Xiang W
wxjstz at 126.com
Sat Sep 25 00:27:38 PDT 2021
在 2021-09-25星期六的 10:07 +0530,Anup Patel写道:
> We add fdt_parse_timebase_frequency() function which can be used
> by ACLINT mtimer driver and platform code to get timebase frequency.
>
> Signed-off-by: Anup Patel <anup.patel at wdc.com>
> Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
Reviewed-by: Xiang W <wxjstz at 126.com>
> ---
> include/sbi_utils/fdt/fdt_helper.h | 2 ++
> lib/utils/fdt/fdt_helper.c | 21 +++++++++++++++++++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/include/sbi_utils/fdt/fdt_helper.h
> b/include/sbi_utils/fdt/fdt_helper.h
> index 2246254..5cb7340 100644
> --- a/include/sbi_utils/fdt/fdt_helper.h
> +++ b/include/sbi_utils/fdt/fdt_helper.h
> @@ -50,6 +50,8 @@ int fdt_parse_hart_id(void *fdt, int cpu_offset,
> u32 *hartid);
>
> int fdt_parse_max_hart_id(void *fdt, u32 *max_hartid);
>
> +int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq);
> +
> int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
> struct platform_uart_data *uart);
>
> diff --git a/lib/utils/fdt/fdt_helper.c b/lib/utils/fdt/fdt_helper.c
> index 5628337..5bf4021 100644
> --- a/lib/utils/fdt/fdt_helper.c
> +++ b/lib/utils/fdt/fdt_helper.c
> @@ -269,6 +269,27 @@ int fdt_parse_max_hart_id(void *fdt, u32
> *max_hartid)
> return 0;
> }
>
> +int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq)
> +{
> + const fdt32_t *val;
> + int len, cpus_offset;
> +
> + if (!fdt || !freq)
> + return SBI_EINVAL;
> +
> + cpus_offset = fdt_path_offset(fdt, "/cpus");
> + if (cpus_offset < 0)
> + return cpus_offset;
> +
> + val = fdt_getprop(fdt, cpus_offset, "timebase-frequency",
> &len);
> + if (len > 0 && val)
> + *freq = fdt32_to_cpu(*val);
> + else
> + return SBI_ENOENT;
> +
> + return 0;
> +}
> +
> int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
> struct platform_uart_data *uart)
> {
> --
> 2.25.1
>
>
More information about the opensbi
mailing list