Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[sfrench/cifs-2.6.git] / arch / arm / mach-s3c64xx / setup-keypad.c
1 /* linux/arch/arm/mach-s3c64xx/setup-keypad.c
2  *
3  * Copyright (c) 2010 Samsung Electronics Co., Ltd.
4  *              http://www.samsung.com/
5  *
6  * GPIO configuration for S3C64XX KeyPad device
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11 */
12
13 #include <linux/gpio.h>
14 #include <plat/gpio-cfg.h>
15
16 void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
17 {
18         unsigned int gpio;
19         unsigned int end;
20
21         /* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */
22         end = S3C64XX_GPK(8 + rows);
23         for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
24                 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
25                 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
26         }
27
28         /* Set all the necessary GPL pins to special-function 3: KP_COL[x] */
29         end = S3C64XX_GPL(0 + cols);
30         for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
31                 s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
32                 s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
33         }
34 }