of: Let of_for_each_phandle fallback to non-negative cell_count
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Sat, 24 Aug 2019 13:28:46 +0000 (15:28 +0200)
committerRob Herring <robh@kernel.org>
Fri, 13 Sep 2019 21:55:12 +0000 (16:55 -0500)
commite42ee61017f58cd91cb9e30001450be3981e0e83
treeda39eab543bb68e33f59f138d9f89715dc88f66d
parentc680e9abaade9145ef195f9b28afa1a3b975438b
of: Let of_for_each_phandle fallback to non-negative cell_count

Referencing device tree nodes from a property allows to pass arguments.
This is for example used for referencing gpios. This looks as follows:

gpio_ctrl: gpio-controller {
#gpio-cells = <2>
...
}

someothernode {
gpios = <&gpio_ctrl 5 0 &gpio_ctrl 3 0>;
...
}

To know the number of arguments this must be either fixed, or the
referenced node is checked for a $cells_name (here: "#gpio-cells")
property and with this information the start of the second reference can
be determined.

Currently regulators are referenced with no additional arguments. To
allow some optional arguments without having to change all referenced
nodes this change introduces a way to specify a default cell_count. So
when a phandle is parsed we check for the $cells_name property and use
it as before if present. If it is not present we fall back to
cells_count if non-negative and only fail if cells_count is smaller than
zero.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/base.c