[PATCH 1/4] pinctrl: generic: scan for "pins" and "groups" properties in sub-nodes
Simon Glass
sjg at chromium.org
Wed Aug 17 20:44:35 PDT 2016
On 16 August 2016 at 03:49, Beniamino Galvani <b.galvani at gmail.com> wrote:
> In cases where the pins and groups definitions are in a sub-node, as:
>
> uart_a {
> mux {
> groups = "uart_tx_a", "uart_rx_a";
> function = "uart_a";
> };
> };
>
> pinctrl_generic_set_state_subnode() returns an error for the top-level
> node and pinctrl_generic_set_state() fails. Instead, return success so
> that the child nodes are tried.
>
> Signed-off-by: Beniamino Galvani <b.galvani at gmail.com>
> ---
> drivers/pinctrl/pinctrl-generic.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Simon Glass <sjg at chromium.org>
Masahiro, are you happy with this change?
We really need some pinctrl tests.
>
> diff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c
> index e86b72a..baff40f 100644
> --- a/drivers/pinctrl/pinctrl-generic.c
> +++ b/drivers/pinctrl/pinctrl-generic.c
> @@ -312,8 +312,10 @@ static int pinctrl_generic_set_state_subnode(struct udevice *dev,
> is_group = true;
> strings_count = fdt_count_strings(fdt, node,
> subnode_target_type);
> - if (strings_count < 0)
> - return -EINVAL;
> + if (strings_count < 0) {
> + /* skip this node; may contain config child nodes */
> + return 0;
> + }
> }
>
> for (i = 0; i < strings_count; i++) {
> --
> 2.7.4
>
Regards,
Simon
More information about the linux-amlogic
mailing list