1 /*
2  * linux/arch/arm/plat-samsung/dev-keypad.c
3  *
4  * Copyright (C) 2010 Samsung Electronics Co.Ltd
5  * Author: Joonyoung Shim <jy0922.shim@samsung.com>
6  *
7  *  This program is free software; you can redistribute  it and/or modify it
8  *  under  the terms of  the GNU General  Public License as published by the
9  *  Free Software Foundation;  either version 2 of the  License, or (at your
10  *  option) any later version.
11  *
12  */
13 
14 #include <linux/platform_device.h>
15 #include <mach/irqs.h>
16 #include <mach/map.h>
17 #include <plat/cpu.h>
18 #include <plat/devs.h>
19 #include <plat/keypad.h>
20 
21 static struct resource samsung_keypad_resources[] = {
22 	[0] = {
23 		.start	= SAMSUNG_PA_KEYPAD,
24 		.end	= SAMSUNG_PA_KEYPAD + 0x20 - 1,
25 		.flags	= IORESOURCE_MEM,
26 	},
27 	[1] = {
28 		.start	= IRQ_KEYPAD,
29 		.end	= IRQ_KEYPAD,
30 		.flags	= IORESOURCE_IRQ,
31 	},
32 };
33 
34 struct platform_device samsung_device_keypad = {
35 	.name		= "samsung-keypad",
36 	.id		= -1,
37 	.num_resources	= ARRAY_SIZE(samsung_keypad_resources),
38 	.resource	= samsung_keypad_resources,
39 };
40 
samsung_keypad_set_platdata(struct samsung_keypad_platdata * pd)41 void __init samsung_keypad_set_platdata(struct samsung_keypad_platdata *pd)
42 {
43 	struct samsung_keypad_platdata *npd;
44 
45 	npd = s3c_set_platdata(pd, sizeof(struct samsung_keypad_platdata),
46 			&samsung_device_keypad);
47 
48 	if (!npd->cfg_gpio)
49 		npd->cfg_gpio = samsung_keypad_cfg_gpio;
50 }
51