All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] OMAP3: pandora: pin mux updates for DM3730 board variant
@ 2012-03-22 23:49 Grazvydas Ignotas
  2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: revise GPIO configuration Grazvydas Ignotas
  2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: drop console kernel argument Grazvydas Ignotas
  0 siblings, 2 replies; 3+ messages in thread
From: Grazvydas Ignotas @ 2012-03-22 23:49 UTC (permalink / raw)
  To: u-boot

DM3730 needs some additional pin mux configuration for GPIOs
126-129 to work, add it.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
---
 arch/arm/include/asm/arch-omap3/mux.h |    6 ++++++
 board/pandora/pandora.c               |    3 +++
 board/pandora/pandora.h               |    6 ++++++
 3 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/arch/arm/include/asm/arch-omap3/mux.h b/arch/arm/include/asm/arch-omap3/mux.h
index 6daef49..71f183d 100644
--- a/arch/arm/include/asm/arch-omap3/mux.h
+++ b/arch/arm/include/asm/arch-omap3/mux.h
@@ -445,6 +445,12 @@
 #define CONTROL_PADCONF_STRBEN_DLY1	0x0224
 #define CONTROL_PADCONF_SYS_BOOT8	0x0226
 
+/* AM/DM37xx specific */
+#define CONTROL_PADCONF_GPIO127		0x0A54
+#define CONTROL_PADCONF_GPIO126		0x0A56
+#define CONTROL_PADCONF_GPIO128		0x0A58
+#define CONTROL_PADCONF_GPIO129		0x0A5A
+
 #define MUX_VAL(OFFSET,VALUE)\
 	writew((VALUE), OMAP34XX_CTRL_BASE + (OFFSET));
 
diff --git a/board/pandora/pandora.c b/board/pandora/pandora.c
index 58a676d..70d2d82 100644
--- a/board/pandora/pandora.c
+++ b/board/pandora/pandora.c
@@ -103,6 +103,9 @@ int misc_init_r(void)
 void set_muxconf_regs(void)
 {
 	MUX_PANDORA();
+	if (get_cpu_family() == CPU_OMAP36XX) {
+		MUX_PANDORA_3730();
+	}
 }
 
 #ifdef CONFIG_GENERIC_MMC
diff --git a/board/pandora/pandora.h b/board/pandora/pandora.h
index f0ad16b..fea8bf2 100644
--- a/board/pandora/pandora.h
+++ b/board/pandora/pandora.h
@@ -399,4 +399,10 @@ const omap3_sysinfo sysinfo = {
 	MUX_VAL(CP(SDRC_CKE0),		(IDIS | PTU | EN  | M0)) /*sdrc_cke0*/\
 	MUX_VAL(CP(SDRC_CKE1),		(IDIS | PTU | EN  | M0)) /*sdrc_cke1*/
 
+#define MUX_PANDORA_3730() \
+	MUX_VAL(CP(GPIO126),		(IEN  | PTD | DIS | M4)) /*GPIO_126 - MMC1_WP*/\
+	MUX_VAL(CP(GPIO127),		(IEN  | PTD | DIS | M4)) /*GPIO_127 - MMC2_WP*/\
+	MUX_VAL(CP(GPIO128),		(IDIS | PTD | DIS | M4)) /*GPIO_128 - LED_MMC1*/\
+	MUX_VAL(CP(GPIO129),		(IDIS | PTD | DIS | M4)) /*GPIO_129 - LED_MMC2*/
+
 #endif
-- 
1.7.0.4

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

* [U-Boot] [PATCH] OMAP3: pandora: revise GPIO configuration
  2012-03-22 23:49 [U-Boot] [PATCH] OMAP3: pandora: pin mux updates for DM3730 board variant Grazvydas Ignotas
@ 2012-03-22 23:49 ` Grazvydas Ignotas
  2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: drop console kernel argument Grazvydas Ignotas
  1 sibling, 0 replies; 3+ messages in thread
From: Grazvydas Ignotas @ 2012-03-22 23:49 UTC (permalink / raw)
  To: u-boot

Update pandora's GPIO setup code with these changes:
- convert to gpiolib
- set up dual voltage GPIOs to match supply of 1.8V by clearing VMODE1
- add GPIO_IO_PWRDNZ configuration for DM3730 variation of pandora
  (required to enable GPIO 126, 127, and 129 I/O cells in DM3730)
- add wifi reset pulse as recommended by wifi chip's manufacturer
- drop configuration of GPIOs that u-boot doesn't need

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
---
 board/pandora/pandora.c |   54 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 13 deletions(-)

diff --git a/board/pandora/pandora.c b/board/pandora/pandora.c
index 70d2d82..4702612 100644
--- a/board/pandora/pandora.c
+++ b/board/pandora/pandora.c
@@ -32,6 +32,7 @@
 #include <common.h>
 #include <twl4030.h>
 #include <asm/io.h>
+#include <asm/gpio.h>
 #include <asm/arch/mmc_host_def.h>
 #include <asm/arch/mux.h>
 #include <asm/arch/gpio.h>
@@ -45,6 +46,10 @@ DECLARE_GLOBAL_DATA_PTR;
 #define TWL4030_BB_CFG_BBSEL_3200MV	(3 << 2)
 #define TWL4030_BB_CFG_BBISEL_500UA	2
 
+#define CONTROL_WKUP_CTRL		0x48002a5c
+#define GPIO_IO_PWRDNZ			(1 << 6)
+#define PBIASLITEVMODE1			(1 << 8)
+
 /*
  * Routine: board_init
  * Description: Early hardware init.
@@ -60,29 +65,52 @@ int board_init(void)
 	return 0;
 }
 
+static void set_output_gpio(unsigned int gpio, int value)
+{
+	int ret;
+
+	ret = gpio_request(gpio, "");
+	if (ret != 0) {
+		printf("could not request GPIO %u\n", gpio);
+		return;
+	}
+	ret = gpio_direction_output(gpio, value);
+	if (ret != 0)
+		printf("could not set GPIO %u to %d\n", gpio, value);
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
  */
 int misc_init_r(void)
 {
-	struct gpio *gpio1_base = (struct gpio *)OMAP34XX_GPIO1_BASE;
-	struct gpio *gpio4_base = (struct gpio *)OMAP34XX_GPIO4_BASE;
-	struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE;
-	struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
+	t2_t *t2_base = (t2_t *)T2_BASE;
+	u32 pbias_lite;
 
 	twl4030_led_init(TWL4030_LED_LEDEN_LEDBON);
 
-	/* Configure GPIOs to output */
-	writel(~(GPIO14 | GPIO15 | GPIO16 | GPIO23), &gpio1_base->oe);
-	writel(~GPIO22, &gpio4_base->oe);	/* 118 */
-	writel(~(GPIO0 | GPIO1 | GPIO28 | GPIO29 | GPIO30 | GPIO31),
-		&gpio5_base->oe);	/* 128, 129, 156-159 */
-	writel(~GPIO4, &gpio6_base->oe);	/* 164 */
+	/* set up dual-voltage GPIOs to 1.8V */
+	pbias_lite = readl(&t2_base->pbias_lite);
+	pbias_lite &= ~PBIASLITEVMODE1;
+	pbias_lite |= PBIASLITEPWRDNZ1;
+	writel(pbias_lite, &t2_base->pbias_lite);
+	if (get_cpu_family() == CPU_OMAP36XX)
+		writel(readl(CONTROL_WKUP_CTRL) | GPIO_IO_PWRDNZ,
+			CONTROL_WKUP_CTRL);
+
+	/* make sure audio and BT chips are in powerdown state */
+	set_output_gpio(14, 0);
+	set_output_gpio(15, 0);
+	set_output_gpio(118, 0);
+
+	/* enable USB supply */
+	set_output_gpio(164, 1);
 
-	/* Set GPIOs */
-	writel(GPIO28, &gpio5_base->setdataout);
-	writel(GPIO4, &gpio6_base->setdataout);
+	/* wifi needs a short pulse to enter powersave state */
+	set_output_gpio(23, 1);
+	udelay(5000);
+	gpio_direction_output(23, 0);
 
 	/* Enable battery backup capacitor (3.2V, 0.5mA charge current) */
 	twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER,
-- 
1.7.0.4

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

* [U-Boot] [PATCH] OMAP3: pandora: drop console kernel argument
  2012-03-22 23:49 [U-Boot] [PATCH] OMAP3: pandora: pin mux updates for DM3730 board variant Grazvydas Ignotas
  2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: revise GPIO configuration Grazvydas Ignotas
@ 2012-03-22 23:49 ` Grazvydas Ignotas
  1 sibling, 0 replies; 3+ messages in thread
From: Grazvydas Ignotas @ 2012-03-22 23:49 UTC (permalink / raw)
  To: u-boot

As ttyS0 is no longer valid for newer OMAP kernels, and pandora serial
cables are not widespread, simply drop console argument. This should
allow booting old and new kernels with default arguments, and those who
need serial can use a boot script on SD card.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
---
 include/configs/omap3_pandora.h |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/include/configs/omap3_pandora.h b/include/configs/omap3_pandora.h
index 4df5f5d..d02f338 100644
--- a/include/configs/omap3_pandora.h
+++ b/include/configs/omap3_pandora.h
@@ -174,8 +174,7 @@
 	"usbtty=cdc_acm\0" \
 	"loadaddr=0x82000000\0" \
 	"bootargs=ubi.mtd=4 ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs " \
-	"rw rootflags=bulk_read console=ttyS0,115200n8 " \
-	"vram=6272K omapfb.vram=0:3000K\0" \
+		"rw rootflags=bulk_read vram=6272K omapfb.vram=0:3000K\0" \
 	"mtdparts=" MTDPARTS_DEFAULT "\0" \
 
 #define CONFIG_BOOTCOMMAND \
-- 
1.7.0.4

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

end of thread, other threads:[~2012-03-22 23:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-22 23:49 [U-Boot] [PATCH] OMAP3: pandora: pin mux updates for DM3730 board variant Grazvydas Ignotas
2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: revise GPIO configuration Grazvydas Ignotas
2012-03-22 23:49 ` [U-Boot] [PATCH] OMAP3: pandora: drop console kernel argument Grazvydas Ignotas

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.