diff options
author | Florian Boor <florian.boor@kernelconcepts.de> | 2007-09-06 10:41:59 +0000 |
---|---|---|
committer | Florian Boor <florian.boor@kernelconcepts.de> | 2007-09-06 10:41:59 +0000 |
commit | 8460c2fecbe36ce06135d64b683b0f2c3d924baf (patch) | |
tree | 31168741ed50561ea536a335b5bfb6b3007771ef /packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff | |
parent | 325f26749da469ef7d90430a1be7b6f1e9d014a8 (diff) | |
parent | 56b356eeb9cbb597e7271068f5b0708b4a7844be (diff) |
merge of '471f6e7d5fb5bc4d13a2338851dabca9f72b3f0a'
and '89b1d1f0f032b64f7620006be8bcf6271c70f4b8'
Diffstat (limited to 'packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff')
-rw-r--r-- | packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff new file mode 100644 index 0000000000..9eb2d9de98 --- /dev/null +++ b/packages/linux/linux-2.6.22.6/ts72xx/ep93xx-serial-clocks.diff @@ -0,0 +1,42 @@ + +Hackishly enable all UART clocks before uncompressing the kernel, +so that using ttyAM1 or ttyAM2 as console can work. + +Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> + +Index: linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h +=================================================================== +--- linux-2.6.22.orig/include/asm-arm/arch-ep93xx/uncompress.h ++++ linux-2.6.22/include/asm-arm/arch-ep93xx/uncompress.h +@@ -78,6 +78,23 @@ static void ethernet_reset(void) + + + /* ++ * We don't have clock management for the UARTs (amba-pl010) ++ * yet, so hackily enable all UART clocks here for now. ++ */ ++#define PHYS_SYSCON_DEVICE_CONFIG 0x80930080 ++#define PHYS_SYSCON_SWLOCK 0x809300c0 ++ ++static void enable_all_uart_clocks(void) ++{ ++ unsigned int v; ++ ++ v = __raw_readl(PHYS_SYSCON_DEVICE_CONFIG); ++ __raw_writel(0xaa, PHYS_SYSCON_SWLOCK); ++ __raw_writel(v | 0x01140000, PHYS_SYSCON_DEVICE_CONFIG); ++} ++ ++ ++/* + * Some bootloaders don't turn on the UARTBAUD bit, which means that + * the UARTs will be running off a divided 7.3728 MHz clock instead of + * the 14.7456 MHz peripheral clock when linux boots. +@@ -126,6 +143,7 @@ static void fix_uart_base(void) + static void arch_decomp_setup(void) + { + ethernet_reset(); ++ enable_all_uart_clocks(); + fix_uart_base(); + } + |