diff options
author | Ben Dooks <ben-linux@fluff.org> | 2008-07-25 04:46:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 13:53:30 -0400 |
commit | 53a9600c634e3bfd6230e0597aca159bf4d4d010 (patch) | |
tree | e1cef8dd88dc0cef7012c6668cc33698c1448a0c /drivers/mfd/sm501.c | |
parent | f2999209d779573e17468b680f5f267d8cb2a9c7 (diff) |
mfd: sm501 fix gpio number calculation for upper bank
The sm501_gpio_pin2nr() routine returns the wrong values for gpios in the
upper bank.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mfd/sm501.c')
-rw-r--r-- | drivers/mfd/sm501.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c index 79d7aea5510b..7aebad4c06ff 100644 --- a/drivers/mfd/sm501.c +++ b/drivers/mfd/sm501.c | |||
@@ -1108,7 +1108,9 @@ static void sm501_gpio_remove(struct sm501_devdata *sm) | |||
1108 | static inline int sm501_gpio_pin2nr(struct sm501_devdata *sm, unsigned int pin) | 1108 | static inline int sm501_gpio_pin2nr(struct sm501_devdata *sm, unsigned int pin) |
1109 | { | 1109 | { |
1110 | struct sm501_gpio *gpio = &sm->gpio; | 1110 | struct sm501_gpio *gpio = &sm->gpio; |
1111 | return pin + (pin < 32) ? gpio->low.gpio.base : gpio->high.gpio.base; | 1111 | int base = (pin < 32) ? gpio->low.gpio.base : gpio->high.gpio.base; |
1112 | |||
1113 | return (pin % 32) + base; | ||
1112 | } | 1114 | } |
1113 | 1115 | ||
1114 | static inline int sm501_gpio_isregistered(struct sm501_devdata *sm) | 1116 | static inline int sm501_gpio_isregistered(struct sm501_devdata *sm) |