From 44fca38058e84442940cad05a0a53696f2744729 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 17 Jan 2018 14:14:10 +0100 Subject: linux/of.h: Add of_read_number() Update #3277. --- rtemsbsd/powerpc/include/linux/of.h | 2 ++ rtemsbsd/sys/powerpc/compat.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/rtemsbsd/powerpc/include/linux/of.h b/rtemsbsd/powerpc/include/linux/of.h index 5ab54314..8ef04697 100644 --- a/rtemsbsd/powerpc/include/linux/of.h +++ b/rtemsbsd/powerpc/include/linux/of.h @@ -76,6 +76,8 @@ of_property_read_u32(const struct device_node *dn, const char *name, u32 *val) return (of_property_read_u32_array(dn, name, val, 1)); } +uint64_t of_read_number(const uint32_t *cell, int size); + struct device_node *of_parse_phandle(struct device_node *dns, struct device_node *dn, const char *phandle_name, int index); diff --git a/rtemsbsd/sys/powerpc/compat.c b/rtemsbsd/sys/powerpc/compat.c index 2ff85f45..400eac57 100644 --- a/rtemsbsd/sys/powerpc/compat.c +++ b/rtemsbsd/sys/powerpc/compat.c @@ -121,6 +121,22 @@ of_find_compatible_node(struct device_node *dns, const struct device_node *dn, } } +uint64_t +of_read_number(const uint32_t *cell, int size) +{ + uint64_t number; + + number = 0; + + while (size > 0) { + number = (number << 32) | fdt32_to_cpu(*cell); + ++cell; + --size; + } + + return (number); +} + struct device_node * of_parse_phandle(struct device_node *dns, struct device_node *dn, const char *phandle_name, int index) -- cgit v1.2.3