|
@@ -236,3 +236,138 @@
|
|
|
PM_SYS_PUSH(10, PINT2_ASSIGN)
|
|
|
PM_SYS_PUSH(11, PINT3_ASSIGN)
|
|
|
PM_SYS_PUSH(12, PINT0_INVERT_SET)
|
|
|
+ PM_SYS_PUSH(13, PINT1_INVERT_SET)
|
|
|
+ PM_PUSH_SYNC(13)
|
|
|
+ PM_SYS_PUSH(0, PINT2_INVERT_SET)
|
|
|
+ PM_SYS_PUSH(1, PINT3_INVERT_SET)
|
|
|
+ PM_SYS_PUSH(2, PINT0_EDGE_SET)
|
|
|
+ PM_SYS_PUSH(3, PINT1_EDGE_SET)
|
|
|
+ PM_SYS_PUSH(4, PINT2_EDGE_SET)
|
|
|
+ PM_SYS_PUSH(5, PINT3_EDGE_SET)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef SYSCR
|
|
|
+ PM_SYS_PUSH16(6, SYSCR)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef EBIU_AMGCTL
|
|
|
+ PM_SYS_PUSH16(7, EBIU_AMGCTL)
|
|
|
+ PM_SYS_PUSH(8, EBIU_AMBCTL0)
|
|
|
+ PM_SYS_PUSH(9, EBIU_AMBCTL1)
|
|
|
+#endif
|
|
|
+#ifdef EBIU_FCTL
|
|
|
+ PM_SYS_PUSH(10, EBIU_MBSCTL)
|
|
|
+ PM_SYS_PUSH(11, EBIU_MODE)
|
|
|
+ PM_SYS_PUSH(12, EBIU_FCTL)
|
|
|
+ PM_PUSH_SYNC(12)
|
|
|
+#else
|
|
|
+ PM_PUSH_SYNC(9)
|
|
|
+#endif
|
|
|
+ .endm
|
|
|
+
|
|
|
+
|
|
|
+ .macro bfin_sys_mmr_restore
|
|
|
+/* Restore System MMRs */
|
|
|
+ FP.H = hi(SYSMMR_BASE);
|
|
|
+ FP.L = lo(SYSMMR_BASE);
|
|
|
+
|
|
|
+#ifdef EBIU_FCTL
|
|
|
+ PM_POP_SYNC(12)
|
|
|
+ PM_SYS_POP(12, EBIU_FCTL)
|
|
|
+ PM_SYS_POP(11, EBIU_MODE)
|
|
|
+ PM_SYS_POP(10, EBIU_MBSCTL)
|
|
|
+#else
|
|
|
+ PM_POP_SYNC(9)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef EBIU_AMGCTL
|
|
|
+ PM_SYS_POP(9, EBIU_AMBCTL1)
|
|
|
+ PM_SYS_POP(8, EBIU_AMBCTL0)
|
|
|
+ PM_SYS_POP16(7, EBIU_AMGCTL)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef SYSCR
|
|
|
+ PM_SYS_POP16(6, SYSCR)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef PINT0_ASSIGN
|
|
|
+ PM_SYS_POP(5, PINT3_EDGE_SET)
|
|
|
+ PM_SYS_POP(4, PINT2_EDGE_SET)
|
|
|
+ PM_SYS_POP(3, PINT1_EDGE_SET)
|
|
|
+ PM_SYS_POP(2, PINT0_EDGE_SET)
|
|
|
+ PM_SYS_POP(1, PINT3_INVERT_SET)
|
|
|
+ PM_SYS_POP(0, PINT2_INVERT_SET)
|
|
|
+ PM_POP_SYNC(13)
|
|
|
+ PM_SYS_POP(13, PINT1_INVERT_SET)
|
|
|
+ PM_SYS_POP(12, PINT0_INVERT_SET)
|
|
|
+ PM_SYS_POP(11, PINT3_ASSIGN)
|
|
|
+ PM_SYS_POP(10, PINT2_ASSIGN)
|
|
|
+ PM_SYS_POP(9, PINT1_ASSIGN)
|
|
|
+ PM_SYS_POP(8, PINT0_ASSIGN)
|
|
|
+ PM_SYS_POP(7, PINT3_MASK_SET)
|
|
|
+ PM_SYS_POP(6, PINT2_MASK_SET)
|
|
|
+ PM_SYS_POP(5, PINT1_MASK_SET)
|
|
|
+ PM_SYS_POP(4, PINT0_MASK_SET)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef SIC_IWR2
|
|
|
+ PM_SYS_POP(3, SIC_IWR2)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IWR1
|
|
|
+ PM_SYS_POP(2, SIC_IWR1)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IWR0
|
|
|
+ PM_SYS_POP(1, SIC_IWR0)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IWR
|
|
|
+ PM_SYS_POP(1, SIC_IWR)
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef SIC_IAR11
|
|
|
+ PM_SYS_POP(0, SIC_IAR11)
|
|
|
+#endif
|
|
|
+ PM_POP_SYNC(13)
|
|
|
+#ifdef SIC_IAR8
|
|
|
+ PM_SYS_POP(13, SIC_IAR10)
|
|
|
+ PM_SYS_POP(12, SIC_IAR9)
|
|
|
+ PM_SYS_POP(11, SIC_IAR8)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IAR7
|
|
|
+ PM_SYS_POP(10, SIC_IAR7)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IAR6
|
|
|
+ PM_SYS_POP(9, SIC_IAR6)
|
|
|
+ PM_SYS_POP(8, SIC_IAR5)
|
|
|
+ PM_SYS_POP(7, SIC_IAR4)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IAR3
|
|
|
+ PM_SYS_POP(6, SIC_IAR3)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IAR0
|
|
|
+ PM_SYS_POP(5, SIC_IAR2)
|
|
|
+ PM_SYS_POP(4, SIC_IAR1)
|
|
|
+ PM_SYS_POP(3, SIC_IAR0)
|
|
|
+#endif
|
|
|
+#ifdef SIC_IMASK0
|
|
|
+# ifdef SIC_IMASK2
|
|
|
+ PM_SYS_POP(2, SIC_IMASK2)
|
|
|
+# endif
|
|
|
+ PM_SYS_POP(1, SIC_IMASK1)
|
|
|
+ PM_SYS_POP(0, SIC_IMASK0)
|
|
|
+#else
|
|
|
+# ifdef SIC_IMASK
|
|
|
+ PM_SYS_POP(0, SIC_IMASK)
|
|
|
+# endif
|
|
|
+#endif
|
|
|
+ .endm
|
|
|
+
|
|
|
+ .macro bfin_core_mmr_save
|
|
|
+ /* Save Core MMRs */
|
|
|
+ I0.H = hi(COREMMR_BASE);
|
|
|
+ I0.L = lo(COREMMR_BASE);
|
|
|
+ I1 = I0;
|
|
|
+ I2 = I0;
|
|
|
+ I3 = I0;
|
|
|
+ B0 = I0;
|
|
|
+ B1 = I0;
|
|
|
+ B2 = I0;
|