[PATCH v3 1/5] lib: utils/fdt: Add fdt_parse_timebase_frequency() function
Anup Patel
anup at brainfault.org
Sun Sep 26 20:57:27 PDT 2021
On Sat, Sep 25, 2021 at 12:58 PM Xiang W <wxjstz at 126.com> wrote:
>
> 在 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>
Applied this patch to the riscv/opensbi repo
Regards,
Anup
> > ---
> > 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