summaryrefslogtreecommitdiffstats
path: root/u-boot/board/goldelico/gta04
diff options
context:
space:
mode:
Diffstat (limited to 'u-boot/board/goldelico/gta04')
-rw-r--r--u-boot/board/goldelico/gta04/TD028TTEC1.c29
-rw-r--r--u-boot/board/goldelico/gta04/TD028TTEC1.h2
-rw-r--r--u-boot/board/goldelico/gta04/backlight.c51
-rw-r--r--u-boot/board/goldelico/gta04/commands.c57
-rw-r--r--u-boot/board/goldelico/gta04/status.c61
5 files changed, 112 insertions, 88 deletions
diff --git a/u-boot/board/goldelico/gta04/TD028TTEC1.c b/u-boot/board/goldelico/gta04/TD028TTEC1.c
index 94667a3..b7970bf 100644
--- a/u-boot/board/goldelico/gta04/TD028TTEC1.c
+++ b/u-boot/board/goldelico/gta04/TD028TTEC1.c
@@ -37,24 +37,25 @@
#include <asm/mach-types.h>
#include "TD028TTEC1.h"
-#ifdef CONFIG_OMAP3_BEAGLE
-
-#ifdef CONFIG_OMAP3_GTA04
+#if defined(CONFIG_OMAP3_GTA04)
#define GPIO_CS 19
#define GPIO_SCL 12
#define GPIO_DIN 18
#define GPIO_DOUT 20
-#else /* Beagle Hybrid */
+#define SPI_READ() (omap_get_gpio_datain(GPIO_DIN))
+#define SPI_CS(bit) (omap_set_gpio_dataout(GPIO_CS, bit))
+#define SPI_SDA(bit) (omap_set_gpio_dataout(GPIO_DOUT, bit))
+#define SPI_SCL(bit) (omap_set_gpio_dataout(GPIO_SCL, bit))
+
+#elif defined(CONFIG_OMAP3_BEAGLE)
#define GPIO_CS 161
#define GPIO_SCL 162
#define GPIO_DIN 159
#define GPIO_DOUT 158
-#endif
-
#define SPI_READ() (omap_get_gpio_datain(GPIO_DIN))
#define SPI_CS(bit) (omap_set_gpio_dataout(GPIO_CS, bit))
#define SPI_SDA(bit) (omap_set_gpio_dataout(GPIO_DOUT, bit))
@@ -100,7 +101,7 @@ extern void smedia3362_lcm_reset(int);
static int jbt_spi_xfer(int wordnum, int bitlen, u_int16_t *dout)
{
-#if !defined(_BEAGLE_)
+#if 0
S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
#endif
u_int16_t tmpdout = 0;
@@ -179,9 +180,9 @@ int jbt_reg_write16(struct jbt_info *jbt, u_int8_t reg, u_int16_t data)
return rc;
}
-int jbt_check(void)
+int panel_check(void)
{ // check if we have connectivity
-#if defined(_BEAGLE_)
+#if 1
int err;
int i;
int failed=0;
@@ -189,7 +190,7 @@ int jbt_check(void)
int cnt1 = 0;
#if 0
- printf("jbt_reg_init()\n");
+ printf("panel_reg_init()\n");
#endif
err = omap_request_gpio(GPIO_CS);
SPI_CS(1); // unselect
@@ -200,7 +201,7 @@ int jbt_check(void)
err |= omap_request_gpio(GPIO_DIN);
if(err)
{
- printf("jbt_reg_init() - could not get GPIOs\n");
+ printf("panel_reg_init() - could not get GPIOs\n");
return 1;
}
#if 1 // should have already been done by MUX settings!
@@ -245,15 +246,15 @@ int jbt_check(void)
return 0;
}
-int jbt_reg_init(void)
+int panel_reg_init(void)
{
- if(jbt_check())
+ if(panel_check())
return 1; // some error
/* according to data sheet: wait 50ms (Tpos of LCM). However, 50ms
* seems unreliable with later LCM batches, increasing to 90ms */
udelay(90000);
- printf("did jbt_reg_init()\n");
+ printf("did panel_reg_init()\n");
return 0;
}
diff --git a/u-boot/board/goldelico/gta04/TD028TTEC1.h b/u-boot/board/goldelico/gta04/TD028TTEC1.h
index 19bcc07..e4de9a7 100644
--- a/u-boot/board/goldelico/gta04/TD028TTEC1.h
+++ b/u-boot/board/goldelico/gta04/TD028TTEC1.h
@@ -1,8 +1,6 @@
#ifndef _TD028TTEC1_H
#define _TD028TTEC1_H
-#define _BEAGLE_
-
#define JBT_TX_BUF_SIZE
struct jbt_info {
u_int16_t tx_buf[4];
diff --git a/u-boot/board/goldelico/gta04/backlight.c b/u-boot/board/goldelico/gta04/backlight.c
index 76b6e43..1e167f0 100644
--- a/u-boot/board/goldelico/gta04/backlight.c
+++ b/u-boot/board/goldelico/gta04/backlight.c
@@ -30,24 +30,50 @@
#include <asm/mach-types.h>
#include "backlight.h"
+// CHECKME!
+
#if defined(CONFIG_OMAP3_GTA04)
+#if defined(CONFIG_GOLDELICO_EXPANDER_B2)
+
+#define GPIO_BACKLIGHT 146 /* = GPT11_PWM (instead of UART2-TX) */
+#define GPT_BACKLIGHT OMAP34XX_GPT11
+
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B3)
+
+#define GPIO_BACKLIGHT 146 /* = GPT11_PWM (instead of UART2-TX) */
+#define GPT_BACKLIGHT OMAP34XX_GPT11
+
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B4)
+
+#define GPIO_BACKLIGHT 146 /* = GPT11_PWM (instead of UART2-TX) */
+#define GPT_BACKLIGHT OMAP34XX_GPT11
+
+#else
+
#define GPIO_BACKLIGHT 57 /* = GPT11_PWM */
#define GPT_BACKLIGHT OMAP34XX_GPT11
-#elif defined(CONFIG_OMAP3_BEAGLE_HYBRID)
+#endif
+
+#elif defined(CONFIG_OMAP3_BEAGLE)
+
+#if defined(CONFIG_GOLDELICO_EXPANDER_B1)
#define GPIO_BACKLIGHT 145 /* = GPT10_PWM */
#define GPT_BACKLIGHT OMAP34XX_GPT10
-#elif defined(CONFIG_OMAP3_BEAGLE_EXPANDER)
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B2)
#define GPIO_BACKLIGHT 146 /* = GPT11_PWM (instead of UART2-TX) */
#define GPT_BACKLIGHT OMAP34XX_GPT11
-#else
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B4)
-#error undefined CONFIG
+#define GPIO_BACKLIGHT 146 /* = GPT11_PWM (instead of UART2-TX) */
+#define GPT_BACKLIGHT OMAP34XX_GPT11
+
+#endif
#endif
@@ -71,13 +97,17 @@ int backlight_init(void)
struct gptimer *gpt_base = (struct gptimer *)GPT_BACKLIGHT;
#if defined(CONFIG_OMAP3_GTA04)
MUX_VAL(CP(GPMC_NCS6), (IEN | PTD | DIS | M3)) /* GPT_11 - Backlight enable*/\
-#elif defined(CONFIG_OMAP3_BEAGLE_HYBRID)
+#elif defined(CONFIG_OMAP3_BEAGLE)
+#if defined(CONFIG_GOLDELICO_EXPANDER_B1)
MUX_VAL(CP(UART2_RTS), (IEN | PTD | DIS | M2)) /* switch to GPT10 */
-#elif defined(CONFIG_OMAP3_BEAGLE_EXPANDER)
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B2)
MUX_VAL(CP(UART2_TX), (IEN | PTD | DIS | M2)) /* switch to GPT11 */
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B4)
+ // tbd.
#else
#error undefined CONFIG
#endif
+#endif
// writel(value, &gpt_base->registername);
// program registers for generating a 100-1000 Hz PWM signal
// or PWM synchronized to VSYNC (to avoid flicker)
@@ -86,15 +116,20 @@ int backlight_init(void)
#error todo
#else
+
#if defined(CONFIG_OMAP3_GTA04)
MUX_VAL(CP(GPMC_NCS6), (IEN | PTD | DIS | M4)) /*GPIO_57 - Backlight enable*/
-#elif defined(CONFIG_OMAP3_BEAGLE_HYBRID)
+#elif defined(CONFIG_OMAP3_BEAGLE)
+#if defined(CONFIG_GOLDELICO_EXPANDER_B1)
MUX_VAL(CP(UART2_RTS), (IEN | PTD | DIS | M4)) /*GPIO_145*/
-#elif defined(CONFIG_OMAP3_BEAGLE_EXPANDER)
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B2)
MUX_VAL(CP(UART2_TX), (IEN | PTD | DIS | M4)) /*GPIO_146*/
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B4)
+ // tbd.
#else
#error undefined CONFIG
#endif
+#endif
if(omap_request_gpio(GPIO_BACKLIGHT) == 0) // 0 == ok
{
omap_set_gpio_direction(GPIO_BACKLIGHT, 0); // output
diff --git a/u-boot/board/goldelico/gta04/commands.c b/u-boot/board/goldelico/gta04/commands.c
index eb75c1f..c1ec7b9 100644
--- a/u-boot/board/goldelico/gta04/commands.c
+++ b/u-boot/board/goldelico/gta04/commands.c
@@ -32,7 +32,7 @@
#include "backlight.h"
#include "dssfb.h"
-#include "jbt6k74.h"
+#include "panel.h"
#include "status.h"
#include "gps.h"
#include "tsc2007.h"
@@ -78,57 +78,44 @@ static int do_lcd_backlight(int argc, char *const argv[])
return 0;
}
-static char *lcdmodel="td028";
-
static int do_lcd_power(int argc, char *const argv[])
{
- if(strcmp(lcdmodel, "td028") == 0)
+ int state=PANEL_STATE_NORMAL;
+ if (argc < 3)
{
- int state=JBT_STATE_NORMAL;
- if (argc < 3)
- {
- printf ("lcm power: missing state (0..2).\n");
- return (-1);
- }
- state=simple_strtoul(argv[2], NULL, 10);
- if(state > 2)
- {
- printf ("lcm power: invalid state (0..2).\n");
- return (-1);
- }
- jbt6k74_enter_state(state);
- printf("lcm state set to %s\n", jbt_state());
+ printf ("lcm power: missing state (0..2).\n");
+ return (-1);
+ }
+ state=simple_strtoul(argv[2], NULL, 10);
+ if(state > 2)
+ {
+ printf ("lcm power: invalid state (0..2).\n");
+ return (-1);
}
+ panel_enter_state(state);
+ printf("lcm state set to %s\n", panel_state());
return 0;
}
static int do_lcd_onoff(int argc, char *const argv[], int flag)
{
- if(strcmp(lcdmodel, "td028") == 0)
- jbt6k74_display_onoff(flag);
- else
- jbt6k74_display_onoff(flag);
+ panel_display_onoff(flag);
printf("display power %s\n", flag?"on":"off");
return 0;
}
static int do_lcd_init(int argc, char *const argv[])
{
- // check argv for user specified lcdmodel
return board_video_init(NULL);
}
static int do_lcd_start(int argc, char *const argv[])
-{
- // check argv for user specified lcdmodel
+{ // initialize and switch on in one command
if(board_video_init(NULL))
return 1;
- if(strcmp(lcdmodel, "td028") == 0)
- {
- jbt6k74_enter_state(2);
- jbt6k74_display_onoff(1);
- backlight_set_level(255);
- }
+ panel_enter_state(PANEL_STATE_NORMAL);
+ panel_display_onoff(1);
+ backlight_set_level(255);
return 0;
}
@@ -645,8 +632,8 @@ U_BOOT_CMD(systest, 3, 0, do_systest, "System Test",
static int do_poweroff(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
backlight_set_level(0);
- jbt6k74_enter_state(0);
- jbt6k74_display_onoff(0);
+ panel_enter_state(0);
+ panel_display_onoff(0);
shutdown(); // finally shut down power
printf ("failed to power down\n");
return (0);
@@ -658,8 +645,8 @@ U_BOOT_CMD(poweroff, 2, 0, do_poweroff, "Poweroff",
static int do_suspend(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
backlight_set_level(0);
- jbt6k74_enter_state(0);
- jbt6k74_display_onoff(0);
+ panel_enter_state(0);
+ panel_display_onoff(0);
suspend(); // put CPU in sleep mode so that it can be waked up by pressing the AUX button or other events
printf ("suspend finished\n");
return (0);
diff --git a/u-boot/board/goldelico/gta04/status.c b/u-boot/board/goldelico/gta04/status.c
index aebd95e..a4c3c8a 100644
--- a/u-boot/board/goldelico/gta04/status.c
+++ b/u-boot/board/goldelico/gta04/status.c
@@ -37,10 +37,40 @@
// no need to probe for LED controller (compiler should optimize unnecessary code)
#define hasTCA6507 (1==1)
-#else
+#define GPIO_AUX 7 // AUX/User button
+#define GPIO_POWER -1 // N/A on GTA04 (access through TPS65950)
+#define GPIO_GPSEXT 144 // external GPS antenna is plugged in
+#define GPIO_PENIRQ 160 // TSC must be set up to provide PENIRQ
+
+// FIXME: other expander variants?
+
+#else defined(CONFIG_OMAP3_BEAGLE)
static int hasTCA6507=0;
+#if defined(CONFIG_GOLDELICO_EXPANDER_B1)
+
+#define GPIO_AUX 136 // AUX/User button
+#define GPIO_POWER 137 // POWER button
+#define GPIO_GPSEXT 138 // external GPS antenna is plugged in
+#define GPIO_PENIRQ 157 // TSC must be set up to provide PENIRQ
+
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B2)
+
+#define GPIO_AUX 136 // AUX/User button
+#define GPIO_POWER 137 // POWER button
+#define GPIO_GPSEXT 138 // external GPS antenna is plugged in
+#define GPIO_PENIRQ 157 // TSC must be set up to provide PENIRQ
+
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B4)
+
+#define GPIO_AUX 136 // AUX/User button
+#define GPIO_POWER 137 // POWER button
+#define GPIO_GPSEXT 138 // external GPS antenna is plugged in
+#define GPIO_PENIRQ 157 // TSC must be set up to provide PENIRQ
+
+#endif
+
#endif
#define TWL4030_I2C_BUS (1-1) // I2C1
@@ -72,33 +102,6 @@ extern int get_board_revision(void);
static int isXM = 0;
-#if defined(CONFIG_OMAP3_GTA04)
-
-#define GPIO_AUX 7 // AUX/User button
-#define GPIO_POWER -1 // N/A on GTA04 (access through TPS65950)
-#define GPIO_GPSEXT 144 // external GPS antenna is plugged in
-#define GPIO_PENIRQ 160 // TSC must be set up to provide PENIRQ
-
-#elif defined(CONFIG_OMAP3_BEAGLE_HYBRID)
-
-#define GPIO_AUX 136 // AUX/User button
-#define GPIO_POWER 137 // POWER button
-#define GPIO_GPSEXT 138 // external GPS antenna is plugged in
-#define GPIO_PENIRQ 157 // TSC must be set up to provide PENIRQ
-
-#elif defined(CONFIG_OMAP3_BEAGLE_EXPANDER)
-
-#define GPIO_AUX 136 // AUX/User button
-#define GPIO_POWER 137 // POWER button
-#define GPIO_GPSEXT 138 // external GPS antenna is plugged in
-#define GPIO_PENIRQ 157 // TSC must be set up to provide PENIRQ
-
-#else
-
-#error unknown config
-
-#endif
-
#define GPIO_LED_AUX_RED (isXM?88:70) // AUX
#define GPIO_LED_AUX_GREEN (isXM?89:71) // AUX
#define GPIO_LED_POWER_RED 78 // Power
@@ -140,7 +143,7 @@ int status_get_buttons(void)
((omap_get_gpio_datain(GPIO_GPSEXT)) << 1) |
(((val&0x01) != 0) << 3) |
((omap_get_gpio_datain(GPIO_PENIRQ)) << 4);
-#elif defined(CONFIG_OMAP3_BEAGLE_EXPANDER)
+#elif defined(CONFIG_GOLDELICO_EXPANDER_B2)
return
((omap_get_gpio_datain(GPIO_AUX)) << 0) |
((0) << 1) |