aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/board-tuna.c18
-rw-r--r--arch/arm/mach-omap2/board-tuna.h4
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-tuna.c b/arch/arm/mach-omap2/board-tuna.c
index 6b07b50..1a4a940 100644
--- a/arch/arm/mach-omap2/board-tuna.c
+++ b/arch/arm/mach-omap2/board-tuna.c
@@ -63,6 +63,12 @@ static void omap4_tuna_init_hw_rev(void)
{
int ret;
int i;
+ u32 r;
+
+ /* Disable weak driver pulldown on usbb2_hsic_strobe */
+ r = omap4_ctrl_pad_readl(OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_USBB_HSIC);
+ r &= ~OMAP4_USBB2_HSIC_STROBE_WD_MASK;
+ omap4_ctrl_pad_writel(r, OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_USBB_HSIC);
ret = gpio_request_array(tuna_hw_rev_gpios,
ARRAY_SIZE(tuna_hw_rev_gpios));
@@ -85,6 +91,18 @@ int omap4_tuna_get_type(void)
return tuna_hw_rev & TUNA_TYPE_MASK;
}
+bool omap4_tuna_final_gpios(void)
+{
+ int type = omap4_tuna_get_type();
+ int rev = omap4_tuna_get_revision();
+
+ if (type == TUNA_TYPE_TORO ||
+ (rev != TUNA_REV_PRE_LUNCHBOX && rev != TUNA_REV_LUNCHBOX))
+ return true;
+
+ return false;
+}
+
/* wl127x BT, FM, GPS connectivity chip */
static int wl1271_gpios[] = {46, -1, -1};
static struct platform_device wl1271_device = {
diff --git a/arch/arm/mach-omap2/board-tuna.h b/arch/arm/mach-omap2/board-tuna.h
index 950cd43..b19f9b4 100644
--- a/arch/arm/mach-omap2/board-tuna.h
+++ b/arch/arm/mach-omap2/board-tuna.h
@@ -17,10 +17,14 @@
#define TUNA_REV_PRE_LUNCHBOX 0x5
#define TUNA_REV_LUNCHBOX 0x0
#define TUNA_REV_MASK 0xf
+
+#define TUNA_TYPE_TORO 0x10
+#define TUNA_TYPE_MAGURO 0x00
#define TUNA_TYPE_MASK 0x10
int omap4_tuna_get_revision(void);
int omap4_tuna_get_type(void);
+bool omap4_tuna_final_gpios(void);
void omap4_tuna_android_usb_init(void);
void omap4_tuna_display_init(void);
void omap4_tuna_input_init(void);