mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-06-05 10:21:52 +00:00
u-boot git: sync beagleboard with OE .dev
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
@@ -1,49 +0,0 @@
|
||||
From 5b5eb18bfb80fa9595eb258a911a94f2807e7497 Mon Sep 17 00:00:00 2001
|
||||
From: Syed Mohammed Khasim <khasim@ti.com>
|
||||
Date: Mon, 18 Jan 2010 18:11:14 +0530
|
||||
Subject: [PATCH 01/51] Enable I2C bus switching
|
||||
|
||||
OMAP3 supports Multiple I2C channels, this patch allows
|
||||
us to use i2c dev <bus no> command to switch between busses.
|
||||
|
||||
Signed-off-by: Syed Mohammed Khasim <khasim@ti.com>
|
||||
Acked-by: Heiko Schocher <hs@denx.de>
|
||||
(cherry picked from commit 9bb1c3501c8f098dac6e224c99e409ebf92b0ab9)
|
||||
---
|
||||
drivers/i2c/omap24xx_i2c.c | 5 +++++
|
||||
include/configs/omap3_beagle.h | 6 ++++++
|
||||
2 files changed, 11 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
|
||||
index ff18991..e8c8184 100644
|
||||
--- a/drivers/i2c/omap24xx_i2c.c
|
||||
+++ b/drivers/i2c/omap24xx_i2c.c
|
||||
@@ -435,3 +435,8 @@ int i2c_set_bus_num(unsigned int bus)
|
||||
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
+int i2c_get_bus_num(void)
|
||||
+{
|
||||
+ return (int) current_bus;
|
||||
+}
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 08d79ac..d522c77 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -100,6 +100,12 @@
|
||||
/* DDR - I use Micron DDR */
|
||||
#define CONFIG_OMAP3_MICRON_DDR 1
|
||||
|
||||
+/* Enable Multi Bus support for I2C */
|
||||
+#define CONFIG_I2C_MULTI_BUS 1
|
||||
+
|
||||
+/* Probe all devices */
|
||||
+#define CONFIG_SYS_I2C_NOPROBES {0x0, 0x0}
|
||||
+
|
||||
/* USB */
|
||||
#define CONFIG_MUSB_UDC 1
|
||||
#define CONFIG_USB_OMAP3 1
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
From 7b250f8be3b8c496796dcdc954c9e5959cefea2c Mon Sep 17 00:00:00 2001
|
||||
From: Bob Feretich <bob.feretich@rafresearch.com>
|
||||
Date: Thu, 24 Feb 2011 13:16:44 +0000
|
||||
Subject: [PATCH 01/16] OMAP3 Beagle Pin Mux initialization glitch fix
|
||||
|
||||
The below patch reverses the order of two segments in the board file.
|
||||
Output pins need to have their values initialized, before they are
|
||||
exposed to the logic outside the chip.
|
||||
|
||||
Signed-off-by: Bob Feretich <bob.feretich@rafresearch.com>
|
||||
Cc: Wolfgang Denk <wd@denx.de>
|
||||
---
|
||||
board/ti/beagle/beagle.c | 12 ++++++------
|
||||
1 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index c066d6e..929461c 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -239,17 +239,17 @@ int misc_init_r(void)
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
- /* Configure GPIOs to output */
|
||||
- writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
|
||||
- writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
|
||||
- GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
|
||||
-
|
||||
- /* Set GPIOs */
|
||||
+ /* Set GPIO states before they are made outputs */
|
||||
writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
|
||||
&gpio6_base->setdataout);
|
||||
writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
|
||||
GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
|
||||
|
||||
+ /* Configure GPIOs to output */
|
||||
+ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
|
||||
+ writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
|
||||
+ GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
|
||||
+
|
||||
dieid_num_r();
|
||||
|
||||
return 0;
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
From 6b23ecf49d1c2ee5227ff57101919af46ecd7396 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Monk <r-monk@ti.com>
|
||||
Date: Fri, 9 Jul 2010 08:37:04 +0100
|
||||
Subject: [PATCH] omap3evm: Change default 'console' serial port from ttyS2 to ttyS0
|
||||
|
||||
* Update default kernel console env variable ($(console))
|
||||
to use ttyS0 (instead of ttyS2) to match the serial port
|
||||
used by x-loader and u-boot
|
||||
|
||||
Signed-off-by: Roger Monk <r-monk@ti.com>
|
||||
---
|
||||
include/configs/omap3_evm.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h
|
||||
index 73a5c98..d01d733 100644
|
||||
--- a/include/configs/omap3_evm.h
|
||||
+++ b/include/configs/omap3_evm.h
|
||||
@@ -203,7 +203,7 @@
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"loadaddr=0x82000000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
- "console=ttyS2,115200n8\0" \
|
||||
+ "console=ttyS0,115200n8\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
"root=/dev/mmcblk0p2 rw " \
|
||||
"rootfstype=ext3 rootwait\0" \
|
||||
--
|
||||
1.6.0.4
|
||||
|
||||
+12
-9
@@ -1,18 +1,21 @@
|
||||
From 0fd26c84173c9a589c6cd9c0db6d2200e769134b Mon Sep 17 00:00:00 2001
|
||||
From 0588da9057fddb5f6a6a04aedd7e0a79eb39e9e5 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Thu, 25 Mar 2010 06:54:47 -0700
|
||||
Subject: [PATCH 21/51] OMAP3: Beagle, Overo: remove omapfb.debug=y from default env
|
||||
Date: Thu, 30 Dec 2010 07:19:44 +0000
|
||||
Subject: [PATCH 02/16] OMAP: Remove omapfb.debug=y from Beagle and Overo env settings
|
||||
|
||||
The kernel DSS2 code is mature now, and keeping this setting hurts performance
|
||||
|
||||
Signed-off-by: Steve Sakoman <steve@sakoman.com>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 2 --
|
||||
include/configs/omap3_overo.h | 2 --
|
||||
2 files changed, 0 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 1370a29..8bedf7d 100644
|
||||
index 5cfa4cb..8b580ef 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -200,7 +200,6 @@
|
||||
@@ -203,7 +203,6 @@
|
||||
"mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
@@ -20,7 +23,7 @@ index 1370a29..8bedf7d 100644
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
@@ -208,7 +207,6 @@
|
||||
@@ -211,7 +210,6 @@
|
||||
"mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
@@ -29,10 +32,10 @@ index 1370a29..8bedf7d 100644
|
||||
"root=${nandroot} " \
|
||||
"rootfstype=${nandrootfstype}\0" \
|
||||
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
|
||||
index 27b5476..118e886 100644
|
||||
index 1b3d439..06a28f6 100644
|
||||
--- a/include/configs/omap3_overo.h
|
||||
+++ b/include/configs/omap3_overo.h
|
||||
@@ -163,7 +163,6 @@
|
||||
@@ -169,7 +169,6 @@
|
||||
"mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
@@ -40,7 +43,7 @@ index 27b5476..118e886 100644
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
@@ -171,7 +170,6 @@
|
||||
@@ -177,7 +176,6 @@
|
||||
"mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
@@ -1,187 +0,0 @@
|
||||
From 8cea9443be01ccc2525ff1de17b0dddd7c27984e Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Wed, 10 Feb 2010 14:40:56 -0800
|
||||
Subject: [PATCH 02/51] OMAP3: add board revision detection for Overo
|
||||
|
||||
---
|
||||
board/overo/overo.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
board/overo/overo.h | 43 +++++++++++++++++++++---
|
||||
2 files changed, 127 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.c b/board/overo/overo.c
|
||||
index e85be7d..3df1a12 100644
|
||||
--- a/board/overo/overo.c
|
||||
+++ b/board/overo/overo.c
|
||||
@@ -61,11 +61,101 @@ int board_init(void)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Routine: get_sdio2_config
|
||||
+ * Description: Return information about the wifi module connection
|
||||
+ * Returns 0 if the module connects though a level translator
|
||||
+ * Returns 1 if the module connects directly
|
||||
+ */
|
||||
+int get_sdio2_config(void) {
|
||||
+ int sdio_direct;
|
||||
+
|
||||
+ if (!omap_request_gpio(130) && !omap_request_gpio(139)){
|
||||
+
|
||||
+ omap_set_gpio_direction(130, 0);
|
||||
+ omap_set_gpio_direction(139, 1);
|
||||
+
|
||||
+ sdio_direct = 1;
|
||||
+ omap_set_gpio_dataout(130, 0);
|
||||
+ if (omap_get_gpio_datain(139) == 0) {
|
||||
+ omap_set_gpio_dataout(130, 1);
|
||||
+ if (omap_get_gpio_datain(139) == 1)
|
||||
+ sdio_direct = 0;
|
||||
+ }
|
||||
+
|
||||
+ omap_free_gpio(130);
|
||||
+ omap_free_gpio(139);
|
||||
+ } else {
|
||||
+ printf("Error: unable to acquire sdio2 clk GPIOs\n");
|
||||
+ sdio_direct=-1;
|
||||
+ }
|
||||
+
|
||||
+ return sdio_direct;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Routine: get_board_revision
|
||||
+ * Description: Returns the board revision
|
||||
+ */
|
||||
+int get_board_revision(void) {
|
||||
+ int revision;
|
||||
+
|
||||
+ if (!omap_request_gpio(126) && !omap_request_gpio(127) &&
|
||||
+ !omap_request_gpio(128) && !omap_request_gpio(129)){
|
||||
+
|
||||
+ omap_set_gpio_direction(126, 1);
|
||||
+ omap_set_gpio_direction(127, 1);
|
||||
+ omap_set_gpio_direction(128, 1);
|
||||
+ omap_set_gpio_direction(129, 1);
|
||||
+
|
||||
+ revision = 0;
|
||||
+ if (omap_get_gpio_datain(126) == 0)
|
||||
+ revision += 1;
|
||||
+ if (omap_get_gpio_datain(127) == 0)
|
||||
+ revision += 2;
|
||||
+ if (omap_get_gpio_datain(128) == 0)
|
||||
+ revision += 4;
|
||||
+ if (omap_get_gpio_datain(129) == 0)
|
||||
+ revision += 8;
|
||||
+
|
||||
+ omap_free_gpio(126);
|
||||
+ omap_free_gpio(127);
|
||||
+ omap_free_gpio(128);
|
||||
+ omap_free_gpio(129);
|
||||
+ } else {
|
||||
+ printf("Error: unable to acquire board revision GPIOs\n");
|
||||
+ revision=-1;
|
||||
+ }
|
||||
+
|
||||
+ return revision;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Configure board specific parts
|
||||
*/
|
||||
int misc_init_r(void)
|
||||
{
|
||||
+ printf("Board revision: ");
|
||||
+ switch (get_board_revision()) {
|
||||
+ case 0:
|
||||
+ case 1:
|
||||
+ switch (get_sdio2_config()) {
|
||||
+ case 0:
|
||||
+ printf(" 0\n");
|
||||
+ MUX_OVERO_SDIO2_TRANSCEIVER();
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ printf(" 1\n");
|
||||
+ MUX_OVERO_SDIO2_DIRECT();
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf(" unknown\n");
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf(" unsupported\n");
|
||||
+ }
|
||||
+
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
diff --git a/board/overo/overo.h b/board/overo/overo.h
|
||||
index 1873523..e120e09 100644
|
||||
--- a/board/overo/overo.h
|
||||
+++ b/board/overo/overo.h
|
||||
@@ -206,12 +206,12 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0)) /*MMC1_DAT1*/\
|
||||
MUX_VAL(CP(MMC1_DAT2), (IEN | PTU | EN | M0)) /*MMC1_DAT2*/\
|
||||
MUX_VAL(CP(MMC1_DAT3), (IEN | PTU | EN | M0)) /*MMC1_DAT3*/\
|
||||
- MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M0)) /*MMC1_DAT4*/\
|
||||
- MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M0)) /*MMC1_DAT5*/\
|
||||
- MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M0)) /*MMC1_DAT6*/\
|
||||
- MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M0)) /*MMC1_DAT7*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M4)) /*GPIO_126*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/\
|
||||
/*Wireless LAN */\
|
||||
- MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M4)) /*GPIO_130*/\
|
||||
MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
@@ -220,7 +220,7 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\
|
||||
MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\
|
||||
MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\
|
||||
- MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M4)) /*GPIO_139*/\
|
||||
/*Bluetooth*/\
|
||||
MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M1)) /*UART2_CTS*/\
|
||||
MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
|
||||
@@ -387,5 +387,36 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(SDRC_CKE0), (IDIS | PTU | EN | M0)) /*sdrc_cke0*/\
|
||||
MUX_VAL(CP(SDRC_CKE1), (IDIS | PTU | EN | M0)) /*sdrc_cke1*/
|
||||
|
||||
+#define MUX_OVERO_SDIO2_DIRECT() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M0)) /*MMC2_DAT4*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M0)) /*MMC2_DAT5*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M0)) /*MMC2_DAT6*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M0)) /*MMC2_DAT7*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTD | EN | M4)) /*GPIO_126*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/
|
||||
+
|
||||
+#define MUX_OVERO_SDIO2_TRANSCEIVER() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M4)) /*GPIO_126*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/
|
||||
|
||||
#endif
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-165
@@ -1,165 +0,0 @@
|
||||
From fae6228e203436ce0d82ce32da769bd91206865f Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Wed, 10 Feb 2010 14:51:48 -0800
|
||||
Subject: [PATCH 03/51] OMAP3: update Beagle revision detection to recognize C4 boards
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 77 +++++++++++++++++++++++++++-------------------
|
||||
board/ti/beagle/beagle.h | 7 +++-
|
||||
2 files changed, 51 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 3b4c9e7..ba16dd7 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -38,7 +38,7 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include "beagle.h"
|
||||
|
||||
-static int beagle_revision_c;
|
||||
+static int beagle_revision;
|
||||
|
||||
/*
|
||||
* Routine: board_init
|
||||
@@ -60,41 +60,38 @@ int board_init(void)
|
||||
/*
|
||||
* Routine: beagle_get_revision
|
||||
* Description: Return the revision of the BeagleBoard this code is running on.
|
||||
- * If it is a revision Ax/Bx board, this function returns 0,
|
||||
- * on a revision C board you will get a 1.
|
||||
*/
|
||||
int beagle_get_revision(void)
|
||||
{
|
||||
- return beagle_revision_c;
|
||||
+ return beagle_revision;
|
||||
}
|
||||
|
||||
/*
|
||||
* Routine: beagle_identify
|
||||
- * Description: Detect if we are running on a Beagle revision Ax/Bx or
|
||||
- * Cx. This can be done by GPIO_171. If this is low, we are
|
||||
- * running on a revision C board.
|
||||
+ * Description: Detect if we are running on a Beagle revision Ax/Bx,
|
||||
+ * C1/2/3, C4 or D. This can be done by reading
|
||||
+ * the level of GPIO173, GPIO172 and GPIO171. This should
|
||||
+ * result in
|
||||
+ * GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx
|
||||
+ * GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3
|
||||
+ * GPIO173, GPIO172, GPIO171: 1 0 1 => C4
|
||||
+ * GPIO173, GPIO172, GPIO171: 0 0 0 => D
|
||||
*/
|
||||
void beagle_identify(void)
|
||||
{
|
||||
- beagle_revision_c = 0;
|
||||
- if (!omap_request_gpio(171)) {
|
||||
- unsigned int val;
|
||||
-
|
||||
- omap_set_gpio_direction(171, 1);
|
||||
- val = omap_get_gpio_datain(171);
|
||||
- omap_free_gpio(171);
|
||||
-
|
||||
- if (val)
|
||||
- beagle_revision_c = 0;
|
||||
- else
|
||||
- beagle_revision_c = 1;
|
||||
- }
|
||||
-
|
||||
- printf("Board revision ");
|
||||
- if (beagle_revision_c)
|
||||
- printf("C\n");
|
||||
- else
|
||||
- printf("Ax/Bx\n");
|
||||
+ omap_request_gpio(171);
|
||||
+ omap_request_gpio(172);
|
||||
+ omap_request_gpio(173);
|
||||
+ omap_set_gpio_direction(171, 1);
|
||||
+ omap_set_gpio_direction(172, 1);
|
||||
+ omap_set_gpio_direction(173, 1);
|
||||
+
|
||||
+ beagle_revision = omap_get_gpio_datain(173) << 2 |
|
||||
+ omap_get_gpio_datain(172) << 1 |
|
||||
+ omap_get_gpio_datain(171);
|
||||
+ omap_free_gpio(171);
|
||||
+ omap_free_gpio(172);
|
||||
+ omap_free_gpio(173);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -106,9 +103,31 @@ int misc_init_r(void)
|
||||
struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE;
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
+ beagle_identify();
|
||||
+
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
+ printf("Board revision ");
|
||||
+ switch (beagle_revision) {
|
||||
+ case REVISION_AXBX:
|
||||
+ printf("Ax/Bx\n");
|
||||
+ break;
|
||||
+ case REVISION_CX:
|
||||
+ printf("C1/C2/C3\n");
|
||||
+ MUX_BEAGLE_C();
|
||||
+ break;
|
||||
+ case REVISION_C4:
|
||||
+ printf("C4\n");
|
||||
+ MUX_BEAGLE_C();
|
||||
+ break;
|
||||
+ case REVISION_D:
|
||||
+ printf("D\n");
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf("unknown 0x%02x\n", beagle_revision);
|
||||
+ }
|
||||
+
|
||||
/* Configure GPIOs to output */
|
||||
writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
|
||||
writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
|
||||
@@ -120,8 +139,6 @@ int misc_init_r(void)
|
||||
writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
|
||||
GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
|
||||
|
||||
- beagle_identify();
|
||||
-
|
||||
dieid_num_r();
|
||||
|
||||
return 0;
|
||||
@@ -136,8 +153,4 @@ int misc_init_r(void)
|
||||
void set_muxconf_regs(void)
|
||||
{
|
||||
MUX_BEAGLE();
|
||||
-
|
||||
- if (beagle_revision_c) {
|
||||
- MUX_BEAGLE_C();
|
||||
- }
|
||||
}
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index 7fe6275..d95fd78 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -34,6 +34,11 @@ const omap3_sysinfo sysinfo = {
|
||||
};
|
||||
|
||||
#define BOARD_REVISION_MASK (0x1 << 11)
|
||||
+/* BeagleBoard revisions */
|
||||
+#define REVISION_AXBX 0x7
|
||||
+#define REVISION_CX 0x6
|
||||
+#define REVISION_C4 0x5
|
||||
+#define REVISION_D 0x0
|
||||
|
||||
/*
|
||||
* IEN - Input Enable
|
||||
@@ -264,7 +269,7 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*GPIO_170*/\
|
||||
MUX_VAL(CP(MCSPI1_CLK), (IEN | PTU | EN | M4)) /*GPIO_171*/\
|
||||
MUX_VAL(CP(MCSPI1_SIMO), (IEN | PTU | EN | M4)) /*GPIO_172*/\
|
||||
- MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTD | DIS | M0)) /*McSPI1_SOMI*/\
|
||||
+ MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTU | EN | M4)) /*GPIO_173*/\
|
||||
MUX_VAL(CP(MCSPI1_CS0), (IEN | PTD | EN | M0)) /*McSPI1_CS0*/\
|
||||
MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M0)) /*McSPI1_CS1*/\
|
||||
MUX_VAL(CP(MCSPI1_CS2), (IDIS | PTD | DIS | M4)) /*GPIO_176*/\
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
From 58ca6009d4101e5fd45ef9df22aa360d1662e9e9 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Holler <holler@ahsoftware.de>
|
||||
Date: Mon, 24 Jan 2011 13:08:49 +0000
|
||||
Subject: [PATCH 03/16] omap3_beagle: enable the use of a plain text file named uEnv.txt instead of boot.scr
|
||||
|
||||
Using the new env import command it is possible to use plain text files instead
|
||||
of script-images. Plain text files are much easier to handle.
|
||||
|
||||
E.g. If your boot.scr contains the following:
|
||||
-----------------------------------
|
||||
setenv dvimode 1024x768-16@60
|
||||
run loaduimage
|
||||
run mmcboot
|
||||
-----------------------------------
|
||||
you could create a file named uEnv.txt and use that instead of boot.scr:
|
||||
-----------------------------------
|
||||
dvimode=1024x768-16@60
|
||||
uenvcmd=run loaduimage; run mmcboot
|
||||
-----------------------------------
|
||||
The variable uenvcmd (if existent) will be executed (using run) after uEnv.txt
|
||||
was loaded. If uenvcmd doesn't exist the default boot sequence will be started,
|
||||
therefore you could just use
|
||||
-----------------------------------
|
||||
dvimode=1024x768-16@60
|
||||
-----------------------------------
|
||||
as uEnv.txt because loaduimage and mmcboot is part of the default boot sequence.
|
||||
---
|
||||
Changes for v2:
|
||||
- Eliminated else redundant clause that would be ignored if boot
|
||||
succeeds.
|
||||
|
||||
Changes for v3:
|
||||
- Removed boot.scr
|
||||
|
||||
Changes for v4:
|
||||
- Removed comment about boot.scr being supported.
|
||||
---
|
||||
include/configs/omap3_beagle.h | 28 ++++++++++++++++------------
|
||||
1 files changed, 16 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 8b580ef..c85537c 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -213,9 +213,9 @@
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${nandroot} " \
|
||||
"rootfstype=${nandrootfstype}\0" \
|
||||
- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||||
- "bootscript=echo Running bootscript from mmc ...; " \
|
||||
- "source ${loadaddr}\0" \
|
||||
+ "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
|
||||
+ "importbootenv=echo Importing environment from mmc ...; " \
|
||||
+ "env import -t $loadaddr $filesize\0" \
|
||||
"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
"mmcboot=echo Booting from mmc ...; " \
|
||||
"run mmcargs; " \
|
||||
@@ -227,15 +227,19 @@
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"if mmc rescan ${mmcdev}; then " \
|
||||
- "if run loadbootscript; then " \
|
||||
- "run bootscript; " \
|
||||
- "else " \
|
||||
- "if run loaduimage; then " \
|
||||
- "run mmcboot; " \
|
||||
- "else run nandboot; " \
|
||||
- "fi; " \
|
||||
- "fi; " \
|
||||
- "else run nandboot; fi"
|
||||
+ "echo SD/MMC found on device ${mmcdev};" \
|
||||
+ "if run loadbootenv; then " \
|
||||
+ "run importbootenv;" \
|
||||
+ "fi;" \
|
||||
+ "if test -n $uenvcmd; then " \
|
||||
+ "echo Running uenvcmd ...;" \
|
||||
+ "run uenvcmd;" \
|
||||
+ "fi;" \
|
||||
+ "if run loaduimage; then " \
|
||||
+ "run mmcboot;" \
|
||||
+ "fi;" \
|
||||
+ "fi;" \
|
||||
+ "run nandboot;" \
|
||||
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
/*
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
From 6859e4b88c405ed40c898d259227f158da5f867a Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kipisz <s-kipisz2@ti.com>
|
||||
Date: Thu, 5 Aug 2010 10:36:07 -0500
|
||||
Subject: [PATCH 04/16] OMAP3: BeagleBoard: Enable pullups on i2c2.
|
||||
|
||||
This allows the reading of EEPROMS on the expansion bus without adding
|
||||
external pull-ups.
|
||||
---
|
||||
v2 updates
|
||||
* Updated per http://patchwork.ozlabs.org/patch/71997/
|
||||
* Added description
|
||||
* Used OMAP34XX_CTRL_BASE
|
||||
* Used structure and writel to perform write
|
||||
|
||||
v3 updates
|
||||
* Included v3 in the subject line
|
||||
* Fixed structure name typo that got messed up in generating patch
|
||||
* Removed some extraneous blank lines
|
||||
|
||||
v4 updates
|
||||
* Fixed typo in typecast
|
||||
---
|
||||
arch/arm/include/asm/arch-omap3/omap3.h | 14 ++++++++++++++
|
||||
board/ti/beagle/beagle.c | 4 ++++
|
||||
2 files changed, 18 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/arch-omap3/omap3.h b/arch/arm/include/asm/arch-omap3/omap3.h
|
||||
index 3957c79..cc2b541 100644
|
||||
--- a/arch/arm/include/asm/arch-omap3/omap3.h
|
||||
+++ b/arch/arm/include/asm/arch-omap3/omap3.h
|
||||
@@ -50,6 +50,20 @@
|
||||
/* CONTROL */
|
||||
#define OMAP34XX_CTRL_BASE (OMAP34XX_L4_IO_BASE + 0x2000)
|
||||
|
||||
+#ifndef __ASSEMBLY__
|
||||
+/* Signal Integrity Parameter Control Registers */
|
||||
+struct control_prog_io {
|
||||
+ unsigned char res[0x408];
|
||||
+ unsigned int io2; /* 0x408 */
|
||||
+ unsigned char res2[0x38];
|
||||
+ unsigned int io0; /* 0x444 */
|
||||
+ unsigned int io1; /* 0x448 */
|
||||
+};
|
||||
+#endif /* __ASSEMBLY__ */
|
||||
+
|
||||
+/* Bit definition for CONTROL_PROG_IO1 */
|
||||
+#define PRG_I2C2_PULLUPRESX 0x00000001
|
||||
+
|
||||
/* UART */
|
||||
#define OMAP34XX_UART1 (OMAP34XX_L4_IO_BASE + 0x6a000)
|
||||
#define OMAP34XX_UART2 (OMAP34XX_L4_IO_BASE + 0x6c000)
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 929461c..9d03b24 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -148,6 +148,10 @@ int misc_init_r(void)
|
||||
{
|
||||
struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE;
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
+ struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE;
|
||||
+
|
||||
+ /* Enable i2c2 pullup resisters */
|
||||
+ writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1);
|
||||
|
||||
switch (get_board_revision()) {
|
||||
case REVISION_AXBX:
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-143
@@ -1,143 +0,0 @@
|
||||
From a1a4ba7a5fce36522a994cb06d6d76931964578c Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Wed, 10 Feb 2010 15:23:19 -0800
|
||||
Subject: [PATCH 04/51] OMAP3: Set VAUX2 to 1.8V for EHCI PHY on Beagle Rev C4 boards
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 5 +++++
|
||||
drivers/power/twl4030.c | 45 +++++++++++++++++++++++++--------------------
|
||||
include/twl4030.h | 15 +++++++++++++++
|
||||
3 files changed, 45 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index ba16dd7..b4ea7e6 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -120,6 +120,11 @@ int misc_init_r(void)
|
||||
case REVISION_C4:
|
||||
printf("C4\n");
|
||||
MUX_BEAGLE_C();
|
||||
+ /* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
break;
|
||||
case REVISION_D:
|
||||
printf("D\n");
|
||||
diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c
|
||||
index eb066cb..f354834 100644
|
||||
--- a/drivers/power/twl4030.c
|
||||
+++ b/drivers/power/twl4030.c
|
||||
@@ -59,57 +59,62 @@ void twl4030_power_reset_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
-
|
||||
-/*
|
||||
- * Power Init
|
||||
- */
|
||||
-#define DEV_GRP_P1 0x20
|
||||
-#define VAUX3_VSEL_28 0x03
|
||||
-#define DEV_GRP_ALL 0xE0
|
||||
-#define VPLL2_VSEL_18 0x05
|
||||
-#define VDAC_VSEL_18 0x03
|
||||
-
|
||||
void twl4030_power_init(void)
|
||||
{
|
||||
unsigned char byte;
|
||||
|
||||
/* set VAUX3 to 2.8V */
|
||||
- byte = DEV_GRP_P1;
|
||||
+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VAUX3_DEV_GRP);
|
||||
- byte = VAUX3_VSEL_28;
|
||||
+ byte = TWL4030_PM_RECEIVER_VAUX3_VSEL_28;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VAUX3_DEDICATED);
|
||||
|
||||
/* set VPLL2 to 1.8V */
|
||||
- byte = DEV_GRP_ALL;
|
||||
+ byte = TWL4030_PM_RECEIVER_DEV_GRP_ALL;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VPLL2_DEV_GRP);
|
||||
- byte = VPLL2_VSEL_18;
|
||||
+ byte = TWL4030_PM_RECEIVER_VPLL2_VSEL_18;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VPLL2_DEDICATED);
|
||||
|
||||
/* set VDAC to 1.8V */
|
||||
- byte = DEV_GRP_P1;
|
||||
+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VDAC_DEV_GRP);
|
||||
- byte = VDAC_VSEL_18;
|
||||
+ byte = TWL4030_PM_RECEIVER_VDAC_VSEL_18;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VDAC_DEDICATED);
|
||||
}
|
||||
|
||||
-#define VMMC1_VSEL_30 0x02
|
||||
-
|
||||
void twl4030_power_mmc_init(void)
|
||||
{
|
||||
unsigned char byte;
|
||||
|
||||
- byte = DEV_GRP_P1;
|
||||
+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VMMC1_DEV_GRP);
|
||||
|
||||
/* 3 Volts */
|
||||
- byte = VMMC1_VSEL_30;
|
||||
+ byte = TWL4030_PM_RECEIVER_VMMC1_VSEL_30;
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
|
||||
TWL4030_PM_RECEIVER_VMMC1_DEDICATED);
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * Generic function to select Device Group and Voltage
|
||||
+ */
|
||||
+void twl4030_pmrecv_vsel_cfg(u8 vsel_reg, u8 vsel_val,
|
||||
+ u8 dev_grp, u8 dev_grp_sel)
|
||||
+{
|
||||
+ /* Select the Device Group */
|
||||
+ twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, dev_grp_sel,
|
||||
+ dev_grp);
|
||||
+
|
||||
+ /* Select the Voltage */
|
||||
+ twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, vsel_val,
|
||||
+ vsel_reg);
|
||||
+}
|
||||
+
|
||||
+
|
||||
diff --git a/include/twl4030.h b/include/twl4030.h
|
||||
index 2b2f5ae..cc99403 100644
|
||||
--- a/include/twl4030.h
|
||||
+++ b/include/twl4030.h
|
||||
@@ -471,6 +471,21 @@
|
||||
#define TWL4030_USB_PHY_CLK_CTRL_STS 0xFF
|
||||
|
||||
/*
|
||||
+ * Voltage Selection in PM Receiver Module
|
||||
+ */
|
||||
+#define TWL4030_PM_RECEIVER_VAUX2_VSEL_18 0x05
|
||||
+#define TWL4030_PM_RECEIVER_VAUX3_VSEL_28 0x03
|
||||
+#define TWL4030_PM_RECEIVER_VPLL2_VSEL_18 0x05
|
||||
+#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03
|
||||
+#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02
|
||||
+
|
||||
+/*
|
||||
+ * Device Selection in PM Receiver Module
|
||||
+ */
|
||||
+#define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20
|
||||
+#define TWL4030_PM_RECEIVER_DEV_GRP_ALL 0xE0
|
||||
+
|
||||
+/*
|
||||
* Convience functions to read and write from TWL4030
|
||||
*
|
||||
* chip_no is the i2c address, it must be one of the chip addresses
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
From d2d1669e4e2d4eeb996305278c6e4df0b1e04a8d Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 3 Nov 2010 14:48:31 +0100
|
||||
Subject: [PATCH 05/16] ARMV7: OMAP3: BeagleBoard: add xM rev B to ID table
|
||||
|
||||
Patch was updated by Jason Kridner <jkridner@beagleboard.org>:
|
||||
* Use tabs to match style of other board revisions
|
||||
* Only include board revisions that exist
|
||||
* Default to the same configuration as the latest revision, but
|
||||
without setting 'beaglerev'
|
||||
---
|
||||
v2 Changes
|
||||
* Updated with feedback from http://patchwork.ozlabs.org/patch/71995/
|
||||
* Removed setting of mpurate based on board revision
|
||||
* Set mpurate to auto in default environment variables
|
||||
|
||||
Cc: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
board/ti/beagle/beagle.c | 22 +++++++++++++++++-----
|
||||
board/ti/beagle/beagle.h | 3 ++-
|
||||
include/configs/omap3_beagle.h | 2 +-
|
||||
3 files changed, 20 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 9d03b24..87a952e 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -157,18 +157,15 @@ int misc_init_r(void)
|
||||
case REVISION_AXBX:
|
||||
printf("Beagle Rev Ax/Bx\n");
|
||||
setenv("beaglerev", "AxBx");
|
||||
- setenv("mpurate", "600");
|
||||
break;
|
||||
case REVISION_CX:
|
||||
printf("Beagle Rev C1/C2/C3\n");
|
||||
setenv("beaglerev", "Cx");
|
||||
- setenv("mpurate", "600");
|
||||
MUX_BEAGLE_C();
|
||||
break;
|
||||
case REVISION_C4:
|
||||
printf("Beagle Rev C4\n");
|
||||
setenv("beaglerev", "C4");
|
||||
- setenv("mpurate", "720");
|
||||
MUX_BEAGLE_C();
|
||||
/* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
@@ -176,10 +173,19 @@ int misc_init_r(void)
|
||||
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
break;
|
||||
- case REVISION_XM:
|
||||
+ case REVISION_XM_A:
|
||||
printf("Beagle xM Rev A\n");
|
||||
setenv("beaglerev", "xMA");
|
||||
- setenv("mpurate", "1000");
|
||||
+ MUX_BEAGLE_XM();
|
||||
+ /* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
+ break;
|
||||
+ case REVISION_XM_B:
|
||||
+ printf("Beagle xM Rev B\n");
|
||||
+ setenv("beaglerev", "xMB");
|
||||
MUX_BEAGLE_XM();
|
||||
/* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
@@ -189,6 +195,12 @@ int misc_init_r(void)
|
||||
break;
|
||||
default:
|
||||
printf("Beagle unknown 0x%02x\n", get_board_revision());
|
||||
+ MUX_BEAGLE_XM();
|
||||
+ /* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
}
|
||||
|
||||
switch (get_expansion_id()) {
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index b22b653..b0e26e5 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -37,7 +37,8 @@ const omap3_sysinfo sysinfo = {
|
||||
#define REVISION_AXBX 0x7
|
||||
#define REVISION_CX 0x6
|
||||
#define REVISION_C4 0x5
|
||||
-#define REVISION_XM 0x0
|
||||
+#define REVISION_XM_A 0x0
|
||||
+#define REVISION_XM_B 0x1
|
||||
|
||||
/*
|
||||
* IEN - Input Enable
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index c85537c..51e14d0 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -190,7 +190,7 @@
|
||||
"loadaddr=0x82000000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
- "mpurate=500\0" \
|
||||
+ "mpurate=auto\0" \
|
||||
"vram=12M\0" \
|
||||
"dvimode=1024x768MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
From 13ed8be9848adff30bcfdcbe16bce3d2c6bb02f1 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Wed, 3 Feb 2010 12:26:30 -0800
|
||||
Subject: [PATCH 05/51] OMAP3: add entry for rev 3.1.2, check and display max cpu clock for rev > 3.0
|
||||
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/sys_info.c | 24 ++++++++++++++++++++++--
|
||||
include/asm-arm/arch-omap3/cpu.h | 8 +++++++-
|
||||
include/asm-arm/arch-omap3/omap3.h | 3 ++-
|
||||
3 files changed, 31 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/sys_info.c b/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
index 08fb32e..e227f67 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
@@ -39,7 +39,10 @@ static char *rev_s[CPU_3XX_MAX_REV] = {
|
||||
"2.0",
|
||||
"2.1",
|
||||
"3.0",
|
||||
- "3.1"};
|
||||
+ "3.1",
|
||||
+ "UNKNOWN",
|
||||
+ "UNKNOWN",
|
||||
+ "3.1.2"};
|
||||
|
||||
/*****************************************************************
|
||||
* dieid_num_r(void) - read and set die ID
|
||||
@@ -104,6 +107,16 @@ u32 get_cpu_rev(void)
|
||||
}
|
||||
}
|
||||
|
||||
+/*****************************************************************
|
||||
+ * get_sku_id(void) - read sku_id to get info on max clock rate
|
||||
+ *****************************************************************/
|
||||
+u32 get_sku_id(void)
|
||||
+{
|
||||
+ struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE;
|
||||
+ return (readl(&id_base->sku_id) & SKUID_CLK_MASK);
|
||||
+}
|
||||
+
|
||||
+
|
||||
/****************************************************
|
||||
* is_mem_sdr() - return 1 if mem type in use is SDR
|
||||
****************************************************/
|
||||
@@ -291,9 +304,16 @@ int print_cpuinfo (void)
|
||||
sec_s = "?";
|
||||
}
|
||||
|
||||
- printf("OMAP%s-%s ES%s, CPU-OPP2 L3-165MHz\n",
|
||||
+ printf("OMAP%s-%s ES%s, CPU-OPP2, L3-165MHz, ",
|
||||
cpu_s, sec_s, rev_s[get_cpu_rev()]);
|
||||
|
||||
+ printf("Max clock-");
|
||||
+ if ((get_cpu_rev() >= CPU_3XX_ES31) && (get_sku_id() == SKUID_CLK_720MHZ))
|
||||
+ printf("720Mhz\n");
|
||||
+ else printf("600Mhz\n");
|
||||
+
|
||||
+
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_DISPLAY_CPUINFO */
|
||||
diff --git a/include/asm-arm/arch-omap3/cpu.h b/include/asm-arm/arch-omap3/cpu.h
|
||||
index aa8de32..f769571 100644
|
||||
--- a/include/asm-arm/arch-omap3/cpu.h
|
||||
+++ b/include/asm-arm/arch-omap3/cpu.h
|
||||
@@ -72,7 +72,8 @@ struct ctrl_id {
|
||||
u8 res1[0x4];
|
||||
u32 idcode; /* 0x04 */
|
||||
u32 prod_id; /* 0x08 */
|
||||
- u8 res2[0x0C];
|
||||
+ u32 sku_id; /* 0x0c */
|
||||
+ u8 res2[0x08];
|
||||
u32 die_id_0; /* 0x18 */
|
||||
u32 die_id_1; /* 0x1C */
|
||||
u32 die_id_2; /* 0x20 */
|
||||
@@ -89,6 +90,11 @@ struct ctrl_id {
|
||||
#define HS_DEVICE 0x2
|
||||
#define GP_DEVICE 0x3
|
||||
|
||||
+/* device speed */
|
||||
+#define SKUID_CLK_MASK 0xf
|
||||
+#define SKUID_CLK_600MHZ 0x0
|
||||
+#define SKUID_CLK_720MHZ 0x8
|
||||
+
|
||||
#define GPMC_BASE (OMAP34XX_GPMC_BASE)
|
||||
#define GPMC_CONFIG_CS0 0x60
|
||||
#define GPMC_CONFIG_CS0_BASE (GPMC_BASE + GPMC_CONFIG_CS0)
|
||||
diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h
|
||||
index 12815f6..1349b8b 100644
|
||||
--- a/include/asm-arm/arch-omap3/omap3.h
|
||||
+++ b/include/asm-arm/arch-omap3/omap3.h
|
||||
@@ -176,7 +176,8 @@ struct gpio {
|
||||
#define CPU_3XX_ES21 2
|
||||
#define CPU_3XX_ES30 3
|
||||
#define CPU_3XX_ES31 4
|
||||
-#define CPU_3XX_MAX_REV (CPU_3XX_ES31 + 1)
|
||||
+#define CPU_3XX_ES312 7
|
||||
+#define CPU_3XX_MAX_REV 8
|
||||
|
||||
#define CPU_3XX_ID_SHIFT 28
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
From 40cdd86d6040714f79e81bb813596748490aa948 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 3 Nov 2010 14:39:15 +0100
|
||||
Subject: [PATCH 06/16] OMAP3: BeagleBoard: add more expansionboard IDs
|
||||
|
||||
Information on configurations pulled from
|
||||
http://www.elinux.org/BeagleBoardPinMux#Vendor_and_Device_IDs
|
||||
|
||||
Boards added:
|
||||
* Added BeagleBoardToys WiFi, VGA and LCD boards
|
||||
* Added KBADC Beagle FPGA board
|
||||
* Added Brainmux LCDog and LCDog Touch
|
||||
* Added Liquidware BeagleTouch
|
||||
---
|
||||
v2 updates
|
||||
* Removed unused definitions
|
||||
* Added BeagleBoardToys board configurations
|
||||
* Made definition names consistent as VENDOR_BOARD
|
||||
---
|
||||
board/ti/beagle/beagle.c | 30 +++++++++++++++++++++++++++++-
|
||||
board/ti/beagle/beagle.h | 12 ++++++++++++
|
||||
2 files changed, 41 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 87a952e..97e9e12 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -48,7 +48,12 @@
|
||||
#define TINCANTOOLS_TRAINER 0x04000100
|
||||
#define TINCANTOOLS_SHOWDOG 0x03000100
|
||||
#define KBADC_BEAGLEFPGA 0x01000600
|
||||
-
|
||||
+#define LW_BEAGLETOUCH 0x01000700
|
||||
+#define BRAINMUX_LCDOG 0x01000800
|
||||
+#define BRAINMUX_LCDOGTOUCH 0x02000800
|
||||
+#define BBTOYS_WIFI 0x01000B00
|
||||
+#define BBTOYS_VGA 0x02000B00
|
||||
+#define BBTOYS_LCD 0x03000B00
|
||||
#define BEAGLE_NO_EEPROM 0xffffffff
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
@@ -239,6 +244,29 @@ int misc_init_r(void)
|
||||
MUX_KBADC_BEAGLEFPGA();
|
||||
setenv("buddy", "beaglefpga");
|
||||
break;
|
||||
+ case LW_BEAGLETOUCH:
|
||||
+ printf("Recognized Liquidware BeagleTouch board\n");
|
||||
+ setenv("buddy", "beagletouch");
|
||||
+ break;
|
||||
+ case BRAINMUX_LCDOG:
|
||||
+ printf("Recognized Brainmux LCDog board\n");
|
||||
+ setenv("buddy", "lcdog");
|
||||
+ break;
|
||||
+ case BRAINMUX_LCDOGTOUCH:
|
||||
+ printf("Recognized Brainmux LCDog Touch board\n");
|
||||
+ setenv("buddy", "lcdogtouch");
|
||||
+ break;
|
||||
+ case BBTOYS_WIFI:
|
||||
+ printf("Recognized BeagleBoardToys WiFi board\n");
|
||||
+ MUX_BBTOYS_WIFI()
|
||||
+ setenv("buddy", "bbtoys-wifi");
|
||||
+ break;;
|
||||
+ case BBTOYS_VGA:
|
||||
+ printf("Recognized BeagleBoardToys VGA board\n");
|
||||
+ break;;
|
||||
+ case BBTOYS_LCD:
|
||||
+ printf("Recognized BeagleBoardToys LCD board\n");
|
||||
+ break;;
|
||||
case BEAGLE_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
setenv("buddy", "none");
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index b0e26e5..0f21790 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -458,4 +458,16 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\
|
||||
MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/
|
||||
|
||||
+#define MUX_BBTOYS_WIFI() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT4), (IDIS | PTU | EN | M4)) /*GPIO_136 FM_EN/BT_WU*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137 WLAN_IRQ*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT6), (IDIS | PTU | EN | M4)) /*GPIO_138 BT_EN*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/
|
||||
+
|
||||
#endif
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
From b03bad6826a2f3a0a03f6cdd5682e0a628fff851 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Wed, 3 Feb 2010 14:39:14 -0800
|
||||
Subject: [PATCH 06/51] OMAP3: add mpurate boot arg for overo and beagle
|
||||
|
||||
allows one to set the omap clock rate via "setenv mpurate 720" for example
|
||||
---
|
||||
include/configs/omap3_beagle.h | 3 +++
|
||||
include/configs/omap3_overo.h | 3 +++
|
||||
2 files changed, 6 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index d522c77..35ae8af 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -187,6 +187,7 @@
|
||||
"loadaddr=0x82000000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
+ "mpurate=500\0" \
|
||||
"vram=12M\0" \
|
||||
"dvimode=1024x768MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
@@ -195,6 +196,7 @@
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
"nandrootfstype=jffs2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapfb.debug=y " \
|
||||
@@ -202,6 +204,7 @@
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapfb.debug=y " \
|
||||
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
|
||||
index a43500b..113c6df 100644
|
||||
--- a/include/configs/omap3_overo.h
|
||||
+++ b/include/configs/omap3_overo.h
|
||||
@@ -151,6 +151,7 @@
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"loadaddr=0x82000000\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
+ "mpurate=500\0" \
|
||||
"vram=12M\0" \
|
||||
"dvimode=1024x768MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
@@ -159,6 +160,7 @@
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
"nandrootfstype=jffs2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapfb.debug=y " \
|
||||
@@ -166,6 +168,7 @@
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapfb.debug=y " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+239
-157
@@ -1,7 +1,7 @@
|
||||
From afa9025604773b90831cb93a5c80db8d2b8eed4b Mon Sep 17 00:00:00 2001
|
||||
From 8a249fc1c57ab01a78996e33e74a71757a9448b1 Mon Sep 17 00:00:00 2001
|
||||
From: Syed Mohammed Khasim <khasim@ti.com>
|
||||
Date: Tue, 12 Jan 2010 23:57:28 +0530
|
||||
Subject: [PATCH 25/51] Add DSS driver for OMAP3
|
||||
Subject: [PATCH 07/16] OMAP3: Add DSS driver for OMAP3
|
||||
|
||||
Supports dynamic panel configuration
|
||||
Supports dynamic tv standard selection
|
||||
@@ -11,169 +11,27 @@ Incorporated DSS register access using structures.
|
||||
|
||||
Previous discussions are here
|
||||
http://www.mail-archive.com/u-boot@lists.denx.de/msg27150.html
|
||||
---
|
||||
v2 updates:
|
||||
* Enable panel output for BeagleBoard
|
||||
* BeagleBoard: Update DVI-D orange screen frequencies for xM
|
||||
|
||||
Signed-off-by: Syed Mohammed Khasim <khasim@ti.com>
|
||||
---
|
||||
drivers/video/Makefile | 1 +
|
||||
drivers/video/omap3_dss.c | 130 ++++++++++++++++++++++++++++
|
||||
include/asm-arm/arch-omap3/dss.h | 173 ++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 304 insertions(+), 0 deletions(-)
|
||||
arch/arm/include/asm/arch-omap3/dss.h | 173 +++++++++++++++++++++++++++++++++
|
||||
board/ti/beagle/beagle.c | 22 ++++
|
||||
board/ti/beagle/beagle.h | 26 +++++
|
||||
drivers/video/Makefile | 2 +
|
||||
drivers/video/omap3_dss.c | 130 +++++++++++++++++++++++++
|
||||
5 files changed, 353 insertions(+), 0 deletions(-)
|
||||
create mode 100644 arch/arm/include/asm/arch-omap3/dss.h
|
||||
create mode 100644 drivers/video/omap3_dss.c
|
||||
create mode 100644 include/asm-arm/arch-omap3/dss.h
|
||||
|
||||
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
|
||||
index a5e339a..44d7ae8 100644
|
||||
--- a/drivers/video/Makefile
|
||||
+++ b/drivers/video/Makefile
|
||||
@@ -38,6 +38,7 @@ COBJS-$(CONFIG_SED156X) += sed156x.o
|
||||
COBJS-$(CONFIG_VIDEO_SM501) += sm501.o
|
||||
COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o
|
||||
COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o
|
||||
+COBJS-$(CONFIG_VIDEO_OMAP3) += omap3_dss.o
|
||||
COBJS-y += videomodes.o
|
||||
|
||||
COBJS := $(COBJS-y)
|
||||
diff --git a/drivers/video/omap3_dss.c b/drivers/video/omap3_dss.c
|
||||
new file mode 100644
|
||||
index 0000000..69c705a
|
||||
--- /dev/null
|
||||
+++ b/drivers/video/omap3_dss.c
|
||||
@@ -0,0 +1,130 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2010
|
||||
+ * Texas Instruments, <www.ti.com>
|
||||
+ * Syed Mohammed Khasim <khasim@ti.com>
|
||||
+ *
|
||||
+ * Referred to Linux DSS driver files for OMAP3
|
||||
+ *
|
||||
+ * See file CREDITS for list of people who contributed to this
|
||||
+ * project.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation's version 2 of
|
||||
+ * the License.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
+ * MA 02111-1307 USA
|
||||
+ */
|
||||
+
|
||||
+#include <common.h>
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/arch/dss.h>
|
||||
+
|
||||
+/*
|
||||
+ * Configure VENC for a given Mode (NTSC / PAL)
|
||||
+ */
|
||||
+void omap3_dss_venc_config(const struct venc_regs *venc_cfg,
|
||||
+ u32 height, u32 width)
|
||||
+{
|
||||
+ struct venc_regs *venc = (struct venc_regs *) OMAP3_VENC_BASE;
|
||||
+ struct dss_regs *dss = (struct dss_regs *) OMAP3_DSS_BASE;
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+
|
||||
+ writel(venc_cfg->status, &venc->status);
|
||||
+ writel(venc_cfg->f_control, &venc->f_control);
|
||||
+ writel(venc_cfg->vidout_ctrl, &venc->vidout_ctrl);
|
||||
+ writel(venc_cfg->sync_ctrl, &venc->sync_ctrl);
|
||||
+ writel(venc_cfg->llen, &venc->llen);
|
||||
+ writel(venc_cfg->flens, &venc->flens);
|
||||
+ writel(venc_cfg->hfltr_ctrl, &venc->hfltr_ctrl);
|
||||
+ writel(venc_cfg->cc_carr_wss_carr, &venc->cc_carr_wss_carr);
|
||||
+ writel(venc_cfg->c_phase, &venc->c_phase);
|
||||
+ writel(venc_cfg->gain_u, &venc->gain_u);
|
||||
+ writel(venc_cfg->gain_v, &venc->gain_v);
|
||||
+ writel(venc_cfg->gain_y, &venc->gain_y);
|
||||
+ writel(venc_cfg->black_level, &venc->black_level);
|
||||
+ writel(venc_cfg->blank_level, &venc->blank_level);
|
||||
+ writel(venc_cfg->x_color, &venc->x_color);
|
||||
+ writel(venc_cfg->m_control, &venc->m_control);
|
||||
+ writel(venc_cfg->bstamp_wss_data, &venc->bstamp_wss_data);
|
||||
+ writel(venc_cfg->s_carr, &venc->s_carr);
|
||||
+ writel(venc_cfg->line21, &venc->line21);
|
||||
+ writel(venc_cfg->ln_sel, &venc->ln_sel);
|
||||
+ writel(venc_cfg->l21__wc_ctl, &venc->l21__wc_ctl);
|
||||
+ writel(venc_cfg->htrigger_vtrigger, &venc->htrigger_vtrigger);
|
||||
+ writel(venc_cfg->savid__eavid, &venc->savid__eavid);
|
||||
+ writel(venc_cfg->flen__fal, &venc->flen__fal);
|
||||
+ writel(venc_cfg->lal__phase_reset, &venc->lal__phase_reset);
|
||||
+ writel(venc_cfg->hs_int_start_stop_x,
|
||||
+ &venc->hs_int_start_stop_x);
|
||||
+ writel(venc_cfg->hs_ext_start_stop_x,
|
||||
+ &venc->hs_ext_start_stop_x);
|
||||
+ writel(venc_cfg->vs_int_start_x, &venc->vs_int_start_x);
|
||||
+ writel(venc_cfg->vs_int_stop_x__vs_int_start_y,
|
||||
+ &venc->vs_int_stop_x__vs_int_start_y);
|
||||
+ writel(venc_cfg->vs_int_stop_y__vs_ext_start_x,
|
||||
+ &venc->vs_int_stop_y__vs_ext_start_x);
|
||||
+ writel(venc_cfg->vs_ext_stop_x__vs_ext_start_y,
|
||||
+ &venc->vs_ext_stop_x__vs_ext_start_y);
|
||||
+ writel(venc_cfg->vs_ext_stop_y, &venc->vs_ext_stop_y);
|
||||
+ writel(venc_cfg->avid_start_stop_x, &venc->avid_start_stop_x);
|
||||
+ writel(venc_cfg->avid_start_stop_y, &venc->avid_start_stop_y);
|
||||
+ writel(venc_cfg->fid_int_start_x__fid_int_start_y,
|
||||
+ &venc->fid_int_start_x__fid_int_start_y);
|
||||
+ writel(venc_cfg->fid_int_offset_y__fid_ext_start_x,
|
||||
+ &venc->fid_int_offset_y__fid_ext_start_x);
|
||||
+ writel(venc_cfg->fid_ext_start_y__fid_ext_offset_y,
|
||||
+ &venc->fid_ext_start_y__fid_ext_offset_y);
|
||||
+ writel(venc_cfg->tvdetgp_int_start_stop_x,
|
||||
+ &venc->tvdetgp_int_start_stop_x);
|
||||
+ writel(venc_cfg->tvdetgp_int_start_stop_y,
|
||||
+ &venc->tvdetgp_int_start_stop_y);
|
||||
+ writel(venc_cfg->gen_ctrl, &venc->gen_ctrl);
|
||||
+ writel(venc_cfg->output_control, &venc->output_control);
|
||||
+ writel(venc_cfg->dac_b__dac_c, &venc->dac_b__dac_c);
|
||||
+
|
||||
+ /* Configure DSS for VENC Settings */
|
||||
+ writel(VENC_DSS_CONFIG, &dss->control);
|
||||
+
|
||||
+ /* Configure height and width for Digital out */
|
||||
+ writel(((height << DIG_LPP_SHIFT) | width), &dispc->size_dig);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Configure Panel Specific Parameters
|
||||
+ */
|
||||
+void omap3_dss_panel_config(const struct panel_config *panel_cfg)
|
||||
+{
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+
|
||||
+ writel(panel_cfg->timing_h, &dispc->timing_h);
|
||||
+ writel(panel_cfg->timing_v, &dispc->timing_v);
|
||||
+ writel(panel_cfg->pol_freq, &dispc->pol_freq);
|
||||
+ writel(panel_cfg->divisor, &dispc->divisor);
|
||||
+ writel(panel_cfg->lcd_size, &dispc->size_lcd);
|
||||
+ writel((panel_cfg->load_mode << FRAME_MODE_SHIFT), &dispc->config);
|
||||
+ writel(((panel_cfg->panel_type << TFTSTN_SHIFT) |
|
||||
+ (panel_cfg->data_lines << DATALINES_SHIFT)), &dispc->control);
|
||||
+ writel(panel_cfg->panel_color, &dispc->default_color0);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Enable LCD and DIGITAL OUT in DSS
|
||||
+ */
|
||||
+void omap3_dss_enable(void)
|
||||
+{
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+ u32 l = 0;
|
||||
+
|
||||
+ l = readl(&dispc->control);
|
||||
+ l |= DISPC_ENABLE;
|
||||
+ writel(l, &dispc->control);
|
||||
+}
|
||||
diff --git a/include/asm-arm/arch-omap3/dss.h b/include/asm-arm/arch-omap3/dss.h
|
||||
diff --git a/arch/arm/include/asm/arch-omap3/dss.h b/arch/arm/include/asm/arch-omap3/dss.h
|
||||
new file mode 100644
|
||||
index 0000000..e5e3b0d
|
||||
--- /dev/null
|
||||
+++ b/include/asm-arm/arch-omap3/dss.h
|
||||
+++ b/arch/arm/include/asm/arch-omap3/dss.h
|
||||
@@ -0,0 +1,173 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2010
|
||||
@@ -348,6 +206,230 @@ index 0000000..e5e3b0d
|
||||
+void omap3_dss_enable(void);
|
||||
+
|
||||
+#endif /* DSS_H */
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 97e9e12..56e7afc 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -146,6 +146,27 @@ unsigned int get_expansion_id(void)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Configure DSS to display background color on DVID
|
||||
+ * Configure VENC to display color bar on S-Video
|
||||
+ */
|
||||
+void display_init(void)
|
||||
+{
|
||||
+ omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH);
|
||||
+ switch (get_board_revision()) {
|
||||
+ case REVISION_AXBX:
|
||||
+ case REVISION_CX:
|
||||
+ case REVISION_C4:
|
||||
+ omap3_dss_panel_config(&dvid_cfg);
|
||||
+ break;
|
||||
+ case REVISION_XM_A:
|
||||
+ case REVISION_XM_B:
|
||||
+ default:
|
||||
+ omap3_dss_panel_config(&dvid_cfg_xm);
|
||||
+ break;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Configure board specific parts
|
||||
*/
|
||||
@@ -282,6 +303,7 @@ int misc_init_r(void)
|
||||
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
+ display_init();
|
||||
|
||||
/* Set GPIO states before they are made outputs */
|
||||
writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index 0f21790..48228dc 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -470,4 +470,30 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MMC2_DAT6), (IDIS | PTU | EN | M4)) /*GPIO_138 BT_EN*/\
|
||||
MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/
|
||||
|
||||
+/*
|
||||
+ * Configure Timings for DVI D
|
||||
+ */
|
||||
+static const struct panel_config dvid_cfg = {
|
||||
+ .timing_h = 0x0ff03f31, /* Horizantal timing */
|
||||
+ .timing_v = 0x01400504, /* Vertical timing */
|
||||
+ .pol_freq = 0x00007028, /* Pol Freq */
|
||||
+ .divisor = 0x00010006, /* 72Mhz Pixel Clock */
|
||||
+ .lcd_size = 0x02ff03ff, /* 1024x768 */
|
||||
+ .panel_type = 0x01, /* TFT */
|
||||
+ .data_lines = 0x03, /* 24 Bit RGB */
|
||||
+ .load_mode = 0x02, /* Frame Mode */
|
||||
+ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */
|
||||
+};
|
||||
+
|
||||
+static const struct panel_config dvid_cfg_xm = {
|
||||
+ .timing_h = 0x1a4024c9, /* Horizantal timing */
|
||||
+ .timing_v = 0x02c00509, /* Vertical timing */
|
||||
+ .pol_freq = 0x00007028, /* Pol Freq */
|
||||
+ .divisor = 0x00010001, /* 96MHz Pixel Clock */
|
||||
+ .lcd_size = 0x02ff03ff, /* 1024x768 */
|
||||
+ .panel_type = 0x01, /* TFT */
|
||||
+ .data_lines = 0x03, /* 24 Bit RGB */
|
||||
+ .load_mode = 0x02, /* Frame Mode */
|
||||
+ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */
|
||||
+};
|
||||
#endif
|
||||
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
|
||||
index 2c53a6f..6baa7ca 100644
|
||||
--- a/drivers/video/Makefile
|
||||
+++ b/drivers/video/Makefile
|
||||
@@ -41,6 +41,8 @@ COBJS-$(CONFIG_SED156X) += sed156x.o
|
||||
COBJS-$(CONFIG_VIDEO_SM501) += sm501.o
|
||||
COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o videomodes.o
|
||||
COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o
|
||||
+COBJS-$(CONFIG_VIDEO_OMAP3) += omap3_dss.o
|
||||
+COBJS-y += videomodes.o
|
||||
|
||||
COBJS := $(COBJS-y)
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
diff --git a/drivers/video/omap3_dss.c b/drivers/video/omap3_dss.c
|
||||
new file mode 100644
|
||||
index 0000000..69c705a
|
||||
--- /dev/null
|
||||
+++ b/drivers/video/omap3_dss.c
|
||||
@@ -0,0 +1,130 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2010
|
||||
+ * Texas Instruments, <www.ti.com>
|
||||
+ * Syed Mohammed Khasim <khasim@ti.com>
|
||||
+ *
|
||||
+ * Referred to Linux DSS driver files for OMAP3
|
||||
+ *
|
||||
+ * See file CREDITS for list of people who contributed to this
|
||||
+ * project.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation's version 2 of
|
||||
+ * the License.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
+ * MA 02111-1307 USA
|
||||
+ */
|
||||
+
|
||||
+#include <common.h>
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/arch/dss.h>
|
||||
+
|
||||
+/*
|
||||
+ * Configure VENC for a given Mode (NTSC / PAL)
|
||||
+ */
|
||||
+void omap3_dss_venc_config(const struct venc_regs *venc_cfg,
|
||||
+ u32 height, u32 width)
|
||||
+{
|
||||
+ struct venc_regs *venc = (struct venc_regs *) OMAP3_VENC_BASE;
|
||||
+ struct dss_regs *dss = (struct dss_regs *) OMAP3_DSS_BASE;
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+
|
||||
+ writel(venc_cfg->status, &venc->status);
|
||||
+ writel(venc_cfg->f_control, &venc->f_control);
|
||||
+ writel(venc_cfg->vidout_ctrl, &venc->vidout_ctrl);
|
||||
+ writel(venc_cfg->sync_ctrl, &venc->sync_ctrl);
|
||||
+ writel(venc_cfg->llen, &venc->llen);
|
||||
+ writel(venc_cfg->flens, &venc->flens);
|
||||
+ writel(venc_cfg->hfltr_ctrl, &venc->hfltr_ctrl);
|
||||
+ writel(venc_cfg->cc_carr_wss_carr, &venc->cc_carr_wss_carr);
|
||||
+ writel(venc_cfg->c_phase, &venc->c_phase);
|
||||
+ writel(venc_cfg->gain_u, &venc->gain_u);
|
||||
+ writel(venc_cfg->gain_v, &venc->gain_v);
|
||||
+ writel(venc_cfg->gain_y, &venc->gain_y);
|
||||
+ writel(venc_cfg->black_level, &venc->black_level);
|
||||
+ writel(venc_cfg->blank_level, &venc->blank_level);
|
||||
+ writel(venc_cfg->x_color, &venc->x_color);
|
||||
+ writel(venc_cfg->m_control, &venc->m_control);
|
||||
+ writel(venc_cfg->bstamp_wss_data, &venc->bstamp_wss_data);
|
||||
+ writel(venc_cfg->s_carr, &venc->s_carr);
|
||||
+ writel(venc_cfg->line21, &venc->line21);
|
||||
+ writel(venc_cfg->ln_sel, &venc->ln_sel);
|
||||
+ writel(venc_cfg->l21__wc_ctl, &venc->l21__wc_ctl);
|
||||
+ writel(venc_cfg->htrigger_vtrigger, &venc->htrigger_vtrigger);
|
||||
+ writel(venc_cfg->savid__eavid, &venc->savid__eavid);
|
||||
+ writel(venc_cfg->flen__fal, &venc->flen__fal);
|
||||
+ writel(venc_cfg->lal__phase_reset, &venc->lal__phase_reset);
|
||||
+ writel(venc_cfg->hs_int_start_stop_x,
|
||||
+ &venc->hs_int_start_stop_x);
|
||||
+ writel(venc_cfg->hs_ext_start_stop_x,
|
||||
+ &venc->hs_ext_start_stop_x);
|
||||
+ writel(venc_cfg->vs_int_start_x, &venc->vs_int_start_x);
|
||||
+ writel(venc_cfg->vs_int_stop_x__vs_int_start_y,
|
||||
+ &venc->vs_int_stop_x__vs_int_start_y);
|
||||
+ writel(venc_cfg->vs_int_stop_y__vs_ext_start_x,
|
||||
+ &venc->vs_int_stop_y__vs_ext_start_x);
|
||||
+ writel(venc_cfg->vs_ext_stop_x__vs_ext_start_y,
|
||||
+ &venc->vs_ext_stop_x__vs_ext_start_y);
|
||||
+ writel(venc_cfg->vs_ext_stop_y, &venc->vs_ext_stop_y);
|
||||
+ writel(venc_cfg->avid_start_stop_x, &venc->avid_start_stop_x);
|
||||
+ writel(venc_cfg->avid_start_stop_y, &venc->avid_start_stop_y);
|
||||
+ writel(venc_cfg->fid_int_start_x__fid_int_start_y,
|
||||
+ &venc->fid_int_start_x__fid_int_start_y);
|
||||
+ writel(venc_cfg->fid_int_offset_y__fid_ext_start_x,
|
||||
+ &venc->fid_int_offset_y__fid_ext_start_x);
|
||||
+ writel(venc_cfg->fid_ext_start_y__fid_ext_offset_y,
|
||||
+ &venc->fid_ext_start_y__fid_ext_offset_y);
|
||||
+ writel(venc_cfg->tvdetgp_int_start_stop_x,
|
||||
+ &venc->tvdetgp_int_start_stop_x);
|
||||
+ writel(venc_cfg->tvdetgp_int_start_stop_y,
|
||||
+ &venc->tvdetgp_int_start_stop_y);
|
||||
+ writel(venc_cfg->gen_ctrl, &venc->gen_ctrl);
|
||||
+ writel(venc_cfg->output_control, &venc->output_control);
|
||||
+ writel(venc_cfg->dac_b__dac_c, &venc->dac_b__dac_c);
|
||||
+
|
||||
+ /* Configure DSS for VENC Settings */
|
||||
+ writel(VENC_DSS_CONFIG, &dss->control);
|
||||
+
|
||||
+ /* Configure height and width for Digital out */
|
||||
+ writel(((height << DIG_LPP_SHIFT) | width), &dispc->size_dig);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Configure Panel Specific Parameters
|
||||
+ */
|
||||
+void omap3_dss_panel_config(const struct panel_config *panel_cfg)
|
||||
+{
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+
|
||||
+ writel(panel_cfg->timing_h, &dispc->timing_h);
|
||||
+ writel(panel_cfg->timing_v, &dispc->timing_v);
|
||||
+ writel(panel_cfg->pol_freq, &dispc->pol_freq);
|
||||
+ writel(panel_cfg->divisor, &dispc->divisor);
|
||||
+ writel(panel_cfg->lcd_size, &dispc->size_lcd);
|
||||
+ writel((panel_cfg->load_mode << FRAME_MODE_SHIFT), &dispc->config);
|
||||
+ writel(((panel_cfg->panel_type << TFTSTN_SHIFT) |
|
||||
+ (panel_cfg->data_lines << DATALINES_SHIFT)), &dispc->control);
|
||||
+ writel(panel_cfg->panel_color, &dispc->default_color0);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Enable LCD and DIGITAL OUT in DSS
|
||||
+ */
|
||||
+void omap3_dss_enable(void)
|
||||
+{
|
||||
+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE;
|
||||
+ u32 l = 0;
|
||||
+
|
||||
+ l = readl(&dispc->control);
|
||||
+ l |= DISPC_ENABLE;
|
||||
+ writel(l, &dispc->control);
|
||||
+}
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-129
@@ -1,129 +0,0 @@
|
||||
From f1ad90ae5fd07257ea42aa771e16a7798cd440bb Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Fri, 12 Feb 2010 12:17:48 -0800
|
||||
Subject: [PATCH 07/51] OMAP3: detect expansion board type/version using eeprom contents
|
||||
|
||||
---
|
||||
board/overo/overo.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 files changed, 92 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.c b/board/overo/overo.c
|
||||
index 3df1a12..2838a1f 100644
|
||||
--- a/board/overo/overo.c
|
||||
+++ b/board/overo/overo.c
|
||||
@@ -39,6 +39,31 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include "overo.h"
|
||||
|
||||
+static struct {
|
||||
+ unsigned int device_vendor;
|
||||
+ unsigned char revision;
|
||||
+ unsigned char content;
|
||||
+ unsigned char data[6];
|
||||
+} expansion_config;
|
||||
+
|
||||
+#define TWL4030_I2C_BUS 0
|
||||
+
|
||||
+#define EXPANSION_EEPROM_I2C_BUS 2
|
||||
+#define EXPANSION_EEPROM_I2C_ADDRESS 0x50
|
||||
+
|
||||
+#define GUMSTIX_VENDORID 0x0200
|
||||
+
|
||||
+#define GUMSTIX_SUMMIT 0x01000200
|
||||
+#define GUMSTIX_TOBI 0x02000200
|
||||
+#define GUMSTIX_TOBI_DUO 0x03000200
|
||||
+#define GUMSTIX_PALO35 0x04000200
|
||||
+#define GUMSTIX_PALO43 0x05000200
|
||||
+#define GUMSTIX_CHESTNUT43 0x06000200
|
||||
+#define GUMSTIX_PINTO 0x07000200
|
||||
+
|
||||
+#define GUMSTIX_NO_EEPROM 0xfffffffe
|
||||
+#define GUMSTIX_UNKNOWN 0xffffffff
|
||||
+
|
||||
#if defined(CONFIG_CMD_NET)
|
||||
static void setup_net_chip(void);
|
||||
#endif
|
||||
@@ -130,6 +155,31 @@ int get_board_revision(void) {
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Routine: get_expansion_id
|
||||
+ * Description: This function checks for expansion board by checking I2C
|
||||
+ * bus 2 for the availability of an AT24C01B serial EEPROM.
|
||||
+ * returns the device_vendor field from the EEPROM
|
||||
+ */
|
||||
+unsigned int get_expansion_id(void)
|
||||
+{
|
||||
+ i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS);
|
||||
+
|
||||
+ /* return GUMSTIX_NO_EEPROM if eeprom doesn't respond */
|
||||
+ if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1)
|
||||
+ return GUMSTIX_NO_EEPROM;
|
||||
+
|
||||
+ /* read configuration data */
|
||||
+ i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
|
||||
+ sizeof(expansion_config));
|
||||
+
|
||||
+ if ( (expansion_config.device_vendor & 0xffff) != GUMSTIX_VENDORID )
|
||||
+ return GUMSTIX_UNKNOWN;
|
||||
+ else
|
||||
+ return expansion_config.device_vendor;
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Configure board specific parts
|
||||
*/
|
||||
@@ -156,6 +206,48 @@ int misc_init_r(void)
|
||||
printf(" unsupported\n");
|
||||
}
|
||||
|
||||
+ switch (get_expansion_id()) {
|
||||
+ case GUMSTIX_SUMMIT:
|
||||
+ printf("Recognized Summit expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ setenv("defaultdisplay", "dvi");
|
||||
+ break;
|
||||
+ case GUMSTIX_TOBI:
|
||||
+ printf("Recognized Tobi expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ setenv("defaultdisplay", "dvi");
|
||||
+ break;
|
||||
+ case GUMSTIX_TOBI_DUO:
|
||||
+ printf("Recognized Tobi Duo expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ break;
|
||||
+ case GUMSTIX_PALO35:
|
||||
+ printf("Recognized Palo 35 expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ setenv("defaultdisplay", "lcd35");
|
||||
+ break;
|
||||
+ case GUMSTIX_PALO43:
|
||||
+ printf("Recognized Palo 43 expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ setenv("defaultdisplay", "lcd43");
|
||||
+ break;
|
||||
+ case GUMSTIX_CHESTNUT43:
|
||||
+ printf("Recognized Chestnut 43 expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ setenv("defaultdisplay", "lcd43");
|
||||
+ break;
|
||||
+ case GUMSTIX_PINTO:
|
||||
+ printf("Recognized Pinto expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.data);
|
||||
+ break;
|
||||
+ case GUMSTIX_NO_EEPROM:
|
||||
+ printf("No EEPROM on expansion board\n");
|
||||
+ break;
|
||||
+ case GUMSTIX_UNKNOWN:
|
||||
+ printf("Unrecognized expansion board\n");
|
||||
+ }
|
||||
+
|
||||
+ i2c_set_bus_num(TWL4030_I2C_BUS);
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+17
-14
@@ -1,7 +1,7 @@
|
||||
From f5146ac9d3af9c9cd4f4bc940c343d3ef75ac6f0 Mon Sep 17 00:00:00 2001
|
||||
From 31110e039b1982590df08c66e53924f454e3e3f1 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 21 Jul 2010 07:41:25 -0500
|
||||
Subject: [PATCH 45/51] BeagleBoard: Added userbutton command
|
||||
Subject: [PATCH 08/16] BeagleBoard: Added userbutton command
|
||||
|
||||
Based on commit f1099c7c43caf5bac3bf6a65aa266fade4747072
|
||||
Author: Greg Turner <gregturner@ti.com>
|
||||
@@ -19,26 +19,29 @@ Based on commit f1099c7c43caf5bac3bf6a65aa266fade4747072
|
||||
* Flipped polarity of the return value to avoid confusion. Success (0)
|
||||
is when the button is pressed. Failure (1) is when the button is NOT
|
||||
pressed.
|
||||
* Used latest revision getting function.
|
||||
* Used latest macros for board revision.
|
||||
---
|
||||
board/ti/beagle/beagle.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 files changed, 54 insertions(+), 0 deletions(-)
|
||||
board/ti/beagle/beagle.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 files changed, 55 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index a6a4961..66df719 100644
|
||||
index 56e7afc..04e4259 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -40,6 +40,7 @@
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include "beagle.h"
|
||||
+#include <command.h>
|
||||
|
||||
static struct {
|
||||
unsigned int device_vendor;
|
||||
@@ -290,3 +291,56 @@ void set_muxconf_regs(void)
|
||||
MUX_BEAGLE();
|
||||
#define TWL4030_I2C_BUS 0
|
||||
#define EXPANSION_EEPROM_I2C_BUS 1
|
||||
@@ -339,3 +340,57 @@ int board_mmc_init(bd_t *bis)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
+
|
||||
+/*
|
||||
+ * This command returns the status of the user button on beagle xM
|
||||
+ * Input - none
|
||||
@@ -54,13 +57,14 @@ index a6a4961..66df719 100644
|
||||
+ * pass address parameter as argv[0] (aka command name),
|
||||
+ * and all remaining args
|
||||
+ */
|
||||
+ switch (beagle_revision) {
|
||||
+ switch (get_board_revision()) {
|
||||
+ case REVISION_AXBX:
|
||||
+ case REVISION_CX:
|
||||
+ case REVISION_C4:
|
||||
+ gpio = 7;
|
||||
+ break;
|
||||
+ case REVISION_XM:
|
||||
+ case REVISION_XM_A:
|
||||
+ case REVISION_XM_B:
|
||||
+ default:
|
||||
+ gpio = 4;
|
||||
+ break;
|
||||
@@ -91,7 +95,6 @@ index a6a4961..66df719 100644
|
||||
+ "Return the status of the BeagleBoard USER button",
|
||||
+ ""
|
||||
+);
|
||||
+
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-81
@@ -1,81 +0,0 @@
|
||||
From 831504a9514c2cb4b1dc8c9a261fd4d1a037235f Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 16 Feb 2010 09:58:01 -0800
|
||||
Subject: [PATCH 08/51] OMAP3: Overo: enable config eeprom to set u-boot env variable
|
||||
|
||||
---
|
||||
board/overo/overo.c | 21 +++++++++++++--------
|
||||
1 files changed, 13 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.c b/board/overo/overo.c
|
||||
index 2838a1f..f6093d2 100644
|
||||
--- a/board/overo/overo.c
|
||||
+++ b/board/overo/overo.c
|
||||
@@ -43,7 +43,9 @@ static struct {
|
||||
unsigned int device_vendor;
|
||||
unsigned char revision;
|
||||
unsigned char content;
|
||||
- unsigned char data[6];
|
||||
+ unsigned char fab_revision[8];
|
||||
+ unsigned char env_var[16];
|
||||
+ unsigned char env_setting[64];
|
||||
} expansion_config;
|
||||
|
||||
#define TWL4030_I2C_BUS 0
|
||||
@@ -209,36 +211,36 @@ int misc_init_r(void)
|
||||
switch (get_expansion_id()) {
|
||||
case GUMSTIX_SUMMIT:
|
||||
printf("Recognized Summit expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
setenv("defaultdisplay", "dvi");
|
||||
break;
|
||||
case GUMSTIX_TOBI:
|
||||
printf("Recognized Tobi expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
setenv("defaultdisplay", "dvi");
|
||||
break;
|
||||
case GUMSTIX_TOBI_DUO:
|
||||
printf("Recognized Tobi Duo expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
break;
|
||||
case GUMSTIX_PALO35:
|
||||
printf("Recognized Palo 35 expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
setenv("defaultdisplay", "lcd35");
|
||||
break;
|
||||
case GUMSTIX_PALO43:
|
||||
printf("Recognized Palo 43 expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
setenv("defaultdisplay", "lcd43");
|
||||
break;
|
||||
case GUMSTIX_CHESTNUT43:
|
||||
printf("Recognized Chestnut 43 expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
setenv("defaultdisplay", "lcd43");
|
||||
break;
|
||||
case GUMSTIX_PINTO:
|
||||
printf("Recognized Pinto expansion board (rev %d %s)\n",
|
||||
- expansion_config.revision, expansion_config.data);
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
break;
|
||||
case GUMSTIX_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
@@ -247,6 +249,9 @@ int misc_init_r(void)
|
||||
printf("Unrecognized expansion board\n");
|
||||
}
|
||||
|
||||
+ if (expansion_config.content == 1)
|
||||
+ setenv(expansion_config.env_var, expansion_config.env_setting);
|
||||
+
|
||||
i2c_set_bus_num(TWL4030_I2C_BUS);
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
From 500787d2999e23cf185808f611af61745c2746a3 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 16 Feb 2010 10:00:45 -0800
|
||||
Subject: [PATCH 09/51] OMAP3: Overo: enable input on MMC1_CLK and MMC3_CLK pinmux
|
||||
|
||||
---
|
||||
board/overo/overo.h | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.h b/board/overo/overo.h
|
||||
index e120e09..ff936dd 100644
|
||||
--- a/board/overo/overo.h
|
||||
+++ b/board/overo/overo.h
|
||||
@@ -200,7 +200,7 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP2_DR), (IEN | PTD | DIS | M0)) /*McBSP2_DR*/\
|
||||
MUX_VAL(CP(MCBSP2_DX), (IDIS | PTD | DIS | M0)) /*McBSP2_DX*/\
|
||||
/*Expansion card */\
|
||||
- MUX_VAL(CP(MMC1_CLK), (IDIS | PTU | EN | M0)) /*MMC1_CLK*/\
|
||||
+ MUX_VAL(CP(MMC1_CLK), (IEN | PTU | EN | M0)) /*MMC1_CLK*/\
|
||||
MUX_VAL(CP(MMC1_CMD), (IEN | PTU | EN | M0)) /*MMC1_CMD*/\
|
||||
MUX_VAL(CP(MMC1_DAT0), (IEN | PTU | EN | M0)) /*MMC1_DAT0*/\
|
||||
MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0)) /*MMC1_DAT1*/\
|
||||
@@ -301,7 +301,7 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(SYS_OFF_MODE), (IEN | PTD | DIS | M0)) /*SYS_OFF_MODE*/\
|
||||
MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTD | DIS | M0)) /*SYS_CLKOUT1*/\
|
||||
MUX_VAL(CP(SYS_CLKOUT2), (IEN | PTU | EN | M4)) /*GPIO_186*/\
|
||||
- MUX_VAL(CP(ETK_CLK_ES2), (IDIS | PTU | EN | M2)) /*MMC3_CLK*/\
|
||||
+ MUX_VAL(CP(ETK_CLK_ES2), (IEN | PTU | EN | M2)) /*MMC3_CLK*/\
|
||||
MUX_VAL(CP(ETK_CTL_ES2), (IEN | PTU | EN | M2)) /*MMC3_CMD*/\
|
||||
MUX_VAL(CP(ETK_D0_ES2), (IEN | PTU | EN | M4)) /*GPIO_14*/\
|
||||
MUX_VAL(CP(ETK_D1_ES2), (IEN | PTD | EN | M4)) /*GPIO_15 - X_GATE*/\
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
From ca7179112840cdca717ac0c958a9ab226d1bdf25 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Mon, 22 Nov 2010 11:51:32 +0100
|
||||
Subject: [PATCH 09/16] OMAP3: beagle: pass expansionboard name in bootargs
|
||||
|
||||
---
|
||||
include/configs/omap3_beagle.h | 13 +++++++++++++
|
||||
1 files changed, 13 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 51e14d0..9d569a5 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -191,6 +191,7 @@
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
"mpurate=auto\0" \
|
||||
+ "buddy=none "\
|
||||
"vram=12M\0" \
|
||||
"dvimode=1024x768MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
@@ -201,6 +202,7 @@
|
||||
"nandrootfstype=jffs2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
"mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -208,6 +210,7 @@
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
"mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -216,6 +219,16 @@
|
||||
"loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
|
||||
"importbootenv=echo Importing environment from mmc ...; " \
|
||||
"env import -t $loadaddr $filesize\0" \
|
||||
+ "ramargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
+ "vram=${vram} " \
|
||||
+ "omapfb.mode=dvi:${dvimode} " \
|
||||
+ "omapdss.def_disp=${defaultdisplay} " \
|
||||
+ "root=${ramroot} " \
|
||||
+ "rootfstype=${ramrootfstype}\0" \
|
||||
+ "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||||
"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
"mmcboot=echo Booting from mmc ...; " \
|
||||
"run mmcargs; " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+15
-66
@@ -1,49 +1,23 @@
|
||||
From 89a879905e59c837626b6a9425bcc27b097e02ad Mon Sep 17 00:00:00 2001
|
||||
From 2226921518eebb215ddadce09efb35b99a9db8ac Mon Sep 17 00:00:00 2001
|
||||
From: Syed Mohammed Khasim <khasim@ti.com>
|
||||
Date: Sun, 11 Apr 2010 17:44:39 +0200
|
||||
Subject: [PATCH 26/51] Enable DSS driver for Beagle
|
||||
Subject: [PATCH 10/16] Enable DSS driver for Beagle
|
||||
|
||||
Configures DSS to display color bar on Svideo
|
||||
Configures DSS to display background color on DVID
|
||||
|
||||
Signed-off-by: Syed Mohammed Khasim <khasim@ti.com>
|
||||
---
|
||||
board/ti/beagle/beagle.c | 12 ++++++
|
||||
board/ti/beagle/beagle.h | 75 ++++++++++++++++++++++++++++++++++++++++
|
||||
include/configs/omap3_beagle.h | 1 +
|
||||
3 files changed, 88 insertions(+), 0 deletions(-)
|
||||
board/ti/beagle/beagle.c | 1 +
|
||||
board/ti/beagle/beagle.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 61 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 7cb6d1f..eb57b5a 100644
|
||||
index 04e4259..7c80a97 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -141,6 +141,16 @@ unsigned int get_expansion_id(void)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Configure DSS to display background color on DVID
|
||||
+ * Configure VENC to display color bar on S-Video
|
||||
+ */
|
||||
+void display_init(void)
|
||||
+{
|
||||
+ omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH);
|
||||
+ omap3_dss_panel_config(&dvid_cfg);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Configure board specific parts
|
||||
*/
|
||||
@@ -188,6 +198,7 @@ int misc_init_r(void)
|
||||
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
+ display_init();
|
||||
|
||||
switch (beagle_revision) {
|
||||
case REVISION_AXBX:
|
||||
@@ -233,6 +244,7 @@ int misc_init_r(void)
|
||||
GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
|
||||
@@ -318,6 +318,7 @@ int misc_init_r(void)
|
||||
GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
|
||||
|
||||
dieid_num_r();
|
||||
+ omap3_dss_enable();
|
||||
@@ -51,7 +25,7 @@ index 7cb6d1f..eb57b5a 100644
|
||||
return 0;
|
||||
}
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index ec4f831..69f9398 100644
|
||||
index 48228dc..bdf2a6f 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -23,6 +23,8 @@
|
||||
@@ -63,11 +37,10 @@ index ec4f831..69f9398 100644
|
||||
const omap3_sysinfo sysinfo = {
|
||||
DDR_STACKED,
|
||||
"OMAP3 Beagle board",
|
||||
@@ -433,4 +435,77 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
@@ -471,6 +473,64 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/
|
||||
|
||||
+/*
|
||||
/*
|
||||
+ * Display Configuration
|
||||
+ */
|
||||
+
|
||||
@@ -126,33 +99,9 @@ index ec4f831..69f9398 100644
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * Configure Timings for DVI D
|
||||
+ */
|
||||
+static const struct panel_config dvid_cfg = {
|
||||
+ .timing_h = 0x0ff03f31, /* Horizantal timing */
|
||||
+ .timing_v = 0x01400504, /* Vertical timing */
|
||||
+ .pol_freq = 0x00007028, /* Pol Freq */
|
||||
+ .divisor = 0x00010006, /* 72Mhz Pixel Clock */
|
||||
+ .lcd_size = 0x02ff03ff, /* 1024x768 */
|
||||
+ .panel_type = 0x01, /* TFT */
|
||||
+ .data_lines = 0x03, /* 24 Bit RGB */
|
||||
+ .load_mode = 0x02, /* Frame Mode */
|
||||
+ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */
|
||||
+};
|
||||
+
|
||||
#endif
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 8bedf7d..52d727a 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -137,6 +137,7 @@
|
||||
#define CONFIG_CMD_I2C /* I2C serial bus support */
|
||||
#define CONFIG_CMD_MMC /* MMC support */
|
||||
#define CONFIG_CMD_NAND /* NAND support */
|
||||
+#define CONFIG_VIDEO_OMAP3 /* DSS Support */
|
||||
|
||||
#undef CONFIG_CMD_FLASH /* flinfo, erase, protect */
|
||||
#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
|
||||
* Configure Timings for DVI D
|
||||
*/
|
||||
static const struct panel_config dvid_cfg = {
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
From 6ced8e0d859ea9cddbc2ec4a94a4c7394f1ee4c5 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 16 Feb 2010 10:03:14 -0800
|
||||
Subject: [PATCH 10/51] OMAP3: Overo: set CONFIG_SYS_I2C_SPEED to 400Khz
|
||||
|
||||
---
|
||||
include/configs/omap3_overo.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h
|
||||
index 113c6df..27b5476 100644
|
||||
--- a/include/configs/omap3_overo.h
|
||||
+++ b/include/configs/omap3_overo.h
|
||||
@@ -112,7 +112,7 @@
|
||||
|
||||
#define CONFIG_SYS_NO_FLASH
|
||||
#define CONFIG_HARD_I2C 1
|
||||
-#define CONFIG_SYS_I2C_SPEED 100000
|
||||
+#define CONFIG_SYS_I2C_SPEED 400000
|
||||
#define CONFIG_SYS_I2C_SLAVE 1
|
||||
#define CONFIG_SYS_I2C_BUS 0
|
||||
#define CONFIG_SYS_I2C_BUS_SELECT 1
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,213 @@
|
||||
From e3e94bd49df4b4588cc5c95392b872eadb531fc4 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Thu, 20 May 2010 05:41:26 -0500
|
||||
Subject: [PATCH 11/16] Add 'led' command
|
||||
|
||||
This patch allows any board implementing the coloured LED API
|
||||
to control the LEDs from the console.
|
||||
|
||||
led [green | yellow | red | all ] [ on | off ]
|
||||
|
||||
or
|
||||
|
||||
led [ 1 | 2 | 3 | all ] [ on | off ]
|
||||
|
||||
Adds configuration item CONFIG_CMD_LED enabling the command.
|
||||
|
||||
Partially based on patch from Ulf Samuelsson:
|
||||
http://www.mail-archive.com/u-boot@lists.denx.de/msg09593.html.
|
||||
|
||||
Updated based on feedback:
|
||||
http://www.mail-archive.com/u-boot@lists.denx.de/msg41847.html
|
||||
https://groups.google.com/d/topic/beagleboard/8Wf1HiK_QBo/discussion
|
||||
* Fixed a handful of style issues.
|
||||
* Significantly reduced the number of #ifdefs and redundant code
|
||||
* Converted redundant code into loops test against a structure
|
||||
* Made use of cmd_usage()
|
||||
* Introduced a str_onoff() function, but haven't yet put it in common
|
||||
* Eliminated trailing newline
|
||||
|
||||
v2 updates
|
||||
* Test every LED in case "all" is used. Previously, the code broke from
|
||||
the loop after setting the state of only one LED.
|
||||
* Corrected swapped on/off in structure definition
|
||||
* Removed trailing white space
|
||||
---
|
||||
common/Makefile | 1 +
|
||||
common/cmd_led.c | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 153 insertions(+), 0 deletions(-)
|
||||
create mode 100644 common/cmd_led.c
|
||||
|
||||
diff --git a/common/Makefile b/common/Makefile
|
||||
index 048df0c..29a0ead 100644
|
||||
--- a/common/Makefile
|
||||
+++ b/common/Makefile
|
||||
@@ -105,6 +105,7 @@ COBJS-$(CONFIG_CMD_IRQ) += cmd_irq.o
|
||||
COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o
|
||||
COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o
|
||||
COBJS-$(CONFIG_CMD_CRAMFS) += cmd_cramfs.o
|
||||
+COBJS-$(CONFIG_CMD_LED) += cmd_led.o
|
||||
COBJS-$(CONFIG_CMD_LICENSE) += cmd_license.o
|
||||
COBJS-y += cmd_load.o
|
||||
COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o
|
||||
diff --git a/common/cmd_led.c b/common/cmd_led.c
|
||||
new file mode 100644
|
||||
index 0000000..7f02fe6
|
||||
--- /dev/null
|
||||
+++ b/common/cmd_led.c
|
||||
@@ -0,0 +1,152 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2010
|
||||
+ * Jason Kridner <jkridner@beagleboard.org>
|
||||
+ *
|
||||
+ * Based on cmd_led.c patch from:
|
||||
+ * http://www.mail-archive.com/u-boot@lists.denx.de/msg06873.html
|
||||
+ * (C) Copyright 2008
|
||||
+ * Ulf Samuelsson <ulf.samuelsson@atmel.com>
|
||||
+ *
|
||||
+ * See file CREDITS for list of people who contributed to this
|
||||
+ * project.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of
|
||||
+ * the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
+ * MA 02111-1307 USA
|
||||
+ */
|
||||
+
|
||||
+#include <common.h>
|
||||
+#include <config.h>
|
||||
+#include <command.h>
|
||||
+#include <status_led.h>
|
||||
+
|
||||
+struct led_tbl_s {
|
||||
+ char *string; /* String for use in the command */
|
||||
+ led_id_t mask; /* Mask used for calling __led_set() */
|
||||
+ void (*off)(void); /* Optional fucntion for turning LED off */
|
||||
+ void (*on)(void); /* Optional fucntion for turning LED on */
|
||||
+};
|
||||
+
|
||||
+typedef struct led_tbl_s led_tbl_t;
|
||||
+
|
||||
+static const led_tbl_t led_commands[] = {
|
||||
+#ifdef CONFIG_BOARD_SPECIFIC_LED
|
||||
+#ifdef STATUS_LED_BIT
|
||||
+ { "0", STATUS_LED_BIT, NULL, NULL },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT1
|
||||
+ { "1", STATUS_LED_BIT1, NULL, NULL },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT2
|
||||
+ { "2", STATUS_LED_BIT2, NULL, NULL },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT3
|
||||
+ { "3", STATUS_LED_BIT3, NULL, NULL },
|
||||
+#endif
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+ { "green", STATUS_LED_GREEN, green_LED_off, green_LED_on },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_YELLOW
|
||||
+ { "yellow", STATUS_LED_YELLOW, yellow_LED_off, yellow_LED_on },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_RED
|
||||
+ { "red", STATUS_LED_RED, red_LED_off, red_LED_on },
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BLUE
|
||||
+ { "blue", STATUS_LED_BLUE, blue_LED_off, blue_LED_on },
|
||||
+#endif
|
||||
+ { NULL, 0, NULL, NULL }
|
||||
+};
|
||||
+
|
||||
+int str_onoff (char *var)
|
||||
+{
|
||||
+ if (strcmp(var, "off") == 0) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ if (strcmp(var, "on") == 0) {
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return -1;
|
||||
+}
|
||||
+
|
||||
+int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
+{
|
||||
+ int state, i;
|
||||
+
|
||||
+ /* Validate arguments */
|
||||
+ if ((argc != 3)) {
|
||||
+ return cmd_usage(cmdtp);
|
||||
+ }
|
||||
+
|
||||
+ state = str_onoff(argv[2]);
|
||||
+ if (state < 0) {
|
||||
+ return cmd_usage(cmdtp);
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; led_commands[i].string; i++) {
|
||||
+ if ((strcmp("all", argv[1]) == 0) ||
|
||||
+ (strcmp(led_commands[i].string, argv[1]) == 0)) {
|
||||
+ if (led_commands[i].on) {
|
||||
+ if (state) {
|
||||
+ led_commands[i].on();
|
||||
+ } else {
|
||||
+ led_commands[i].off();
|
||||
+ }
|
||||
+ } else {
|
||||
+ __led_set(led_commands[i].mask, state);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /* If we ran out of matches, print Usage */
|
||||
+ if (!led_commands[i].string && !(strcmp("all", argv[1]) == 0)) {
|
||||
+ return cmd_usage(cmdtp);
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+U_BOOT_CMD(
|
||||
+ led, 3, 1, do_led,
|
||||
+ "led\t- ["
|
||||
+#ifdef CONFIG_BOARD_SPECIFIC_LED
|
||||
+#ifdef STATUS_LED_BIT
|
||||
+ "0|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT1
|
||||
+ "1|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT2
|
||||
+ "2|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BIT3
|
||||
+ "3|"
|
||||
+#endif
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+ "green|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_YELLOW
|
||||
+ "yellow|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_RED
|
||||
+ "red|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BLUE
|
||||
+ "blue|"
|
||||
+#endif
|
||||
+ "all] [on|off]\n",
|
||||
+ "led [led_name] [on|off] sets or clears led(s)\n"
|
||||
+);
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From f054db5f2a8eedbeaf8c6045d0bbafde5aca3efc Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 16 Feb 2010 10:04:30 -0800
|
||||
Subject: [PATCH 11/51] OMAP3: trim excessively long delays in i2c driver
|
||||
|
||||
---
|
||||
drivers/i2c/omap24xx_i2c.c | 8 ++++----
|
||||
1 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
|
||||
index e8c8184..0af230d 100644
|
||||
--- a/drivers/i2c/omap24xx_i2c.c
|
||||
+++ b/drivers/i2c/omap24xx_i2c.c
|
||||
@@ -148,7 +148,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
|
||||
if (status & I2C_STAT_XRDY) {
|
||||
/* Important: have to use byte access */
|
||||
writeb (regoffset, &i2c_base->data);
|
||||
- udelay (20000);
|
||||
+ udelay (2000);
|
||||
if (readw (&i2c_base->stat) & I2C_STAT_NACK) {
|
||||
i2c_error = 1;
|
||||
}
|
||||
@@ -160,7 +160,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
|
||||
/* free bus, otherwise we can't use a combined transction */
|
||||
writew (0, &i2c_base->con);
|
||||
while (readw (&i2c_base->stat) || (readw (&i2c_base->con) & I2C_CON_MST)) {
|
||||
- udelay (10000);
|
||||
+ udelay (1000);
|
||||
/* Have to clear pending interrupt to clear I2C_STAT */
|
||||
writew (0xFFFF, &i2c_base->stat);
|
||||
}
|
||||
@@ -181,7 +181,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
|
||||
#else
|
||||
*value = readw (&i2c_base->data);
|
||||
#endif
|
||||
- udelay (20000);
|
||||
+ udelay (2000);
|
||||
} else {
|
||||
i2c_error = 1;
|
||||
}
|
||||
@@ -190,7 +190,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
|
||||
writew (I2C_CON_EN, &i2c_base->con);
|
||||
while (readw (&i2c_base->stat)
|
||||
|| (readw (&i2c_base->con) & I2C_CON_MST)) {
|
||||
- udelay (10000);
|
||||
+ udelay (1000);
|
||||
writew (0xFFFF, &i2c_base->stat);
|
||||
}
|
||||
}
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+16
-20
@@ -1,28 +1,29 @@
|
||||
From bb88a9c0ffa5b6006d689635028177be4ce83104 Mon Sep 17 00:00:00 2001
|
||||
From 35271d72072841c16687ffd51f08ec65cdac3b3e Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Thu, 20 May 2010 06:14:01 -0500
|
||||
Subject: [PATCH 42/51] BeagleBoard: Added LED driver
|
||||
Subject: [PATCH 12/16] BeagleBoard: Added LED driver
|
||||
|
||||
Added LED driver using status_led. USR0 is set to monitor the boot
|
||||
status. USR1 is set to be the green LED.
|
||||
(cherry picked from commit 048b526fd7cc0c642f27c674b3e235321c880b66)
|
||||
(cherry picked from commit 21c574d9e20f86ab757f5efdd9146e6607f2faba)
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
Included adding configuration and command to the default configuration.
|
||||
|
||||
v2 updates
|
||||
* Fixed USR0/USR1 to be LED 0/1 respectively
|
||||
---
|
||||
board/ti/beagle/Makefile | 4 ++-
|
||||
board/ti/beagle/beagle.c | 8 ++++
|
||||
board/ti/beagle/beagle.c | 7 ++++
|
||||
board/ti/beagle/led.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 102 insertions(+), 1 deletions(-)
|
||||
3 files changed, 101 insertions(+), 1 deletions(-)
|
||||
create mode 100644 board/ti/beagle/led.c
|
||||
|
||||
diff --git a/board/ti/beagle/Makefile b/board/ti/beagle/Makefile
|
||||
index f797112..4cc675c 100644
|
||||
index 3b4aaac..d9f445f 100644
|
||||
--- a/board/ti/beagle/Makefile
|
||||
+++ b/board/ti/beagle/Makefile
|
||||
@@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(BOARD).a
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
-COBJS := beagle.o
|
||||
+COBJS-y := $(BOARD).o
|
||||
@@ -33,7 +34,7 @@ index f797112..4cc675c 100644
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index cdba3dd..a6a4961 100644
|
||||
index 7c80a97..905b151 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -30,6 +30,9 @@
|
||||
@@ -45,8 +46,8 @@ index cdba3dd..a6a4961 100644
|
||||
+#endif
|
||||
#include <twl4030.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/mux.h>
|
||||
@@ -83,6 +86,10 @@ int board_init(void)
|
||||
#include <asm/arch/mmc_host_def.h>
|
||||
@@ -80,6 +83,10 @@ int board_init(void)
|
||||
/* boot param addr */
|
||||
gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
|
||||
|
||||
@@ -57,14 +58,9 @@ index cdba3dd..a6a4961 100644
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -282,3 +289,4 @@ void set_muxconf_regs(void)
|
||||
{
|
||||
MUX_BEAGLE();
|
||||
}
|
||||
+
|
||||
diff --git a/board/ti/beagle/led.c b/board/ti/beagle/led.c
|
||||
new file mode 100644
|
||||
index 0000000..df26552
|
||||
index 0000000..fe80e19
|
||||
--- /dev/null
|
||||
+++ b/board/ti/beagle/led.c
|
||||
@@ -0,0 +1,91 @@
|
||||
@@ -97,8 +93,8 @@ index 0000000..df26552
|
||||
+static unsigned int saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF};
|
||||
+
|
||||
+/* GPIO pins for the LEDs */
|
||||
+#define BEAGLE_LED_USR0 149
|
||||
+#define BEAGLE_LED_USR1 150
|
||||
+#define BEAGLE_LED_USR0 150
|
||||
+#define BEAGLE_LED_USR1 149
|
||||
+
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+void green_LED_off (void)
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
From 2c02d9b024b58bbea920d3d6c40d62b30e448f60 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Fri, 26 Feb 2010 12:40:26 -0800
|
||||
Subject: [PATCH 12/51] OMAP3: Overo: allow expansion boards with any vendor ID
|
||||
|
||||
---
|
||||
board/overo/overo.c | 10 +++-------
|
||||
1 files changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.c b/board/overo/overo.c
|
||||
index f6093d2..ec186ec 100644
|
||||
--- a/board/overo/overo.c
|
||||
+++ b/board/overo/overo.c
|
||||
@@ -63,8 +63,7 @@ static struct {
|
||||
#define GUMSTIX_CHESTNUT43 0x06000200
|
||||
#define GUMSTIX_PINTO 0x07000200
|
||||
|
||||
-#define GUMSTIX_NO_EEPROM 0xfffffffe
|
||||
-#define GUMSTIX_UNKNOWN 0xffffffff
|
||||
+#define GUMSTIX_NO_EEPROM 0xffffffff
|
||||
|
||||
#if defined(CONFIG_CMD_NET)
|
||||
static void setup_net_chip(void);
|
||||
@@ -174,10 +173,7 @@ unsigned int get_expansion_id(void)
|
||||
i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
|
||||
sizeof(expansion_config));
|
||||
|
||||
- if ( (expansion_config.device_vendor & 0xffff) != GUMSTIX_VENDORID )
|
||||
- return GUMSTIX_UNKNOWN;
|
||||
- else
|
||||
- return expansion_config.device_vendor;
|
||||
+ return expansion_config.device_vendor;
|
||||
}
|
||||
|
||||
|
||||
@@ -245,7 +241,7 @@ int misc_init_r(void)
|
||||
case GUMSTIX_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
break;
|
||||
- case GUMSTIX_UNKNOWN:
|
||||
+ default:
|
||||
printf("Unrecognized expansion board\n");
|
||||
}
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
From da8fa305fd10331958cd18c9c27c9e062b886fc4 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 21 Jul 2010 07:41:25 -0500
|
||||
Subject: [PATCH 13/16] OMAP3: BeagleBoard: updated default configuration
|
||||
|
||||
* Decrease bootdelay to 3, use VGA for default resolution
|
||||
* Add CONFIG_SYS_MEMTEST_SCRATCH to point to a scratch memory area.
|
||||
* Add camera to default bootargs
|
||||
* Move ramdisk parameters. This will make it easier to reprogram the ramdisk size.
|
||||
* Improved boot env var setting
|
||||
* Enabled evaluation of expressions with 'setexpr'
|
||||
* Made room for a 64MB ramdisk by moving from 0x81600000 to 0x81000000
|
||||
* Removed expression from 'ramroot' that wouldn't be evaluated
|
||||
* Doubled console I/O buffer size from 256 to 512
|
||||
* Doubled maximum command arguments size from 16 to 32
|
||||
* Enable multibus support for I2C
|
||||
* Added USER button switch from uEnv.txt to user.txt
|
||||
* Enable LEDs
|
||||
Added LED driver using status_led. USR0 is set to monitor
|
||||
the boot status. USR1 is set to be the GREEN LED.
|
||||
---
|
||||
include/configs/omap3_beagle.h | 62 ++++++++++++++++++++++++++++++++-------
|
||||
1 files changed, 51 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 9d569a5..73d4d4e 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -108,9 +108,27 @@
|
||||
#define CONFIG_OMAP_HSMMC 1
|
||||
#define CONFIG_DOS_PARTITION 1
|
||||
|
||||
+/* Status LED */
|
||||
+#define CONFIG_STATUS_LED 1
|
||||
+#define CONFIG_BOARD_SPECIFIC_LED 1
|
||||
+#define STATUS_LED_BIT 0x01
|
||||
+#define STATUS_LED_STATE STATUS_LED_ON
|
||||
+#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 2)
|
||||
+#define STATUS_LED_BIT1 0x02
|
||||
+#define STATUS_LED_STATE1 STATUS_LED_ON
|
||||
+#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
|
||||
+#define STATUS_LED_BOOT STATUS_LED_BIT
|
||||
+#define STATUS_LED_GREEN STATUS_LED_BIT1
|
||||
+
|
||||
/* DDR - I use Micron DDR */
|
||||
#define CONFIG_OMAP3_MICRON_DDR 1
|
||||
|
||||
+/* Enable Multi Bus support for I2C */
|
||||
+#define CONFIG_I2C_MULTI_BUS 1
|
||||
+
|
||||
+/* Probe all devices */
|
||||
+#define CONFIG_SYS_I2C_NOPROBES {0x0, 0x0}
|
||||
+
|
||||
/* USB */
|
||||
#define CONFIG_MUSB_UDC 1
|
||||
#define CONFIG_USB_OMAP3 1
|
||||
@@ -138,6 +156,9 @@
|
||||
#define CONFIG_CMD_I2C /* I2C serial bus support */
|
||||
#define CONFIG_CMD_MMC /* MMC support */
|
||||
#define CONFIG_CMD_NAND /* NAND support */
|
||||
+#define CONFIG_CMD_LED /* LED support */
|
||||
+#define CONFIG_VIDEO_OMAP3 /* DSS Support */
|
||||
+#define CONFIG_CMD_SETEXPR /* Evaluate expressions */
|
||||
|
||||
#undef CONFIG_CMD_FLASH /* flinfo, erase, protect */
|
||||
#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
|
||||
@@ -184,45 +205,56 @@
|
||||
/* partition */
|
||||
|
||||
/* Environment information */
|
||||
-#define CONFIG_BOOTDELAY 10
|
||||
+#define CONFIG_BOOTDELAY 3
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
- "loadaddr=0x82000000\0" \
|
||||
+ "loadaddr=0x80200000\0" \
|
||||
+ "rdaddr=0x81000000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
"mpurate=auto\0" \
|
||||
"buddy=none "\
|
||||
+ "optargs=\0" \
|
||||
+ "camera=lbcm3m1\0" \
|
||||
"vram=12M\0" \
|
||||
- "dvimode=1024x768MR-16@60\0" \
|
||||
+ "dvimode=640x480MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
"mmcdev=0\0" \
|
||||
"mmcroot=/dev/mmcblk0p2 rw\0" \
|
||||
"mmcrootfstype=ext3 rootwait\0" \
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
"nandrootfstype=jffs2\0" \
|
||||
+ "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M\0" \
|
||||
+ "ramrootfstype=ext2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${nandroot} " \
|
||||
"rootfstype=${nandrootfstype}\0" \
|
||||
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
|
||||
+ "bootenv=uEnv.txt\0" \
|
||||
+ "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
|
||||
"importbootenv=echo Importing environment from mmc ...; " \
|
||||
"env import -t $loadaddr $filesize\0" \
|
||||
"ramargs=setenv bootargs console=${console} " \
|
||||
"${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -237,11 +269,18 @@
|
||||
"run nandargs; " \
|
||||
"nand read ${loadaddr} 280000 400000; " \
|
||||
"bootm ${loadaddr}\0" \
|
||||
+ "ramboot=echo Booting from ramdisk ...; " \
|
||||
+ "run ramargs; " \
|
||||
+ "bootm ${loadaddr}\0" \
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"if mmc rescan ${mmcdev}; then " \
|
||||
+ "if userbutton; then " \
|
||||
+ "setenv bootenv user.txt;" \
|
||||
+ "fi;" \
|
||||
"echo SD/MMC found on device ${mmcdev};" \
|
||||
"if run loadbootenv; then " \
|
||||
+ "echo Loaded environment from ${bootenv};" \
|
||||
"run importbootenv;" \
|
||||
"fi;" \
|
||||
"if test -n $uenvcmd; then " \
|
||||
@@ -252,7 +291,7 @@
|
||||
"run mmcboot;" \
|
||||
"fi;" \
|
||||
"fi;" \
|
||||
- "run nandboot;" \
|
||||
+ "run nandboot;"
|
||||
|
||||
#define CONFIG_AUTO_COMPLETE 1
|
||||
/*
|
||||
@@ -262,18 +301,19 @@
|
||||
#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
|
||||
#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
|
||||
#define CONFIG_SYS_PROMPT "OMAP3 beagleboard.org # "
|
||||
-#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */
|
||||
+#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */
|
||||
/* Print Buffer Size */
|
||||
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
|
||||
sizeof(CONFIG_SYS_PROMPT) + 16)
|
||||
-#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
|
||||
+#define CONFIG_SYS_MAXARGS 32 /* max number of command args */
|
||||
/* Boot Argument Buffer Size */
|
||||
#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
|
||||
|
||||
-#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0) /* memtest */
|
||||
- /* works on */
|
||||
-#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \
|
||||
- 0x01F00000) /* 31MB */
|
||||
+#define CONFIG_SYS_ALT_MEMTEST 1
|
||||
+#define CONFIG_SYS_MEMTEST_START (0x82000000) /* memtest */
|
||||
+ /* defaults */
|
||||
+#define CONFIG_SYS_MEMTEST_END (0x87FFFFFF) /* 128MB */
|
||||
+#define CONFIG_SYS_MEMTEST_SCRATCH (0x81000000) /* dummy address */
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) /* default */
|
||||
/* load address */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
From 90119d705d2c56254d4b27efb8e8c61e62f014c1 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Fri, 26 Feb 2010 12:42:30 -0800
|
||||
Subject: [PATCH 13/51] OMAP3: Overo: change address of expansion eeprom to 0x51 so as to not conflict with EDID address
|
||||
|
||||
---
|
||||
board/overo/overo.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/board/overo/overo.c b/board/overo/overo.c
|
||||
index ec186ec..f96e7ff 100644
|
||||
--- a/board/overo/overo.c
|
||||
+++ b/board/overo/overo.c
|
||||
@@ -51,7 +51,7 @@ static struct {
|
||||
#define TWL4030_I2C_BUS 0
|
||||
|
||||
#define EXPANSION_EEPROM_I2C_BUS 2
|
||||
-#define EXPANSION_EEPROM_I2C_ADDRESS 0x50
|
||||
+#define EXPANSION_EEPROM_I2C_ADDRESS 0x51
|
||||
|
||||
#define GUMSTIX_VENDORID 0x0200
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
From abc09e8f0b8e02dbfec8bb3c2e024ef9f1bdf4f0 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Tue, 8 Mar 2011 20:42:01 -0600
|
||||
Subject: [PATCH 14/16] Corrected LED name match finding avoiding extraneous Usage printouts
|
||||
|
||||
---
|
||||
common/cmd_led.c | 5 +++--
|
||||
1 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/common/cmd_led.c b/common/cmd_led.c
|
||||
index 7f02fe6..ca2227f 100644
|
||||
--- a/common/cmd_led.c
|
||||
+++ b/common/cmd_led.c
|
||||
@@ -83,7 +83,7 @@ int str_onoff (char *var)
|
||||
|
||||
int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
- int state, i;
|
||||
+ int state, i, match = 0;
|
||||
|
||||
/* Validate arguments */
|
||||
if ((argc != 3)) {
|
||||
@@ -98,6 +98,7 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
for (i = 0; led_commands[i].string; i++) {
|
||||
if ((strcmp("all", argv[1]) == 0) ||
|
||||
(strcmp(led_commands[i].string, argv[1]) == 0)) {
|
||||
+ match = 1;
|
||||
if (led_commands[i].on) {
|
||||
if (state) {
|
||||
led_commands[i].on();
|
||||
@@ -111,7 +112,7 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
}
|
||||
|
||||
/* If we ran out of matches, print Usage */
|
||||
- if (!led_commands[i].string && !(strcmp("all", argv[1]) == 0)) {
|
||||
+ if (!match) {
|
||||
return cmd_usage(cmdtp);
|
||||
}
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
From 7f50d09f9a00b7f2a392a5b0b9f2f19a96a90c16 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:04:50 -0700
|
||||
Subject: [PATCH 14/51] OMAP3: board.c: don't attempt to set up second RAM bank, assume x-load has already done this
|
||||
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/board.c | 19 +++++++++----------
|
||||
1 files changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c
|
||||
index 7b78fa4..0126152 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/board.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/board.c
|
||||
@@ -232,6 +232,7 @@ void s_init(void)
|
||||
|
||||
per_clocks_enable();
|
||||
|
||||
+ /* FIXME: u-boot's sdrc setup is broken */
|
||||
if (!in_sdram)
|
||||
sdrc_init();
|
||||
}
|
||||
@@ -281,16 +282,14 @@ int dram_init(void)
|
||||
{
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
unsigned int size0 = 0, size1 = 0;
|
||||
-
|
||||
- /*
|
||||
- * If a second bank of DDR is attached to CS1 this is
|
||||
- * where it can be started. Early init code will init
|
||||
- * memory on CS0.
|
||||
- */
|
||||
- if ((sysinfo.mtype == DDR_COMBO) || (sysinfo.mtype == DDR_STACKED)) {
|
||||
- do_sdrc_init(CS1, NOT_EARLY);
|
||||
- make_cs1_contiguous();
|
||||
- }
|
||||
+ struct sdrc *sdrc_base = (struct sdrc *)OMAP34XX_SDRC_BASE;
|
||||
+ struct sdrc_actim *sdrc_actim_base = (struct sdrc_actim *)SDRC_ACTIM_CTRL1_BASE;
|
||||
+
|
||||
+ /* x-load sets up the second bank but */
|
||||
+ /* doesn't test to see if it is there */
|
||||
+ /* do so now, disable if not present */
|
||||
+ if (!mem_ok(CS1))
|
||||
+ writel(0, &sdrc_base->cs[1].mcfg);
|
||||
|
||||
size0 = get_sdr_cs_size(CS0);
|
||||
size1 = get_sdr_cs_size(CS1);
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
From 379ff04432ffdef234c2f85b1801cf7df2d3d5ee Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:06:49 -0700
|
||||
Subject: [PATCH 15/51] OMAP3: mem.c: enhance the RAM test
|
||||
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/mem.c | 28 +++++++++++++++-------------
|
||||
1 files changed, 15 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/mem.c b/cpu/arm_cortexa8/omap3/mem.c
|
||||
index dfb7e4c..b828097 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/mem.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/mem.c
|
||||
@@ -106,21 +106,23 @@ void make_cs1_contiguous(void)
|
||||
*******************************************************/
|
||||
u32 mem_ok(u32 cs)
|
||||
{
|
||||
- u32 val1, val2, addr;
|
||||
+ u32 i, val1, val2, addr, size;
|
||||
u32 pattern = 0x12345678;
|
||||
|
||||
- addr = OMAP34XX_SDRC_CS0 + get_sdr_cs_offset(cs);
|
||||
-
|
||||
- writel(0x0, addr + 0x400); /* clear pos A */
|
||||
- writel(pattern, addr); /* pattern to pos B */
|
||||
- writel(0x0, addr + 4); /* remove pattern off the bus */
|
||||
- val1 = readl(addr + 0x400); /* get pos A value */
|
||||
- val2 = readl(addr); /* get val2 */
|
||||
+ size = get_sdr_cs_offset(cs);
|
||||
+ addr = OMAP34XX_SDRC_CS0 + size;
|
||||
+
|
||||
+ for (i = 0; i < size; i+=1024) {
|
||||
+ writel(pattern - i, addr + i);
|
||||
+ }
|
||||
|
||||
- if ((val1 != 0) || (val2 != pattern)) /* see if pos A val changed */
|
||||
- return 0;
|
||||
- else
|
||||
- return 1;
|
||||
+ for (i = 0; i < size; i+=1024) {
|
||||
+ val1 = readl(addr + i);
|
||||
+ if (val1 != (pattern - i)) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/********************************************************
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
From 1a88890580917571811950eabd877cccdb643cb1 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Holler <holler@ahsoftware.de>
|
||||
Date: Thu, 17 Feb 2011 22:37:57 +0000
|
||||
Subject: [PATCH 15/16] omap3_beagle: Switch default console from ttyS2 to ttyO2
|
||||
|
||||
Linux kernels >= 2.6.36 are using ttyOn instead ttySn for the
|
||||
serials on OMAPs.
|
||||
|
||||
Signed-off-by: Alexander Holler <holler@ahsoftware.de>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 73d4d4e..de572e8 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -211,7 +211,7 @@
|
||||
"loadaddr=0x80200000\0" \
|
||||
"rdaddr=0x81000000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
- "console=ttyS2,115200n8\0" \
|
||||
+ "console=ttyO2,115200n8\0" \
|
||||
"mpurate=auto\0" \
|
||||
"buddy=none "\
|
||||
"optargs=\0" \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
From 03757f19b4affb531d1606e468e0411acd8d57cb Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 9 Mar 2011 18:48:19 -0600
|
||||
Subject: [PATCH 16/16] BeagleBoard: Load kernel via MMC ext2, not fat
|
||||
|
||||
---
|
||||
include/configs/omap3_beagle.h | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index de572e8..3a102e5 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -261,7 +261,8 @@
|
||||
"root=${ramroot} " \
|
||||
"rootfstype=${ramrootfstype}\0" \
|
||||
"loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||||
- "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
+ "loaduimagefat=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
+ "loaduimage=ext2load mmc ${mmcdev}:2 ${loadaddr} /boot/uImage\0" \
|
||||
"mmcboot=echo Booting from mmc ...; " \
|
||||
"run mmcargs; " \
|
||||
"bootm ${loadaddr}\0" \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From a9b4ba0446bd55d98243de2f3e3a747f8842811f Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:12:16 -0700
|
||||
Subject: [PATCH 16/51] env_nand.c: fail gracefully if no nand is present
|
||||
|
||||
---
|
||||
common/env_nand.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/common/env_nand.c b/common/env_nand.c
|
||||
index a15a950..325f112 100644
|
||||
--- a/common/env_nand.c
|
||||
+++ b/common/env_nand.c
|
||||
@@ -268,6 +268,10 @@ int readenv (size_t offset, u_char * buf)
|
||||
|
||||
u_char *char_ptr;
|
||||
|
||||
+ /* fail if no nand detected */
|
||||
+ if (nand_info[0].type == 0)
|
||||
+ return 1;
|
||||
+
|
||||
blocksize = nand_info[0].erasesize;
|
||||
len = min(blocksize, CONFIG_ENV_SIZE);
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
From 4c1682016b61262456acb9386ef69d0da4243db9 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:15:29 -0700
|
||||
Subject: [PATCH 17/51] OMAP3: add definitions to support sysinfo cpu and cpu family detection
|
||||
|
||||
---
|
||||
include/asm-arm/arch-omap3/cpu.h | 6 ------
|
||||
include/asm-arm/arch-omap3/omap3.h | 29 +++++++++++++++++++++++++++++
|
||||
2 files changed, 29 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/asm-arm/arch-omap3/cpu.h b/include/asm-arm/arch-omap3/cpu.h
|
||||
index f769571..d9eec7e 100644
|
||||
--- a/include/asm-arm/arch-omap3/cpu.h
|
||||
+++ b/include/asm-arm/arch-omap3/cpu.h
|
||||
@@ -60,12 +60,6 @@ struct ctrl {
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __KERNEL_STRICT_NAMES */
|
||||
|
||||
-/* cpu type */
|
||||
-#define OMAP3503 0x5c00
|
||||
-#define OMAP3515 0x1c00
|
||||
-#define OMAP3525 0x4c00
|
||||
-#define OMAP3530 0x0c00
|
||||
-
|
||||
#ifndef __KERNEL_STRICT_NAMES
|
||||
#ifndef __ASSEMBLY__
|
||||
struct ctrl_id {
|
||||
diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h
|
||||
index 1349b8b..3957c79 100644
|
||||
--- a/include/asm-arm/arch-omap3/omap3.h
|
||||
+++ b/include/asm-arm/arch-omap3/omap3.h
|
||||
@@ -184,4 +184,33 @@ struct gpio {
|
||||
#define WIDTH_8BIT 0x0000
|
||||
#define WIDTH_16BIT 0x1000 /* bit pos for 16 bit in gpmc */
|
||||
|
||||
+/*
|
||||
+ * Hawkeye values
|
||||
+ */
|
||||
+#define HAWKEYE_OMAP34XX 0xb7ae
|
||||
+#define HAWKEYE_AM35XX 0xb868
|
||||
+#define HAWKEYE_OMAP36XX 0xb891
|
||||
+
|
||||
+#define HAWKEYE_SHIFT 12
|
||||
+
|
||||
+/*
|
||||
+ * Define CPU families
|
||||
+ */
|
||||
+#define CPU_OMAP34XX 0x3400 /* OMAP34xx/OMAP35 devices */
|
||||
+#define CPU_AM35XX 0x3500 /* AM35xx devices */
|
||||
+#define CPU_OMAP36XX 0x3600 /* OMAP36xx devices */
|
||||
+
|
||||
+/*
|
||||
+ * Control status register values corresponding to cpu variants
|
||||
+ */
|
||||
+#define OMAP3503 0x5c00
|
||||
+#define OMAP3515 0x1c00
|
||||
+#define OMAP3525 0x4c00
|
||||
+#define OMAP3530 0x0c00
|
||||
+
|
||||
+#define AM3505 0x5c00
|
||||
+#define AM3517 0x1c00
|
||||
+
|
||||
+#define OMAP3730 0x0c00
|
||||
+
|
||||
#endif
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-196
@@ -1,196 +0,0 @@
|
||||
From f8a42576fac8349ae8ff9d6673b229f6b3103798 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:17:59 -0700
|
||||
Subject: [PATCH 18/51] OMAP3 sys_info: update cpu detection for 36XX/37XX
|
||||
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/sys_info.c | 137 ++++++++++++++++++++++++++++---------
|
||||
1 files changed, 105 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/sys_info.c b/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
index e227f67..e32a846 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/sys_info.c
|
||||
@@ -79,32 +79,72 @@ u32 get_cpu_type(void)
|
||||
}
|
||||
|
||||
/******************************************
|
||||
- * get_cpu_rev(void) - extract version info
|
||||
+ * get_cpu_id(void) - extract cpu id
|
||||
+ * returns 0 for ES1.0, cpuid otherwise
|
||||
******************************************/
|
||||
-u32 get_cpu_rev(void)
|
||||
+u32 get_cpu_id(void)
|
||||
{
|
||||
- u32 cpuid = 0;
|
||||
struct ctrl_id *id_base;
|
||||
+ u32 cpuid = 0;
|
||||
|
||||
/*
|
||||
* On ES1.0 the IDCODE register is not exposed on L4
|
||||
* so using CPU ID to differentiate between ES1.0 and > ES1.0.
|
||||
*/
|
||||
__asm__ __volatile__("mrc p15, 0, %0, c0, c0, 0":"=r"(cpuid));
|
||||
- if ((cpuid & 0xf) == 0x0)
|
||||
- return CPU_3XX_ES10;
|
||||
- else {
|
||||
+ if ((cpuid & 0xf) == 0x0) {
|
||||
+ return 0;
|
||||
+ } else {
|
||||
/* Decode the IDs on > ES1.0 */
|
||||
id_base = (struct ctrl_id *) OMAP34XX_ID_L4_IO_BASE;
|
||||
|
||||
- cpuid = (readl(&id_base->idcode) >> CPU_3XX_ID_SHIFT) & 0xf;
|
||||
+ cpuid = readl(&id_base->idcode);
|
||||
+ }
|
||||
|
||||
- /* Some early ES2.0 seem to report ID 0, fix this */
|
||||
- if(cpuid == 0)
|
||||
- cpuid = CPU_3XX_ES20;
|
||||
+ return cpuid;
|
||||
+}
|
||||
|
||||
- return cpuid;
|
||||
+/******************************************
|
||||
+ * get_cpu_family(void) - extract cpu info
|
||||
+ ******************************************/
|
||||
+u32 get_cpu_family(void)
|
||||
+{
|
||||
+ u16 hawkeye;
|
||||
+ u32 cpu_family;
|
||||
+ u32 cpuid = get_cpu_id();
|
||||
+
|
||||
+ if (cpuid == 0)
|
||||
+ return CPU_OMAP34XX;
|
||||
+
|
||||
+ hawkeye = (cpuid >> HAWKEYE_SHIFT) & 0xffff;
|
||||
+ switch(hawkeye) {
|
||||
+ case HAWKEYE_OMAP34XX:
|
||||
+ cpu_family = CPU_OMAP34XX;
|
||||
+ break;
|
||||
+ case HAWKEYE_AM35XX:
|
||||
+ cpu_family = CPU_AM35XX;
|
||||
+ break;
|
||||
+ case HAWKEYE_OMAP36XX:
|
||||
+ cpu_family = CPU_OMAP36XX;
|
||||
+ break;
|
||||
+ default:
|
||||
+ cpu_family = CPU_OMAP34XX;
|
||||
}
|
||||
+
|
||||
+ return cpu_family;
|
||||
+}
|
||||
+
|
||||
+/******************************************
|
||||
+ * get_cpu_rev(void) - extract version info
|
||||
+ ******************************************/
|
||||
+u32 get_cpu_rev(void)
|
||||
+{
|
||||
+ u32 cpuid = get_cpu_id();
|
||||
+
|
||||
+ if (cpuid == 0)
|
||||
+ return CPU_3XX_ES10;
|
||||
+ else
|
||||
+ return (cpuid >> CPU_3XX_ID_SHIFT) & 0xf;
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
@@ -267,24 +307,57 @@ u32 get_device_type(void)
|
||||
*/
|
||||
int print_cpuinfo (void)
|
||||
{
|
||||
- char *cpu_s, *sec_s;
|
||||
-
|
||||
- switch (get_cpu_type()) {
|
||||
- case OMAP3503:
|
||||
- cpu_s = "3503";
|
||||
- break;
|
||||
- case OMAP3515:
|
||||
- cpu_s = "3515";
|
||||
+ char *cpu_family_s, *cpu_s, *sec_s;
|
||||
+
|
||||
+ switch(get_cpu_family()) {
|
||||
+ case CPU_OMAP34XX:
|
||||
+ cpu_family_s = "OMAP";
|
||||
+ switch (get_cpu_type()) {
|
||||
+ case OMAP3503:
|
||||
+ cpu_s = "3503";
|
||||
+ break;
|
||||
+ case OMAP3515:
|
||||
+ cpu_s = "3515";
|
||||
+ break;
|
||||
+ case OMAP3525:
|
||||
+ cpu_s = "3525";
|
||||
+ break;
|
||||
+ case OMAP3530:
|
||||
+ cpu_s = "3530";
|
||||
+ break;
|
||||
+ default:
|
||||
+ cpu_s = "35XX";
|
||||
+ break;
|
||||
+ }
|
||||
break;
|
||||
- case OMAP3525:
|
||||
- cpu_s = "3525";
|
||||
+ case CPU_AM35XX:
|
||||
+ cpu_family_s = "AM";
|
||||
+ switch (get_cpu_type()) {
|
||||
+ case AM3505:
|
||||
+ cpu_s = "3505";
|
||||
+ break;
|
||||
+ case AM3517:
|
||||
+ cpu_s = "3517";
|
||||
+ break;
|
||||
+ default:
|
||||
+ cpu_s = "35XX";
|
||||
+ break;
|
||||
+ }
|
||||
break;
|
||||
- case OMAP3530:
|
||||
- cpu_s = "3530";
|
||||
+ case CPU_OMAP36XX:
|
||||
+ cpu_family_s = "OMAP";
|
||||
+ switch (get_cpu_type()) {
|
||||
+ case OMAP3730:
|
||||
+ cpu_s = "3630/3730";
|
||||
+ break;
|
||||
+ default:
|
||||
+ cpu_s = "36XX/37XX";
|
||||
+ break;
|
||||
+ }
|
||||
break;
|
||||
default:
|
||||
+ cpu_family_s = "OMAP";
|
||||
cpu_s = "35XX";
|
||||
- break;
|
||||
}
|
||||
|
||||
switch (get_device_type()) {
|
||||
@@ -304,16 +377,16 @@ int print_cpuinfo (void)
|
||||
sec_s = "?";
|
||||
}
|
||||
|
||||
- printf("OMAP%s-%s ES%s, CPU-OPP2, L3-165MHz, ",
|
||||
- cpu_s, sec_s, rev_s[get_cpu_rev()]);
|
||||
+ printf("%s%s-%s ES%s, CPU-OPP2, L3-165MHz, ",
|
||||
+ cpu_family_s, cpu_s, sec_s, rev_s[get_cpu_rev()]);
|
||||
|
||||
- printf("Max clock-");
|
||||
- if ((get_cpu_rev() >= CPU_3XX_ES31) && (get_sku_id() == SKUID_CLK_720MHZ))
|
||||
- printf("720Mhz\n");
|
||||
- else printf("600Mhz\n");
|
||||
+ if (get_cpu_family() == CPU_OMAP34XX)
|
||||
+ if ((get_cpu_rev() >= CPU_3XX_ES31) &&
|
||||
+ (get_sku_id() == SKUID_CLK_720MHZ))
|
||||
+ printf("Max clock-720Mhz\n");
|
||||
+ else printf("Max clock-600Mhz\n");
|
||||
+ else printf("\n");
|
||||
|
||||
-
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_DISPLAY_CPUINFO */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,826 +0,0 @@
|
||||
From 276236da04d67dfad61ccab5d4700613ae8527f9 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:20:56 -0700
|
||||
Subject: [PATCH 19/51] OMAP3: clocks: update clock setup for 36XX/37XX
|
||||
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/clock.c | 559 +++++++++++++++++++++--------
|
||||
cpu/arm_cortexa8/omap3/lowlevel_init.S | 69 ++++
|
||||
include/asm-arm/arch-omap3/clocks.h | 17 +
|
||||
include/asm-arm/arch-omap3/clocks_omap3.h | 27 ++
|
||||
4 files changed, 525 insertions(+), 147 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/clock.c b/cpu/arm_cortexa8/omap3/clock.c
|
||||
index 6330c9e..538a183 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/clock.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/clock.c
|
||||
@@ -47,17 +47,12 @@ u32 get_osc_clk_speed(void)
|
||||
struct s32ktimer *s32k_base = (struct s32ktimer *)SYNC_32KTIMER_BASE;
|
||||
|
||||
val = readl(&prm_base->clksrc_ctrl);
|
||||
-
|
||||
if (val & SYSCLKDIV_2)
|
||||
cdiv = 2;
|
||||
- else if (val & SYSCLKDIV_1)
|
||||
- cdiv = 1;
|
||||
else
|
||||
- /*
|
||||
- * Should never reach here! (Assume divider as 1)
|
||||
- */
|
||||
cdiv = 1;
|
||||
|
||||
+
|
||||
/* enable timer2 */
|
||||
val = readl(&prcm_base->clksel_wkup) | CLKSEL_GPT1;
|
||||
|
||||
@@ -67,7 +62,6 @@ u32 get_osc_clk_speed(void)
|
||||
/* Enable I and F Clocks for GPT1 */
|
||||
val = readl(&prcm_base->iclken_wkup) | EN_GPT1 | EN_32KSYNC;
|
||||
writel(val, &prcm_base->iclken_wkup);
|
||||
-
|
||||
val = readl(&prcm_base->fclken_wkup) | EN_GPT1;
|
||||
writel(val, &prcm_base->fclken_wkup);
|
||||
|
||||
@@ -87,13 +81,10 @@ u32 get_osc_clk_speed(void)
|
||||
|
||||
/* wait for 40 cycles */
|
||||
while (readl(&s32k_base->s32k_cr) < (start + 20)) ;
|
||||
+
|
||||
cend = readl(&gpt1_base->tcrr); /* get end sys_clk count */
|
||||
cdiff = cend - cstart; /* get elapsed ticks */
|
||||
-
|
||||
- if (cdiv == 2)
|
||||
- {
|
||||
- cdiff *= 2;
|
||||
- }
|
||||
+ cdiff *= cdiv;
|
||||
|
||||
/* based on number of ticks assign speed */
|
||||
if (cdiff > 19000)
|
||||
@@ -135,65 +126,25 @@ void get_sys_clkin_sel(u32 osc_clk, u32 *sys_clkin_sel)
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * OMAP3530 specific functions
|
||||
+ */
|
||||
+
|
||||
/******************************************************************************
|
||||
- * prcm_init() - inits clocks for PRCM as defined in clocks.h
|
||||
- * called from SRAM, or Flash (using temp SRAM stack).
|
||||
+ * Initialize CORE DPLL for OMAP34x/35x
|
||||
*****************************************************************************/
|
||||
-void prcm_init(void)
|
||||
+static void dpll3_init_34xx(u32 sil_index, u32 clk_index)
|
||||
{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_core_dpll_param();
|
||||
void (*f_lock_pll) (u32, u32, u32, u32);
|
||||
int xip_safe, p0, p1, p2, p3;
|
||||
- u32 osc_clk = 0, sys_clkin_sel;
|
||||
- u32 clk_index, sil_index = 0;
|
||||
- struct prm *prm_base = (struct prm *)PRM_BASE;
|
||||
- struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
- dpll_param *dpll_param_p;
|
||||
-
|
||||
- f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start +
|
||||
- SRAM_VECT_CODE);
|
||||
|
||||
xip_safe = is_running_in_sram();
|
||||
|
||||
- /*
|
||||
- * Gauge the input clock speed and find out the sys_clkin_sel
|
||||
- * value corresponding to the input clock.
|
||||
- */
|
||||
- osc_clk = get_osc_clk_speed();
|
||||
- get_sys_clkin_sel(osc_clk, &sys_clkin_sel);
|
||||
+ /* Moving to the right sysclk and ES rev base */
|
||||
+ ptr = ptr + (3 * clk_index) + sil_index;
|
||||
|
||||
- /* set input crystal speed */
|
||||
- sr32(&prm_base->clksel, 0, 3, sys_clkin_sel);
|
||||
-
|
||||
- /* If the input clock is greater than 19.2M always divide/2 */
|
||||
- if (sys_clkin_sel > 2) {
|
||||
- /* input clock divider */
|
||||
- sr32(&prm_base->clksrc_ctrl, 6, 2, 2);
|
||||
- clk_index = sys_clkin_sel / 2;
|
||||
- } else {
|
||||
- /* input clock divider */
|
||||
- sr32(&prm_base->clksrc_ctrl, 6, 2, 1);
|
||||
- clk_index = sys_clkin_sel;
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * The DPLL tables are defined according to sysclk value and
|
||||
- * silicon revision. The clk_index value will be used to get
|
||||
- * the values for that input sysclk from the DPLL param table
|
||||
- * and sil_index will get the values for that SysClk for the
|
||||
- * appropriate silicon rev.
|
||||
- */
|
||||
- if (get_cpu_rev())
|
||||
- sil_index = 1;
|
||||
-
|
||||
- /* Unlock MPU DPLL (slows things down, and needed later) */
|
||||
- sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS);
|
||||
- wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu, LDELAY);
|
||||
-
|
||||
- /* Getting the base address of Core DPLL param table */
|
||||
- dpll_param_p = (dpll_param *) get_core_dpll_param();
|
||||
-
|
||||
- /* Moving it to the right sysclk and ES rev base */
|
||||
- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index;
|
||||
if (xip_safe) {
|
||||
/*
|
||||
* CORE DPLL
|
||||
@@ -208,34 +159,38 @@ void prcm_init(void)
|
||||
* work. write another value and then default value.
|
||||
*/
|
||||
|
||||
- /* m3x2 */
|
||||
- sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2 + 1);
|
||||
- /* m3x2 */
|
||||
+ /* CM_CLKSEL1_EMU[DIV_DPLL3] */
|
||||
+ sr32(&prcm_base->clksel1_emu, 16, 5, (CORE_M3X2 + 1)) ;
|
||||
sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2);
|
||||
- /* Set M2 */
|
||||
- sr32(&prcm_base->clksel1_pll, 27, 2, dpll_param_p->m2);
|
||||
- /* Set M */
|
||||
- sr32(&prcm_base->clksel1_pll, 16, 11, dpll_param_p->m);
|
||||
- /* Set N */
|
||||
- sr32(&prcm_base->clksel1_pll, 8, 7, dpll_param_p->n);
|
||||
- /* 96M Src */
|
||||
+
|
||||
+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 27, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 16, 11, ptr->m);
|
||||
+
|
||||
+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 8, 7, ptr->n);
|
||||
+
|
||||
+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */
|
||||
sr32(&prcm_base->clksel1_pll, 6, 1, 0);
|
||||
- /* ssi */
|
||||
+
|
||||
+ /* SSI */
|
||||
sr32(&prcm_base->clksel_core, 8, 4, CORE_SSI_DIV);
|
||||
- /* fsusb */
|
||||
+ /* FSUSB */
|
||||
sr32(&prcm_base->clksel_core, 4, 2, CORE_FUSB_DIV);
|
||||
- /* l4 */
|
||||
+ /* L4 */
|
||||
sr32(&prcm_base->clksel_core, 2, 2, CORE_L4_DIV);
|
||||
- /* l3 */
|
||||
+ /* L3 */
|
||||
sr32(&prcm_base->clksel_core, 0, 2, CORE_L3_DIV);
|
||||
- /* gfx */
|
||||
- sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV);
|
||||
- /* reset mgr */
|
||||
+ /* GFX */
|
||||
+ sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV);
|
||||
+ /* RESET MGR */
|
||||
sr32(&prcm_base->clksel_wkup, 1, 2, WKUP_RSM);
|
||||
- /* FREQSEL */
|
||||
- sr32(&prcm_base->clken_pll, 4, 4, dpll_param_p->fsel);
|
||||
- /* lock mode */
|
||||
- sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK);
|
||||
+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */
|
||||
+ sr32(&prcm_base->clken_pll, 4, 4, ptr->fsel);
|
||||
+ /* LOCK MODE */
|
||||
+ sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK);
|
||||
|
||||
wait_on_value(ST_CORE_CLK, 1, &prcm_base->idlest_ckgen,
|
||||
LDELAY);
|
||||
@@ -244,102 +199,411 @@ void prcm_init(void)
|
||||
* if running from flash, jump to small relocated code
|
||||
* area in SRAM.
|
||||
*/
|
||||
+ f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start +
|
||||
+ SRAM_VECT_CODE);
|
||||
+
|
||||
p0 = readl(&prcm_base->clken_pll);
|
||||
sr32(&p0, 0, 3, PLL_FAST_RELOCK_BYPASS);
|
||||
- sr32(&p0, 4, 4, dpll_param_p->fsel); /* FREQSEL */
|
||||
+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */
|
||||
+ sr32(&p0, 4, 4, ptr->fsel);
|
||||
|
||||
p1 = readl(&prcm_base->clksel1_pll);
|
||||
- sr32(&p1, 27, 2, dpll_param_p->m2); /* Set M2 */
|
||||
- sr32(&p1, 16, 11, dpll_param_p->m); /* Set M */
|
||||
- sr32(&p1, 8, 7, dpll_param_p->n); /* Set N */
|
||||
- sr32(&p1, 6, 1, 0); /* set source for 96M */
|
||||
+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */
|
||||
+ sr32(&p1, 27, 5, ptr->m2);
|
||||
+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */
|
||||
+ sr32(&p1, 16, 11, ptr->m);
|
||||
+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */
|
||||
+ sr32(&p1, 8, 7, ptr->n);
|
||||
+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */
|
||||
+ sr32(&p1, 6, 1, 0);
|
||||
|
||||
p2 = readl(&prcm_base->clksel_core);
|
||||
- sr32(&p2, 8, 4, CORE_SSI_DIV); /* ssi */
|
||||
- sr32(&p2, 4, 2, CORE_FUSB_DIV); /* fsusb */
|
||||
- sr32(&p2, 2, 2, CORE_L4_DIV); /* l4 */
|
||||
- sr32(&p2, 0, 2, CORE_L3_DIV); /* l3 */
|
||||
+ /* SSI */
|
||||
+ sr32(&p2, 8, 4, CORE_SSI_DIV);
|
||||
+ /* FSUSB */
|
||||
+ sr32(&p2, 4, 2, CORE_FUSB_DIV);
|
||||
+ /* L4 */
|
||||
+ sr32(&p2, 2, 2, CORE_L4_DIV);
|
||||
+ /* L3 */
|
||||
+ sr32(&p2, 0, 2, CORE_L3_DIV);
|
||||
|
||||
p3 = (u32)&prcm_base->idlest_ckgen;
|
||||
|
||||
(*f_lock_pll) (p0, p1, p2, p3);
|
||||
}
|
||||
+}
|
||||
|
||||
- /* PER DPLL */
|
||||
- sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP);
|
||||
- wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY);
|
||||
-
|
||||
- /* Getting the base address to PER DPLL param table */
|
||||
-
|
||||
- /* Set N */
|
||||
- dpll_param_p = (dpll_param *) get_per_dpll_param();
|
||||
+/******************************************************************************
|
||||
+ * Initialize PER DPLL for OMAP34x/35x
|
||||
+ *****************************************************************************/
|
||||
+static void dpll4_init_34xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_per_dpll_param();
|
||||
|
||||
/* Moving it to the right sysclk base */
|
||||
- dpll_param_p = dpll_param_p + clk_index;
|
||||
+ ptr = ptr + clk_index;
|
||||
+
|
||||
+ /* EN_PERIPH_DPLL: CM_CLKEN_PLL[16:18] */
|
||||
+ sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP);
|
||||
+ wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY);
|
||||
|
||||
/*
|
||||
* Errata 1.50 Workaround for OMAP3 ES1.0 only
|
||||
* If using default divisors, write default divisor + 1
|
||||
* and then the actual divisor value
|
||||
*/
|
||||
- sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2 + 1); /* set M6 */
|
||||
- sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2); /* set M6 */
|
||||
- sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2 + 1); /* set M5 */
|
||||
- sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2); /* set M5 */
|
||||
- sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2 + 1); /* set M4 */
|
||||
- sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2); /* set M4 */
|
||||
- sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2 + 1); /* set M3 */
|
||||
- sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2); /* set M3 */
|
||||
- sr32(&prcm_base->clksel3_pll, 0, 5, dpll_param_p->m2 + 1); /* set M2 */
|
||||
- sr32(&prcm_base->clksel3_pll, 0, 5, dpll_param_p->m2); /* set M2 */
|
||||
+ /* M6 */
|
||||
+ sr32(&prcm_base->clksel1_emu, 24, 5, (PER_M6X2 + 1));
|
||||
+ sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2);
|
||||
+ /* M5 */
|
||||
+ sr32(&prcm_base->clksel_cam, 0, 5, (PER_M5X2 + 1));
|
||||
+ sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2);
|
||||
+ /* M4 */
|
||||
+ sr32(&prcm_base->clksel_dss, 0, 5, (PER_M4X2 + 1));
|
||||
+ sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2);
|
||||
+ /* M3 */
|
||||
+ sr32(&prcm_base->clksel_dss, 8, 5, (PER_M3X2 + 1));
|
||||
+ sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2);
|
||||
+ /* M2 (DIV_96M): CM_CLKSEL3_PLL[0:4] */
|
||||
+ sr32(&prcm_base->clksel3_pll, 0, 5, (ptr->m2 + 1));
|
||||
+ sr32(&prcm_base->clksel3_pll, 0, 5, ptr->m2);
|
||||
/* Workaround end */
|
||||
|
||||
- sr32(&prcm_base->clksel2_pll, 8, 11, dpll_param_p->m); /* set m */
|
||||
- sr32(&prcm_base->clksel2_pll, 0, 7, dpll_param_p->n); /* set n */
|
||||
- sr32(&prcm_base->clken_pll, 20, 4, dpll_param_p->fsel); /* FREQSEL */
|
||||
- sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK); /* lock mode */
|
||||
+ /* M (PERIPH_DPLL_MULT): CM_CLKSEL2_PLL[8:18] */
|
||||
+ sr32(&prcm_base->clksel2_pll, 8, 11, ptr->m);
|
||||
+
|
||||
+ /* N (PERIPH_DPLL_DIV): CM_CLKSEL2_PLL[0:6] */
|
||||
+ sr32(&prcm_base->clksel2_pll, 0, 7, ptr->n);
|
||||
+
|
||||
+ /* FREQSEL (PERIPH_DPLL_FREQSEL): CM_CLKEN_PLL[20:23] */
|
||||
+ sr32(&prcm_base->clken_pll, 20, 4, ptr->fsel);
|
||||
+
|
||||
+ /* LOCK MODE (EN_PERIPH_DPLL): CM_CLKEN_PLL[16:18] */
|
||||
+ sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK);
|
||||
wait_on_value(ST_PERIPH_CLK, 2, &prcm_base->idlest_ckgen, LDELAY);
|
||||
+}
|
||||
|
||||
- /* Getting the base address to MPU DPLL param table */
|
||||
- dpll_param_p = (dpll_param *) get_mpu_dpll_param();
|
||||
+static void mpu_init_34xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_mpu_dpll_param();
|
||||
|
||||
- /* Moving it to the right sysclk and ES rev base */
|
||||
- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index;
|
||||
+ /* Moving to the right sysclk and ES rev base */
|
||||
+ ptr = ptr + (3 * clk_index) + sil_index;
|
||||
|
||||
/* MPU DPLL (unlocked already) */
|
||||
|
||||
- /* Set M2 */
|
||||
- sr32(&prcm_base->clksel2_pll_mpu, 0, 5, dpll_param_p->m2);
|
||||
- /* Set M */
|
||||
- sr32(&prcm_base->clksel1_pll_mpu, 8, 11, dpll_param_p->m);
|
||||
- /* Set N */
|
||||
- sr32(&prcm_base->clksel1_pll_mpu, 0, 7, dpll_param_p->n);
|
||||
- /* FREQSEL */
|
||||
- sr32(&prcm_base->clken_pll_mpu, 4, 4, dpll_param_p->fsel);
|
||||
- /* lock mode */
|
||||
- sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK);
|
||||
- wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu, LDELAY);
|
||||
-
|
||||
- /* Getting the base address to IVA DPLL param table */
|
||||
- dpll_param_p = (dpll_param *) get_iva_dpll_param();
|
||||
-
|
||||
- /* Moving it to the right sysclk and ES rev base */
|
||||
- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index;
|
||||
-
|
||||
- /* IVA DPLL (set to 12*20=240MHz) */
|
||||
+ /* M2 (MPU_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_MPU[0:4] */
|
||||
+ sr32(&prcm_base->clksel2_pll_mpu, 0, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (MPU_DPLL_MULT) : CM_CLKSEL2_PLL_MPU[8:18] */
|
||||
+ sr32(&prcm_base->clksel1_pll_mpu, 8, 11, ptr->m);
|
||||
+
|
||||
+ /* N (MPU_DPLL_DIV) : CM_CLKSEL2_PLL_MPU[0:6] */
|
||||
+ sr32(&prcm_base->clksel1_pll_mpu, 0, 7, ptr->n);
|
||||
+
|
||||
+ /* FREQSEL (MPU_DPLL_FREQSEL) : CM_CLKEN_PLL_MPU[4:7] */
|
||||
+ sr32(&prcm_base->clken_pll_mpu, 4, 4, ptr->fsel);
|
||||
+}
|
||||
+
|
||||
+static void iva_init_34xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_iva_dpll_param();
|
||||
+
|
||||
+ /* Moving to the right sysclk and ES rev base */
|
||||
+ ptr = ptr + (3 * clk_index) + sil_index;
|
||||
+
|
||||
+ /* IVA DPLL */
|
||||
+ /* EN_IVA2_DPLL : CM_CLKEN_PLL_IVA2[0:2] */
|
||||
sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_STOP);
|
||||
wait_on_value(ST_IVA2_CLK, 0, &prcm_base->idlest_pll_iva2, LDELAY);
|
||||
- /* set M2 */
|
||||
- sr32(&prcm_base->clksel2_pll_iva2, 0, 5, dpll_param_p->m2);
|
||||
- /* set M */
|
||||
- sr32(&prcm_base->clksel1_pll_iva2, 8, 11, dpll_param_p->m);
|
||||
- /* set N */
|
||||
- sr32(&prcm_base->clksel1_pll_iva2, 0, 7, dpll_param_p->n);
|
||||
- /* FREQSEL */
|
||||
- sr32(&prcm_base->clken_pll_iva2, 4, 4, dpll_param_p->fsel);
|
||||
- /* lock mode */
|
||||
+
|
||||
+ /* M2 (IVA2_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_IVA2[0:4] */
|
||||
+ sr32(&prcm_base->clksel2_pll_iva2, 0, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (IVA2_DPLL_MULT) : CM_CLKSEL1_PLL_IVA2[8:18] */
|
||||
+ sr32(&prcm_base->clksel1_pll_iva2, 8, 11, ptr->m);
|
||||
+
|
||||
+ /* N (IVA2_DPLL_DIV) : CM_CLKSEL1_PLL_IVA2[0:6] */
|
||||
+ sr32(&prcm_base->clksel1_pll_iva2, 0, 7, ptr->n);
|
||||
+
|
||||
+ /* FREQSEL (IVA2_DPLL_FREQSEL) : CM_CLKEN_PLL_IVA2[4:7] */
|
||||
+ sr32(&prcm_base->clken_pll_iva2, 4, 4, ptr->fsel);
|
||||
+
|
||||
+ /* LOCK MODE (EN_IVA2_DPLL) : CM_CLKEN_PLL_IVA2[0:2] */
|
||||
sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_LOCK);
|
||||
+
|
||||
wait_on_value(ST_IVA2_CLK, 1, &prcm_base->idlest_pll_iva2, LDELAY);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * OMAP3630 specific functions
|
||||
+ */
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * Initialize PER DPLL for OMAP36x/37x
|
||||
+ *****************************************************************************/
|
||||
+static void dpll3_init_36xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_36x_core_dpll_param();
|
||||
+ void (*f_lock_pll) (u32, u32, u32, u32);
|
||||
+ int xip_safe, p0, p1, p2, p3;
|
||||
+
|
||||
+ xip_safe = is_running_in_sram();
|
||||
+
|
||||
+ /* Moving it to the right sysclk base */
|
||||
+ ptr += clk_index;
|
||||
+
|
||||
+ if (xip_safe) {
|
||||
+ /* CORE DPLL */
|
||||
+
|
||||
+ /* Select relock bypass: CM_CLKEN_PLL[0:2] */
|
||||
+ sr32(&prcm_base->clken_pll, 0, 3, PLL_FAST_RELOCK_BYPASS);
|
||||
+ wait_on_value(ST_CORE_CLK, 0, &prcm_base->idlest_ckgen,
|
||||
+ LDELAY);
|
||||
+
|
||||
+ /* CM_CLKSEL1_EMU[DIV_DPLL3] */
|
||||
+ sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2);
|
||||
+
|
||||
+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 27, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 16, 11, ptr->m);
|
||||
+
|
||||
+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 8, 7, ptr->n);
|
||||
+
|
||||
+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */
|
||||
+ sr32(&prcm_base->clksel1_pll, 6, 1, 0);
|
||||
+
|
||||
+ /* SSI */
|
||||
+ sr32(&prcm_base->clksel_core, 8, 4, CORE_SSI_DIV);
|
||||
+ /* FSUSB */
|
||||
+ sr32(&prcm_base->clksel_core, 4, 2, CORE_FUSB_DIV);
|
||||
+ /* L4 */
|
||||
+ sr32(&prcm_base->clksel_core, 2, 2, CORE_L4_DIV);
|
||||
+ /* L3 */
|
||||
+ sr32(&prcm_base->clksel_core, 0, 2, CORE_L3_DIV);
|
||||
+ /* GFX */
|
||||
+ sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV);
|
||||
+ /* RESET MGR */
|
||||
+ sr32(&prcm_base->clksel_wkup, 1, 2, WKUP_RSM);
|
||||
+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */
|
||||
+ sr32(&prcm_base->clken_pll, 4, 4, ptr->fsel);
|
||||
+ /* LOCK MODE */
|
||||
+ sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK);
|
||||
+
|
||||
+ wait_on_value(ST_CORE_CLK, 1, &prcm_base->idlest_ckgen,
|
||||
+ LDELAY);
|
||||
+ } else if (is_running_in_flash()) {
|
||||
+ /*
|
||||
+ * if running from flash, jump to small relocated code
|
||||
+ * area in SRAM.
|
||||
+ */
|
||||
+ f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start +
|
||||
+ SRAM_VECT_CODE);
|
||||
+
|
||||
+ p0 = readl(&prcm_base->clken_pll);
|
||||
+ sr32(&p0, 0, 3, PLL_FAST_RELOCK_BYPASS);
|
||||
+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */
|
||||
+ sr32(&p0, 4, 4, ptr->fsel);
|
||||
+
|
||||
+ p1 = readl(&prcm_base->clksel1_pll);
|
||||
+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */
|
||||
+ sr32(&p1, 27, 5, ptr->m2);
|
||||
+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */
|
||||
+ sr32(&p1, 16, 11, ptr->m);
|
||||
+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */
|
||||
+ sr32(&p1, 8, 7, ptr->n);
|
||||
+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */
|
||||
+ sr32(&p1, 6, 1, 0);
|
||||
+
|
||||
+ p2 = readl(&prcm_base->clksel_core);
|
||||
+ /* SSI */
|
||||
+ sr32(&p2, 8, 4, CORE_SSI_DIV);
|
||||
+ /* FSUSB */
|
||||
+ sr32(&p2, 4, 2, CORE_FUSB_DIV);
|
||||
+ /* L4 */
|
||||
+ sr32(&p2, 2, 2, CORE_L4_DIV);
|
||||
+ /* L3 */
|
||||
+ sr32(&p2, 0, 2, CORE_L3_DIV);
|
||||
+
|
||||
+ p3 = (u32)&prcm_base->idlest_ckgen;
|
||||
+
|
||||
+ (*f_lock_pll) (p0, p1, p2, p3);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void dpll4_init_36xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ struct dpll_per_36x_param *ptr;
|
||||
+
|
||||
+ ptr = (struct dpll_per_36x_param *)get_36x_per_dpll_param();
|
||||
+
|
||||
+ /* Moving it to the right sysclk base */
|
||||
+ ptr += clk_index;
|
||||
+
|
||||
+ /* EN_PERIPH_DPLL: CM_CLKEN_PLL[16:18] */
|
||||
+ sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP);
|
||||
+ wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY);
|
||||
+
|
||||
+ /* M6 (DIV_DPLL4): CM_CLKSEL1_EMU[24:29] */
|
||||
+ sr32(&prcm_base->clksel1_emu, 24, 6, ptr->m6);
|
||||
+
|
||||
+ /* M5 (CLKSEL_CAM): CM_CLKSEL1_EMU[0:5] */
|
||||
+ sr32(&prcm_base->clksel_cam, 0, 6, ptr->m5);
|
||||
+
|
||||
+ /* M4 (CLKSEL_DSS1): CM_CLKSEL_DSS[0:5] */
|
||||
+ sr32(&prcm_base->clksel_dss, 0, 6, ptr->m4);
|
||||
+
|
||||
+ /* M3 (CLKSEL_DSS1): CM_CLKSEL_DSS[8:13] */
|
||||
+ sr32(&prcm_base->clksel_dss, 8, 6, ptr->m3);
|
||||
+
|
||||
+ /* M2 (DIV_96M): CM_CLKSEL3_PLL[0:4] */
|
||||
+ sr32(&prcm_base->clksel3_pll, 0, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (PERIPH_DPLL_MULT): CM_CLKSEL2_PLL[8:19] */
|
||||
+ sr32(&prcm_base->clksel2_pll, 8, 12, ptr->m);
|
||||
+
|
||||
+ /* N (PERIPH_DPLL_DIV): CM_CLKSEL2_PLL[0:6] */
|
||||
+ sr32(&prcm_base->clksel2_pll, 0, 7, ptr->n);
|
||||
+
|
||||
+ /* M2DIV (CLKSEL_96M): CM_CLKSEL_CORE[12:13] */
|
||||
+ sr32(&prcm_base->clksel_core, 12, 2, ptr->m2div);
|
||||
+
|
||||
+ /* LOCK MODE (EN_PERIPH_DPLL): CM_CLKEN_PLL[16:18] */
|
||||
+ sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK);
|
||||
+ wait_on_value(ST_PERIPH_CLK, 2, &prcm_base->idlest_ckgen, LDELAY);
|
||||
+}
|
||||
+
|
||||
+static void mpu_init_36xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *) get_36x_mpu_dpll_param();
|
||||
+
|
||||
+ /* Moving to the right sysclk */
|
||||
+ ptr += clk_index;
|
||||
+
|
||||
+ /* MPU DPLL (unlocked already */
|
||||
+
|
||||
+ /* M2 (MPU_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_MPU[0:4] */
|
||||
+ sr32(&prcm_base->clksel2_pll_mpu, 0, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (MPU_DPLL_MULT) : CM_CLKSEL2_PLL_MPU[8:18] */
|
||||
+ sr32(&prcm_base->clksel1_pll_mpu, 8, 11, ptr->m);
|
||||
+
|
||||
+ /* N (MPU_DPLL_DIV) : CM_CLKSEL2_PLL_MPU[0:6] */
|
||||
+ sr32(&prcm_base->clksel1_pll_mpu, 0, 7, ptr->n);
|
||||
+}
|
||||
+
|
||||
+static void iva_init_36xx(u32 sil_index, u32 clk_index)
|
||||
+{
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+ dpll_param *ptr = (dpll_param *)get_36x_iva_dpll_param();
|
||||
+
|
||||
+ /* Moving to the right sysclk */
|
||||
+ ptr += clk_index;
|
||||
+
|
||||
+ /* IVA DPLL */
|
||||
+ /* EN_IVA2_DPLL : CM_CLKEN_PLL_IVA2[0:2] */
|
||||
+ sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_STOP);
|
||||
+ wait_on_value(ST_IVA2_CLK, 0, &prcm_base->idlest_pll_iva2, LDELAY);
|
||||
+
|
||||
+ /* M2 (IVA2_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_IVA2[0:4] */
|
||||
+ sr32(&prcm_base->clksel2_pll_iva2, 0, 5, ptr->m2);
|
||||
+
|
||||
+ /* M (IVA2_DPLL_MULT) : CM_CLKSEL1_PLL_IVA2[8:18] */
|
||||
+ sr32(&prcm_base->clksel1_pll_iva2, 8, 11, ptr->m);
|
||||
+
|
||||
+ /* N (IVA2_DPLL_DIV) : CM_CLKSEL1_PLL_IVA2[0:6] */
|
||||
+ sr32(&prcm_base->clksel1_pll_iva2, 0, 7, ptr->n);
|
||||
+
|
||||
+ /* LOCK (MODE (EN_IVA2_DPLL) : CM_CLKEN_PLL_IVA2[0:2] */
|
||||
+ sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_LOCK);
|
||||
+
|
||||
+ wait_on_value(ST_IVA2_CLK, 1, &prcm_base->idlest_pll_iva2, LDELAY);
|
||||
+}
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * prcm_init() - inits clocks for PRCM as defined in clocks.h
|
||||
+ * called from SRAM, or Flash (using temp SRAM stack).
|
||||
+ *****************************************************************************/
|
||||
+void prcm_init(void)
|
||||
+{
|
||||
+ u32 osc_clk = 0, sys_clkin_sel;
|
||||
+ u32 clk_index, sil_index = 0;
|
||||
+ struct prm *prm_base = (struct prm *)PRM_BASE;
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
+
|
||||
+ /*
|
||||
+ * Gauge the input clock speed and find out the sys_clkin_sel
|
||||
+ * value corresponding to the input clock.
|
||||
+ */
|
||||
+ osc_clk = get_osc_clk_speed();
|
||||
+ get_sys_clkin_sel(osc_clk, &sys_clkin_sel);
|
||||
+
|
||||
+ /* set input crystal speed */
|
||||
+ sr32(&prm_base->clksel, 0, 3, sys_clkin_sel);
|
||||
+
|
||||
+ /* If the input clock is greater than 19.2M always divide/2 */
|
||||
+ if (sys_clkin_sel > 2) {
|
||||
+ /* input clock divider */
|
||||
+ sr32(&prm_base->clksrc_ctrl, 6, 2, 2);
|
||||
+ clk_index = sys_clkin_sel / 2;
|
||||
+ } else {
|
||||
+ /* input clock divider */
|
||||
+ sr32(&prm_base->clksrc_ctrl, 6, 2, 1);
|
||||
+ clk_index = sys_clkin_sel;
|
||||
+ }
|
||||
+
|
||||
+ if (get_cpu_family() == CPU_OMAP36XX) {
|
||||
+ /* Unlock MPU DPLL (slows things down, and needed later) */
|
||||
+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS);
|
||||
+ wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu,
|
||||
+ LDELAY);
|
||||
+
|
||||
+ dpll3_init_36xx(0, clk_index);
|
||||
+ dpll4_init_36xx(0, clk_index);
|
||||
+ iva_init_36xx(0, clk_index);
|
||||
+ mpu_init_36xx(0, clk_index);
|
||||
+
|
||||
+ /* Lock MPU DPLL to set frequency */
|
||||
+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK);
|
||||
+ wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu,
|
||||
+ LDELAY);
|
||||
+ } else {
|
||||
+ /*
|
||||
+ * The DPLL tables are defined according to sysclk value and
|
||||
+ * silicon revision. The clk_index value will be used to get
|
||||
+ * the values for that input sysclk from the DPLL param table
|
||||
+ * and sil_index will get the values for that SysClk for the
|
||||
+ * appropriate silicon rev.
|
||||
+ */
|
||||
+ if (((get_cpu_family() == CPU_OMAP34XX)
|
||||
+ && (get_cpu_rev() >= CPU_3XX_ES20)) ||
|
||||
+ (get_cpu_family() == CPU_AM35XX))
|
||||
+ sil_index = 1;
|
||||
+
|
||||
+ /* Unlock MPU DPLL (slows things down, and needed later) */
|
||||
+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS);
|
||||
+ wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu,
|
||||
+ LDELAY);
|
||||
+
|
||||
+ dpll3_init_34xx(sil_index, clk_index);
|
||||
+ dpll4_init_34xx(sil_index, clk_index);
|
||||
+ iva_init_34xx(sil_index, clk_index);
|
||||
+ mpu_init_34xx(sil_index, clk_index);
|
||||
+
|
||||
+ /* Lock MPU DPLL to set frequency */
|
||||
+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK);
|
||||
+ wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu,
|
||||
+ LDELAY);
|
||||
+ }
|
||||
|
||||
/* Set up GPTimers to sys_clk source only */
|
||||
sr32(&prcm_base->clksel_per, 0, 8, 0xff);
|
||||
@@ -414,3 +678,4 @@ void per_clocks_enable(void)
|
||||
|
||||
sdelay(1000);
|
||||
}
|
||||
+
|
||||
diff --git a/cpu/arm_cortexa8/omap3/lowlevel_init.S b/cpu/arm_cortexa8/omap3/lowlevel_init.S
|
||||
index 73063ec..061d75f 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/lowlevel_init.S
|
||||
+++ b/cpu/arm_cortexa8/omap3/lowlevel_init.S
|
||||
@@ -359,3 +359,72 @@ per_dpll_param:
|
||||
get_per_dpll_param:
|
||||
adr r0, per_dpll_param
|
||||
mov pc, lr
|
||||
+
|
||||
+/*
|
||||
+ * Tables for 36x/37x devices
|
||||
+ *
|
||||
+ */
|
||||
+mpu_36x_dpll_param:
|
||||
+/* 12MHz */
|
||||
+.word 50, 0, 0, 1
|
||||
+/* 13MHz */
|
||||
+.word 600, 12, 0, 1
|
||||
+/* 19.2MHz */
|
||||
+.word 125, 3, 0, 1
|
||||
+/* 26MHz */
|
||||
+.word 300, 12, 0, 1
|
||||
+/* 38.4MHz */
|
||||
+.word 125, 7, 0, 1
|
||||
+
|
||||
+iva_36x_dpll_param:
|
||||
+/* 12MHz */
|
||||
+.word 130, 2, 0, 1
|
||||
+/* 13MHz */
|
||||
+.word 40, 0, 0, 1
|
||||
+/* 19.2MHz */
|
||||
+.word 325, 11, 0, 1
|
||||
+/* 26MHz */
|
||||
+.word 20, 0, 0, 1
|
||||
+/* 38.4MHz */
|
||||
+.word 325, 23, 0, 1
|
||||
+
|
||||
+core_36x_dpll_param:
|
||||
+/* 12MHz */
|
||||
+.word 100, 2, 0, 1
|
||||
+/* 13MHz */
|
||||
+.word 400, 12, 0, 1
|
||||
+/* 19.2MHz */
|
||||
+.word 375, 17, 0, 1
|
||||
+/* 26MHz */
|
||||
+.word 200, 12, 0, 1
|
||||
+/* 38.4MHz */
|
||||
+.word 375, 35, 0, 1
|
||||
+
|
||||
+per_36x_dpll_param:
|
||||
+/* SYSCLK M N M2 M3 M4 M5 M6 m2DIV */
|
||||
+.word 12000, 360, 4, 9, 16, 5, 4, 3, 1
|
||||
+.word 13000, 864, 12, 9, 16, 9, 4, 3, 1
|
||||
+.word 19200, 360, 7, 9, 16, 5, 4, 3, 1
|
||||
+.word 26000, 432, 12, 9, 16, 9, 4, 3, 1
|
||||
+.word 38400, 360, 15, 9, 16, 5, 4, 3, 1
|
||||
+
|
||||
+.globl get_36x_mpu_dpll_param
|
||||
+get_36x_mpu_dpll_param:
|
||||
+ adr r0, mpu_36x_dpll_param
|
||||
+ mov pc, lr
|
||||
+
|
||||
+.globl get_36x_iva_dpll_param
|
||||
+get_36x_iva_dpll_param:
|
||||
+ adr r0, iva_36x_dpll_param
|
||||
+ mov pc, lr
|
||||
+
|
||||
+.globl get_36x_core_dpll_param
|
||||
+get_36x_core_dpll_param:
|
||||
+ adr r0, core_36x_dpll_param
|
||||
+ mov pc, lr
|
||||
+
|
||||
+.globl get_36x_per_dpll_param
|
||||
+get_36x_per_dpll_param:
|
||||
+ adr r0, per_36x_dpll_param
|
||||
+ mov pc, lr
|
||||
+
|
||||
diff --git a/include/asm-arm/arch-omap3/clocks.h b/include/asm-arm/arch-omap3/clocks.h
|
||||
index 71a0cb6..a5f2d08 100644
|
||||
--- a/include/asm-arm/arch-omap3/clocks.h
|
||||
+++ b/include/asm-arm/arch-omap3/clocks.h
|
||||
@@ -51,12 +51,29 @@ typedef struct {
|
||||
unsigned int m2;
|
||||
} dpll_param;
|
||||
|
||||
+struct dpll_per_36x_param {
|
||||
+ unsigned int sys_clk;
|
||||
+ unsigned int m;
|
||||
+ unsigned int n;
|
||||
+ unsigned int m2;
|
||||
+ unsigned int m3;
|
||||
+ unsigned int m4;
|
||||
+ unsigned int m5;
|
||||
+ unsigned int m6;
|
||||
+ unsigned int m2div;
|
||||
+};
|
||||
+
|
||||
/* Following functions are exported from lowlevel_init.S */
|
||||
extern dpll_param *get_mpu_dpll_param(void);
|
||||
extern dpll_param *get_iva_dpll_param(void);
|
||||
extern dpll_param *get_core_dpll_param(void);
|
||||
extern dpll_param *get_per_dpll_param(void);
|
||||
|
||||
+extern dpll_param *get_36x_mpu_dpll_param(void);
|
||||
+extern dpll_param *get_36x_iva_dpll_param(void);
|
||||
+extern dpll_param *get_36x_core_dpll_param(void);
|
||||
+extern dpll_param *get_36x_per_dpll_param(void);
|
||||
+
|
||||
extern void *_end_vect, *_start;
|
||||
|
||||
#endif
|
||||
diff --git a/include/asm-arm/arch-omap3/clocks_omap3.h b/include/asm-arm/arch-omap3/clocks_omap3.h
|
||||
index 661407b..30ef690 100644
|
||||
--- a/include/asm-arm/arch-omap3/clocks_omap3.h
|
||||
+++ b/include/asm-arm/arch-omap3/clocks_omap3.h
|
||||
@@ -282,4 +282,31 @@
|
||||
#define PER_FSEL_38P4 0x07
|
||||
#define PER_M2_38P4 0x09
|
||||
|
||||
+/* 36XX PER DPLL */
|
||||
+
|
||||
+#define PER_36XX_M_12 0x1B0
|
||||
+#define PER_36XX_N_12 0x05
|
||||
+#define PER_36XX_FSEL_12 0x07
|
||||
+#define PER_36XX_M2_12 0x09
|
||||
+
|
||||
+#define PER_36XX_M_13 0x360
|
||||
+#define PER_36XX_N_13 0x0C
|
||||
+#define PER_36XX_FSEL_13 0x03
|
||||
+#define PER_36XX_M2_13 0x09
|
||||
+
|
||||
+#define PER_36XX_M_19P2 0x1C2
|
||||
+#define PER_36XX_N_19P2 0x09
|
||||
+#define PER_36XX_FSEL_19P2 0x07
|
||||
+#define PER_36XX_M2_19P2 0x09
|
||||
+
|
||||
+#define PER_36XX_M_26 0x1B0
|
||||
+#define PER_36XX_N_26 0x0C
|
||||
+#define PER_36XX_FSEL_26 0x07
|
||||
+#define PER_36XX_M2_26 0x09
|
||||
+
|
||||
+#define PER_36XX_M_38P4 0x1C2
|
||||
+#define PER_36XX_N_38P4 0x13
|
||||
+#define PER_36XX_FSEL_38P4 0x07
|
||||
+#define PER_36XX_M2_38P4 0x09
|
||||
+
|
||||
#endif /* endif _CLOCKS_OMAP3_H_ */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
From 8a8738a7d042a80ddef68a9683d7dda77bed8765 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Tue, 23 Mar 2010 09:21:49 -0700
|
||||
Subject: [PATCH 20/51] OMAP3: beagle: add support for Beagle xM
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 23 +++++++++++++++--------
|
||||
board/ti/beagle/beagle.h | 34 ++++++++++++++++++++++++++++++----
|
||||
include/configs/omap3_beagle.h | 1 +
|
||||
3 files changed, 46 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index b4ea7e6..d357588 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -75,7 +75,7 @@ int beagle_get_revision(void)
|
||||
* GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx
|
||||
* GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3
|
||||
* GPIO173, GPIO172, GPIO171: 1 0 1 => C4
|
||||
- * GPIO173, GPIO172, GPIO171: 0 0 0 => D
|
||||
+ * GPIO173, GPIO172, GPIO171: 0 0 0 => XM
|
||||
*/
|
||||
void beagle_identify(void)
|
||||
{
|
||||
@@ -108,29 +108,36 @@ int misc_init_r(void)
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
- printf("Board revision ");
|
||||
switch (beagle_revision) {
|
||||
case REVISION_AXBX:
|
||||
- printf("Ax/Bx\n");
|
||||
+ printf("Beagle Rev Ax/Bx\n");
|
||||
break;
|
||||
case REVISION_CX:
|
||||
- printf("C1/C2/C3\n");
|
||||
+ printf("Beagle Rev C1/C2/C3\n");
|
||||
MUX_BEAGLE_C();
|
||||
break;
|
||||
case REVISION_C4:
|
||||
- printf("C4\n");
|
||||
+ printf("Beagle Rev C4\n");
|
||||
MUX_BEAGLE_C();
|
||||
/* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
+ setenv("mpurate", "720");
|
||||
break;
|
||||
- case REVISION_D:
|
||||
- printf("D\n");
|
||||
+ case REVISION_XM:
|
||||
+ printf("Beagle xM Rev A\n");
|
||||
+ MUX_BEAGLE_XM();
|
||||
+ /* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
+ TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
+ setenv("mpurate", "720");
|
||||
break;
|
||||
default:
|
||||
- printf("unknown 0x%02x\n", beagle_revision);
|
||||
+ printf("Beagle unknown 0x%02x\n", beagle_revision);
|
||||
}
|
||||
|
||||
/* Configure GPIOs to output */
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index d95fd78..fd06d46 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -38,7 +38,7 @@ const omap3_sysinfo sysinfo = {
|
||||
#define REVISION_AXBX 0x7
|
||||
#define REVISION_CX 0x6
|
||||
#define REVISION_C4 0x5
|
||||
-#define REVISION_D 0x0
|
||||
+#define REVISION_XM 0x0
|
||||
|
||||
/*
|
||||
* IEN - Input Enable
|
||||
@@ -379,11 +379,37 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(SDRC_CKE1), (IDIS | PTU | EN | M0)) /*sdrc_cke1*/
|
||||
|
||||
#define MUX_BEAGLE_C() \
|
||||
- MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
- MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
- MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
MUX_VAL(CP(UART2_CTS), (IEN | PTU | EN | M0)) /*UART2_CTS*/\
|
||||
MUX_VAL(CP(UART2_RTS), (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
|
||||
MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/
|
||||
|
||||
+#define MUX_BEAGLE_XM() \
|
||||
+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
+ MUX_VAL(CP(UART2_CTS), (IEN | PTU | EN | M0)) /*UART2_CTS*/\
|
||||
+ MUX_VAL(CP(UART2_RTS), (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
|
||||
+ MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/\
|
||||
+ MUX_VAL(CP(DSS_DATA0), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA1), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA2), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA3), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA4), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA5), (IDIS | PTD | DIS | M7)) /*safe_mode*/\
|
||||
+ MUX_VAL(CP(DSS_DATA18), (IDIS | PTD | DIS | M3)) /*DSS_DATA0*/\
|
||||
+ MUX_VAL(CP(DSS_DATA19), (IDIS | PTD | DIS | M3)) /*DSS_DATA1*/\
|
||||
+ MUX_VAL(CP(DSS_DATA20), (IDIS | PTD | DIS | M3)) /*DSS_DATA2*/\
|
||||
+ MUX_VAL(CP(DSS_DATA21), (IDIS | PTD | DIS | M3)) /*DSS_DATA3*/\
|
||||
+ MUX_VAL(CP(DSS_DATA22), (IDIS | PTD | DIS | M3)) /*DSS_DATA4*/\
|
||||
+ MUX_VAL(CP(DSS_DATA23), (IDIS | PTD | DIS | M3)) /*DSS_DATA5*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT0), (IDIS | PTD | DIS | M3)) /*DSS_DATA18*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT1), (IDIS | PTD | DIS | M3)) /*DSS_DATA19*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT3), (IDIS | PTD | DIS | M3)) /*DSS_DATA20*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT4), (IDIS | PTD | DIS | M3)) /*DSS_DATA21*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT5), (IDIS | PTD | DIS | M3)) /*DSS_DATA22*/\
|
||||
+ MUX_VAL(CP(SYS_BOOT6), (IDIS | PTD | DIS | M3)) /*DSS_DATA23*/
|
||||
+
|
||||
#endif
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 35ae8af..1370a29 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -162,6 +162,7 @@
|
||||
/*
|
||||
* Board NAND Info.
|
||||
*/
|
||||
+#define CONFIG_SYS_NAND_QUIET_TEST 1
|
||||
#define CONFIG_NAND_OMAP_GPMC
|
||||
#define CONFIG_SYS_NAND_ADDR NAND_BASE /* physical address */
|
||||
/* to access nand */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-157
@@ -1,157 +0,0 @@
|
||||
From b48754f4c77924a9351867e17e2f09fbe5a83b82 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 25 Mar 2010 16:07:23 +0100
|
||||
Subject: [PATCH 22/51] OMAP3: beagle: implement expansionboard detection based on board/overo.c code
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||
board/ti/beagle/beagle.h | 25 +++++++++++++-
|
||||
2 files changed, 101 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index d357588..8c5b88c 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -38,6 +38,31 @@
|
||||
#include <asm/mach-types.h>
|
||||
#include "beagle.h"
|
||||
|
||||
+static struct {
|
||||
+ unsigned int device_vendor;
|
||||
+ unsigned char revision;
|
||||
+ unsigned char content;
|
||||
+ unsigned char fab_revision[8];
|
||||
+ unsigned char env_var[16];
|
||||
+ unsigned char env_setting[64];
|
||||
+} expansion_config;
|
||||
+
|
||||
+#define TWL4030_I2C_BUS 0
|
||||
+
|
||||
+#define EXPANSION_EEPROM_I2C_BUS 1
|
||||
+#define EXPANSION_EEPROM_I2C_ADDRESS 0x50
|
||||
+
|
||||
+#define TINCANTOOLS_VENDORID 0x0100
|
||||
+#define GUMSTIX_VENDORID 0x0200
|
||||
+#define SPECIALCOMP_VENDORID 0x0300
|
||||
+
|
||||
+#define TINCANTOOLS_ZIPPY 0x01000100
|
||||
+#define TINCANTOOLS_ZIPPY2 0x02000100
|
||||
+#define TINCANTOOLS_TRAINER 0x03000100
|
||||
+#define TINCANTOOLS_SHOWDOG 0x04000100
|
||||
+
|
||||
+#define BEAGLE_NO_EEPROM 0xffffffff
|
||||
+
|
||||
static int beagle_revision;
|
||||
|
||||
/*
|
||||
@@ -95,6 +120,27 @@ void beagle_identify(void)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Routine: get_expansion_id
|
||||
+ * Description: This function checks for expansion board by checking I2C
|
||||
+ * bus 2 for the availability of an AT24C01B serial EEPROM.
|
||||
+ * returns the device_vendor field from the EEPROM
|
||||
+ */
|
||||
+unsigned int get_expansion_id(void)
|
||||
+{
|
||||
+ i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS);
|
||||
+
|
||||
+ /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */
|
||||
+ if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1)
|
||||
+ return BEAGLE_NO_EEPROM;
|
||||
+
|
||||
+ /* read configuration data */
|
||||
+ i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config,
|
||||
+ sizeof(expansion_config));
|
||||
+
|
||||
+ return expansion_config.device_vendor;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Configure board specific parts
|
||||
*/
|
||||
@@ -104,6 +150,38 @@ int misc_init_r(void)
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
beagle_identify();
|
||||
+ switch (get_expansion_id()) {
|
||||
+ case TINCANTOOLS_ZIPPY:
|
||||
+ printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
+ MUX_TINCANTOOLS_ZIPPY();
|
||||
+ break;
|
||||
+ case TINCANTOOLS_ZIPPY2:
|
||||
+ printf("Recognized Tincantools Zippy2 expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
+ MUX_TINCANTOOLS_ZIPPY();
|
||||
+ break;
|
||||
+ case TINCANTOOLS_TRAINER:
|
||||
+ printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
+ break;
|
||||
+ case TINCANTOOLS_SHOWDOG:
|
||||
+ printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n",
|
||||
+ expansion_config.revision, expansion_config.fab_revision);
|
||||
+ /* Place holder for DSS2 definition for showdog lcd */
|
||||
+ setenv("defaultdisplay", "showdoglcd");
|
||||
+ break;
|
||||
+ case BEAGLE_NO_EEPROM:
|
||||
+ printf("No EEPROM on expansion board\n");
|
||||
+ break;
|
||||
+ default:
|
||||
+ printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor);
|
||||
+ }
|
||||
+
|
||||
+ if (expansion_config.content == 1)
|
||||
+ setenv(expansion_config.env_var, expansion_config.env_setting);
|
||||
+
|
||||
+ i2c_set_bus_num(TWL4030_I2C_BUS);
|
||||
|
||||
twl4030_power_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index fd06d46..ec4f831 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -260,8 +260,8 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(HSUSB0_DATA7), (IEN | PTD | DIS | M0)) /*HSUSB0_DATA7*/\
|
||||
MUX_VAL(CP(I2C1_SCL), (IEN | PTU | EN | M0)) /*I2C1_SCL*/\
|
||||
MUX_VAL(CP(I2C1_SDA), (IEN | PTU | EN | M0)) /*I2C1_SDA*/\
|
||||
- MUX_VAL(CP(I2C2_SCL), (IEN | PTU | EN | M4)) /*GPIO_168*/\
|
||||
- MUX_VAL(CP(I2C2_SDA), (IEN | PTU | EN | M4)) /*GPIO_183*/\
|
||||
+ MUX_VAL(CP(I2C2_SCL), (IEN | PTU | EN | M0)) /*I2C2_SCL*/\
|
||||
+ MUX_VAL(CP(I2C2_SDA), (IEN | PTU | EN | M0)) /*I2C2_SDA*/\
|
||||
MUX_VAL(CP(I2C3_SCL), (IEN | PTU | EN | M0)) /*I2C3_SCL*/\
|
||||
MUX_VAL(CP(I2C3_SDA), (IEN | PTU | EN | M0)) /*I2C3_SDA*/\
|
||||
MUX_VAL(CP(I2C4_SCL), (IEN | PTU | EN | M0)) /*I2C4_SCL*/\
|
||||
@@ -412,4 +412,25 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(SYS_BOOT5), (IDIS | PTD | DIS | M3)) /*DSS_DATA22*/\
|
||||
MUX_VAL(CP(SYS_BOOT6), (IDIS | PTD | DIS | M3)) /*DSS_DATA23*/
|
||||
|
||||
+#define MUX_TINCANTOOLS_ZIPPY() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\
|
||||
+ MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | EN | M1)) /*MCSPI4_CLK*/\
|
||||
+ MUX_VAL(CP(MCBSP1_FSR), (IEN | PTU | EN | M4)) /*GPIO_157*/\
|
||||
+ MUX_VAL(CP(MCBSP1_DX), (IEN | PTD | EN | M1)) /*MCSPI4_SIMO*/\
|
||||
+ MUX_VAL(CP(MCBSP1_DR), (IEN | PTD | DIS | M1)) /*MCSPI4_SOMI*/\
|
||||
+ MUX_VAL(CP(MCBSP1_FSX), (IEN | PTD | EN | M1)) /*MCSPI4_CS0*/\
|
||||
+ MUX_VAL(CP(MCBSP1_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_162*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
+
|
||||
#endif
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
From 653c13d956b189c05e6c02077dbd85cba8ff490b Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Wed, 31 Mar 2010 14:24:25 +0200
|
||||
Subject: [PATCH 23/51] beagleboard: display message about I2C errors being expected when no expansion boards are present
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 8c5b88c..c9c9a58 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -150,6 +150,9 @@ int misc_init_r(void)
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
beagle_identify();
|
||||
+
|
||||
+ printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n");
|
||||
+
|
||||
switch (get_expansion_id()) {
|
||||
case TINCANTOOLS_ZIPPY:
|
||||
printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n",
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From a0f21f7418dfa81a40bf99b7e926153a310ba457 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Sun, 11 Apr 2010 12:14:43 +0200
|
||||
Subject: [PATCH 24/51] beagleboard: fix TCT expansionboard IDs
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index c9c9a58..7cb6d1f 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -58,8 +58,8 @@ static struct {
|
||||
|
||||
#define TINCANTOOLS_ZIPPY 0x01000100
|
||||
#define TINCANTOOLS_ZIPPY2 0x02000100
|
||||
-#define TINCANTOOLS_TRAINER 0x03000100
|
||||
-#define TINCANTOOLS_SHOWDOG 0x04000100
|
||||
+#define TINCANTOOLS_TRAINER 0x04000100
|
||||
+#define TINCANTOOLS_SHOWDOG 0x03000100
|
||||
|
||||
#define BEAGLE_NO_EEPROM 0xffffffff
|
||||
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
From 4aca3c70a18da58e263b08e37b288a06b2b6655c Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Tue, 13 Apr 2010 22:04:07 +0200
|
||||
Subject: [PATCH 27/51] beagleboardXM: don't set mpurate on xM in bootargs
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 1 -
|
||||
1 files changed, 0 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index eb57b5a..974a72c 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -226,7 +226,6 @@ int misc_init_r(void)
|
||||
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
- setenv("mpurate", "720");
|
||||
break;
|
||||
default:
|
||||
printf("Beagle unknown 0x%02x\n", beagle_revision);
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
From 72e1ab470e483c91ab3aa38bec31faf3dad52735 Mon Sep 17 00:00:00 2001
|
||||
From: Mans Rullgard <mans@mansr.com>
|
||||
Date: Wed, 14 Apr 2010 12:08:00 +0100
|
||||
Subject: [PATCH 28/51] OMAP3: fix and clean up L2 cache enable/disable functions
|
||||
|
||||
On OMAP34xx ES1.0, the L2 enable bit can only be set in secure mode,
|
||||
so an SMC call to the ROM monitor is required. On later versions,
|
||||
and on newer devices, this bit is banked and we can set it directly.
|
||||
|
||||
The code checked only the ES revision of the chip, and hence incorrectly
|
||||
used the ROM call on ES1.0 versions of other devices.
|
||||
|
||||
This patch adds a check for chip family as well as revision, and also
|
||||
removes some code duplication between the enable and disable functions.
|
||||
|
||||
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/cache.S | 74 +++++++++++-----------------------------
|
||||
1 files changed, 20 insertions(+), 54 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S
|
||||
index 0f63815..16afb5d 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/cache.S
|
||||
+++ b/cpu/arm_cortexa8/omap3/cache.S
|
||||
@@ -128,64 +128,30 @@ finished_inval:
|
||||
|
||||
ldmfd r13!, {r0 - r5, r7, r9 - r12, pc}
|
||||
|
||||
-
|
||||
-l2_cache_enable:
|
||||
- push {r0, r1, r2, lr}
|
||||
- @ ES2 onwards we can disable/enable L2 ourselves
|
||||
+l2_cache_set:
|
||||
+ push {r4-r6, lr}
|
||||
+ mov r5, r0
|
||||
bl get_cpu_rev
|
||||
- cmp r0, #CPU_3XX_ES20
|
||||
- blt l2_cache_disable_EARLIER_THAN_ES2
|
||||
- mrc 15, 0, r3, cr1, cr0, 1
|
||||
- orr r3, r3, #2
|
||||
- mcr 15, 0, r3, cr1, cr0, 1
|
||||
- b l2_cache_enable_END
|
||||
-l2_cache_enable_EARLIER_THAN_ES2:
|
||||
- @ Save r0, r12 and restore them after usage
|
||||
- mov r3, ip
|
||||
- str r3, [sp, #4]
|
||||
- mov r3, r0
|
||||
- @
|
||||
+ mov r4, r0
|
||||
+ bl get_cpu_family
|
||||
+ @ ES2 onwards we can disable/enable L2 ourselves
|
||||
+ cmp r0, #CPU_OMAP34XX
|
||||
+ cmpeq r4, #CPU_3XX_ES10
|
||||
+ mrc 15, 0, r0, cr1, cr0, 1
|
||||
+ bic r0, r0, #2
|
||||
+ orr r0, r0, r5, lsl #1
|
||||
+ mcreq 15, 0, r0, cr1, cr0, 1
|
||||
@ GP Device ROM code API usage here
|
||||
@ r12 = AUXCR Write function and r0 value
|
||||
- @
|
||||
mov ip, #3
|
||||
- mrc 15, 0, r0, cr1, cr0, 1
|
||||
- orr r0, r0, #2
|
||||
- @ SMI instruction to call ROM Code API
|
||||
- .word 0xe1600070
|
||||
- mov r0, r3
|
||||
- mov ip, r3
|
||||
- str r3, [sp, #4]
|
||||
-l2_cache_enable_END:
|
||||
- pop {r1, r2, r3, pc}
|
||||
+ @ SMCNE instruction to call ROM Code API
|
||||
+ .word 0x11600070
|
||||
+ pop {r4-r6, pc}
|
||||
|
||||
+l2_cache_enable:
|
||||
+ mov r0, #1
|
||||
+ b l2_cache_set
|
||||
|
||||
l2_cache_disable:
|
||||
- push {r0, r1, r2, lr}
|
||||
- @ ES2 onwards we can disable/enable L2 ourselves
|
||||
- bl get_cpu_rev
|
||||
- cmp r0, #CPU_3XX_ES20
|
||||
- blt l2_cache_disable_EARLIER_THAN_ES2
|
||||
- mrc 15, 0, r3, cr1, cr0, 1
|
||||
- bic r3, r3, #2
|
||||
- mcr 15, 0, r3, cr1, cr0, 1
|
||||
- b l2_cache_disable_END
|
||||
-l2_cache_disable_EARLIER_THAN_ES2:
|
||||
- @ Save r0, r12 and restore them after usage
|
||||
- mov r3, ip
|
||||
- str r3, [sp, #4]
|
||||
- mov r3, r0
|
||||
- @
|
||||
- @ GP Device ROM code API usage here
|
||||
- @ r12 = AUXCR Write function and r0 value
|
||||
- @
|
||||
- mov ip, #3
|
||||
- mrc 15, 0, r0, cr1, cr0, 1
|
||||
- bic r0, r0, #2
|
||||
- @ SMI instruction to call ROM Code API
|
||||
- .word 0xe1600070
|
||||
- mov r0, r3
|
||||
- mov ip, r3
|
||||
- str r3, [sp, #4]
|
||||
-l2_cache_disable_END:
|
||||
- pop {r1, r2, r3, pc}
|
||||
+ mov r0, #0
|
||||
+ b l2_cache_set
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
From 1e795a2c3e44002c3512222dd3da07ac3ea42d7d Mon Sep 17 00:00:00 2001
|
||||
From: Mans Rullgard <mans@mansr.com>
|
||||
Date: Wed, 14 Apr 2010 16:49:57 +0100
|
||||
Subject: [PATCH 29/51] OMAP3: convert setup_auxcr() to pure asm
|
||||
|
||||
This function consists entirely of inline asm statements, so writing
|
||||
it directly in a .S file is simpler. Additionally, the inline asm is
|
||||
not safe as is, since registers are not guaranteed to be preserved
|
||||
between asm() statements.
|
||||
|
||||
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/board.c | 35 -----------------------------------
|
||||
cpu/arm_cortexa8/omap3/cache.S | 19 +++++++++++++++++++
|
||||
2 files changed, 19 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c
|
||||
index 0126152..7f49199 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/board.c
|
||||
+++ b/cpu/arm_cortexa8/omap3/board.c
|
||||
@@ -122,41 +122,6 @@ void secureworld_exit()
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
- * Routine: setup_auxcr()
|
||||
- * Description: Write to AuxCR desired value using SMI.
|
||||
- * general use.
|
||||
- *****************************************************************************/
|
||||
-void setup_auxcr()
|
||||
-{
|
||||
- unsigned long i;
|
||||
- volatile unsigned int j;
|
||||
- /* Save r0, r12 and restore them after usage */
|
||||
- __asm__ __volatile__("mov %0, r12":"=r"(j));
|
||||
- __asm__ __volatile__("mov %0, r0":"=r"(i));
|
||||
-
|
||||
- /*
|
||||
- * GP Device ROM code API usage here
|
||||
- * r12 = AUXCR Write function and r0 value
|
||||
- */
|
||||
- __asm__ __volatile__("mov r12, #0x3");
|
||||
- __asm__ __volatile__("mrc p15, 0, r0, c1, c0, 1");
|
||||
- /* Enabling ASA */
|
||||
- __asm__ __volatile__("orr r0, r0, #0x10");
|
||||
- /* Enable L1NEON */
|
||||
- __asm__ __volatile__("orr r0, r0, #1 << 5");
|
||||
- /* SMI instruction to call ROM Code API */
|
||||
- __asm__ __volatile__(".word 0xE1600070");
|
||||
- /* Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) */
|
||||
- __asm__ __volatile__("mov r12, #0x2");
|
||||
- __asm__ __volatile__("mrc p15, 1, r0, c9, c0, 2");
|
||||
- __asm__ __volatile__("orr r0, r0, #1 << 27");
|
||||
- /* SMI instruction to call ROM Code API */
|
||||
- __asm__ __volatile__(".word 0xE1600070");
|
||||
- __asm__ __volatile__("mov r0, %0":"=r"(i));
|
||||
- __asm__ __volatile__("mov r12, %0":"=r"(j));
|
||||
-}
|
||||
-
|
||||
-/******************************************************************************
|
||||
* Routine: try_unlock_sram()
|
||||
* Description: If chip is GP/EMU(special) type, unlock the SRAM for
|
||||
* general use.
|
||||
diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S
|
||||
index 16afb5d..61e6946 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/cache.S
|
||||
+++ b/cpu/arm_cortexa8/omap3/cache.S
|
||||
@@ -43,6 +43,7 @@
|
||||
.global invalidate_dcache
|
||||
.global l2_cache_enable
|
||||
.global l2_cache_disable
|
||||
+.global setup_auxcr
|
||||
|
||||
/*
|
||||
* invalidate_dcache()
|
||||
@@ -155,3 +156,21 @@ l2_cache_enable:
|
||||
l2_cache_disable:
|
||||
mov r0, #0
|
||||
b l2_cache_set
|
||||
+
|
||||
+/******************************************************************************
|
||||
+ * Routine: setup_auxcr()
|
||||
+ * Description: Write to AuxCR desired value using SMI.
|
||||
+ * general use.
|
||||
+ *****************************************************************************/
|
||||
+setup_auxcr:
|
||||
+ mov r12, #0x3
|
||||
+ mrc p15, 0, r0, c1, c0, 1
|
||||
+ orr r0, r0, #0x10 @ Enable ASA
|
||||
+ orr r0, r0, #1 << 5 @ Enable L1NEON
|
||||
+ .word 0xE1600070 @ SMC
|
||||
+ mov r12, #0x2
|
||||
+ mrc p15, 1, r0, c9, c0, 2
|
||||
+ @ Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround)
|
||||
+ orr r0, r0, #1 << 27
|
||||
+ .word 0xE1600070 @ SMC
|
||||
+ bx lr
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
From fd092c7f2286fab34cf42c6c56360ae7794dbc7f Mon Sep 17 00:00:00 2001
|
||||
From: Mans Rullgard <mans@mansr.com>
|
||||
Date: Wed, 14 Apr 2010 17:10:28 +0100
|
||||
Subject: [PATCH 30/51] OMAP3: apply Cortex-A8 errata workarounds only on affected revisions
|
||||
|
||||
The workarounds for errata 621766 and 725233 should only be applied
|
||||
on affected Cortex-A8 revisions. Recent chips use r3px cores where
|
||||
these have been fixed.
|
||||
|
||||
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
||||
---
|
||||
cpu/arm_cortexa8/omap3/cache.S | 13 ++++++++++---
|
||||
1 files changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S
|
||||
index 61e6946..932e4eb 100644
|
||||
--- a/cpu/arm_cortexa8/omap3/cache.S
|
||||
+++ b/cpu/arm_cortexa8/omap3/cache.S
|
||||
@@ -163,14 +163,21 @@ l2_cache_disable:
|
||||
* general use.
|
||||
*****************************************************************************/
|
||||
setup_auxcr:
|
||||
+ mrc p15, 0, r0, c0, c0, 0 @ read main ID register
|
||||
+ and r2, r0, #0x00f00000 @ variant
|
||||
+ and r3, r0, #0x0000000f @ revision
|
||||
+ orr r1, r3, r2, lsr #20-4 @ combine variant and revision
|
||||
mov r12, #0x3
|
||||
mrc p15, 0, r0, c1, c0, 1
|
||||
orr r0, r0, #0x10 @ Enable ASA
|
||||
- orr r0, r0, #1 << 5 @ Enable L1NEON
|
||||
+ @ Enable L1NEON on pre-r2p1 (erratum 621766 workaround)
|
||||
+ cmp r1, #0x21
|
||||
+ orrlt r0, r0, #1 << 5
|
||||
.word 0xE1600070 @ SMC
|
||||
mov r12, #0x2
|
||||
mrc p15, 1, r0, c9, c0, 2
|
||||
- @ Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround)
|
||||
- orr r0, r0, #1 << 27
|
||||
+ @ Set PLD_FWD bit in L2AUXCR on pre-r2p1 (erratum 725233 workaround)
|
||||
+ cmp r1, #0x21
|
||||
+ orrlt r0, r0, #1 << 27
|
||||
.word 0xE1600070 @ SMC
|
||||
bx lr
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
From ccbe10687806b6504c87bd3ad80bd406bc6263f4 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Fri, 23 Apr 2010 10:50:43 +0200
|
||||
Subject: [PATCH 31/51] OMAP3: beagle: add more expansionboards, based on http://www.elinux.org/BeagleBoardPinMux#Vendor_and_Device_IDs
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 8 ++++++++
|
||||
board/ti/beagle/beagle.h | 6 ++++++
|
||||
2 files changed, 14 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 974a72c..0544178 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -55,11 +55,15 @@ static struct {
|
||||
#define TINCANTOOLS_VENDORID 0x0100
|
||||
#define GUMSTIX_VENDORID 0x0200
|
||||
#define SPECIALCOMP_VENDORID 0x0300
|
||||
+#define HYR_VENDORID 0x0400
|
||||
+#define MENTOREL_VENDORID 0x0500
|
||||
+#define KBADC_VENDORID 0x0600
|
||||
|
||||
#define TINCANTOOLS_ZIPPY 0x01000100
|
||||
#define TINCANTOOLS_ZIPPY2 0x02000100
|
||||
#define TINCANTOOLS_TRAINER 0x04000100
|
||||
#define TINCANTOOLS_SHOWDOG 0x03000100
|
||||
+#define KBADC_BEAGLEFPGA 0x01000600
|
||||
|
||||
#define BEAGLE_NO_EEPROM 0xffffffff
|
||||
|
||||
@@ -184,6 +188,10 @@ int misc_init_r(void)
|
||||
/* Place holder for DSS2 definition for showdog lcd */
|
||||
setenv("defaultdisplay", "showdoglcd");
|
||||
break;
|
||||
+ case KBADC_BEAGLEFPGA:
|
||||
+ printf("Recognized KBADC Beagle FPGA board\n");
|
||||
+ MUX_KBADC_BEAGLEFPGA();
|
||||
+ break;
|
||||
case BEAGLE_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
break;
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index 69f9398..90a0ebf 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -435,6 +435,12 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
|
||||
+#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*/\
|
||||
+ MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\
|
||||
+ MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/\
|
||||
+
|
||||
/*
|
||||
* Display Configuration
|
||||
*/
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
From 0d2821af767b7cfe1a5d868a14f8a18e01070e37 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Tue, 27 Apr 2010 13:44:16 +0200
|
||||
Subject: [PATCH 32/51] OMAP3: beagle: set mpurate to 600 for revB and revC1-3
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 2 ++
|
||||
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 0544178..6778499 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -211,10 +211,12 @@ int misc_init_r(void)
|
||||
switch (beagle_revision) {
|
||||
case REVISION_AXBX:
|
||||
printf("Beagle Rev Ax/Bx\n");
|
||||
+ setenv("mpurate", "600");
|
||||
break;
|
||||
case REVISION_CX:
|
||||
printf("Beagle Rev C1/C2/C3\n");
|
||||
MUX_BEAGLE_C();
|
||||
+ setenv("mpurate", "600");
|
||||
break;
|
||||
case REVISION_C4:
|
||||
printf("Beagle Rev C4\n");
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
From f4f92e1f72e2bcab85f205c66f0725a677e192e2 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Tue, 27 Apr 2010 13:45:28 +0200
|
||||
Subject: [PATCH 33/51] OMAP3: beagle: prettify expansionboard message a bit
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 6778499..58fb7c3 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -165,7 +165,7 @@ int misc_init_r(void)
|
||||
|
||||
beagle_identify();
|
||||
|
||||
- printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n");
|
||||
+ printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n\n");
|
||||
|
||||
switch (get_expansion_id()) {
|
||||
case TINCANTOOLS_ZIPPY:
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
From d6d6f29e339b5d014f91870b35985a372dd330f2 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Tue, 27 Apr 2010 18:25:57 +0200
|
||||
Subject: [PATCH 34/51] OMAP3: beagle: add pinmux for Tincantools Trainer expansionboard
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 2 ++
|
||||
board/ti/beagle/beagle.h | 16 +++++++++++++++-
|
||||
2 files changed, 17 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 58fb7c3..39c53f2 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -181,6 +181,8 @@ int misc_init_r(void)
|
||||
case TINCANTOOLS_TRAINER:
|
||||
printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n",
|
||||
expansion_config.revision, expansion_config.fab_revision);
|
||||
+ MUX_TINCANTOOLS_ZIPPY();
|
||||
+ MUX_TINCANTOOLS_TRAINER();
|
||||
break;
|
||||
case TINCANTOOLS_SHOWDOG:
|
||||
printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n",
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index 90a0ebf..7774855 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -433,7 +433,21 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP1_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_162*/\
|
||||
MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
- MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/
|
||||
+
|
||||
+#define MUX_TINCANTOOLS_TRAINER() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M4)) /*GPIO_130*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M4)) /*GPIO_131*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M4)) /*GPIO_132*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M4)) /*GPIO_133*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M4)) /*GPIO_134*/\
|
||||
+ 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*/\
|
||||
+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTU | EN | M4)) /*GPIO_140*/\
|
||||
+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTU | EN | M4)) /*GPIO_141*/
|
||||
|
||||
#define MUX_KBADC_BEAGLEFPGA() \
|
||||
MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | DIS | M1)) /*MCSPI4_CLK*/\
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
From 442e5d80723e2772f38fe473d32287200d802907 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Fri, 30 Apr 2010 13:25:41 +0200
|
||||
Subject: [PATCH 35/51] OMAP3: Beagle: set mpurate to 1000 for xM
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 39c53f2..9300984 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -238,6 +238,7 @@ int misc_init_r(void)
|
||||
TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
|
||||
TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
|
||||
TWL4030_PM_RECEIVER_DEV_GRP_P1);
|
||||
+ setenv("mpurate", "1000");
|
||||
break;
|
||||
default:
|
||||
printf("Beagle unknown 0x%02x\n", beagle_revision);
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-34
@@ -1,34 +0,0 @@
|
||||
From 13b74d6ec2b88620515d0060f6276f744f058e44 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Fri, 30 Apr 2010 13:26:01 +0200
|
||||
Subject: [PATCH 36/51] OMAP3: Beagle: decrease bootdelay to 3, use VGA for default resolution
|
||||
|
||||
---
|
||||
include/configs/omap3_beagle.h | 4 ++--
|
||||
1 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 52d727a..47bc971 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -183,7 +183,7 @@
|
||||
/* partition */
|
||||
|
||||
/* Environment information */
|
||||
-#define CONFIG_BOOTDELAY 10
|
||||
+#define CONFIG_BOOTDELAY 3
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"loadaddr=0x82000000\0" \
|
||||
@@ -191,7 +191,7 @@
|
||||
"console=ttyS2,115200n8\0" \
|
||||
"mpurate=500\0" \
|
||||
"vram=12M\0" \
|
||||
- "dvimode=1024x768MR-16@60\0" \
|
||||
+ "dvimode=640x480MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
"mmcroot=/dev/mmcblk0p2 rw\0" \
|
||||
"mmcrootfstype=ext3 rootwait\0" \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-87
@@ -1,87 +0,0 @@
|
||||
From 02dba49bdab65e1a96fd4593f5847b38252b66e0 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Mon, 3 May 2010 10:17:41 +0200
|
||||
Subject: [PATCH 37/51] OMAP3: beagle: pass expansionboard name in bootargs
|
||||
|
||||
This makes it possible to do in-kernel fixups for expansionboards like reclaiming GPIOs
|
||||
---
|
||||
board/ti/beagle/beagle.c | 7 +++++++
|
||||
include/configs/omap3_beagle.h | 3 +++
|
||||
2 files changed, 10 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 9300984..556e995 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -172,33 +172,40 @@ int misc_init_r(void)
|
||||
printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n",
|
||||
expansion_config.revision, expansion_config.fab_revision);
|
||||
MUX_TINCANTOOLS_ZIPPY();
|
||||
+ setenv("buddy", "zippy");
|
||||
break;
|
||||
case TINCANTOOLS_ZIPPY2:
|
||||
printf("Recognized Tincantools Zippy2 expansion board (rev %d %s)\n",
|
||||
expansion_config.revision, expansion_config.fab_revision);
|
||||
MUX_TINCANTOOLS_ZIPPY();
|
||||
+ setenv("buddy", "zippy2");
|
||||
break;
|
||||
case TINCANTOOLS_TRAINER:
|
||||
printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n",
|
||||
expansion_config.revision, expansion_config.fab_revision);
|
||||
MUX_TINCANTOOLS_ZIPPY();
|
||||
MUX_TINCANTOOLS_TRAINER();
|
||||
+ setenv("buddy", "trainer");
|
||||
break;
|
||||
case TINCANTOOLS_SHOWDOG:
|
||||
printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n",
|
||||
expansion_config.revision, expansion_config.fab_revision);
|
||||
/* Place holder for DSS2 definition for showdog lcd */
|
||||
setenv("defaultdisplay", "showdoglcd");
|
||||
+ setenv("buddy", "showdog");
|
||||
break;
|
||||
case KBADC_BEAGLEFPGA:
|
||||
printf("Recognized KBADC Beagle FPGA board\n");
|
||||
MUX_KBADC_BEAGLEFPGA();
|
||||
+ setenv("buddy", "beaglefpga");
|
||||
break;
|
||||
case BEAGLE_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
+ setenv("buddy", "none");
|
||||
break;
|
||||
default:
|
||||
printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor);
|
||||
+ setenv("buddy", "unknown");
|
||||
}
|
||||
|
||||
if (expansion_config.content == 1)
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 47bc971..8ad52aa 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -190,6 +190,7 @@
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
"mpurate=500\0" \
|
||||
+ "buddy=none\0" \
|
||||
"vram=12M\0" \
|
||||
"dvimode=640x480MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
@@ -199,6 +200,7 @@
|
||||
"nandrootfstype=jffs2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
"mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -206,6 +208,7 @@
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
"mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From 94462a5c200adbad2c4fc47d7fc0ca24aeb14a2a Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 5 May 2010 14:53:49 -0500
|
||||
Subject: [PATCH 38/51] Added configurations for xM Rev A board
|
||||
|
||||
This defaults to "on" condition for USB and DVI. May want to revise for
|
||||
power savings.
|
||||
---
|
||||
board/ti/beagle/beagle.h | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index 7774855..cb7fd1c 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -389,6 +389,10 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/
|
||||
|
||||
#define MUX_BEAGLE_XM() \
|
||||
+ MUX_VAL(CP(GPMC_NCS5), (IDIS | PTD | EN | M4)) /*GPIO_56 - USB HUB reset*/\
|
||||
+ MUX_VAL(CP(GPMC_WAIT0), (IDIS | PTU | EN | M4)) /*GPIO_63 - P8 USB HUB nreset*/\
|
||||
+ MUX_VAL(CP(MMC1_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_129 - DVI enable*/\
|
||||
+ MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*GPIO_170 - P8 DVI enable*/\
|
||||
MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\
|
||||
MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\
|
||||
MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
From 4b5bb4a7656dc1c4a1b985b6f5454c58ad060112 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Thu, 3 Jun 2010 19:50:57 +0200
|
||||
Subject: [PATCH 39/51] OMAP3: beagle: setenv beaglerev for AxBx/Cx/xMA for better bootscripts
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 556e995..cdba3dd 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -221,14 +221,17 @@ int misc_init_r(void)
|
||||
case REVISION_AXBX:
|
||||
printf("Beagle Rev Ax/Bx\n");
|
||||
setenv("mpurate", "600");
|
||||
+ setenv("beaglerev", "AxBx");
|
||||
break;
|
||||
case REVISION_CX:
|
||||
printf("Beagle Rev C1/C2/C3\n");
|
||||
MUX_BEAGLE_C();
|
||||
setenv("mpurate", "600");
|
||||
+ setenv("beaglerev", "Cx");
|
||||
break;
|
||||
case REVISION_C4:
|
||||
printf("Beagle Rev C4\n");
|
||||
+ setenv("beaglerev", "Cx");
|
||||
MUX_BEAGLE_C();
|
||||
/* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
@@ -239,6 +242,7 @@ int misc_init_r(void)
|
||||
break;
|
||||
case REVISION_XM:
|
||||
printf("Beagle xM Rev A\n");
|
||||
+ setenv("beaglerev", "xMA");
|
||||
MUX_BEAGLE_XM();
|
||||
/* Set VAUX2 to 1.8V for EHCI PHY */
|
||||
twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED,
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-126
@@ -1,126 +0,0 @@
|
||||
From 0dd14c6a6f40cb47fd8517e9e9d48f0a119e9aa9 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Thu, 29 Apr 2010 10:28:14 -0700
|
||||
Subject: [PATCH 40/51] OMAP: mmc: add support for second and third mmc channels
|
||||
|
||||
Boards wishing to use this feature should define CONFIG_SYS_MMC_SET_DEV
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
drivers/mmc/omap3_mmc.c | 39 +++++++++++++++++++++++++++-
|
||||
include/asm-arm/arch-omap3/mmc_host_def.h | 15 +++++++++--
|
||||
2 files changed, 49 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c
|
||||
index 96c0e65..bf650ba 100644
|
||||
--- a/drivers/mmc/omap3_mmc.c
|
||||
+++ b/drivers/mmc/omap3_mmc.c
|
||||
@@ -52,7 +52,27 @@ const unsigned short mmc_transspeed_val[15][4] = {
|
||||
|
||||
mmc_card_data cur_card_data;
|
||||
static block_dev_desc_t mmc_blk_dev;
|
||||
-static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE;
|
||||
+static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
|
||||
+
|
||||
+unsigned char mmc_set_dev(int dev)
|
||||
+{
|
||||
+ switch (dev) {
|
||||
+ case 1:
|
||||
+ mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
|
||||
+ break;
|
||||
+ case 2:
|
||||
+ mmc_base = (hsmmc_t *)OMAP_HSMMC2_BASE;
|
||||
+ break;
|
||||
+ case 3:
|
||||
+ mmc_base = (hsmmc_t *)OMAP_HSMMC3_BASE;
|
||||
+ break;
|
||||
+ default:
|
||||
+ mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE;
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
|
||||
block_dev_desc_t *mmc_get_dev(int dev)
|
||||
{
|
||||
@@ -62,6 +82,7 @@ block_dev_desc_t *mmc_get_dev(int dev)
|
||||
unsigned char mmc_board_init(void)
|
||||
{
|
||||
t2_t *t2_base = (t2_t *)T2_BASE;
|
||||
+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
|
||||
|
||||
#if defined(CONFIG_TWL4030_POWER)
|
||||
twl4030_power_mmc_init();
|
||||
@@ -74,6 +95,17 @@ unsigned char mmc_board_init(void)
|
||||
writel(readl(&t2_base->devconf0) | MMCSDIO1ADPCLKISEL,
|
||||
&t2_base->devconf0);
|
||||
|
||||
+ writel(readl(&t2_base->devconf1) | MMCSDIO2ADPCLKISEL,
|
||||
+ &t2_base->devconf1);
|
||||
+
|
||||
+ writel(readl(&prcm_base->fclken1_core) |
|
||||
+ EN_MMC1 | EN_MMC2 | EN_MMC3,
|
||||
+ &prcm_base->fclken1_core);
|
||||
+
|
||||
+ writel(readl(&prcm_base->iclken1_core) |
|
||||
+ EN_MMC1 | EN_MMC2 | EN_MMC3,
|
||||
+ &prcm_base->iclken1_core);
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -512,8 +544,11 @@ unsigned long mmc_bread(int dev_num, unsigned long blknr, lbaint_t blkcnt,
|
||||
return 1;
|
||||
}
|
||||
|
||||
-int mmc_legacy_init(int verbose)
|
||||
+int mmc_legacy_init(int dev)
|
||||
{
|
||||
+ if (mmc_set_dev(dev) != 0)
|
||||
+ return 1;
|
||||
+
|
||||
if (configure_mmc(&cur_card_data) != 1)
|
||||
return 1;
|
||||
|
||||
diff --git a/include/asm-arm/arch-omap3/mmc_host_def.h b/include/asm-arm/arch-omap3/mmc_host_def.h
|
||||
index aa751c9..43dd705 100644
|
||||
--- a/include/asm-arm/arch-omap3/mmc_host_def.h
|
||||
+++ b/include/asm-arm/arch-omap3/mmc_host_def.h
|
||||
@@ -29,13 +29,20 @@
|
||||
#define T2_BASE 0x48002000
|
||||
|
||||
typedef struct t2 {
|
||||
- unsigned char res1[0x274];
|
||||
+ unsigned char res1[0x274]; /* 0x000 */
|
||||
unsigned int devconf0; /* 0x274 */
|
||||
- unsigned char res2[0x2A8];
|
||||
+ unsigned char res2[0x060]; /* 0x278 */
|
||||
+ unsigned int devconf1; /* 0x2D8 */
|
||||
+ unsigned char res3[0x244]; /* 0x2DC */
|
||||
unsigned int pbias_lite; /* 0x520 */
|
||||
} t2_t;
|
||||
|
||||
#define MMCSDIO1ADPCLKISEL (1 << 24)
|
||||
+#define MMCSDIO2ADPCLKISEL (1 << 6)
|
||||
+
|
||||
+#define EN_MMC1 (1 << 24)
|
||||
+#define EN_MMC2 (1 << 25)
|
||||
+#define EN_MMC3 (1 << 30)
|
||||
|
||||
#define PBIASLITEPWRDNZ0 (1 << 1)
|
||||
#define PBIASSPEEDCTRL0 (1 << 2)
|
||||
@@ -44,7 +51,9 @@ typedef struct t2 {
|
||||
/*
|
||||
* OMAP HSMMC register definitions
|
||||
*/
|
||||
-#define OMAP_HSMMC_BASE 0x4809C000
|
||||
+#define OMAP_HSMMC1_BASE 0x4809C000
|
||||
+#define OMAP_HSMMC2_BASE 0x480B4000
|
||||
+#define OMAP_HSMMC3_BASE 0x480AD000
|
||||
|
||||
typedef struct hsmmc {
|
||||
unsigned char res1[0x10];
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
-55
@@ -1,55 +0,0 @@
|
||||
From 8da9e2bac6daf2d61d7ca9d689790fc9ce5de9cb Mon Sep 17 00:00:00 2001
|
||||
From: Steve Sakoman <steve@sakoman.com>
|
||||
Date: Fri, 7 May 2010 07:40:26 -0700
|
||||
Subject: [PATCH 41/51] OMAP3: Beagle: enable support for second and third mmc channels
|
||||
|
||||
Based on 629a01965677e680ffa1fe76579ace7f69dd45b9, but removed BOOTDELAY change.
|
||||
---
|
||||
include/configs/omap3_beagle.h | 8 +++++---
|
||||
1 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 8ad52aa..e4c88f2 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -95,6 +95,7 @@
|
||||
115200}
|
||||
#define CONFIG_MMC 1
|
||||
#define CONFIG_OMAP3_MMC 1
|
||||
+#define CONFIG_SYS_MMC_SET_DEV 1
|
||||
#define CONFIG_DOS_PARTITION 1
|
||||
|
||||
/* DDR - I use Micron DDR */
|
||||
@@ -194,6 +195,7 @@
|
||||
"vram=12M\0" \
|
||||
"dvimode=640x480MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
+ "mmcdev=1\0" \
|
||||
"mmcroot=/dev/mmcblk0p2 rw\0" \
|
||||
"mmcrootfstype=ext3 rootwait\0" \
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
@@ -214,10 +216,10 @@
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${nandroot} " \
|
||||
"rootfstype=${nandrootfstype}\0" \
|
||||
- "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \
|
||||
+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||||
"bootscript=echo Running bootscript from mmc ...; " \
|
||||
"source ${loadaddr}\0" \
|
||||
- "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \
|
||||
+ "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
"mmcboot=echo Booting from mmc ...; " \
|
||||
"run mmcargs; " \
|
||||
"bootm ${loadaddr}\0" \
|
||||
@@ -227,7 +229,7 @@
|
||||
"bootm ${loadaddr}\0" \
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
- "if mmc init; then " \
|
||||
+ "if mmc init ${mmcdev}; then " \
|
||||
"if run loadbootscript; then " \
|
||||
"run bootscript; " \
|
||||
"else " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,256 +0,0 @@
|
||||
From 1fc5c28bc260c72b4f9cefdf55bfd10504916457 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Thu, 20 May 2010 05:41:26 -0500
|
||||
Subject: [PATCH 43/51] Add 'led' command
|
||||
|
||||
This patch allows any board implementing the coloured LED API
|
||||
to control the LEDs from the console.
|
||||
|
||||
led [green | yellow | red | all ] [ on | off ]
|
||||
|
||||
or
|
||||
|
||||
led [ 1 | 2 | 3 | all ] [ on | off ]
|
||||
|
||||
Adds configuration item CONFIG_CMD_LED enabling the command.
|
||||
|
||||
Partially based on patch from Ulf Samuelsson:
|
||||
http://www.mail-archive.com/u-boot@lists.denx.de/msg09593.html.
|
||||
(cherry picked from commit aaf47f8d6af81393b7d3275d69b5dbdf07a3d6fb)
|
||||
(cherry picked from commit 3d314bf59a48c2ee93d06d50b81f109af6a6c1ec)
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
common/Makefile | 1 +
|
||||
common/cmd_led.c | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 208 insertions(+), 0 deletions(-)
|
||||
create mode 100644 common/cmd_led.c
|
||||
|
||||
diff --git a/common/Makefile b/common/Makefile
|
||||
index dbf7a05..1d717ca 100644
|
||||
--- a/common/Makefile
|
||||
+++ b/common/Makefile
|
||||
@@ -106,6 +106,7 @@ COBJS-$(CONFIG_CMD_IRQ) += cmd_irq.o
|
||||
COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o
|
||||
COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o
|
||||
COBJS-$(CONFIG_CMD_CRAMFS) += cmd_cramfs.o
|
||||
+COBJS-$(CONFIG_CMD_LED) += cmd_led.o
|
||||
COBJS-$(CONFIG_CMD_LICENSE) += cmd_license.o
|
||||
COBJS-y += cmd_load.o
|
||||
COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o
|
||||
diff --git a/common/cmd_led.c b/common/cmd_led.c
|
||||
new file mode 100644
|
||||
index 0000000..3b7b534
|
||||
--- /dev/null
|
||||
+++ b/common/cmd_led.c
|
||||
@@ -0,0 +1,207 @@
|
||||
+/*
|
||||
+ * (C) Copyright 2010
|
||||
+ * Jason Kridner <jkridner@beagleboard.org>
|
||||
+ *
|
||||
+ * Based on cmd_led.c patch from:
|
||||
+ * http://www.mail-archive.com/u-boot@lists.denx.de/msg06873.html
|
||||
+ * (C) Copyright 2008
|
||||
+ * Ulf Samuelsson <ulf.samuelsson@atmel.com>
|
||||
+ *
|
||||
+ * See file CREDITS for list of people who contributed to this
|
||||
+ * project.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of
|
||||
+ * the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
+ * MA 02111-1307 USA
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * This file provides a shell like 'test' function to return
|
||||
+ * true/false from an integer or string compare of two memory
|
||||
+ * locations or a location and a scalar/literal.
|
||||
+ * A few parts were lifted from bash 'test' command
|
||||
+ */
|
||||
+
|
||||
+#include <common.h>
|
||||
+#include <config.h>
|
||||
+#include <command.h>
|
||||
+#include <status_led.h>
|
||||
+
|
||||
+int do_led ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] )
|
||||
+{
|
||||
+#ifdef CONFIG_BOARD_SPECIFIC_LED
|
||||
+ led_id_t mask;
|
||||
+#endif
|
||||
+ int state;
|
||||
+
|
||||
+ /* Validate arguments */
|
||||
+ if ((argc != 3)){
|
||||
+ printf("Usage:\n%s\n", cmdtp->usage);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ if (strcmp(argv[2], "off") == 0) {
|
||||
+ state = 0;
|
||||
+ } else if (strcmp(argv[2], "on") == 0) {
|
||||
+ state = 1;
|
||||
+ } else {
|
||||
+ printf ("Usage:\n%s\n", cmdtp->usage);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ if (strcmp(argv[1], "0") == 0) {
|
||||
+ mask = STATUS_LED_BIT;
|
||||
+ __led_set(mask, state);
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ if (strcmp(argv[1], "1") == 0) {
|
||||
+ mask = STATUS_LED_BIT1;
|
||||
+ __led_set(mask, state);
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ if (strcmp(argv[1], "2") == 0) {
|
||||
+ mask = STATUS_LED_BIT2;
|
||||
+ __led_set(mask, state);
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ if (strcmp(argv[1], "3") == 0) {
|
||||
+ mask = STATUS_LED_BIT3;
|
||||
+ __led_set(mask, state);
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_RED
|
||||
+ if (strcmp(argv[1], "red") == 0) {
|
||||
+ if (state == 0)
|
||||
+ red_LED_off();
|
||||
+ else
|
||||
+ red_LED_on();
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+ if (strcmp(argv[1], "green") == 0) {
|
||||
+ if (state == 0)
|
||||
+ green_LED_off();
|
||||
+ else
|
||||
+ green_LED_on();
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_YELLOW
|
||||
+ if (strcmp(argv[1], "yellow") == 0) {
|
||||
+ if (state == 0)
|
||||
+ yellow_LED_off();
|
||||
+ else
|
||||
+ yellow_LED_on();
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BLUE
|
||||
+ if (strcmp(argv[1], "blue") == 0) {
|
||||
+ if (state == 0)
|
||||
+ blue_LED_off();
|
||||
+ else
|
||||
+ blue_LED_on();
|
||||
+ }
|
||||
+ else
|
||||
+#endif
|
||||
+ if (strcmp(argv[1], "all") == 0) {
|
||||
+ mask = 0
|
||||
+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ | STATUS_LED_BIT
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ | STATUS_LED_BIT1
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ | STATUS_LED_BIT2
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ | STATUS_LED_BIT3
|
||||
+#endif
|
||||
+ ;
|
||||
+#ifdef CONFIG_BOARD_SPECIFIC_LED
|
||||
+ __led_set(mask, state);
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_RED
|
||||
+ if (state == 0)
|
||||
+ red_LED_off();
|
||||
+ else
|
||||
+ red_LED_on();
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+ if (state == 0)
|
||||
+ green_LED_off();
|
||||
+ else
|
||||
+ green_LED_on();
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_YELLOW
|
||||
+ if (state == 0)
|
||||
+ yellow_LED_off();
|
||||
+ else
|
||||
+ yellow_LED_on();
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BLUE
|
||||
+ if (state == 0)
|
||||
+ blue_LED_off();
|
||||
+ else
|
||||
+ blue_LED_on();
|
||||
+#endif
|
||||
+ } else {
|
||||
+ printf ("Usage:\n%s\n", cmdtp->usage);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+U_BOOT_CMD(
|
||||
+ led, 3, 1, do_led,
|
||||
+ "led\t- ["
|
||||
+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ "0|"
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ "1|"
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ "2|"
|
||||
+#endif
|
||||
+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED)
|
||||
+ "3|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_GREEN
|
||||
+ "green|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_YELLOW
|
||||
+ "yellow|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_RED
|
||||
+ "red|"
|
||||
+#endif
|
||||
+#ifdef STATUS_LED_BLUE
|
||||
+ "blue|"
|
||||
+#endif
|
||||
+ "all] [on|off]\n",
|
||||
+ "led [led_name] [on|off] sets or clears led(s)\n"
|
||||
+);
|
||||
+
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
From 40049e97a5a97d597f8754ff1b39d931053eb465 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 19 May 2010 05:14:43 -0500
|
||||
Subject: [PATCH 44/51] BeagleBoard: Enabled LEDs
|
||||
|
||||
Added LED driver using status_led. USR0 is set to monitor the boot
|
||||
status. USR1 is set to be the GREEN LED.
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 13 +++++++++++++
|
||||
1 files changed, 13 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index e4c88f2..053f5df 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -98,6 +98,18 @@
|
||||
#define CONFIG_SYS_MMC_SET_DEV 1
|
||||
#define CONFIG_DOS_PARTITION 1
|
||||
|
||||
+/* Status LED */
|
||||
+#define CONFIG_STATUS_LED 1
|
||||
+#define CONFIG_BOARD_SPECIFIC_LED 1
|
||||
+#define STATUS_LED_BIT 0x01
|
||||
+#define STATUS_LED_STATE STATUS_LED_ON
|
||||
+#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 2)
|
||||
+#define STATUS_LED_BIT1 0x02
|
||||
+#define STATUS_LED_STATE1 STATUS_LED_ON
|
||||
+#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2)
|
||||
+#define STATUS_LED_BOOT STATUS_LED_BIT
|
||||
+#define STATUS_LED_GREEN STATUS_LED_BIT1
|
||||
+
|
||||
/* DDR - I use Micron DDR */
|
||||
#define CONFIG_OMAP3_MICRON_DDR 1
|
||||
|
||||
@@ -138,6 +150,7 @@
|
||||
#define CONFIG_CMD_I2C /* I2C serial bus support */
|
||||
#define CONFIG_CMD_MMC /* MMC support */
|
||||
#define CONFIG_CMD_NAND /* NAND support */
|
||||
+#define CONFIG_CMD_LED /* LED support */
|
||||
#define CONFIG_VIDEO_OMAP3 /* DSS Support */
|
||||
|
||||
#undef CONFIG_CMD_FLASH /* flinfo, erase, protect */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From 631cd4e4a02faa5726c058626390bee97188f456 Mon Sep 17 00:00:00 2001
|
||||
From: Steven Kipisz <s-kipisz2@ti.com>
|
||||
Date: Fri, 4 Jun 2010 10:31:04 -0500
|
||||
Subject: [PATCH 46/51] BeagleBoard: Add CONFIG_SYS_MEMTEST_SCRATCH
|
||||
|
||||
Add CONFIG_SYS_MEMTEST_SCRATCH to point to a scratch memory area.
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 9 +++++----
|
||||
1 files changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 053f5df..b265b0c 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -269,10 +269,11 @@
|
||||
/* Boot Argument Buffer Size */
|
||||
#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
|
||||
|
||||
-#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0) /* memtest */
|
||||
- /* works on */
|
||||
-#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \
|
||||
- 0x01F00000) /* 31MB */
|
||||
+#define CONFIG_SYS_ALT_MEMTEST 1
|
||||
+#define CONFIG_SYS_MEMTEST_START (0x82000000) /* memtest */
|
||||
+ /* defaults */
|
||||
+#define CONFIG_SYS_MEMTEST_END (0x87FFFFFF) /* 128MB */
|
||||
+#define CONFIG_SYS_MEMTEST_SCRATCH (0x81000000) /* dummy address */
|
||||
|
||||
#define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) /* default */
|
||||
/* load address */
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
From d3f9ba7264111551ea11f33aadbecc15c87a4332 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 21 Jul 2010 08:47:59 -0500
|
||||
Subject: [PATCH 47/51] BeagleBoard: Adjust boot command on USER button
|
||||
|
||||
When the USER button is pressed, the default boot command will attempt
|
||||
to load user.scr. If that fails, it will try to load a ramdisk image.
|
||||
|
||||
This version also sets the rootfstype and assumes that the userbutton
|
||||
command returns success (0) when the button is pressed. It also really
|
||||
attempts to load the user.scr file.
|
||||
---
|
||||
include/configs/omap3_beagle.h | 51 ++++++++++++++++++++++++++++++++++-----
|
||||
1 files changed, 44 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index b265b0c..1a76004 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -200,9 +200,12 @@
|
||||
#define CONFIG_BOOTDELAY 3
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
- "loadaddr=0x82000000\0" \
|
||||
+ "loadaddr=0x80200000\0" \
|
||||
+ "rdaddr=0x81600000\0" \
|
||||
"usbtty=cdc_acm\0" \
|
||||
"console=ttyS2,115200n8\0" \
|
||||
+ "optargs=\0" \
|
||||
+ "bootscr=boot.scr\0" \
|
||||
"mpurate=500\0" \
|
||||
"buddy=none\0" \
|
||||
"vram=12M\0" \
|
||||
@@ -213,7 +216,10 @@
|
||||
"mmcrootfstype=ext3 rootwait\0" \
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
"nandrootfstype=jffs2\0" \
|
||||
+ "ramroot=/dev/ram0 rw\0" \
|
||||
+ "ramrootfstype=ext2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
@@ -222,6 +228,7 @@
|
||||
"root=${mmcroot} " \
|
||||
"rootfstype=${mmcrootfstype}\0" \
|
||||
"nandargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
"vram=${vram} " \
|
||||
@@ -229,7 +236,18 @@
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
"root=${nandroot} " \
|
||||
"rootfstype=${nandrootfstype}\0" \
|
||||
- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||||
+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} ${bootscr}\0" \
|
||||
+ "ramargs=setenv bootargs console=${console} " \
|
||||
+ "${optargs} " \
|
||||
+ "mpurate=${mpurate} " \
|
||||
+ "buddy=${buddy} "\
|
||||
+ "vram=${vram} " \
|
||||
+ "omapfb.mode=dvi:${dvimode} " \
|
||||
+ "omapdss.def_disp=${defaultdisplay} " \
|
||||
+ "root=${ramroot} rw ramdisk_size=65536 " \
|
||||
+ "initrd=${rdaddr},64M " \
|
||||
+ "rootfstype=${ramrootfstype}\0" \
|
||||
+ "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||||
"bootscript=echo Running bootscript from mmc ...; " \
|
||||
"source ${loadaddr}\0" \
|
||||
"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||||
@@ -240,15 +258,34 @@
|
||||
"run nandargs; " \
|
||||
"nand read ${loadaddr} 280000 400000; " \
|
||||
"bootm ${loadaddr}\0" \
|
||||
+ "ramboot=echo Booting from ramdisk ...; " \
|
||||
+ "run ramargs; " \
|
||||
+ "bootm ${loadaddr}\0" \
|
||||
|
||||
#define CONFIG_BOOTCOMMAND \
|
||||
"if mmc init ${mmcdev}; then " \
|
||||
- "if run loadbootscript; then " \
|
||||
- "run bootscript; " \
|
||||
+ "if userbutton; then " \
|
||||
+ "setenv bootscr user.scr;" \
|
||||
+ "if run loadbootscript; then " \
|
||||
+ "run bootscript; " \
|
||||
+ "else " \
|
||||
+ "if run loaduimage; then " \
|
||||
+ "if run loadramdisk; then " \
|
||||
+ "run ramboot; " \
|
||||
+ "else " \
|
||||
+ "run mmcboot; " \
|
||||
+ "fi; " \
|
||||
+ "fi; " \
|
||||
+ "fi; " \
|
||||
"else " \
|
||||
- "if run loaduimage; then " \
|
||||
- "run mmcboot; " \
|
||||
- "else run nandboot; " \
|
||||
+ "setenv bootscr boot.scr; " \
|
||||
+ "if run loadbootscript; then " \
|
||||
+ "run bootscript; " \
|
||||
+ "else " \
|
||||
+ "if run loaduimage; then " \
|
||||
+ "run mmcboot; " \
|
||||
+ "else run nandboot; " \
|
||||
+ "fi; " \
|
||||
"fi; " \
|
||||
"fi; " \
|
||||
"else run nandboot; fi"
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
From 35e971eea9c9d9cb690da0509e0f8a48a2cb1269 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kipisz <s-kipisz2@ti.com>
|
||||
Date: Thu, 5 Aug 2010 10:36:07 -0500
|
||||
Subject: [PATCH 48/51] BeagleBoard: Enable pullups on i2c2.
|
||||
|
||||
---
|
||||
board/ti/beagle/beagle.c | 2 ++
|
||||
include/asm-arm/arch-omap3/omap3.h | 9 +++++++++
|
||||
2 files changed, 11 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index 66df719..ee6bad2 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -171,6 +171,8 @@ int misc_init_r(void)
|
||||
struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE;
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
+ /* Enable i22 pullup resisters */
|
||||
+ *(ulong *)(CONTROL_PROG_IO1) &= ~(PRG_I2C2_PULLUPRESX);
|
||||
beagle_identify();
|
||||
|
||||
printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n\n");
|
||||
diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h
|
||||
index 3957c79..1860dff 100644
|
||||
--- a/include/asm-arm/arch-omap3/omap3.h
|
||||
+++ b/include/asm-arm/arch-omap3/omap3.h
|
||||
@@ -50,6 +50,15 @@
|
||||
/* CONTROL */
|
||||
#define OMAP34XX_CTRL_BASE (OMAP34XX_L4_IO_BASE + 0x2000)
|
||||
|
||||
+/* Signal Integrity Parameter Control Registers */
|
||||
+#define CONTROL_PROG_IO0 0x48002444
|
||||
+#define CONTROL_PROG_IO1 0x48002448
|
||||
+#define CONTROL_PROG_IO2 0x48002408
|
||||
+#define CONTROL_PROG_IO_WKUP1 0x48002A80
|
||||
+
|
||||
+/* Bit definition for CONTROL_PROG_IO1 */
|
||||
+#define PRG_I2C2_PULLUPRESX 0x00000001
|
||||
+
|
||||
/* UART */
|
||||
#define OMAP34XX_UART1 (OMAP34XX_L4_IO_BASE + 0x6a000)
|
||||
#define OMAP34XX_UART2 (OMAP34XX_L4_IO_BASE + 0x6c000)
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
From 0a49d60caf30738f13b60a71e740e28f4e7af902 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Thu, 5 Aug 2010 13:54:12 -0500
|
||||
Subject: [PATCH 49/51] BeagleBoard: Add camera to default bootargs
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 4 ++++
|
||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 1a76004..48ad805 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -208,6 +208,7 @@
|
||||
"bootscr=boot.scr\0" \
|
||||
"mpurate=500\0" \
|
||||
"buddy=none\0" \
|
||||
+ "camera=lbcm3m1\0" \
|
||||
"vram=12M\0" \
|
||||
"dvimode=640x480MR-16@60\0" \
|
||||
"defaultdisplay=dvi\0" \
|
||||
@@ -222,6 +223,7 @@
|
||||
"${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -231,6 +233,7 @@
|
||||
"${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
@@ -241,6 +244,7 @@
|
||||
"${optargs} " \
|
||||
"mpurate=${mpurate} " \
|
||||
"buddy=${buddy} "\
|
||||
+ "camera=${camera} "\
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
From 21738fa5ae05dd5060cf755ac0460f5d1f27e910 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Kridner <jkridner@beagleboard.org>
|
||||
Date: Wed, 11 Aug 2010 14:50:38 -0500
|
||||
Subject: [PATCH 50/51] BeagleBoard: move ramdisk parameters
|
||||
|
||||
This will make it easier to reprogram the ramdisk size.
|
||||
|
||||
Signed-off-by: Jason Kridner <jkridner@beagleboard.org>
|
||||
---
|
||||
include/configs/omap3_beagle.h | 5 ++---
|
||||
1 files changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
|
||||
index 48ad805..4f5c1d4 100644
|
||||
--- a/include/configs/omap3_beagle.h
|
||||
+++ b/include/configs/omap3_beagle.h
|
||||
@@ -217,7 +217,7 @@
|
||||
"mmcrootfstype=ext3 rootwait\0" \
|
||||
"nandroot=/dev/mtdblock4 rw\0" \
|
||||
"nandrootfstype=jffs2\0" \
|
||||
- "ramroot=/dev/ram0 rw\0" \
|
||||
+ "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M\0" \
|
||||
"ramrootfstype=ext2\0" \
|
||||
"mmcargs=setenv bootargs console=${console} " \
|
||||
"${optargs} " \
|
||||
@@ -248,8 +248,7 @@
|
||||
"vram=${vram} " \
|
||||
"omapfb.mode=dvi:${dvimode} " \
|
||||
"omapdss.def_disp=${defaultdisplay} " \
|
||||
- "root=${ramroot} rw ramdisk_size=65536 " \
|
||||
- "initrd=${rdaddr},64M " \
|
||||
+ "root=${ramroot} " \
|
||||
"rootfstype=${ramrootfstype}\0" \
|
||||
"loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||||
"bootscript=echo Running bootscript from mmc ...; " \
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
From 05c4ef3b0963cef095075486820b030226ced7c3 Mon Sep 17 00:00:00 2001
|
||||
From: Koen Kooi <koen@dominion.thruhere.net>
|
||||
Date: Tue, 8 Feb 2011 12:02:46 +0100
|
||||
Subject: [PATCH 51/51] add support for beagleboardtoys expansionboards
|
||||
|
||||
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
|
||||
---
|
||||
board/ti/beagle/beagle.c | 15 +++++++++++++++
|
||||
board/ti/beagle/beagle.h | 10 ++++++++++
|
||||
2 files changed, 25 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
|
||||
index ee6bad2..fdd9c09 100644
|
||||
--- a/board/ti/beagle/beagle.c
|
||||
+++ b/board/ti/beagle/beagle.c
|
||||
@@ -62,12 +62,16 @@ static struct {
|
||||
#define HYR_VENDORID 0x0400
|
||||
#define MENTOREL_VENDORID 0x0500
|
||||
#define KBADC_VENDORID 0x0600
|
||||
+#define BBTOYS_VENDORID 0x0B00
|
||||
|
||||
#define TINCANTOOLS_ZIPPY 0x01000100
|
||||
#define TINCANTOOLS_ZIPPY2 0x02000100
|
||||
#define TINCANTOOLS_TRAINER 0x04000100
|
||||
#define TINCANTOOLS_SHOWDOG 0x03000100
|
||||
#define KBADC_BEAGLEFPGA 0x01000600
|
||||
+#define BBTOYS_WIFI 0x01000B00
|
||||
+#define BBTOYS_VGA 0x02000B00
|
||||
+#define BBTOYS_LCD 0x03000B00
|
||||
|
||||
#define BEAGLE_NO_EEPROM 0xffffffff
|
||||
|
||||
@@ -209,6 +213,17 @@ int misc_init_r(void)
|
||||
MUX_KBADC_BEAGLEFPGA();
|
||||
setenv("buddy", "beaglefpga");
|
||||
break;
|
||||
+ case BBTOYS_WIFI:
|
||||
+ printf("Recognized Beagleboardtoys wifi board\n");
|
||||
+ MUX_BBTOYS_WIFI()
|
||||
+ setenv("buddy", "bbtoys-wifi");
|
||||
+ break;;
|
||||
+ case BBTOYS_VGA:
|
||||
+ printf("Recognized Beagleboardtoys VGA board\n");
|
||||
+ break;;
|
||||
+ case BBTOYS_LCD:
|
||||
+ printf("Recognized Beagleboardtoys LCD board\n");
|
||||
+ break;;
|
||||
case BEAGLE_NO_EEPROM:
|
||||
printf("No EEPROM on expansion board\n");
|
||||
setenv("buddy", "none");
|
||||
diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h
|
||||
index cb7fd1c..2dc6ee6 100644
|
||||
--- a/board/ti/beagle/beagle.h
|
||||
+++ b/board/ti/beagle/beagle.h
|
||||
@@ -459,6 +459,16 @@ const omap3_sysinfo sysinfo = {
|
||||
MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\
|
||||
MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/\
|
||||
|
||||
+#define MUX_BBTOYS_WIFI() \
|
||||
+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\
|
||||
+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137*/\
|
||||
+ MUX_VAL(CP(MMC2_DAT7), (IDIS | PTD | DIS | M4)) /*GPIO_139*/\
|
||||
+
|
||||
/*
|
||||
* Display Configuration
|
||||
*/
|
||||
--
|
||||
1.6.6.1
|
||||
|
||||
@@ -4,61 +4,28 @@ PR ="r66"
|
||||
FILESPATHPKG =. "u-boot-git:"
|
||||
|
||||
SRC_URI_beagleboard = "git://www.denx.de/git/u-boot.git;protocol=git \
|
||||
file://0001-Enable-I2C-bus-switching.patch \
|
||||
file://0002-OMAP3-add-board-revision-detection-for-Overo.patch \
|
||||
file://0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch \
|
||||
file://0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch \
|
||||
file://0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch \
|
||||
file://0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch \
|
||||
file://0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch \
|
||||
file://0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch \
|
||||
file://0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch \
|
||||
file://0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch \
|
||||
file://0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch \
|
||||
file://0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch \
|
||||
file://0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch \
|
||||
file://0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch \
|
||||
file://0015-OMAP3-mem.c-enhance-the-RAM-test.patch \
|
||||
file://0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch \
|
||||
file://0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch \
|
||||
file://0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch \
|
||||
file://0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch \
|
||||
file://0020-OMAP3-beagle-add-support-for-Beagle-xM.patch \
|
||||
file://0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch \
|
||||
file://0022-OMAP3-beagle-implement-expansionboard-detection-base.patch \
|
||||
file://0023-beagleboard-display-message-about-I2C-errors-being-e.patch \
|
||||
file://0024-beagleboard-fix-TCT-expansionboard-IDs.patch \
|
||||
file://0025-Add-DSS-driver-for-OMAP3.patch \
|
||||
file://0026-Enable-DSS-driver-for-Beagle.patch \
|
||||
file://0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch \
|
||||
file://0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch \
|
||||
file://0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch \
|
||||
file://0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch \
|
||||
file://0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch \
|
||||
file://0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch \
|
||||
file://0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch \
|
||||
file://0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch \
|
||||
file://0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch \
|
||||
file://0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch \
|
||||
file://0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch \
|
||||
file://0038-Added-configurations-for-xM-Rev-A-board.patch \
|
||||
file://0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch \
|
||||
file://0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch \
|
||||
file://0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch \
|
||||
file://0042-BeagleBoard-Added-LED-driver.patch \
|
||||
file://0043-Add-led-command.patch \
|
||||
file://0044-BeagleBoard-Enabled-LEDs.patch \
|
||||
file://0045-BeagleBoard-Added-userbutton-command.patch \
|
||||
file://0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch \
|
||||
file://0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch \
|
||||
file://0048-BeagleBoard-Enable-pullups-on-i2c2.patch \
|
||||
file://0049-BeagleBoard-Add-camera-to-default-bootargs.patch \
|
||||
file://0050-BeagleBoard-move-ramdisk-parameters.patch \
|
||||
file://0051-add-support-for-beagleboardtoys-expansionboards.patch \
|
||||
file://0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch \
|
||||
file://0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch \
|
||||
file://0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch \
|
||||
file://0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch \
|
||||
file://0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch \
|
||||
file://0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch \
|
||||
file://0007-OMAP3-Add-DSS-driver-for-OMAP3.patch \
|
||||
file://0008-BeagleBoard-Added-userbutton-command.patch \
|
||||
file://0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch \
|
||||
file://0010-Enable-DSS-driver-for-Beagle.patch \
|
||||
file://0011-Add-led-command.patch \
|
||||
file://0012-BeagleBoard-Added-LED-driver.patch \
|
||||
file://0013-OMAP3-BeagleBoard-updated-default-configuration.patch \
|
||||
file://0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch \
|
||||
file://0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch \
|
||||
file://0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch \
|
||||
file://fw_env.config \
|
||||
"
|
||||
SRCREV_pn-${PN}_beagleboard = "ca6e1c136ddb720c3bb2cc043b99f7f06bc46c55"
|
||||
PV_pn-${PN}_beagleboard = "2010.03+${PR}+gitr${SRCREV}"
|
||||
"
|
||||
|
||||
SRCREV_pn-${PN}_beagleboard = "c7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8"
|
||||
PV_pn-${PN}_beagleboard = "2011.02+${PR}+gitr${SRCREV}"
|
||||
LIC_FILES_CHKSUM_pn-${PN}_beagleboard = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb"
|
||||
|
||||
# ~ TI PSP v2009.11_OMAPPSP_03.00.01.06 (+ couple of commits)
|
||||
SRC_URI_omap3evm = "git://arago-project.org/git/projects/u-boot-omap3.git;protocol=git \
|
||||
|
||||
Reference in New Issue
Block a user