linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] IGEP board changes for .38 merge window
@ 2011-01-10 13:26 Enric Balletbo i Serra
  2011-01-10 13:26 ` [PATCH 1/3] omap3: igep3: Add USB EHCI support for IGEP module Enric Balletbo i Serra
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Enric Balletbo i Serra @ 2011-01-10 13:26 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Tony,

Here's a new patches for IGEP boards. These patches are rebased on top of your 
for-next tree. Please consider adding for .38 merge window. Thanks.

Cheers,

Enric Balletbo i Serra (3):
  omap3: igep3: Add USB EHCI support for IGEP module.
  omap3: igep3: Fix IGEP module second MMC channel power supply.
  omap3: igep2: Add keypad support.

 arch/arm/mach-omap2/board-igep0020.c |   33 ++++++++++++++
 arch/arm/mach-omap2/board-igep0030.c |   80 +++++++++++++++++++++++++++++-----
 2 files changed, 102 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/3] omap3: igep3: Add USB EHCI support for IGEP module.
  2011-01-10 13:26 [PATCH 0/3] IGEP board changes for .38 merge window Enric Balletbo i Serra
@ 2011-01-10 13:26 ` Enric Balletbo i Serra
  2011-01-10 13:26 ` [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply Enric Balletbo i Serra
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Enric Balletbo i Serra @ 2011-01-10 13:26 UTC (permalink / raw)
  To: linux-arm-kernel

The OMAP3 IGEP module has one EHCI interface on board using
USB2HS port. GPIO183 is used as PHY reset.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
---
 arch/arm/mach-omap2/board-igep0030.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c
index c88e8f7..f0a85c1 100644
--- a/arch/arm/mach-omap2/board-igep0030.c
+++ b/arch/arm/mach-omap2/board-igep0030.c
@@ -43,7 +43,7 @@
 #define IGEP3_GPIO_WIFI_NRESET	139
 #define IGEP3_GPIO_BT_NRESET	137
 
-#define IGEP3_GPIO_USBH_NRESET  115
+#define IGEP3_GPIO_USBH_NRESET  183
 
 
 #if defined(CONFIG_MTD_ONENAND_OMAP2) || \
@@ -363,8 +363,20 @@ static void __init igep3_wifi_bt_init(void)
 void __init igep3_wifi_bt_init(void) {}
 #endif
 
+static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
+	.port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
+	.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
+	.port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
+
+	.phy_reset = true,
+	.reset_gpio_port[0] = -EINVAL,
+	.reset_gpio_port[1] = IGEP3_GPIO_USBH_NRESET,
+	.reset_gpio_port[2] = -EINVAL,
+};
+
 #ifdef CONFIG_OMAP_MUX
 static struct omap_board_mux board_mux[] __initdata = {
+	OMAP3_MUX(I2C2_SDA, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT),
 	{ .reg_offset = OMAP_MUX_TERMINATOR },
 };
 #endif
@@ -378,6 +390,7 @@ static void __init igep3_init(void)
 
 	omap_serial_init();
 	usb_musb_init(&musb_board_data);
+	usb_ehci_init(&ehci_pdata);
 
 	igep3_flash_init();
 	igep3_leds_init();
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply.
  2011-01-10 13:26 [PATCH 0/3] IGEP board changes for .38 merge window Enric Balletbo i Serra
  2011-01-10 13:26 ` [PATCH 1/3] omap3: igep3: Add USB EHCI support for IGEP module Enric Balletbo i Serra
@ 2011-01-10 13:26 ` Enric Balletbo i Serra
  2011-01-10 14:18   ` Marc Zyngier
  2011-01-10 13:26 ` [PATCH 3/3] omap3: igep2: Add keypad support Enric Balletbo i Serra
  2011-01-10 22:38 ` [PATCH 0/3] IGEP board changes for .38 merge window Tony Lindgren
  3 siblings, 1 reply; 6+ messages in thread
From: Enric Balletbo i Serra @ 2011-01-10 13:26 UTC (permalink / raw)
  To: linux-arm-kernel

The second MMC channel (used by the WLAN/BT module) is not linked to
power regulator. This causes the WLAN/BT module to fail being detected if
CONFIG_REGULATOR_DUMMY is not set.

This patch adds the two regulators that actually feed the WLAN/BT module
(1v8 from the TWL4030 VIO LDO, and a fixed 3v3). With that patch, the
second channel is properly detected.

Also change vmmc1 to use symbolic names instead of direct device
reference.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
---
 arch/arm/mach-omap2/board-igep0030.c |   65 ++++++++++++++++++++++++++++-----
 1 files changed, 55 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c
index f0a85c1..8ddd45c 100644
--- a/arch/arm/mach-omap2/board-igep0030.c
+++ b/arch/arm/mach-omap2/board-igep0030.c
@@ -19,6 +19,7 @@
 #include <linux/interrupt.h>
 
 #include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
 #include <linux/i2c/twl.h>
 #include <linux/mmc/host.h>
 
@@ -140,9 +141,8 @@ static void __init igep3_flash_init(void)
 static void __init igep3_flash_init(void) {}
 #endif
 
-static struct regulator_consumer_supply igep3_vmmc1_supply = {
-	.supply		= "vmmc",
-};
+static struct regulator_consumer_supply igep3_vmmc1_supply =
+	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.0");
 
 /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
 static struct regulator_init_data igep3_vmmc1 = {
@@ -159,6 +159,52 @@ static struct regulator_init_data igep3_vmmc1 = {
 	.consumer_supplies      = &igep3_vmmc1_supply,
 };
 
+static struct regulator_consumer_supply igep3_vio_supply =
+	REGULATOR_SUPPLY("vmmc_aux", "mmci-omap-hs.1");
+
+static struct regulator_init_data igep3_vio = {
+	.constraints = {
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.apply_uV		= 1,
+		.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	= &igep3_vio_supply,
+};
+
+static struct regulator_consumer_supply igep3_vmmc2_supply =
+	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1");
+
+static struct regulator_init_data igep3_vmmc2 = {
+	.constraints	= {
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
+		.always_on		= 1,
+	},
+	.num_consumer_supplies	= 1,
+	.consumer_supplies	= &igep3_vmmc2_supply,
+};
+
+static struct fixed_voltage_config igep3_vwlan = {
+	.supply_name		= "vwlan",
+	.microvolts		= 3300000,
+	.gpio			= -EINVAL,
+	.enabled_at_boot	= 1,
+	.init_data		= &igep3_vmmc2,
+};
+
+static struct platform_device igep3_vwlan_device = {
+	.name	= "reg-fixed-voltage",
+	.id	= 0,
+	.dev	= {
+		.platform_data = &igep3_vwlan,
+	},
+};
+
 static struct omap2_hsmmc_info mmc[] = {
 	[0] = {
 		.mmc		= 1,
@@ -254,12 +300,6 @@ static int igep3_twl4030_gpio_setup(struct device *dev,
 	mmc[0].gpio_cd = gpio + 0;
 	omap2_hsmmc_init(mmc);
 
-	/*
-	 * link regulators to MMC adapters ... we "know" the
-	 * regulators will be set up only *after* we return.
-	 */
-	igep3_vmmc1_supply.dev = mmc[0].dev;
-
 	/* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */
 #if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE)
 	if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, "gpio-led:green:d1") == 0)
@@ -287,6 +327,10 @@ static struct twl4030_usb_data igep3_twl4030_usb_data = {
 	.usb_mode	= T2_USB_MODE_ULPI,
 };
 
+static struct platform_device *igep3_devices[] __initdata = {
+	&igep3_vwlan_device,
+};
+
 static void __init igep3_init_irq(void)
 {
 	omap2_init_common_infrastructure();
@@ -303,6 +347,7 @@ static struct twl4030_platform_data igep3_twl4030_pdata = {
 	.usb		= &igep3_twl4030_usb_data,
 	.gpio		= &igep3_twl4030_gpio_pdata,
 	.vmmc1		= &igep3_vmmc1,
+	.vio		= &igep3_vio,
 };
 
 static struct i2c_board_info __initdata igep3_i2c_boardinfo[] = {
@@ -387,7 +432,7 @@ static void __init igep3_init(void)
 
 	/* Register I2C busses and drivers */
 	igep3_i2c_init();
-
+	platform_add_devices(igep3_devices, ARRAY_SIZE(igep3_devices));
 	omap_serial_init();
 	usb_musb_init(&musb_board_data);
 	usb_ehci_init(&ehci_pdata);
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] omap3: igep2: Add keypad support.
  2011-01-10 13:26 [PATCH 0/3] IGEP board changes for .38 merge window Enric Balletbo i Serra
  2011-01-10 13:26 ` [PATCH 1/3] omap3: igep3: Add USB EHCI support for IGEP module Enric Balletbo i Serra
  2011-01-10 13:26 ` [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply Enric Balletbo i Serra
@ 2011-01-10 13:26 ` Enric Balletbo i Serra
  2011-01-10 22:38 ` [PATCH 0/3] IGEP board changes for .38 merge window Tony Lindgren
  3 siblings, 0 replies; 6+ messages in thread
From: Enric Balletbo i Serra @ 2011-01-10 13:26 UTC (permalink / raw)
  To: linux-arm-kernel

Support twl4030 keypad and gpio keys on IGEP v2.

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
---
 arch/arm/mach-omap2/board-igep0020.c |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 0afa301..3a6cce5 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -17,6 +17,7 @@
 #include <linux/io.h>
 #include <linux/gpio.h>
 #include <linux/interrupt.h>
+#include <linux/input.h>
 
 #include <linux/regulator/machine.h>
 #include <linux/regulator/fixed.h>
@@ -535,6 +536,37 @@ static struct twl4030_codec_data igep2_codec_data = {
 	.audio = &igep2_audio_data,
 };
 
+static int igep2_keymap[] = {
+	KEY(0, 0, KEY_LEFT),
+	KEY(0, 1, KEY_RIGHT),
+	KEY(0, 2, KEY_A),
+	KEY(0, 3, KEY_B),
+	KEY(1, 0, KEY_DOWN),
+	KEY(1, 1, KEY_UP),
+	KEY(1, 2, KEY_E),
+	KEY(1, 3, KEY_F),
+	KEY(2, 0, KEY_ENTER),
+	KEY(2, 1, KEY_I),
+	KEY(2, 2, KEY_J),
+	KEY(2, 3, KEY_K),
+	KEY(3, 0, KEY_M),
+	KEY(3, 1, KEY_N),
+	KEY(3, 2, KEY_O),
+	KEY(3, 3, KEY_P)
+};
+
+static struct matrix_keymap_data igep2_keymap_data = {
+	.keymap			= igep2_keymap,
+	.keymap_size		= ARRAY_SIZE(igep2_keymap),
+};
+
+static struct twl4030_keypad_data igep2_keypad_pdata = {
+	.keymap_data	= &igep2_keymap_data,
+	.rows		= 4,
+	.cols		= 4,
+	.rep		= 1,
+};
+
 static struct twl4030_platform_data igep2_twldata = {
 	.irq_base	= TWL4030_IRQ_BASE,
 	.irq_end	= TWL4030_IRQ_END,
@@ -543,6 +575,7 @@ static struct twl4030_platform_data igep2_twldata = {
 	.usb		= &igep2_usb_data,
 	.codec		= &igep2_codec_data,
 	.gpio		= &igep2_twl4030_gpio_pdata,
+	.keypad		= &igep2_keypad_pdata,
 	.vmmc1          = &igep2_vmmc1,
 	.vpll2		= &igep2_vpll2,
 	.vio		= &igep2_vio,
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply.
  2011-01-10 13:26 ` [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply Enric Balletbo i Serra
@ 2011-01-10 14:18   ` Marc Zyngier
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Zyngier @ 2011-01-10 14:18 UTC (permalink / raw)
  To: linux-arm-kernel


On Mon, 10 Jan 2011 14:26:13 +0100, Enric Balletbo i Serra
<eballetbo@gmail.com> wrote:
> The second MMC channel (used by the WLAN/BT module) is not linked to
> power regulator. This causes the WLAN/BT module to fail being detected
if
> CONFIG_REGULATOR_DUMMY is not set.
> 
> This patch adds the two regulators that actually feed the WLAN/BT module
> (1v8 from the TWL4030 VIO LDO, and a fixed 3v3). With that patch, the
> second channel is properly detected.
> 
> Also change vmmc1 to use symbolic names instead of direct device
> reference.
> 
> Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>

Acked-by: Marc Zyngier <maz@misterjones.org>
-- 
Who you jivin' with that Cosmik Debris?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 0/3] IGEP board changes for .38 merge window
  2011-01-10 13:26 [PATCH 0/3] IGEP board changes for .38 merge window Enric Balletbo i Serra
                   ` (2 preceding siblings ...)
  2011-01-10 13:26 ` [PATCH 3/3] omap3: igep2: Add keypad support Enric Balletbo i Serra
@ 2011-01-10 22:38 ` Tony Lindgren
  3 siblings, 0 replies; 6+ messages in thread
From: Tony Lindgren @ 2011-01-10 22:38 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

* Enric Balletbo i Serra <eballetbo@gmail.com> [110110 05:25]:
> Hi Tony,
> 
> Here's a new patches for IGEP boards. These patches are rebased on top of your 
> for-next tree. Please consider adding for .38 merge window. Thanks.

I'll add these to the devel-board, let's see if we can get these and
the beagle patches still in.

In general, everybody, please send in new code for each merge window
by -rc6 so there's enough time for people to review and ack the code
and also have it be sitting in for-next before the merge window opens.

Regards,

Tony

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-01-10 22:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-10 13:26 [PATCH 0/3] IGEP board changes for .38 merge window Enric Balletbo i Serra
2011-01-10 13:26 ` [PATCH 1/3] omap3: igep3: Add USB EHCI support for IGEP module Enric Balletbo i Serra
2011-01-10 13:26 ` [PATCH 2/3] omap3: igep3: Fix IGEP module second MMC channel power supply Enric Balletbo i Serra
2011-01-10 14:18   ` Marc Zyngier
2011-01-10 13:26 ` [PATCH 3/3] omap3: igep2: Add keypad support Enric Balletbo i Serra
2011-01-10 22:38 ` [PATCH 0/3] IGEP board changes for .38 merge window Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).