Re: [PATCH 07/10] OMAP3: Zoom2: Add TWL4030 support,v 2

2009-08-16 Thread Tony Lindgren
* Russell King - ARM Linux  [090813 12:28]:
> On Wed, Aug 12, 2009 at 03:20:07PM +0300, Tony Lindgren wrote:
> > +static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
> > +   .rows   = 8,
> > +   .cols   = 8,
> > +   .keymap = zoom2_twl4030_keymap,
> > +   .keymapsize = ARRAY_SIZE(zoom2_twl4030_keymap),
> > +   .rep= 1,
> > +};
> 
> Normally have a blank line here.
> 
> >  static void __init omap_zoom2_init_irq(void)
> >  {
> > omap2_init_common_hw(NULL);
> 
> Otherwise ok.

Updated patch below.

Tony
>From 319fc2ce44067ec84eae3a7effd5ad0bb3515a84 Mon Sep 17 00:00:00 2001
From: Vikram Pandita 
Date: Sun, 16 Aug 2009 18:26:19 +0300
Subject: [PATCH] OMAP3: Zoom2: Add TWL4030 support

Add TWL4030 CORE and TWL4030 drivers to Zoom2 board file
TWL drivers enabled are:
	bci
	madc
	usb
	keypad
	mmc

Signed-off-by: Vikram Pandita 
Signed-off-by: Tony Lindgren 

diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
index 4cefa3f..368e6aa 100644
--- a/arch/arm/mach-omap2/board-zoom2.c
+++ b/arch/arm/mach-omap2/board-zoom2.c
@@ -12,17 +12,84 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
 
 #include 
 #include 
+#include 
 
 #include "mmc-twl4030.h"
 
+/* Zoom2 has Qwerty keyboard*/
+static int zoom2_twl4030_keymap[] = {
+	KEY(0, 0, KEY_E),
+	KEY(1, 0, KEY_R),
+	KEY(2, 0, KEY_T),
+	KEY(3, 0, KEY_HOME),
+	KEY(6, 0, KEY_I),
+	KEY(7, 0, KEY_LEFTSHIFT),
+	KEY(0, 1, KEY_D),
+	KEY(1, 1, KEY_F),
+	KEY(2, 1, KEY_G),
+	KEY(3, 1, KEY_SEND),
+	KEY(6, 1, KEY_K),
+	KEY(7, 1, KEY_ENTER),
+	KEY(0, 2, KEY_X),
+	KEY(1, 2, KEY_C),
+	KEY(2, 2, KEY_V),
+	KEY(3, 2, KEY_END),
+	KEY(6, 2, KEY_DOT),
+	KEY(7, 2, KEY_CAPSLOCK),
+	KEY(0, 3, KEY_Z),
+	KEY(1, 3, KEY_KPPLUS),
+	KEY(2, 3, KEY_B),
+	KEY(3, 3, KEY_F1),
+	KEY(6, 3, KEY_O),
+	KEY(7, 3, KEY_SPACE),
+	KEY(0, 4, KEY_W),
+	KEY(1, 4, KEY_Y),
+	KEY(2, 4, KEY_U),
+	KEY(3, 4, KEY_F2),
+	KEY(4, 4, KEY_VOLUMEUP),
+	KEY(6, 4, KEY_L),
+	KEY(7, 4, KEY_LEFT),
+	KEY(0, 5, KEY_S),
+	KEY(1, 5, KEY_H),
+	KEY(2, 5, KEY_J),
+	KEY(3, 5, KEY_F3),
+	KEY(5, 5, KEY_VOLUMEDOWN),
+	KEY(6, 5, KEY_M),
+	KEY(4, 5, KEY_ENTER),
+	KEY(7, 5, KEY_RIGHT),
+	KEY(0, 6, KEY_Q),
+	KEY(1, 6, KEY_A),
+	KEY(2, 6, KEY_N),
+	KEY(3, 6, KEY_BACKSPACE),
+	KEY(6, 6, KEY_P),
+	KEY(7, 6, KEY_UP),
+	KEY(6, 7, KEY_SELECT),
+	KEY(7, 7, KEY_DOWN),
+	KEY(0, 7, KEY_PROG1),	/*MACRO 1  */
+	KEY(1, 7, KEY_PROG2),	/*MACRO 2  */
+	KEY(2, 7, KEY_PROG3),	/*MACRO 3  */
+	KEY(3, 7, KEY_PROG4),	/*MACRO 4  */
+	0
+};
+
+static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
+	.rows		= 8,
+	.cols		= 8,
+	.keymap		= zoom2_twl4030_keymap,
+	.keymapsize	= ARRAY_SIZE(zoom2_twl4030_keymap),
+	.rep		= 1,
+};
+
 static void __init omap_zoom2_init_irq(void)
 {
 	omap2_init_common_hw(NULL);
@@ -37,10 +104,127 @@ static struct omap_uart_platform_data zoom2_uart_config __initdata = {
 static struct omap_board_config_kernel zoom2_config[] __initdata = {
 };
 
+static struct regulator_consumer_supply zoom2_vmmc1_supply = {
+	.supply		= "vmmc",
+};
+
+static struct regulator_consumer_supply zoom2_vsim_supply = {
+	.supply		= "vmmc_aux",
+};
+
+static struct regulator_consumer_supply zoom2_vmmc2_supply = {
+	.supply		= "vmmc",
+};
+
+/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
+static struct regulator_init_data zoom2_vmmc1 = {
+	.constraints = {
+		.min_uV			= 185,
+		.max_uV			= 315,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+	| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
+	| REGULATOR_CHANGE_MODE
+	| REGULATOR_CHANGE_STATUS,
+	},
+	.num_consumer_supplies  = 1,
+	.consumer_supplies  = &zoom2_vmmc1_supply,
+};
+
+/* VMMC2 for MMC2 card */
+static struct regulator_init_data zoom2_vmmc2 = {
+	.constraints = {
+		.min_uV			= 185,
+		.max_uV			= 185,
+		.apply_uV		= true,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+	| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+	| REGULATOR_CHANGE_STATUS,
+	},
+	.num_consumer_supplies  = 1,
+	.consumer_supplies  = &zoom2_vmmc2_supply,
+};
+
+/* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
+static struct regulator_init_data zoom2_vsim = {
+	.constraints = {
+		.min_uV			= 180,
+		.max_uV			= 300,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+	| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
+	| REGULATOR_CHANGE_MODE
+	| REGULATOR_CHANGE_STATUS,
+	},
+	.num_consumer_supplies  = 1,
+	.consumer_supplies  = &zoom2_vsim_supply,
+};
+
+static struct twl4030_hsmmc_info mmc[] __initdata = {
+	{
+		.mmc		= 1,
+		.wires		= 4,
+		.gpio_wp	= -EINVAL,
+	},
+	{
+		.mmc		= 2,
+		.wires		= 4,
+		.gpio_wp	= -EINVAL,
+	},
+	{}  /* Terminator */
+};
+
+static int zoom2_twl_gpio_setup(struct device *dev,
+		unsigned gpio, unsigned ngpio)
+{
+	/* gpio + 0 is "mmc0_cd" (input/IRQ),
+	 * gpio + 1 is "mmc1_cd" (input/IRQ)
+	 */
+	mmc[0].gpio_cd = gpio + 0;
+	mmc[1]

Re: [PATCH 07/10] OMAP3: Zoom2: Add TWL4030 support

2009-08-13 Thread Russell King - ARM Linux
On Wed, Aug 12, 2009 at 03:20:07PM +0300, Tony Lindgren wrote:
> +static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
> + .rows   = 8,
> + .cols   = 8,
> + .keymap = zoom2_twl4030_keymap,
> + .keymapsize = ARRAY_SIZE(zoom2_twl4030_keymap),
> + .rep= 1,
> +};

Normally have a blank line here.

>  static void __init omap_zoom2_init_irq(void)
>  {
>   omap2_init_common_hw(NULL);

Otherwise ok.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 07/10] OMAP3: Zoom2: Add TWL4030 support

2009-08-12 Thread Tony Lindgren
From: Vikram Pandita 

Add TWL4030 CORE and TWL4030 drivers to Zoom2 board file
TWL drivers enabled are:
bci
madc
usb
keypad
mmc

Signed-off-by: Vikram Pandita 
Signed-off-by: Tony Lindgren 
---
 arch/arm/mach-omap2/board-zoom2.c |  204 +++--
 1 files changed, 193 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-omap2/board-zoom2.c 
b/arch/arm/mach-omap2/board-zoom2.c
index 4cefa3f..98e6dc8 100644
--- a/arch/arm/mach-omap2/board-zoom2.c
+++ b/arch/arm/mach-omap2/board-zoom2.c
@@ -12,17 +12,83 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 
 #include 
 #include 
 
 #include 
 #include 
+#include 
 
 #include "mmc-twl4030.h"
 
+/* Zoom2 has Qwerty keyboard*/
+static int zoom2_twl4030_keymap[] = {
+   KEY(0, 0, KEY_E),
+   KEY(1, 0, KEY_R),
+   KEY(2, 0, KEY_T),
+   KEY(3, 0, KEY_HOME),
+   KEY(6, 0, KEY_I),
+   KEY(7, 0, KEY_LEFTSHIFT),
+   KEY(0, 1, KEY_D),
+   KEY(1, 1, KEY_F),
+   KEY(2, 1, KEY_G),
+   KEY(3, 1, KEY_SEND),
+   KEY(6, 1, KEY_K),
+   KEY(7, 1, KEY_ENTER),
+   KEY(0, 2, KEY_X),
+   KEY(1, 2, KEY_C),
+   KEY(2, 2, KEY_V),
+   KEY(3, 2, KEY_END),
+   KEY(6, 2, KEY_DOT),
+   KEY(7, 2, KEY_CAPSLOCK),
+   KEY(0, 3, KEY_Z),
+   KEY(1, 3, KEY_KPPLUS),
+   KEY(2, 3, KEY_B),
+   KEY(3, 3, KEY_F1),
+   KEY(6, 3, KEY_O),
+   KEY(7, 3, KEY_SPACE),
+   KEY(0, 4, KEY_W),
+   KEY(1, 4, KEY_Y),
+   KEY(2, 4, KEY_U),
+   KEY(3, 4, KEY_F2),
+   KEY(4, 4, KEY_VOLUMEUP),
+   KEY(6, 4, KEY_L),
+   KEY(7, 4, KEY_LEFT),
+   KEY(0, 5, KEY_S),
+   KEY(1, 5, KEY_H),
+   KEY(2, 5, KEY_J),
+   KEY(3, 5, KEY_F3),
+   KEY(5, 5, KEY_VOLUMEDOWN),
+   KEY(6, 5, KEY_M),
+   KEY(4, 5, KEY_ENTER),
+   KEY(7, 5, KEY_RIGHT),
+   KEY(0, 6, KEY_Q),
+   KEY(1, 6, KEY_A),
+   KEY(2, 6, KEY_N),
+   KEY(3, 6, KEY_BACKSPACE),
+   KEY(6, 6, KEY_P),
+   KEY(7, 6, KEY_UP),
+   KEY(6, 7, KEY_SELECT),
+   KEY(7, 7, KEY_DOWN),
+   KEY(0, 7, KEY_PROG1),   /*MACRO 1  */
+   KEY(1, 7, KEY_PROG2),   /*MACRO 2  */
+   KEY(2, 7, KEY_PROG3),   /*MACRO 3  */
+   KEY(3, 7, KEY_PROG4),   /*MACRO 4  */
+   0
+};
+
+static struct twl4030_keypad_data zoom2_kp_twl4030_data = {
+   .rows   = 8,
+   .cols   = 8,
+   .keymap = zoom2_twl4030_keymap,
+   .keymapsize = ARRAY_SIZE(zoom2_twl4030_keymap),
+   .rep= 1,
+};
 static void __init omap_zoom2_init_irq(void)
 {
omap2_init_common_hw(NULL);
@@ -37,10 +103,129 @@ static struct omap_uart_platform_data zoom2_uart_config 
__initdata = {
 static struct omap_board_config_kernel zoom2_config[] __initdata = {
 };
 
+
+
+static struct regulator_consumer_supply zoom2_vmmc1_supply = {
+   .supply = "vmmc",
+};
+
+static struct regulator_consumer_supply zoom2_vsim_supply = {
+   .supply = "vmmc_aux",
+};
+
+static struct regulator_consumer_supply zoom2_vmmc2_supply = {
+   .supply = "vmmc",
+};
+
+/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
+static struct regulator_init_data zoom2_vmmc1 = {
+   .constraints = {
+   .min_uV = 185,
+   .max_uV = 315,
+   .valid_modes_mask   = REGULATOR_MODE_NORMAL
+   | REGULATOR_MODE_STANDBY,
+   .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
+   | REGULATOR_CHANGE_MODE
+   | REGULATOR_CHANGE_STATUS,
+   },
+   .num_consumer_supplies  = 1,
+   .consumer_supplies  = &zoom2_vmmc1_supply,
+};
+
+/* VMMC2 for MMC2 card */
+static struct regulator_init_data zoom2_vmmc2 = {
+   .constraints = {
+   .min_uV = 185,
+   .max_uV = 185,
+   .apply_uV   = true,
+   .valid_modes_mask   = REGULATOR_MODE_NORMAL
+   | REGULATOR_MODE_STANDBY,
+   .valid_ops_mask = REGULATOR_CHANGE_MODE
+   | REGULATOR_CHANGE_STATUS,
+   },
+   .num_consumer_supplies  = 1,
+   .consumer_supplies  = &zoom2_vmmc2_supply,
+};
+
+/* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */
+static struct regulator_init_data zoom2_vsim = {
+   .constraints = {
+   .min_uV = 180,
+   .max_uV = 300,
+   .valid_modes_mask   = REGULATOR_MODE_NORMAL
+   | REGULATOR_MODE_STANDBY,
+   .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
+   | REGULATOR_CHANGE_MODE
+   | REGULATOR_CHANGE_