[U-Boot] [PATCH 04/10] fdt: Add fdt_sizecell & fdt_addrcell helpers
Jerry Van Baren
gerald.vanbaren at ge.com
Thu Oct 23 14:26:01 CEST 2008
Kumar Gala wrote:
>
> On Oct 23, 2008, at 6:55 AM, Jerry Van Baren wrote:
>
>> Kumar Gala wrote:
>>> Add helper functions to return top level #size-cell and #address-cell
>>> info
>>> Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
>>> ---
>>> include/fdt_support.h | 18 ++++++++++++++++++
>>> 1 files changed, 18 insertions(+), 0 deletions(-)
>>> diff --git a/include/fdt_support.h b/include/fdt_support.h
>>> index ceaadc2..aa9d86b 100644
>>> --- a/include/fdt_support.h
>>> +++ b/include/fdt_support.h
>>> @@ -28,6 +28,24 @@
>>> #include <fdt.h>
>>> +static inline int fdt_addrcell(void *blob) {
>>> + const u32 *addrcell = fdt_getprop(blob, 0, "#address-cells", NULL);
>>> +
>>> + if (addrcell)
>>> + return *addrcell;
>>> + else
>>> + return 1;
>>> +}
>>> +
>>> +static inline int fdt_sizecell(void *blob) {
>>> + const u32 *sizecell = fdt_getprop(blob, 0, "#size-cells", NULL);
>>> +
>>> + if (sizecell)
>>> + return *sizecell;
>>> + else
>>> + return 1;
>>> +}
>>> +
>>> int fdt_chosen(void *fdt, int force);
>>> int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int
>>> force);
>>> void do_fixup_by_path(void *fdt, const char *path, const char *prop,
>>
>> Hi Kumar,
>>
>> What about collapsing the two above into a common function?
>>
>> fdt_addrcell(blob);
>> becomes
>> fdt_get_prop_u32(blob, "/", "#address-cells", 1);
>> and
>> fdt_sizecell(blob);
>> becomes
>> fdt_get_prop_u32(blob, "/", "#size-cells", 1);
>>
>> WARNING, UNTESTED CODE:
>> /**
>> * fdt_get_prop_u32: Find a node and return it's property or a default
>> *
>> * @fdt: ptr to device tree
>> * @node: path of node
>> * @prop: property name
>> * @defalt: default value if the property isn't found
>> *
>> * Convenience function to find a node and return it's property or a
>> * default value if it doesn't exist.
>> */
>> u32 fdt_get_prop_u32(void *fdt, const char *node, const char *prop,
>> const u32 default)
>> {
>> const u32 *addrcell = fdt_getprop(fdt, node, prop, NULL);
>>
>> if (addrcell)
>> return *addrcell;
>> else
>> return default;
>> }
>
> I'd prefer we call it fdt_getprop_u32_default(). If you are good with
> the name I'll change my patchset.
>
> - k
That was my second choice. I figured Dennis Richie would call me up and
complain the name was too long. ;-)
I'm find with the change.
Acked-by: Gerald Van Baren <vanbaren at cideas.com>
Thanks,
gvb
More information about the U-Boot
mailing list