diff options
author | Petr Stetiar <ynezz@true.cz> | 2007-09-06 08:16:40 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2007-09-06 08:16:40 +0000 |
commit | 69be25f5d1e83ee279cc286e67ace024a2a30665 (patch) | |
tree | 5801eb6a228de34fe0403e5be0d51887f7dc71b9 /packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch | |
parent | 1230cf4ecda8de9a1d974ddc12ddcadf190d4072 (diff) |
linux: add ts72xx support to 2.6.22.6 and 2.6.22+2.6.23-rc5 (see version policy for the renaming reason), closes #2918
Diffstat (limited to 'packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch')
-rw-r--r-- | packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch new file mode 100644 index 0000000000..681622a9ae --- /dev/null +++ b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ts72xx-use-cpld-reset.patch @@ -0,0 +1,41 @@ + +Use CPLD watchdog to reset the machine instead of buggy ep93xx one, which +sometimes get stuck... + +Signed-off-by: Petr Stetiar <ynezz@true.cz> + +Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/system.h +=================================================================== +--- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/system.h 2007-09-04 02:29:35.000000000 +0200 ++++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/system.h 2007-09-04 02:31:52.000000000 +0200 +@@ -3,6 +3,7 @@ + */ + + #include <asm/hardware.h> ++#include <asm/mach-types.h> + + static inline void arch_idle(void) + { +@@ -15,11 +16,17 @@ + + local_irq_disable(); + +- devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG); +- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); +- __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG); +- __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); +- __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG); ++ if (machine_is_ts72xx()) { ++ __raw_writeb(0x5, TS72XX_WATCHDOG_FEED_PHYS_BASE); ++ __raw_writeb(0x1, TS72XX_WATCHDOG_CONTROL_PHYS_BASE); ++ } else { ++ devicecfg = __raw_readl(EP93XX_SYSCON_DEVICE_CONFIG); ++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); ++ __raw_writel(devicecfg | 0x80000000, EP93XX_SYSCON_DEVICE_CONFIG); ++ __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); ++ __raw_writel(devicecfg & ~0x80000000, EP93XX_SYSCON_DEVICE_CONFIG); ++ } ++ + + while (1) + ; |