[PATCH 12/12] [ARM][S3C6410] Add support gpio function for keypad device
Jinsung Yang
jsgood.yang at samsung.com
Sat Sep 5 10:13:18 EDT 2009
Hi,
I'm sorry for using a little non-English word (my name) when sending 12
patches.
That caused by wrong e-mail client setting, already fixed now :)
Best Regards
--
Jinsung, Yang <jsgood.yang at samsung.com>
AP Development Team
System LSI, Semiconductor Business
SAMSUNG Electronics Co., LTD
> -----Original Message-----
> From: linux-arm-kernel-bounces at lists.infradead.org [mailto:linux-arm-
> kernel-bounces at lists.infradead.org] On Behalf Of ???
> Sent: Saturday, September 05, 2009 10:31 PM
> To: ben-linux at fluff.org
> Cc: ???/AP???(SYS.LSI)/E3(??)/????; linux-arm-
> kernel at lists.infradead.org
> Subject: [PATCH 12/12] [ARM][S3C6410] Add support gpio function for keypad
> device
>
> This patch includes machine specific gpio function for keypad device
> which can be changed by platform hardware. The gpio function is
> related with keypad platform info such as rows and columns of
> those matrix.
>
> Signed-off-by: Jinsung Yang <jsgood.yang at samsung.com>
> Signed-off-by: Kyeongil Kim <ki0351.kim at samsung.com>
> ---
> arch/arm/mach-s3c6410/mach-smdk6410.c | 23 +++++++++++++++++++++++
> 1 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-
> s3c6410/mach-smdk6410.c
> index 95e130d..f297c26 100644
> --- a/arch/arm/mach-s3c6410/mach-smdk6410.c
> +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
> @@ -347,6 +347,28 @@ static struct s3c_platform_keypad keypad_data
> __initdata = {
> .delay = 50,
> };
>
> +static void s3c_keypad_cfg_gpio(int rows, int columns)
> +{
> + unsigned int gpio;
> + unsigned int end;
> +
> + end = S3C64XX_GPK(8 + rows);
> +
> + /* Set all the necessary GPK pins to special-function 0 */
> + for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
> + s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
> + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
> + }
> +
> + end = S3C64XX_GPL(0 + columns);
> +
> + /* Set all the necessary GPK pins to special-function 0 */
> + for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
> + s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
> + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
> + }
> +}
> +
> static void __init smdk6410_map_io(void)
> {
> u32 tmp;
> @@ -382,6 +404,7 @@ static void __init smdk6410_machine_init(void)
> i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
>
> s3c_keypad_set_platdata(&keypad_data);
> + s3c_keypad_cfg_gpio(keypad_data.nr_rows, keypad_data.nr_cols);
>
> platform_add_devices(smdk6410_devices,
> ARRAY_SIZE(smdk6410_devices));
> }
> --
> 1.6.2.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
More information about the linux-arm-kernel
mailing list