diff options
author | Magnus Damm <damm@igel.co.jp> | 2008-10-22 18:29:17 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-10-22 18:34:16 +0900 |
commit | 42eed42bac41c8106ed52b6b84409d84c0981e36 (patch) | |
tree | 2ba3f575af09ef9dcea7bb38e2ce7e39524562da /arch/sh/kernel/gpio.c | |
parent | 22ee3ba611e0aa73228ae64fa68d89c52367702a (diff) | |
download | op-kernel-dev-42eed42bac41c8106ed52b6b84409d84c0981e36.zip op-kernel-dev-42eed42bac41c8106ed52b6b84409d84c0981e36.tar.gz |
sh: improve pinmux support for single direction pins
This patch improves the support for gpio pins that are hard wired
to either input or output and lack control register association.
A special force enum id is used to allow use without control
register but still mark the gpio pin as input or output.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/gpio.c')
-rw-r--r-- | arch/sh/kernel/gpio.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/sh/kernel/gpio.c b/arch/sh/kernel/gpio.c index 9ac0b8e..d371653 100644 --- a/arch/sh/kernel/gpio.c +++ b/arch/sh/kernel/gpio.c @@ -267,9 +267,13 @@ int pinmux_config_gpio(struct pinmux_info *gpioc, unsigned gpio, break; in_range = enum_in_range(enum_id, &gpioc->function); - if (!in_range && range) + if (!in_range && range) { in_range = enum_in_range(enum_id, range); + if (in_range && enum_id == range->force) + continue; + } + if (!in_range) continue; |