[PATCH 12/12] [ARM][S3C6410] Add support gpio function for keypad device
Kyungmin Park
kmpark at infradead.org
Sun Sep 6 19:51:59 EDT 2009
2009/9/5 양진성 <jsgood.yang at samsung.com>:
> 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,
> };
I thinks it's not a good idea to place s3c6410 generic function to
board file. please move it platform or mach-s3c6410.
>
> +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 */
special-function 3?
> + 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 */
ditto
> + 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