1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-06-05 18:30:50 +00:00

u-boot 2011.09: probe ddc bus for eeproms as well on beagleboard, add beaconboard support

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Koen Kooi
2011-10-09 15:58:43 +02:00
parent b4cbf191d2
commit 46bda0096d
3 changed files with 207 additions and 0 deletions
@@ -0,0 +1,39 @@
From f6ce74793e6341895153e43643460b7fc812dc9d Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sat, 8 Oct 2011 21:56:35 +0200
Subject: [PATCH] beagleboard: add support for TCT Beacon board
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
board/ti/beagle/beagle.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 8cdceaf..be40e96 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -62,6 +62,7 @@ extern volatile struct ehci_hcor *hcor;
#define TINCANTOOLS_ZIPPY2 0x02000100
#define TINCANTOOLS_TRAINER 0x04000100
#define TINCANTOOLS_SHOWDOG 0x03000100
+#define TINCANTOOLS_BEACON 0x05000100
#define KBADC_BEAGLEFPGA 0x01000600
#define LW_BEAGLETOUCH 0x01000700
#define BRAINMUX_LCDOG 0x01000800
@@ -290,6 +291,13 @@ int misc_init_r(void)
setenv("defaultdisplay", "showdoglcd");
setenv("buddy", "showdog");
break;
+ case TINCANTOOLS_BEACON:
+ printf("Recognized Tincantools Beacon board (rev %d %s)\n",
+ expansion_config.revision,
+ expansion_config.fab_revision);
+ /* Place holder for DSS2 definition for showdog lcd */
+ setenv("buddy", "beacon");
+ break;
case KBADC_BEAGLEFPGA:
printf("Recognized KBADC Beagle FPGA board\n");
MUX_KBADC_BEAGLEFPGA();
--
1.6.6.1
@@ -0,0 +1,165 @@
From 559eb0f547267df0706d283974916b88d6b9fb7d Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sun, 9 Oct 2011 15:55:05 +0200
Subject: [PATCH] beagleboard: probe DDC bus for expansionboard EEPROMS as well
Add beacon support as well, needs to get split into a seperate patch
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
board/ti/beagle/beagle.c | 59 ++++++++++++++++++++++++++++++++++++++++
board/ti/beagle/beagle.h | 7 +++++
include/configs/omap3_beagle.h | 7 +++++
3 files changed, 73 insertions(+), 0 deletions(-)
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
index 8cdceaf..f4e986c 100644
--- a/board/ti/beagle/beagle.c
+++ b/board/ti/beagle/beagle.c
@@ -57,11 +57,14 @@ extern volatile struct ehci_hcor *hcor;
#define TWL4030_I2C_BUS 0
#define EXPANSION_EEPROM_I2C_BUS 1
#define EXPANSION_EEPROM_I2C_ADDRESS 0x50
+#define DVI_EDID_I2C_BUS 2
+#define DVI_EDID_I2C_ADDRESS 0x50
#define TINCANTOOLS_ZIPPY 0x01000100
#define TINCANTOOLS_ZIPPY2 0x02000100
#define TINCANTOOLS_TRAINER 0x04000100
#define TINCANTOOLS_SHOWDOG 0x03000100
+#define TINCANTOOLS_BEACON 0x05000100
#define KBADC_BEAGLEFPGA 0x01000600
#define LW_BEAGLETOUCH 0x01000700
#define BRAINMUX_LCDOG 0x01000800
@@ -69,6 +72,7 @@ extern volatile struct ehci_hcor *hcor;
#define BBTOYS_WIFI 0x01000B00
#define BBTOYS_VGA 0x02000B00
#define BBTOYS_LCD 0x03000B00
+#define BBTOYS_ULCD 0x04000B00
#define BEAGLE_NO_EEPROM 0xffffffff
DECLARE_GLOBAL_DATA_PTR;
@@ -82,6 +86,16 @@ static struct {
char env_setting[64];
} expansion_config;
+static struct {
+ unsigned int device_vendor;
+ unsigned char revision;
+ unsigned char content;
+ char fab_revision[8];
+ char env_var[16];
+ char env_setting[64];
+} edid_config;
+
+
/*
* Routine: board_init
* Description: Early hardware init.
@@ -165,6 +179,33 @@ unsigned int get_expansion_id(void)
}
/*
+ * Routine: get_edid
+ * Description: This function checks for expansion board by checking I2C
+ * bus 2 for the availability of an EEPROM
+ * returns the device_vendor field from the EEPROM
+ * The content can be either real EDID data or expansionboard data.
+ * Only expansionboar data is currently supported
+ */
+unsigned int get_edid(void)
+{
+ i2c_set_bus_num(DVI_EDID_I2C_BUS);
+
+ /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */
+ if (i2c_probe(DVI_EDID_I2C_ADDRESS) == 1) {
+ i2c_set_bus_num(TWL4030_I2C_BUS);
+ return BEAGLE_NO_EEPROM;
+ }
+
+ /* read EEPROM data */
+ i2c_read(DVI_EDID_I2C_ADDRESS, 0, 1, (u8 *)&edid_config,
+ sizeof(edid_config));
+
+ i2c_set_bus_num(TWL4030_I2C_BUS);
+
+ return edid_config.device_vendor;
+}
+
+/*
* Configure DSS to display background color on DVID
* Configure VENC to display color bar on S-Video
*/
@@ -290,6 +331,13 @@ int misc_init_r(void)
setenv("defaultdisplay", "showdoglcd");
setenv("buddy", "showdog");
break;
+ case TINCANTOOLS_BEACON:
+ printf("Recognized Tincantools Beacon board (rev %d %s)\n",
+ expansion_config.revision,
+ expansion_config.fab_revision);
+ MUX_TINCANTOOLS_BEACON();
+ setenv("buddy", "beacon");
+ break;
case KBADC_BEAGLEFPGA:
printf("Recognized KBADC Beagle FPGA board\n");
MUX_KBADC_BEAGLEFPGA();
@@ -331,6 +379,17 @@ int misc_init_r(void)
if (expansion_config.content == 1)
setenv(expansion_config.env_var, expansion_config.env_setting);
+ switch(get_edid()) {
+ case BBTOYS_ULCD:
+ printf("Recognized BeagleBoardToys universal LCD board on DDC bus\n");
+ setenv("edid", "uLCD");
+ break;
+ default:
+ printf("Unrecognized EEPROM content on DDC bus: %x\n",
+ edid_config.device_vendor);
+ setenv("edid", "unknown");
+ }
+
twl4030_power_init();
switch (get_board_revision()) {
case REVISION_XM_A:
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
index 18bfaa8..6a9ad73 100644
--- a/board/ti/beagle/beagle.h
+++ b/board/ti/beagle/beagle.h
@@ -456,6 +456,13 @@ const omap3_sysinfo sysinfo = {
MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTU | EN | M4)) /*GPIO_141*/\
MUX_VAL(CP(MCBSP1_CLKX), (IEN | PTU | EN | M4)) /*GPIO_162*/
+#define MUX_TINCANTOOLS_BEACON() \
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M4)) /*GPIO_135*/\
+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M4)) /*GPIO_136*/\
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137*/\
+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M4)) /*GPIO_138*/\
+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M4)) /*GPIO_139*/\
+
#define MUX_KBADC_BEAGLEFPGA() \
MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | DIS | M1)) /*MCSPI4_CLK*/\
MUX_VAL(CP(MCBSP1_DX), (IDIS | PTU | DIS | M1)) /*MCSPI4_SIMO*/\
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
index 1369c89..73df658 100644
--- a/include/configs/omap3_beagle.h
+++ b/include/configs/omap3_beagle.h
@@ -219,6 +224,7 @@
"console=ttyS2,115200n8\0" \
"mpurate=auto\0" \
"buddy=none "\
+ "edid=none "\
"optargs=\0" \
"camera=none\0" \
"vram=12M\0" \
@@ -235,6 +241,7 @@
"${optargs} " \
"mpurate=${mpurate} " \
"buddy=${buddy} "\
+ "edid=${edid} "\
"camera=${camera} "\
"vram=${vram} " \
"omapfb.mode=dvi:${dvimode} " \
--
1.6.6.1
+3
View File
@@ -1,5 +1,7 @@
require u-boot.inc
PR = "r1"
# No patches for other machines yet
COMPATIBLE_MACHINE = "(beagleboard)"
@@ -7,6 +9,7 @@ SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git \
file://2011.09/0001-HACK-beagleboard-config-disable-cache-for-USB.patch \
file://2011.09/0002-beagleboard-config-enable-gpio-command.patch \
file://2011.09/0003-Increased-some-timeout-durations-for-MMC-and-EHCI.patch \
file://2011.09/0001-beagleboard-probe-DDC-bus-for-expansionboard-EEPROMS.patch \
file://fw_env.config \
"
# v2011.09 tag -> 6ceb0135f96d73063ffbaab5be7ce23933367388