pinctrl: allows not to define the get_group_pins operation
authorAntoine Ténart <antoine.tenart@free-electrons.com>
Thu, 10 Apr 2014 13:07:50 +0000 (15:07 +0200)
committerSimon Horman <horms@verge.net.au>
Fri, 5 Dec 2014 00:22:43 +0000 (09:22 +0900)
commit9c301d92be84f15c99f72657a4f309656b55b500
treec4fdbdf43398b4be4e005615259fdbb4b249f936
parent58688e58c33a9d1a11a56a8ac10c63ef79845651
pinctrl: allows not to define the get_group_pins operation

When using a group only pinctrl driver, which does not have any
information on the pins it is useless to define a get_group_pins
always returning an empty list of pins.

When not using get_group_pin[1], a driver must implement it so
pins = NULL and num_pins = 0. This patch makes it the default
behaviour if not defined in the pinctrl driver when used in
pinmux enable and disable funtions and in pinctrl_groups_show.

It also adds a check in pinctrl_get_group_pins and return -EINVAL if
not defined. This function is called in the gpiolib when adding when
pingroup range. It cannot be used if no group is defined, so this seams
reasonable.

[1] get_group_pin(struct pinctrl_dev *pctldev,
  unsigned selector,
  const unsigned **pins,
  unsigned *num_pins);

Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit e5b3b2d9ed202697a937c282f9c4d93b1e3e0848)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/pinctrl/core.c
drivers/pinctrl/pinmux.c