All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Grazvydas Ignotas <notasas@gmail.com>
Cc: linux-arm-kernel@lists.arm.linux.org.uk, linux-omap@vger.kernel.org
Subject: Re: [PATCH] ARM: OMAP3: pandora: add support for mode devices
Date: Wed, 27 May 2009 13:24:16 -0700	[thread overview]
Message-ID: <20090527202415.GD6267@atomide.com> (raw)
In-Reply-To: <1243453668-25208-1-git-send-email-notasas@gmail.com>

* Grazvydas Ignotas <notasas@gmail.com> [090527 12:48]:
> Add support for keypad, GPIO keys and LEDs. Also enable hardware
> debounce feature for GPIO keys.
> 
> Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
> ---
> This patch was somehow left out, so Tony suggested posting it directly here.

Thanks, I've added this patch to my queue.

Tony
 
>  arch/arm/mach-omap2/board-omap3pandora.c |  149 ++++++++++++++++++++++++++++++
>  1 files changed, 149 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
> index 2ab2497..e32aa23 100644
> --- a/arch/arm/mach-omap2/board-omap3pandora.c
> +++ b/arch/arm/mach-omap2/board-omap3pandora.c
> @@ -25,6 +25,9 @@
>  #include <linux/spi/ads7846.h>
>  #include <linux/regulator/machine.h>
>  #include <linux/i2c/twl4030.h>
> +#include <linux/leds.h>
> +#include <linux/input.h>
> +#include <linux/gpio_keys.h>
>  
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
> @@ -36,12 +39,154 @@
>  #include <mach/hardware.h>
>  #include <mach/mcspi.h>
>  #include <mach/usb.h>
> +#include <mach/keypad.h>
>  
>  #include "sdram-micron-mt46h32m32lf-6.h"
>  #include "mmc-twl4030.h"
>  
>  #define OMAP3_PANDORA_TS_GPIO		94
>  
> +/* hardware debounce: (value + 1) * 31us */
> +#define GPIO_DEBOUNCE_TIME		127
> +
> +static struct gpio_led pandora_gpio_leds[] = {
> +	{
> +		.name			= "pandora::sd1",
> +		.default_trigger	= "mmc0",
> +		.gpio			= 128,
> +	}, {
> +		.name			= "pandora::sd2",
> +		.default_trigger	= "mmc1",
> +		.gpio			= 129,
> +	}, {
> +		.name			= "pandora::bluetooth",
> +		.gpio			= 158,
> +	}, {
> +		.name			= "pandora::wifi",
> +		.gpio			= 159,
> +	},
> +};
> +
> +static struct gpio_led_platform_data pandora_gpio_led_data = {
> +	.leds		= pandora_gpio_leds,
> +	.num_leds	= ARRAY_SIZE(pandora_gpio_leds),
> +};
> +
> +static struct platform_device pandora_leds_gpio = {
> +	.name	= "leds-gpio",
> +	.id	= -1,
> +	.dev	= {
> +		.platform_data	= &pandora_gpio_led_data,
> +	},
> +};
> +
> +#define GPIO_BUTTON(gpio_num, ev_type, ev_code, act_low, descr)	\
> +{								\
> +	.gpio		= gpio_num,				\
> +	.type		= ev_type,				\
> +	.code		= ev_code,				\
> +	.active_low	= act_low,				\
> +	.desc		= "btn " descr,				\
> +}
> +
> +#define GPIO_BUTTON_LOW(gpio_num, event_code, description)	\
> +	GPIO_BUTTON(gpio_num, EV_KEY, event_code, 1, description)
> +
> +static struct gpio_keys_button pandora_gpio_keys[] = {
> +	GPIO_BUTTON_LOW(110,	KEY_UP,		"up"),
> +	GPIO_BUTTON_LOW(103,	KEY_DOWN,	"down"),
> +	GPIO_BUTTON_LOW(96,	KEY_LEFT,	"left"),
> +	GPIO_BUTTON_LOW(98,	KEY_RIGHT,	"right"),
> +	GPIO_BUTTON_LOW(111,	BTN_A,		"a"),
> +	GPIO_BUTTON_LOW(106,	BTN_B,		"b"),
> +	GPIO_BUTTON_LOW(109,	BTN_X,		"x"),
> +	GPIO_BUTTON_LOW(101,	BTN_Y,		"y"),
> +	GPIO_BUTTON_LOW(102,	BTN_TL,		"l"),
> +	GPIO_BUTTON_LOW(97,	BTN_TL2,	"l2"),
> +	GPIO_BUTTON_LOW(105,	BTN_TR,		"r"),
> +	GPIO_BUTTON_LOW(107,	BTN_TR2,	"r2"),
> +	GPIO_BUTTON_LOW(104,	KEY_LEFTCTRL,	"ctrl"),
> +	GPIO_BUTTON_LOW(99,	KEY_MENU,	"menu"),
> +	GPIO_BUTTON_LOW(176,	KEY_COFFEE,	"hold"),
> +	GPIO_BUTTON(100, EV_KEY, KEY_LEFTALT, 0, "alt"),
> +	GPIO_BUTTON(108, EV_SW, SW_LID, 1, "lid"),
> +};
> +
> +static struct gpio_keys_platform_data pandora_gpio_key_info = {
> +	.buttons	= pandora_gpio_keys,
> +	.nbuttons	= ARRAY_SIZE(pandora_gpio_keys),
> +};
> +
> +static struct platform_device pandora_keys_gpio = {
> +	.name	= "gpio-keys",
> +	.id	= -1,
> +	.dev	= {
> +		.platform_data	= &pandora_gpio_key_info,
> +	},
> +};
> +
> +static void __init pandora_keys_gpio_init(void)
> +{
> +	/* set debounce time for GPIO banks 4 and 6 */
> +	omap_set_gpio_debounce_time(32 * 3, GPIO_DEBOUNCE_TIME);
> +	omap_set_gpio_debounce_time(32 * 5, GPIO_DEBOUNCE_TIME);
> +}
> +
> +static int pandora_keypad_map[] = {
> +	/* col, row, code */
> +	KEY(0, 0, KEY_9),
> +	KEY(0, 1, KEY_0),
> +	KEY(0, 2, KEY_BACKSPACE),
> +	KEY(0, 3, KEY_O),
> +	KEY(0, 4, KEY_P),
> +	KEY(0, 5, KEY_K),
> +	KEY(0, 6, KEY_L),
> +	KEY(0, 7, KEY_ENTER),
> +	KEY(1, 0, KEY_8),
> +	KEY(1, 1, KEY_7),
> +	KEY(1, 2, KEY_6),
> +	KEY(1, 3, KEY_5),
> +	KEY(1, 4, KEY_4),
> +	KEY(1, 5, KEY_3),
> +	KEY(1, 6, KEY_2),
> +	KEY(1, 7, KEY_1),
> +	KEY(2, 0, KEY_I),
> +	KEY(2, 1, KEY_U),
> +	KEY(2, 2, KEY_Y),
> +	KEY(2, 3, KEY_T),
> +	KEY(2, 4, KEY_R),
> +	KEY(2, 5, KEY_E),
> +	KEY(2, 6, KEY_W),
> +	KEY(2, 7, KEY_Q),
> +	KEY(3, 0, KEY_J),
> +	KEY(3, 1, KEY_H),
> +	KEY(3, 2, KEY_G),
> +	KEY(3, 3, KEY_F),
> +	KEY(3, 4, KEY_D),
> +	KEY(3, 5, KEY_S),
> +	KEY(3, 6, KEY_A),
> +	KEY(3, 7, KEY_LEFTSHIFT),
> +	KEY(4, 0, KEY_N),
> +	KEY(4, 1, KEY_B),
> +	KEY(4, 2, KEY_V),
> +	KEY(4, 3, KEY_C),
> +	KEY(4, 4, KEY_X),
> +	KEY(4, 5, KEY_Z),
> +	KEY(4, 6, KEY_DOT),
> +	KEY(4, 7, KEY_COMMA),
> +	KEY(5, 0, KEY_M),
> +	KEY(5, 1, KEY_SPACE),
> +	KEY(5, 2, KEY_FN),
> +};
> +
> +static struct twl4030_keypad_data pandora_kp_data = {
> +	.rows		= 8,
> +	.cols		= 6,
> +	.keymap		= pandora_keypad_map,
> +	.keymapsize	= ARRAY_SIZE(pandora_keypad_map),
> +	.rep		= 1,
> +};
> +
>  static struct twl4030_hsmmc_info omap3pandora_mmc[] = {
>  	{
>  		.mmc		= 1,
> @@ -142,6 +287,7 @@ static struct twl4030_platform_data omap3pandora_twldata = {
>  	.usb		= &omap3pandora_usb_data,
>  	.vmmc1		= &pandora_vmmc1,
>  	.vmmc2		= &pandora_vmmc2,
> +	.keypad		= &pandora_kp_data,
>  };
>  
>  static struct i2c_board_info __initdata omap3pandora_i2c_boardinfo[] = {
> @@ -234,6 +380,8 @@ static struct omap_board_config_kernel omap3pandora_config[] __initdata = {
>  
>  static struct platform_device *omap3pandora_devices[] __initdata = {
>  	&omap3pandora_lcd_device,
> +	&pandora_leds_gpio,
> +	&pandora_keys_gpio,
>  };
>  
>  static void __init omap3pandora_init(void)
> @@ -247,6 +395,7 @@ static void __init omap3pandora_init(void)
>  	spi_register_board_info(omap3pandora_spi_board_info,
>  			ARRAY_SIZE(omap3pandora_spi_board_info));
>  	omap3pandora_ads7846_init();
> +	pandora_keys_gpio_init();
>  	usb_musb_init();
>  }
>  
> -- 
> 1.5.6.3
> 

  reply	other threads:[~2009-05-27 20:24 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-25 17:46 [PATCH 0/8] omap3 board updates for merge window after 2.6.30 Tony Lindgren
2009-05-25 17:48 ` [PATCH 1/8] ARM: OMAP3: mmc-twl4030 uses regulator framework Tony Lindgren
2009-05-25 22:47   ` Daniel Ribeiro
2009-05-26 12:59     ` Mark Brown
2009-05-27 16:55     ` [PATCH 1/8] ARM: OMAP3: mmc-twl4030 uses regulator framework, v2 Tony Lindgren
2009-05-25 17:49 ` [PATCH 2/8] ARM: OMAP3: Initialize regulators for Beagle and Overo Tony Lindgren
2009-05-28 16:20   ` Russell King - ARM Linux
2009-05-28 17:33     ` Tony Lindgren
2009-05-28 18:00       ` Mark Brown
2009-05-28 19:48         ` Russell King - ARM Linux
2009-05-29 10:05           ` Mark Brown
2009-05-25 17:51 ` [PATCH 3/8] ARM: OMAP3: pandora: setup regulator framework for MMC Tony Lindgren
2009-05-25 17:52 ` [PATCH 4/8] ARM: OMAP3: RX51: Connect VAUX3 to MMC2 Tony Lindgren
2009-05-25 17:53 ` [PATCH 5/8] ARM: OMAP3: Add support for OMAP3 Zoom2 board Tony Lindgren
2009-05-28 16:05   ` Russell King - ARM Linux
2009-05-28 21:13     ` [PATCH 5/8] ARM: OMAP3: Add support for OMAP3 Zoom2 board, v2 Tony Lindgren
2009-05-28 21:16       ` Russell King - ARM Linux
2009-05-28 21:39         ` Tony Lindgren
2009-05-25 17:55 ` [PATCH 6/8] ARM: OMAP3: Defconfig for Zoom2 board Tony Lindgren
2009-05-25 17:56 ` [PATCH 7/8] ARM: OMAP3: Add omap3 EVM support Tony Lindgren
2009-05-28 16:06   ` Russell King - ARM Linux
2009-05-28 21:14     ` [PATCH 7/8] ARM: OMAP3: Add omap3 EVM support, v2 Tony Lindgren
2009-05-25 17:57 ` [PATCH 8/8] ARM: OMAP3: Add omap3 EVM defconfig Tony Lindgren
2009-05-27 19:47 ` [PATCH] ARM: OMAP3: pandora: add support for mode devices Grazvydas Ignotas
2009-05-27 20:24   ` Tony Lindgren [this message]
2009-05-27 23:39 ` [PATCH 0/8] omap3 board updates for merge window after 2.6.30 Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090527202415.GD6267@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-omap@vger.kernel.org \
    --cc=notasas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.