summaryrefslogtreecommitdiffstats
path: root/arch/mips/mach-loongson/include/mach/pbl_macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/mach-loongson/include/mach/pbl_macros.h')
-rw-r--r--arch/mips/mach-loongson/include/mach/pbl_macros.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/arch/mips/mach-loongson/include/mach/pbl_macros.h b/arch/mips/mach-loongson/include/mach/pbl_macros.h
new file mode 100644
index 0000000000..93402d1c54
--- /dev/null
+++ b/arch/mips/mach-loongson/include/mach/pbl_macros.h
@@ -0,0 +1,81 @@
+#ifndef __ASM_MACH_LOONGSON1_PBL_MACROS_H
+#define __ASM_MACH_LOONGSON1_PBL_MACROS_H
+
+#include <asm/addrspace.h>
+#include <asm/regdef.h>
+#include <mach/loongson1.h>
+
+#define PLL_FREQ 0xBFE78030
+#define PLL_DIV_PARAM 0xBFE78034
+
+#define CONFIG_CPU_DIV 3
+#define CONFIG_DDR_DIV 4
+#define CONFIG_DC_DIV 4
+#define CONFIG_PLL_FREQ 0x1C
+#define CONFIG_PLL_DIV_PARAM 0x92392a00
+
+.macro pbl_loongson1_pll
+ .set push
+ .set noreorder
+
+ pbl_reg_writel 0x92392a00, PLL_DIV_PARAM
+ pbl_reg_writel 0x0000001c, PLL_FREQ
+ pbl_sleep t8, 40
+
+ .set pop
+.endm
+
+.macro set_cpu_window id, base, mask, mmap
+ .set push
+ .set noreorder
+
+ li t8, 0xbfd00000
+ sw $0, 0x80 + \id * 8 (t8)
+ li t9, \base
+ sw t9, 0x00 + \id * 8 (t8)
+ sw $0, 0x04 + \id * 8 (t8)
+ li t9, \mask
+ sw t9, 0x40 + \id * 8 (t8)
+ sw $0, 0x44 + \id * 8 (t8)
+ li t9, \mmap
+ sw t9, 0x80 + \id * 8 (t8)
+ sw $0, 0x84 + \id * 8 (t8)
+
+ .set pop
+.endm
+
+.macro pbl_loongson1_remap
+ .set push
+
+ set_cpu_window 0, 0x1c300000, 0xfff00000, 0x1c3000d2
+ set_cpu_window 1, 0x1fe10000, 0xffffe000, 0x1fe100d3
+ set_cpu_window 2, 0x1fe20000, 0xffffe000, 0x1fe200d3
+ set_cpu_window 3, 0x1fe10000, 0xffff0000, 0x1fe100d0
+ set_cpu_window 4, 0x1fe20000, 0xffff0000, 0x1fe200d0
+ set_cpu_window 5, 0x1ff00000, 0xfff00000, 0x1ff000d0
+ set_cpu_window 6, 0x1f000000, 0xff000000, 0x1f0000d3
+ set_cpu_window 7, 0x00000000, 0x00000000, 0x000000f0
+ li t8, 0xbfd000e0
+ lw t9, 0x0 (t8)
+ and t9, t9, 0xffffff00
+ ori t9, t9, 0xd0
+ sw t9, 0x0 (t8)
+
+ lw t9, 0x8 (t8)
+ and t9, t9, 0xffffff00
+ ori t9, t9, 0xd0
+ sw t9, 0x8 (t8)
+
+ .set pop
+.endm
+
+#define GPIOCFG1 0xbfd010C4
+.macro pbl_loongson1_uart_enable
+ .set push
+
+ pbl_reg_clr 0x00C00000, GPIOCFG1
+
+ .set pop
+.endm
+
+#endif /* __ASM_MACH_LOONGSON1_PBL_MACROS_H */