pinctrl: generic: scan for "pins" and "groups" properties in sub-nodes

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@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>
master
Beniamino Galvani 8 years ago committed by Tom Rini
parent 950fe26de9
commit 2c936374c8
  1. 6
      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++) {

Loading…
Cancel
Save