35 lines
1 KiB
C
35 lines
1 KiB
C
|
/* linux/arch/arm/mach-s3c64xx/setup-keypad.c
|
||
|
*
|
||
|
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
|
||
|
* http://www.samsung.com/
|
||
|
*
|
||
|
* GPIO configuration for S3C64XX KeyPad device
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation.
|
||
|
*/
|
||
|
|
||
|
#include <linux/gpio.h>
|
||
|
#include <plat/gpio-cfg.h>
|
||
|
|
||
|
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
|
||
|
{
|
||
|
unsigned int gpio;
|
||
|
unsigned int end;
|
||
|
|
||
|
/* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */
|
||
|
end = S3C64XX_GPK(8 + rows);
|
||
|
for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
|
||
|
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||
|
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||
|
}
|
||
|
|
||
|
/* Set all the necessary GPL pins to special-function 3: KP_COL[x] */
|
||
|
end = S3C64XX_GPL(0 + cols);
|
||
|
for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
|
||
|
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
|
||
|
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
|
||
|
}
|
||
|
}
|