1 #include <linux/linkage.h>
2 #include <asm/blackfin.h>
5 #define PM_STACK (COREA_L1_SCRATCH_START + L1_SCRATCH_LENGTH - 12)
8 ENTRY(_enter_hibernate)
9 /* switch stack to L1 scratch, prepare for ddr srfr */
15 call _bfin_hibernate_syscontrol;
17 P0.H = HI(DPM0_RESTORE4);
18 P0.L = LO(DPM0_RESTORE4);
19 P1.H = _bf609_pm_data;
20 P1.L = _bf609_pm_data;
25 R3.H = HI(0x00000010);
26 R3.L = LO(0x00000010);
28 bfin_init_pm_bench_cycles;
33 ENDPROC(_enter_hibernate_mode)
36 ENTRY(_bf609_hibernate)
40 P0.H = _bf609_pm_data;
41 P0.L = _bf609_pm_data;
44 R2.H = .Lpm_resume_here;
45 R2.L = .Lpm_resume_here;
50 P1.H = _enter_hibernate;
51 P1.L = _enter_hibernate;
56 bfin_core_mmr_restore;
59 [--sp] = RETI; /* Clear Global Interrupt Disable */
64 ENDPROC(_bf609_hibernate)