|
@@ -46,11 +46,11 @@
|
|
#define PLLALOCK_TIMEOUT 1000
|
|
#define PLLALOCK_TIMEOUT 1000
|
|
#define PLLBLOCK_TIMEOUT 1000
|
|
#define PLLBLOCK_TIMEOUT 1000
|
|
|
|
|
|
-pmc .req r1
|
|
|
|
-sdramc .req r2
|
|
|
|
|
|
+pmc .req r0
|
|
|
|
+sdramc .req r1
|
|
|
|
+ramc1 .req r2
|
|
tmp1 .req r3
|
|
tmp1 .req r3
|
|
tmp2 .req r4
|
|
tmp2 .req r4
|
|
-ramc1 .req r5
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Wait until master clock is ready (after switching master clock source)
|
|
* Wait until master clock is ready (after switching master clock source)
|
|
@@ -110,21 +110,19 @@ ramc1 .req r5
|
|
|
|
|
|
.text
|
|
.text
|
|
|
|
|
|
|
|
+/* void at91_slow_clock(void __iomem *pmc, void __iomem *sdramc, void __iomem *ramc1) */
|
|
ENTRY(at91_slow_clock)
|
|
ENTRY(at91_slow_clock)
|
|
/* Save registers on stack */
|
|
/* Save registers on stack */
|
|
- stmfd sp!, {r0 - r12, lr}
|
|
|
|
|
|
+ stmfd sp!, {r3 - r12, lr}
|
|
|
|
|
|
/*
|
|
/*
|
|
* Register usage:
|
|
* Register usage:
|
|
- * R1 = Base address of AT91_PMC
|
|
|
|
- * R2 = Base address of RAM Controller (SDRAM, DDRSDR, or AT91_SYS)
|
|
|
|
|
|
+ * R0 = Base address of AT91_PMC
|
|
|
|
+ * R1 = Base address of RAM Controller (SDRAM, DDRSDR, or AT91_SYS)
|
|
|
|
+ * R2 = Base address of second RAM Controller or 0 if not present
|
|
* R3 = temporary register
|
|
* R3 = temporary register
|
|
* R4 = temporary register
|
|
* R4 = temporary register
|
|
- * R5 = Base address of second RAM Controller or 0 if not present
|
|
|
|
*/
|
|
*/
|
|
- ldr pmc, .at91_va_base_pmc
|
|
|
|
- ldr sdramc, .at91_va_base_sdramc
|
|
|
|
- ldr ramc1, .at91_va_base_ramc1
|
|
|
|
|
|
|
|
/* Drain write buffer */
|
|
/* Drain write buffer */
|
|
mov tmp1, #0
|
|
mov tmp1, #0
|
|
@@ -283,7 +281,7 @@ ENTRY(at91_slow_clock)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Restore registers, and return */
|
|
/* Restore registers, and return */
|
|
- ldmfd sp!, {r0 - r12, pc}
|
|
|
|
|
|
+ ldmfd sp!, {r3 - r12, pc}
|
|
|
|
|
|
|
|
|
|
.saved_mckr:
|
|
.saved_mckr:
|
|
@@ -301,26 +299,5 @@ ENTRY(at91_slow_clock)
|
|
.saved_sam9_lpr1:
|
|
.saved_sam9_lpr1:
|
|
.word 0
|
|
.word 0
|
|
|
|
|
|
-.at91_va_base_pmc:
|
|
|
|
- .word AT91_VA_BASE_SYS + AT91_PMC
|
|
|
|
-
|
|
|
|
-#ifdef CONFIG_ARCH_AT91RM9200
|
|
|
|
-.at91_va_base_sdramc:
|
|
|
|
- .word AT91_VA_BASE_SYS
|
|
|
|
-#elif defined(CONFIG_ARCH_AT91SAM9G45)
|
|
|
|
-.at91_va_base_sdramc:
|
|
|
|
- .word AT91_VA_BASE_SYS + AT91_DDRSDRC0
|
|
|
|
-#else
|
|
|
|
-.at91_va_base_sdramc:
|
|
|
|
- .word AT91_VA_BASE_SYS + AT91_SDRAMC0
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
-.at91_va_base_ramc1:
|
|
|
|
-#if defined(CONFIG_ARCH_AT91SAM9G45)
|
|
|
|
- .word AT91_VA_BASE_SYS + AT91_DDRSDRC1
|
|
|
|
-#else
|
|
|
|
- .word 0
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
ENTRY(at91_slow_clock_sz)
|
|
ENTRY(at91_slow_clock_sz)
|
|
.word .-at91_slow_clock
|
|
.word .-at91_slow_clock
|