Skip to contentSkip to conversation

twl4030-gpio: beagle pull up/down init

PATCH New David Brownell 1 participant 1 message Sep 30, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 twl4030-gpio: beagle pull up/down init

From: David Brownell <[email protected]>

Better TWL init on Beagle: use the setup() callback to learn IRQ assignments; and configure pullups/pulldowns.

---
Similar patches will be needed for other TWL based boards.

 arch/arm/mach-omap2/board-omap3beagle.c |   26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)
arch/arm/mach-omap2/board-omap3beagle.c +21 -5
@@ -115,15 +115,31 @@ static struct twl4030_usb_data beagle_us
 	.usb_mode	= T2_USB_MODE_ULPI,
 };
 
+static int beagle_twl_gpio_setup(struct device *dev,
+		unsigned gpio, unsigned ngpio)
+{
+	/* request_gpio(gpio + 0, "mmc0_cd");
+	 * gpio_direction_input(gpio + 0);
+	 */
+
+	gpio_request(gpio + 1, "EHCI_nOC");
+	gpio_direction_input(gpio + 1);
+
+	/* gpio + 18 + 0 == ledA, nEN_USB_PWR (out)
+	 * gpio + 18 + 1 == ledB, PMU_STAT (out, a LED)
+	 */
+
+	return 0;
+}
+
 static struct twl4030_gpio_platform_data beagle_gpio_data = {
 	.gpio_base	= OMAP_MAX_GPIO_LINES,
 	.irq_base	= TWL4030_GPIO_IRQ_BASE,
 	.irq_end	= TWL4030_GPIO_IRQ_END,
-
-	/* REVISIT:  setup() should use twl gpio index
-	 *  - 0 as MMC card detect,
-	 *  - 1 as EHCI port overcurrent (active low)
-	 */
+	.pullups	= BIT(1),
+	.pulldowns	= BIT(2) | BIT(6) | BIT(7) | BIT(8) | BIT(13)
+				| BIT(15) | BIT(16) | BIT(17),
+	.setup		= beagle_twl_gpio_setup,
 };
 
 static struct twl4030_platform_data beagle_twldata = {