Hi Simon,
A nit On Mon, 5 Jan 2015 20:05:26 -0700 Simon Glass <s...@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 <s...@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() Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot