public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Clean-up for rx51
@ 2009-03-13 18:03 Tony Lindgren
  2009-03-13 18:03 ` [PATCH 1/4] Clean-up rx51 a bit and set the regulators Tony Lindgren
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:03 UTC (permalink / raw)
  To: linux-omap

Hi all,

Here are few patches against the l-o tree to clean-up rx51 board
files. Also catch up with the mmc-twl4030 changes, and make
the smc911x Ethernet work.

Regards,

Tony

---

David Brownell (3):
      Hook up twl4030 regulators to the relevant RX51 MMC slots.
      Bugfix to RX51 flash support:  this board has no NOR flash,
      Clean-up rx51 a bit and set the regulators.

Tony Lindgren (1):
      Set the smc91x timings for rx51


 arch/arm/mach-omap2/board-rx51-flash.c       |   58 -----
 arch/arm/mach-omap2/board-rx51-peripherals.c |  305 ++++++++++++++++++++++----
 2 files changed, 262 insertions(+), 101 deletions(-)

-- 
Signature

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

* [PATCH 1/4] Clean-up rx51 a bit and set the regulators.
  2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
@ 2009-03-13 18:03 ` Tony Lindgren
  2009-03-17 16:14   ` [APPLIED] " Tony Lindgren
  2009-03-13 18:03 ` [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR flash, Tony Lindgren
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:03 UTC (permalink / raw)
  To: linux-omap; +Cc: David Brownell, Lauri Leukkunen

From: David Brownell <dbrownell@users.sourceforge.net>

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/board-rx51-peripherals.c |  158 +++++++++++++++++++++++---
 1 files changed, 139 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 9da0187..49c3d80 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -1,7 +1,7 @@
 /*
  * linux/arch/arm/mach-omap2/board-rx51-flash.c
  *
- * Copyright (C) 2008 Nokia
+ * Copyright (C) 2008-2009 Nokia
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -18,18 +18,16 @@
 #include <linux/i2c/twl4030.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
+#include <linux/regulator/machine.h>
 
 #include <mach/mcspi.h>
 #include <mach/gpio.h>
 #include <mach/mux.h>
 #include <mach/board.h>
 #include <mach/common.h>
-#include <mach/keypad.h>
 #include <mach/dma.h>
 #include <mach/gpmc.h>
 
-#define RX51_DEBUG_BASE			0x08000000  /* debug board */
-#define RX51_ETHR_START			RX51_DEBUG_BASE
 #define RX51_ETHR_GPIO_IRQ		54
 
 #define RX51_TSC2005_RESET_GPIO		104
@@ -39,13 +37,9 @@
 
 static struct resource rx51_smc91x_resources[] = {
 	[0] = {
-		.start	= RX51_ETHR_START,
-		.end	= RX51_ETHR_START + SZ_4K,
 		.flags		= IORESOURCE_MEM,
 	},
 	[1] = {
-		.start		= OMAP_GPIO_IRQ(RX51_ETHR_GPIO_IRQ),
-		.end	= 0,
 		.flags		= IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
 	},
 };
@@ -58,7 +52,7 @@ static struct platform_device rx51_smc91x_device = {
 };
 
 static struct tsc2005_platform_data tsc2005_config = {
-	.reset_gpio 		= RX51_TSC2005_RESET_GPIO, /* not used */
+	.reset_gpio		= RX51_TSC2005_RESET_GPIO, /* not used */
 
 	.ts_x_plate_ohm		= 280,
 	.ts_hw_avg		= 0,
@@ -83,8 +77,8 @@ static struct spi_board_info rx51_peripherals_spi_board_info[] = {
 		.modalias		= "tsc2005",
 		.bus_num		= 1,
 		.chip_select		= 0,
-		.irq	 		= OMAP_GPIO_IRQ(RX51_TSC2005_IRQ_GPIO),
-		.max_speed_hz   	= 6000000,
+		.irq			= OMAP_GPIO_IRQ(RX51_TSC2005_IRQ_GPIO),
+		.max_speed_hz		= 6000000,
 		.controller_data	= &tsc2005_mcspi_config,
 		.platform_data		= &tsc2005_config,
 	},
@@ -140,8 +134,8 @@ static int rx51_keymap[] = {
 static struct twl4030_keypad_data rx51_kp_data = {
 	.rows		= 8,
 	.cols		= 8,
-	.keymap 	= rx51_keymap,
-	.keymapsize 	= ARRAY_SIZE(rx51_keymap),
+	.keymap		= rx51_keymap,
+	.keymapsize	= ARRAY_SIZE(rx51_keymap),
 	.rep		= 1,
 };
 
@@ -179,6 +173,7 @@ static void __init rx51_init_smc91x(void)
 		return;
 	}
 	gpio_direction_input(RX51_ETHR_GPIO_IRQ);
+	rx51_smc91x_resources[1].start = gpio_to_irq(RX51_ETHR_GPIO_IRQ);
 }
 
 static void __init rx51_init_tsc2005(void)
@@ -193,18 +188,135 @@ static void __init rx51_init_tsc2005(void)
 	}
 }
 
-static struct twl4030_usb_data rx51_usb_data = {
-	.usb_mode		= T2_USB_MODE_ULPI,
-};
-
 static struct twl4030_madc_platform_data rx51_madc_data = {
 	.irq_line		= 1,
 };
 
+static struct regulator_init_data rx51_vaux1 = {
+	.constraints = {
+		.name			= "V28",
+		.min_uV			= 2800000,
+		.max_uV			= 2800000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vaux2 = {
+	.constraints = {
+		.name			= "VCSI",
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+/* VAUX3 - adds more power to VIO_18 rail */
+static struct regulator_init_data rx51_vaux3 = {
+	.constraints = {
+		.name			= "VCAM_DIG_18",
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.apply_uV		= true,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vaux4 = {
+	.constraints = {
+		.name			= "VCAM_ANA_28",
+		.min_uV			= 2800000,
+		.max_uV			= 2800000,
+		.apply_uV		= true,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vmmc1 = {
+	.constraints = {
+		.min_uV			= 1850000,
+		.max_uV			= 3150000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
+					| REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vmmc2 = {
+	.constraints = {
+		.name			= "VMMC2_30",
+		.min_uV			= 1850000,
+		.max_uV			= 3150000,
+		.apply_uV		= true,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
+					| REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vsim = {
+	.constraints = {
+		.name			= "VMMC2_IO_18",
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.apply_uV		= true,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static struct regulator_init_data rx51_vdac = {
+	.constraints = {
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
+					| REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+};
+
+static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
+{
+	/* FIXME this gpio setup is just a placeholder for now */
+	gpio_request(gpio + 6, "backlight_pwm");
+	gpio_direction_output(gpio + 6, 0);
+	gpio_request(gpio + 7, "speaker_en");
+	gpio_direction_output(gpio + 7, 1);
+
+	/* FIXME connect power supplies to devices; register MMC */
+
+	return 0;
+}
+
 static struct twl4030_gpio_platform_data rx51_gpio_data = {
 	.gpio_base		= OMAP_MAX_GPIO_LINES,
 	.irq_base		= TWL4030_GPIO_IRQ_BASE,
 	.irq_end		= TWL4030_GPIO_IRQ_END,
+	.pulldowns		= BIT(0) | BIT(1) | BIT(2) | BIT(3)
+				| BIT(4) | BIT(5)
+				| BIT(8) | BIT(9) | BIT(10) | BIT(11)
+				| BIT(12) | BIT(13) | BIT(14) | BIT(15)
+				| BIT(16) | BIT(17) ,
+	.setup			= rx51_twlgpio_setup,
 };
 
 static struct twl4030_platform_data rx51_twldata = {
@@ -215,12 +327,20 @@ static struct twl4030_platform_data rx51_twldata = {
 	.gpio			= &rx51_gpio_data,
 	.keypad			= &rx51_kp_data,
 	.madc			= &rx51_madc_data,
-	.usb			= &rx51_usb_data,
+
+	.vaux1			= &rx51_vaux1,
+	.vaux2			= &rx51_vaux2,
+	.vaux3			= &rx51_vaux3,
+	.vaux4			= &rx51_vaux4,
+	.vmmc1			= &rx51_vmmc1,
+	.vmmc2			= &rx51_vmmc2,
+	.vsim			= &rx51_vsim,
+	.vdac			= &rx51_vdac,
 };
 
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
 	{
-		I2C_BOARD_INFO("twl4030", 0x48),
+		I2C_BOARD_INFO("twl5030", 0x48),
 		.flags = I2C_CLIENT_WAKE,
 		.irq = INT_34XX_SYS_NIRQ,
 		.platform_data = &rx51_twldata,


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

* [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR flash,
  2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
  2009-03-13 18:03 ` [PATCH 1/4] Clean-up rx51 a bit and set the regulators Tony Lindgren
@ 2009-03-13 18:03 ` Tony Lindgren
  2009-03-17 16:14   ` [APPLIED] [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR Tony Lindgren
  2009-03-13 18:04 ` [PATCH 3/4] Set the smc91x timings for rx51 Tony Lindgren
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:03 UTC (permalink / raw)
  To: linux-omap; +Cc: David Brownell, Lauri Leukkunen

From: David Brownell <dbrownell@users.sourceforge.net>

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
---
 arch/arm/mach-omap2/board-rx51-flash.c |   37 +-------------------------------
 1 files changed, 1 insertions(+), 36 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-flash.c b/arch/arm/mach-omap2/board-rx51-flash.c
index cd030a6..39b0659 100644
--- a/arch/arm/mach-omap2/board-rx51-flash.c
+++ b/arch/arm/mach-omap2/board-rx51-flash.c
@@ -10,46 +10,12 @@
 
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <asm/mach/flash.h>
-
-#include <mach/onenand.h>
+#include <linux/errno.h>
 
 #include "mmc-twl4030.h"
 
-#define	RX51_FLASH_CS	0
-
-extern struct mtd_partition n800_partitions[ONENAND_MAX_PARTITIONS];
-extern int n800_onenand_setup(void __iomem *onenand_base, int freq);
 extern void __init n800_flash_init(void);
 
-static struct flash_platform_data rx51_flash_data = {
-	.map_name	= "cfi_probe",
-	.width		= 2,
-	.parts		= n800_partitions,
-	.nr_parts	= ARRAY_SIZE(n800_partitions),
-};
-
-static struct resource rx51_flash_resource = {
-	.flags		= IORESOURCE_MEM,
-};
-
-static struct platform_device rx51_flash_device = {
-	.name		= "omapflash",
-	.id		= 0,
-	.dev		= {
-		.platform_data	= &rx51_flash_data,
-	},
-	.num_resources	= 1,
-	.resource	= &rx51_flash_resource,
-};
-
-static struct platform_device *rx51_flash_devices[] = {
-	&rx51_flash_device,
-};
-
 static struct twl4030_hsmmc_info mmc[] __initdata = {
 	{
 		.name		= "external",
@@ -71,7 +37,6 @@ static struct twl4030_hsmmc_info mmc[] __initdata = {
 
 void __init rx51_flash_init(void)
 {
-	platform_add_devices(rx51_flash_devices, ARRAY_SIZE(rx51_flash_devices));
 	n800_flash_init();
 	twl4030_mmc_init(mmc);
 }


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

* [PATCH 3/4] Set the smc91x timings for rx51
  2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
  2009-03-13 18:03 ` [PATCH 1/4] Clean-up rx51 a bit and set the regulators Tony Lindgren
  2009-03-13 18:03 ` [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR flash, Tony Lindgren
@ 2009-03-13 18:04 ` Tony Lindgren
  2009-03-17 16:14   ` [APPLIED] " Tony Lindgren
  2009-03-13 18:04 ` [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC slots Tony Lindgren
  2009-03-13 18:07 ` [PATCH 0/4] Clean-up for rx51 Tony Lindgren
  4 siblings, 1 reply; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:04 UTC (permalink / raw)
  To: linux-omap; +Cc: Lauri Leukkunen

This could be converted into more generic smc91x init code.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
---
 arch/arm/mach-omap2/board-rx51-peripherals.c |  105 ++++++++++++++++++++------
 1 files changed, 80 insertions(+), 25 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 49c3d80..88f9f43 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -28,13 +28,14 @@
 #include <mach/dma.h>
 #include <mach/gpmc.h>
 
-#define RX51_ETHR_GPIO_IRQ		54
+#define	SMC91X_CS			1
+#define SMC91X_GPIO_IRQ			54
+#define SMC91X_GPIO_RESET		164
+#define SMC91X_GPIO_PWRDWN		86
 
 #define RX51_TSC2005_RESET_GPIO		104
 #define RX51_TSC2005_IRQ_GPIO		100
 
-#define	RX51_SMC91X_CS			1
-
 static struct resource rx51_smc91x_resources[] = {
 	[0] = {
 		.flags		= IORESOURCE_MEM,
@@ -71,7 +72,6 @@ static struct omap2_mcspi_device_config tsc2005_mcspi_config = {
 	.single_channel = 1,
 };
 
-
 static struct spi_board_info rx51_peripherals_spi_board_info[] = {
 	[0] = {
 		.modalias		= "tsc2005",
@@ -143,37 +143,92 @@ static struct platform_device *rx51_peripherals_devices[] = {
 	&rx51_smc91x_device,
 };
 
+/*
+ * Timings are taken from smsc-lan91c96-ms.pdf
+ */
+static int smc91x_init_gpmc(int cs)
+{
+	struct gpmc_timings t;
+	const int t2_r = 45;		/* t2 in Figure 12.10 */
+	const int t2_w = 30;		/* t2 in Figure 12.11 */
+	const int t3 = 15;		/* t3 in Figure 12.10 */
+	const int t5_r = 0;		/* t5 in Figure 12.10 */
+	const int t6_r = 45;		/* t6 in Figure 12.10 */
+	const int t6_w = 0;		/* t6 in Figure 12.11 */
+	const int t7_w = 15;		/* t7 in Figure 12.11 */
+	const int t15 = 12;		/* t15 in Figure 12.2 */
+	const int t20 = 185;		/* t20 in Figure 12.2 */
+
+	memset(&t, 0, sizeof(t));
+
+	t.cs_on = t15;
+	t.cs_rd_off = t3 + t2_r + t5_r;	/* Figure 12.10 */
+	t.cs_wr_off = t3 + t2_w + t6_w;	/* Figure 12.11 */
+	t.adv_on = t3;			/* Figure 12.10 */
+	t.adv_rd_off = t3 + t2_r;	/* Figure 12.10 */
+	t.adv_wr_off = t3 + t2_w;	/* Figure 12.11 */
+	t.oe_off = t3 + t2_r + t5_r;	/* Figure 12.10 */
+	t.oe_on = t.oe_off - t6_r;	/* Figure 12.10 */
+	t.we_off = t3 + t2_w + t6_w;	/* Figure 12.11 */
+	t.we_on = t.we_off - t7_w;	/* Figure 12.11 */
+	t.rd_cycle = t20;		/* Figure 12.2 */
+	t.wr_cycle = t20;		/* Figure 12.4 */
+	t.access = t3 + t2_r + t5_r;	/* Figure 12.10 */
+	t.wr_access = t3 + t2_w + t6_w;	/* Figure 12.11 */
+
+	gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, GPMC_CONFIG1_DEVICESIZE_16);
+
+	return gpmc_cs_set_timings(cs, &t);
+}
+
 static void __init rx51_init_smc91x(void)
 {
-	int eth_cs;
 	unsigned long cs_mem_base;
-	unsigned int rate;
-	struct clk *l3ck;
+	int ret;
 
-	eth_cs	= RX51_SMC91X_CS;
+	omap_cfg_reg(U8_34XX_GPIO54_DOWN);
+	omap_cfg_reg(G25_34XX_GPIO86_OUT);
+	omap_cfg_reg(H19_34XX_GPIO164_OUT);
 
-	l3ck = clk_get(NULL, "core_l3_ck");
-	if (IS_ERR(l3ck))
-		rate = 100000000;
-	else
-		rate = clk_get_rate(l3ck);
-
-	if (gpmc_cs_request(eth_cs, SZ_16M, &cs_mem_base) < 0) {
+	if (gpmc_cs_request(SMC91X_CS, SZ_16M, &cs_mem_base) < 0) {
 		printk(KERN_ERR "Failed to request GPMC mem for smc91x\n");
 		return;
 	}
 
-	rx51_smc91x_resources[0].start = cs_mem_base + 0x0;
-	rx51_smc91x_resources[0].end   = cs_mem_base + 0xf;
-	udelay(100);
+	rx51_smc91x_resources[0].start = cs_mem_base + 0x300;
+	rx51_smc91x_resources[0].end = cs_mem_base + 0x30f;
 
-	if (gpio_request(RX51_ETHR_GPIO_IRQ, "SMC91X irq") < 0) {
-		printk(KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n",
-			RX51_ETHR_GPIO_IRQ);
-		return;
-	}
-	gpio_direction_input(RX51_ETHR_GPIO_IRQ);
-	rx51_smc91x_resources[1].start = gpio_to_irq(RX51_ETHR_GPIO_IRQ);
+	smc91x_init_gpmc(SMC91X_CS);
+
+	if (gpio_request(SMC91X_GPIO_IRQ, "SMC91X irq") < 0)
+		goto free1;
+
+	gpio_direction_input(SMC91X_GPIO_IRQ);
+	rx51_smc91x_resources[1].start = gpio_to_irq(SMC91X_GPIO_IRQ);
+
+	ret = gpio_request(SMC91X_GPIO_PWRDWN, "SMC91X powerdown");
+	if (ret)
+		goto free2;
+	gpio_direction_output(SMC91X_GPIO_PWRDWN, 0);
+
+	ret = gpio_request(SMC91X_GPIO_RESET, "SMC91X reset");
+	if (ret)
+		goto free3;
+	gpio_direction_output(SMC91X_GPIO_RESET, 0);
+	gpio_set_value(SMC91X_GPIO_RESET, 1);
+	msleep(100);
+	gpio_set_value(SMC91X_GPIO_RESET, 0);
+
+	return;
+
+free3:
+	gpio_free(SMC91X_GPIO_PWRDWN);
+free2:
+	gpio_free(SMC91X_GPIO_IRQ);
+free1:
+	gpmc_cs_free(SMC91X_CS);
+
+	printk(KERN_ERR "Could not initialize smc91x\n");
 }
 
 static void __init rx51_init_tsc2005(void)


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

* [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC slots.
  2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
                   ` (2 preceding siblings ...)
  2009-03-13 18:04 ` [PATCH 3/4] Set the smc91x timings for rx51 Tony Lindgren
@ 2009-03-13 18:04 ` Tony Lindgren
  2009-03-17 16:14   ` [APPLIED] [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC Tony Lindgren
  2009-03-13 18:07 ` [PATCH 0/4] Clean-up for rx51 Tony Lindgren
  4 siblings, 1 reply; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:04 UTC (permalink / raw)
  To: linux-omap; +Cc: David Brownell, Lauri Leukkunen

From: David Brownell <dbrownell@users.sourceforge.net>

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
---
 arch/arm/mach-omap2/board-rx51-flash.c       |   23 ------------
 arch/arm/mach-omap2/board-rx51-peripherals.c |   48 +++++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 25 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51-flash.c b/arch/arm/mach-omap2/board-rx51-flash.c
index 39b0659..fe9329d 100644
--- a/arch/arm/mach-omap2/board-rx51-flash.c
+++ b/arch/arm/mach-omap2/board-rx51-flash.c
@@ -10,34 +10,11 @@
 
 #include <linux/kernel.h>
 #include <linux/init.h>
-#include <linux/errno.h>
-
-#include "mmc-twl4030.h"
 
 extern void __init n800_flash_init(void);
 
-static struct twl4030_hsmmc_info mmc[] __initdata = {
-	{
-		.name		= "external",
-		.mmc		= 1,
-		.wires		= 4,
-		.cover_only	= true,
-		.gpio_cd	= 160,
-		.gpio_wp	= -EINVAL,
-	},
-	{
-		.name		= "internal",
-		.mmc		= 2,
-		.wires		= 8,
-		.gpio_cd	= -EINVAL,
-		.gpio_wp	= -EINVAL,
-	},
-	{}	/* Terminator */
-};
-
 void __init rx51_flash_init(void)
 {
 	n800_flash_init();
-	twl4030_mmc_init(mmc);
 }
 
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 88f9f43..b86e94d 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -28,7 +28,10 @@
 #include <mach/dma.h>
 #include <mach/gpmc.h>
 
-#define	SMC91X_CS			1
+#include "mmc-twl4030.h"
+
+
+#define SMC91X_CS			1
 #define SMC91X_GPIO_IRQ			54
 #define SMC91X_GPIO_RESET		164
 #define SMC91X_GPIO_PWRDWN		86
@@ -247,6 +250,37 @@ static struct twl4030_madc_platform_data rx51_madc_data = {
 	.irq_line		= 1,
 };
 
+static struct twl4030_hsmmc_info mmc[] = {
+	{
+		.name		= "external",
+		.mmc		= 1,
+		.wires		= 4,
+		.cover_only	= true,
+		.gpio_cd	= 160,
+		.gpio_wp	= -EINVAL,
+	},
+	{
+		.name		= "internal",
+		.mmc		= 2,
+		.wires		= 8,
+		.gpio_cd	= -EINVAL,
+		.gpio_wp	= -EINVAL,
+	},
+	{}	/* Terminator */
+};
+
+static struct regulator_consumer_supply rx51_vmmc1_supply = {
+	.supply			= "vmmc",
+};
+
+static struct regulator_consumer_supply rx51_vmmc2_supply = {
+	.supply			= "vmmc",
+};
+
+static struct regulator_consumer_supply rx51_vsim_supply = {
+	.supply			= "vmmc_aux",
+};
+
 static struct regulator_init_data rx51_vaux1 = {
 	.constraints = {
 		.name			= "V28",
@@ -308,6 +342,8 @@ static struct regulator_init_data rx51_vmmc1 = {
 					| REGULATOR_CHANGE_MODE
 					| REGULATOR_CHANGE_STATUS,
 	},
+	.num_consumer_supplies	= 1,
+	.consumer_supplies	= &rx51_vmmc1_supply,
 };
 
 static struct regulator_init_data rx51_vmmc2 = {
@@ -322,6 +358,8 @@ static struct regulator_init_data rx51_vmmc2 = {
 					| REGULATOR_CHANGE_MODE
 					| REGULATOR_CHANGE_STATUS,
 	},
+	.num_consumer_supplies	= 1,
+	.consumer_supplies	= &rx51_vmmc2_supply,
 };
 
 static struct regulator_init_data rx51_vsim = {
@@ -335,6 +373,8 @@ static struct regulator_init_data rx51_vsim = {
 		.valid_ops_mask		= REGULATOR_CHANGE_MODE
 					| REGULATOR_CHANGE_STATUS,
 	},
+	.num_consumer_supplies	= 1,
+	.consumer_supplies	= &rx51_vsim_supply,
 };
 
 static struct regulator_init_data rx51_vdac = {
@@ -357,7 +397,11 @@ static int rx51_twlgpio_setup(struct device *dev, unsigned gpio, unsigned n)
 	gpio_request(gpio + 7, "speaker_en");
 	gpio_direction_output(gpio + 7, 1);
 
-	/* FIXME connect power supplies to devices; register MMC */
+	/* set up MMC adapters, linking their regulators to them */
+	twl4030_mmc_init(mmc);
+	rx51_vmmc1_supply.dev = mmc[0].dev;
+	rx51_vmmc2_supply.dev = mmc[1].dev;
+	rx51_vsim_supply.dev = mmc[1].dev;
 
 	return 0;
 }


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

* Re: [PATCH 0/4] Clean-up for rx51
  2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
                   ` (3 preceding siblings ...)
  2009-03-13 18:04 ` [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC slots Tony Lindgren
@ 2009-03-13 18:07 ` Tony Lindgren
  2009-03-13 22:47   ` Tony Lindgren
  4 siblings, 1 reply; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 18:07 UTC (permalink / raw)
  To: linux-omap

* Tony Lindgren <tony@atomide.com> [090313 11:03]:
> Hi all,
> 
> Here are few patches against the l-o tree to clean-up rx51 board
> files. Also catch up with the mmc-twl4030 changes, and make
> the smc911x Ethernet work.

Correction, smc91x that is, not smc911x or smsc911x.
 
> Regards,
> 
> Tony
> 
> ---
> 
> David Brownell (3):
>       Hook up twl4030 regulators to the relevant RX51 MMC slots.
>       Bugfix to RX51 flash support:  this board has no NOR flash,
>       Clean-up rx51 a bit and set the regulators.
> 
> Tony Lindgren (1):
>       Set the smc91x timings for rx51
> 
> 
>  arch/arm/mach-omap2/board-rx51-flash.c       |   58 -----
>  arch/arm/mach-omap2/board-rx51-peripherals.c |  305 ++++++++++++++++++++++----
>  2 files changed, 262 insertions(+), 101 deletions(-)
> 
> -- 
> Signature
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH 0/4] Clean-up for rx51
  2009-03-13 18:07 ` [PATCH 0/4] Clean-up for rx51 Tony Lindgren
@ 2009-03-13 22:47   ` Tony Lindgren
  0 siblings, 0 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-13 22:47 UTC (permalink / raw)
  To: linux-omap

[-- Attachment #1: Type: text/plain, Size: 59 bytes --]

Here's one more patch to fix checkpatch.pl warnings.

Tony

[-- Attachment #2: rx51-checkpatch.patch --]
[-- Type: text/x-diff, Size: 3684 bytes --]

From f1d42da50bfdb9e952882f32e2e95f9e9621ce00 Mon Sep 17 00:00:00 2001
From: Tony Lindgren <tony@atomide.com>
Date: Fri, 13 Mar 2009 15:30:06 -0700
Subject: [PATCH] rx51: Clean-up for checkpatch.pl

rx51: Clean-up for checkpatch.pl

Signed-off-by: Tony Lindgren <tony@atomide.com>

diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 53f6a79..2672a70 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -43,7 +43,7 @@ CONFIG_BSD_PROCESS_ACCT=y
 # CONFIG_TASKSTATS is not set
 # CONFIG_AUDIT is not set
 # CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT\x14
+CONFIG_LOG_BUF_SHIFT
 CONFIG_GROUP_SCHED=y
 CONFIG_FAIR_GROUP_SCHED=y
 # CONFIG_RT_GROUP_SCHED is not set
@@ -194,7 +194,7 @@ CONFIG_OMAP_MCBSP=y
 # CONFIG_OMAP_MBOX_FWK is not set
 # CONFIG_OMAP_MPU_TIMER is not set
 CONFIG_OMAP_32K_TIMER=y
-CONFIG_OMAP_32K_TIMER_HZ\x128
+CONFIG_OMAP_32K_TIMER_HZ=128
 CONFIG_OMAP_TICK_GPTIMER=1
 CONFIG_OMAP_DM_TIMER=y
 # CONFIG_OMAP_LL_DEBUG_UART1 is not set
@@ -262,7 +262,7 @@ CONFIG_VMSPLIT_3G=y
 # CONFIG_VMSPLIT_1G is not set
 CONFIG_PAGE_OFFSET=0xC0000000
 # CONFIG_PREEMPT is not set
-CONFIG_HZ\x128
+CONFIG_HZ=128
 CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
 CONFIG_ARCH_FLATMEM_HAS_HOLES=y
@@ -639,8 +639,8 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT\x16
-CONFIG_BLK_DEV_RAM_SIZE\x16384
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
 # CONFIG_BLK_DEV_XIP is not set
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
@@ -1686,7 +1686,7 @@ CONFIG_NLS_ISO8859_1=y
 CONFIG_PRINTK_TIME=y
 CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN\x1024
+CONFIG_FRAME_WARN=1024
 CONFIG_MAGIC_SYSRQ=y
 # CONFIG_UNUSED_SYMBOLS is not set
 CONFIG_DEBUG_FS=y
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index b86e94d..6e23587 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -98,19 +98,19 @@ static int rx51_keymap[] = {
 	KEY(0, 7, KEY_I),
 	KEY(1, 0, KEY_O),
 	KEY(1, 1, KEY_D),
-	KEY(1, 2, KEY_DOT ),
+	KEY(1, 2, KEY_DOT),
 	KEY(1, 3, KEY_V),
-	KEY(1, 4, KEY_DOWN ),
+	KEY(1, 4, KEY_DOWN),
 	KEY(2, 0, KEY_P),
 	KEY(2, 1, KEY_F),
-	KEY(2, 2, KEY_UP ),
+	KEY(2, 2, KEY_UP),
 	KEY(2, 3, KEY_B),
-	KEY(2, 4, KEY_RIGHT ),
-	KEY(3, 0, KEY_COMMA ),
+	KEY(2, 4, KEY_RIGHT),
+	KEY(3, 0, KEY_COMMA),
 	KEY(3, 1, KEY_G),
-	KEY(3, 2, KEY_ENTER ),
+	KEY(3, 2, KEY_ENTER),
 	KEY(3, 3, KEY_N),
-	KEY(4, 0, KEY_BACKSPACE ),
+	KEY(4, 0, KEY_BACKSPACE),
 	KEY(4, 1, KEY_H),
 	KEY(4, 3, KEY_M),
 	KEY(4, 4, KEY_LEFTCTRL),
@@ -122,7 +122,7 @@ static int rx51_keymap[] = {
 	KEY(6, 1, KEY_K),
 	KEY(6, 2, KEY_X),
 	KEY(6, 3, KEY_SPACE),
-	KEY(6, 4, KEY_FN ),
+	KEY(6, 4, KEY_FN),
 	KEY(7, 0, KEY_S),
 	KEY(7, 1, KEY_L),
 	KEY(7, 2, KEY_C),
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 98dfde1..c90120c 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -14,6 +14,8 @@
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/clk.h>
+#include <linux/io.h>
+#include <linux/delay.h>
 
 #include <mach/hardware.h>
 #include <asm/mach-types.h>
@@ -30,10 +32,6 @@
 #include <mach/gpmc.h>
 #include <mach/usb.h>
 
-#include <asm/io.h>
-#include <asm/delay.h>
-
-
 static struct omap_uart_config rx51_uart_config = {
 	.enabled_uarts	= ((1 << 0) | (1 << 1) | (1 << 2)),
 };

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

* [APPLIED] [PATCH 1/4] Clean-up rx51 a bit and set the regulators.
  2009-03-13 18:03 ` [PATCH 1/4] Clean-up rx51 a bit and set the regulators Tony Lindgren
@ 2009-03-17 16:14   ` Tony Lindgren
  0 siblings, 0 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-17 16:14 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: 2134f6cd63a8126f6b1f23e906c912dc1bd30645

PatchWorks
http://patchwork.kernel.org/patch/11831/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=2134f6cd63a8126f6b1f23e906c912dc1bd30645



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

* [APPLIED] [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR
  2009-03-13 18:03 ` [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR flash, Tony Lindgren
@ 2009-03-17 16:14   ` Tony Lindgren
  0 siblings, 0 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-17 16:14 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: 7ad710cd6907220b5617e87e42a8de2c04cb10b9

PatchWorks
http://patchwork.kernel.org/patch/11832/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=7ad710cd6907220b5617e87e42a8de2c04cb10b9



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

* [APPLIED] [PATCH 3/4] Set the smc91x timings for rx51
  2009-03-13 18:04 ` [PATCH 3/4] Set the smc91x timings for rx51 Tony Lindgren
@ 2009-03-17 16:14   ` Tony Lindgren
  0 siblings, 0 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-17 16:14 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: ca0467553d2eb424002d8986542704fc7647faf5

PatchWorks
http://patchwork.kernel.org/patch/11833/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=ca0467553d2eb424002d8986542704fc7647faf5



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

* [APPLIED] [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC
  2009-03-13 18:04 ` [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC slots Tony Lindgren
@ 2009-03-17 16:14   ` Tony Lindgren
  0 siblings, 0 replies; 11+ messages in thread
From: Tony Lindgren @ 2009-03-17 16:14 UTC (permalink / raw)
  To: linux-omap

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Commit: a748b9a246e31c2442777efb2b457b48bfd8dce1

PatchWorks
http://patchwork.kernel.org/patch/11834/

Git
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=a748b9a246e31c2442777efb2b457b48bfd8dce1



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

end of thread, other threads:[~2009-03-17 16:14 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-13 18:03 [PATCH 0/4] Clean-up for rx51 Tony Lindgren
2009-03-13 18:03 ` [PATCH 1/4] Clean-up rx51 a bit and set the regulators Tony Lindgren
2009-03-17 16:14   ` [APPLIED] " Tony Lindgren
2009-03-13 18:03 ` [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR flash, Tony Lindgren
2009-03-17 16:14   ` [APPLIED] [PATCH 2/4] Bugfix to RX51 flash support: this board has no NOR Tony Lindgren
2009-03-13 18:04 ` [PATCH 3/4] Set the smc91x timings for rx51 Tony Lindgren
2009-03-17 16:14   ` [APPLIED] " Tony Lindgren
2009-03-13 18:04 ` [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC slots Tony Lindgren
2009-03-17 16:14   ` [APPLIED] [PATCH 4/4] Hook up twl4030 regulators to the relevant RX51 MMC Tony Lindgren
2009-03-13 18:07 ` [PATCH 0/4] Clean-up for rx51 Tony Lindgren
2009-03-13 22:47   ` Tony Lindgren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox