From: <far...@us...> - 2006-08-20 12:35:33
|
Revision: 549 Author: farcaller Date: 2006-08-20 05:35:24 -0700 (Sun, 20 Aug 2006) ViewCVS: http://svn.sourceforge.net/hackndev/?rev=549&view=rev Log Message: ----------- plamt3: T3 PM code, not working, mostly debug stubs Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3.c linux4palm/linux/trunk/arch/arm/mach-pxa/pxa25x.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3.c 2006-08-20 12:31:41 UTC (rev 548) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3.c 2006-08-20 12:35:24 UTC (rev 549) @@ -28,6 +28,7 @@ #include <asm/arch/ssp.h> #include <linux/input.h> #include <linux/soc/tsc2101.h> +#include <asm/arch/pxa-pm_ll.h> #include "../generic.h" @@ -156,6 +157,51 @@ .id = -1, }; +/*** Suspend/Resume ***/ +void palmt3_suspend(unsigned long ret) +{ + // TODO: store return address in checkpoint mem + // INFO: check arch/arm/mach-pxa/pm.c and pxa25x.c for more info + unsigned long * addr; + addr = 0xC0000FF0; + *addr = 0; + addr = 0xC0000FF4; + *addr = 0; + addr = 0xC0000FF8; + *addr = 0; + + return; +} + +void palmt3_suspend_prepare(void) +{ + unsigned long * addr; + PSPR = 0x8C000F00; + PWER = 0x0C03; + PRER = 0x0C03; + PFER = 0x0C03; +#if 0 + addr = 0xC0004800; + *addr = 0x0000000A; +#endif + addr = 0xC0000FF4; + *addr = 0xfeedbee1; +} + +void palmt3_resume(void) +{ + // TODO: anything here? + unsigned long * addr; + addr = 0xC0000FF8; + *addr = 0xfeedbee3; +} + +static struct pxa_ll_pm_ops palmt3_pm_ops = { + palmt3_suspend, + palmt3_resume +}; + + /*** INIT ***/ static struct platform_device *devices[] __initdata = { @@ -173,7 +219,7 @@ do { GPSR(85) = GPIO_bit(85); } while (0); */ set_pxa_fb_info(&palmt3lcd); - + pxa_pm_set_ll_ops(&palmt3_pm_ops); palmt3_ssp_init(); platform_add_devices (devices, ARRAY_SIZE (devices)); } Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/pxa25x.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa25x.c 2006-08-20 12:31:41 UTC (rev 548) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/pxa25x.c 2006-08-20 12:35:24 UTC (rev 549) @@ -122,13 +122,20 @@ { extern void pxa_cpu_suspend(unsigned int); extern void pxa_cpu_resume(void); +#ifdef CONFIG_MACH_T3XSCALE + extern void palmt3_suspend_prepare(void); +#endif CKEN = 0; switch (state) { case PM_SUSPEND_MEM: /* set resume return address */ +#ifndef CONFIG_MACH_T3XSCALE PSPR = virt_to_phys(pxa_cpu_resume); +#else + palmt3_suspend_prepare(); +#endif pxa_cpu_suspend(PWRMODE_SLEEP); break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |