summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--u-boot/board/goldelico/gta04/gta04.c16
-rw-r--r--u-boot/board/goldelico/gta04/systest.h1
-rw-r--r--u-boot/board/goldelico/gta04/tsc2007.c29
3 files changed, 30 insertions, 16 deletions
diff --git a/u-boot/board/goldelico/gta04/gta04.c b/u-boot/board/goldelico/gta04/gta04.c
index 95865dd..6baa333 100644
--- a/u-boot/board/goldelico/gta04/gta04.c
+++ b/u-boot/board/goldelico/gta04/gta04.c
@@ -142,22 +142,6 @@ int misc_init_r(void)
i2c_reg_write(TCA6507_ADDRESS, TCA6507_SELECT1, 0);
i2c_reg_write(TCA6507_ADDRESS, TCA6507_SELECT2, 0x40); // pull down reset for WLAN&BT chip
-#if 1
- // FIXME: if(gta04_board_revision() should have ITG)
- /* if the GTA04 is connected to USB power first and
- * the battery is inserted after this, all power rails
- * have oscillated until the battery is available
- * this makes the ITG3200 Power On Reset fail
- */
- i2c_set_bus_num(TCA6507_BUS); // I2C2
- udelay(10*1000); // wait a little until power stabilizes
- if(i2c_probe(0x68)) { // ITG3200 does not respond
- printf("ITG3200 does not respond\n");
- // Pulse VAUX2 to force POR
- // how can we do that???
- }
-#endif
-
i2c_set_bus_num(0); // write I2C1
#if 0 // FIXME: enable only on demand if we want to test BT/WIFI - and apply RESET
diff --git a/u-boot/board/goldelico/gta04/systest.h b/u-boot/board/goldelico/gta04/systest.h
index 4126b3b..07e928a 100644
--- a/u-boot/board/goldelico/gta04/systest.h
+++ b/u-boot/board/goldelico/gta04/systest.h
@@ -32,5 +32,6 @@ int irdatest(void);
int wlanbttest(int serial);
int OTGchargepump(int enable);
int gpiotest(void);
+int keytest(void);
#endif
diff --git a/u-boot/board/goldelico/gta04/tsc2007.c b/u-boot/board/goldelico/gta04/tsc2007.c
index 0df22ce..11565df 100644
--- a/u-boot/board/goldelico/gta04/tsc2007.c
+++ b/u-boot/board/goldelico/gta04/tsc2007.c
@@ -29,6 +29,7 @@
#include <asm/arch/gpio.h>
#include <asm/mach-types.h>
#include <i2c.h>
+#include <twl4030.h>
#include "tsc2007.h"
#define TSC2007_BUS (2-1) // I2C2
@@ -92,6 +93,34 @@ int tsc2007_init(void)
return 1;
}
+#if 1
+ // FIXME: if(gta04_board_revision() should have ITG)
+ /* if the GTA04 is connected to USB power first and
+ * the battery is inserted after this, all power rails
+ * have oscillated until the battery is available
+ * this makes the ITG3200 Power On Reset fail
+ */
+ if(i2c_probe(0x68))
+ { // ITG3200 does not respond
+ printf("ITG3200 does not respond\n");
+ // FIXME: temporarily switch off VAUX2
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
+ /*TWL4030_PM_RECEIVER_VAUX2_VSEL_28*/ 0x09,
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
+ udelay(30*1000); // wait a little until power drops
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
+ /*TWL4030_PM_RECEIVER_VAUX2_VSEL_28*/ 0x09,
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
+ udelay(10*1000); // wait a little until power stabilizes and ITG did reset
+ if(i2c_probe(0x68)) // ITG3200 does not respond
+ printf("ITG3200 still does not respond\n");
+ else
+ printf("ITG3200 now ok\n");
+ }
+#endif
+
if(i2c_probe(TSC2007_ADDRESS))
{
printf ("could not probe TSC2007\n");