[U-Boot] [PATCH 04/21] dm: fdt: Add a function to decode phandles with arguments
Simon Glass
sjg at chromium.org
Thu Jan 15 15:55:33 CET 2015
Hi Masahiro,
On 15 January 2015 at 00:29, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
> Hi Simon,
>
>
> A nit
>
>
> On Mon, 5 Jan 2015 20:05:26 -0700
> Simon Glass <sjg at chromium.org> wrote:
>
>> For GPIOs and other functions we want to look up a phandle and then decode
>> a list of arguments for that phandle. Each phandle can have a different
>> number of arguments, specified by a property in the target node. This is
>> the "#gpio-cells" property for GPIOs.
>>
>> Add a function to provide this feature, taken modified from Linux 3.18.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> include/fdtdec.h | 53 ++++++++++++++++++++++++
>> lib/fdtdec.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 177 insertions(+)
>>
>> diff --git a/include/fdtdec.h b/include/fdtdec.h
>> index 5effa24..629e072 100644
>> --- a/include/fdtdec.h
>> +++ b/include/fdtdec.h
>> @@ -133,6 +133,59 @@ enum fdt_compat_id {
>> COMPAT_COUNT,
>> };
>>
>> +#define MAX_PHANDLE_ARGS 16
>> +struct fdtdec_phandle_args {
>> + int node;
>> + int args_count;
>> + uint32_t args[MAX_PHANDLE_ARGS];
>> +};
>> +
>> +/**
>> + * fdtdec_parse_phandle_with_args() - Find a node pointed by phandle in a list
>> + *
>> + * This function is useful to parse lists of phandles and their arguments.
>> + *
>> + * Example:
>> + *
>> + * phandle1: node1 {
>> + * #list-cells = <2>;
>> + * }
>> + *
>> + * phandle2: node2 {
>> + * #list-cells = <1>;
>> + * }
>> + *
>> + * node3 {
>> + * list = <&phandle1 1 2 &phandle2 3>;
>> + * }
>> + *
>> + * To get a device_node of the `node2' node you may call this:
>> + * fdtdec_parse_phandle_with_args(blob, node3, "list", "#list-cells", 0, 1,
>> + * &args);
>> + *
>> + * (This function is a modified version of of_parse_phandle_with_args() from
>> + * Linux 3.18)
>
> I think this is a modified version of __of_parse_phandle_with_args()
OK, I have fixed it.
Regards,
Simon
More information about the U-Boot
mailing list