]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/mpr2/lowlevel_init.S
cm-t54: fix EEPROM read return value check
[karo-tx-uboot.git] / board / mpr2 / lowlevel_init.S
index 060957ad063fb79f13c543f15c8585b02af2658c..5246b63365edbaef06e1ee51e545c29658e42e9e 100644 (file)
@@ -7,21 +7,9 @@
  *
  * board/mpr2/lowlevel_init.S
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
+ * SPDX-License-Identifier:    GPL-2.0+
  */
+#include <asm/macro.h>
 
        .global lowlevel_init
 
@@ -33,59 +21,35 @@ lowlevel_init:
 /*
  * Set frequency multipliers and dividers in FRQCR.
  */
-       mov.l   WTCSR_A,r1
-       mov.l   WTCSR_D,r0
-       mov.w   r0,@r1
+       write16 WTCSR_A, WTCSR_D
 
-       mov.l   WTCNT_A,r1
-       mov.l   WTCNT_D,r0
-       mov.w   r0,@r1
+       write16 WTCNT_A, WTCNT_D
 
-       mov.l   FRQCR_A,r1
-       mov.l   FRQCR_D,r0
-       mov.w   r0,@r1
+       write16 FRQCR_A, FRQCR_D
 
 /*
  * Setup CS0 (Flash).
  */
-       mov.l   CS0BCR_A, r1
-       mov.l   CS0BCR_D, r0
-       mov.l   r0, @r1
+       write32 CS0BCR_A, CS0BCR_D
 
-       mov.l   CS0WCR_A, r1
-       mov.l   CS0WCR_D, r0
-       mov.l   r0, @r1
+       write32 CS0WCR_A, CS0WCR_D
 
 /*
  * Setup CS3 (SDRAM).
  */
-       mov.l   CS3BCR_A, r1
-       mov.l   CS3BCR_D, r0
-       mov.l   r0, @r1
+       write32 CS3BCR_A, CS3BCR_D
 
-       mov.l   CS3WCR_A, r1
-       mov.l   CS3WCR_D, r0
-       mov.l   r0, @r1
+       write32 CS3WCR_A, CS3WCR_D
 
-       mov.l   SDCR_A, r1
-       mov.l   SDCR_D1, r0
-       mov.l   r0, @r1
+       write32 SDCR_A, SDCR_D1
 
-       mov.l   RTCSR_A, r1
-       mov.l   RTCSR_D, r0
-       mov.l   r0, @r1
+       write32 RTCSR_A, RTCSR_D
 
-       mov.l   RTCNT_A, r1
-       mov.l   RTCNT_D, r0
-       mov.l   r0, @r1
+       write32 RTCNT_A, RTCNT_D
 
-       mov.l   RTCOR_A, r1
-       mov.l   RTCOR_D, r0
-       mov.l   r0, @r1
+       write32 RTCOR_A, RTCOR_D
 
-       mov.l   SDCR_A, r1
-       mov.l   SDCR_D2, r0
-       mov.l   r0, @r1
+       write32 SDCR_A, SDCR_D2
 
        mov.l   SDMR3_A, r1
        mov.l   SDMR3_D, r0
@@ -105,28 +69,34 @@ lowlevel_init:
 /*
  * PLL Settings
  */
-FRQCR_D:       .long   0x1103          /* I:B:P=8:4:2 */
-WTCNT_D:       .long   0x5A00          /* start counting at zero */
-WTCSR_D:       .long   0xA507          /* divide by 4096 */
-
+FRQCR_D:       .word   0x1103          /* I:B:P=8:4:2 */
+WTCNT_D:       .word   0x5A00          /* start counting at zero */
+WTCSR_D:       .word   0xA507          /* divide by 4096 */
+.align 2
 /*
  * Spansion S29GL256N11 @ 48 MHz
  */
-CS0BCR_D:      .long   0x12490400  /* 1 idle cycle inserted, normal space, 16 bit */
-CS0WCR_D:      .long   0x00000340  /* tSW=0.5ck, 6 wait cycles, NO external wait, tHW=0.5ck */
+/* 1 idle cycle inserted, normal space, 16 bit */
+CS0BCR_D:      .long   0x12490400
+/* tSW=0.5ck, 6 wait cycles, NO external wait, tHW=0.5ck */
+CS0WCR_D:      .long   0x00000340
 
 /*
  * Samsung K4S511632B-UL75 @ 48 MHz
  * Micron MT48LC32M16A2-75 @ 48 MHz
  */
-CS3BCR_D:      .long   0x10004400  /* CS3BCR = 0x10004400, minimum idle cycles, SDRAM, 16 bit */
-CS3WCR_D:      .long   0x00000091  /* tRP=1ck, tRCD=1ck, CL=2, tRWL=2ck, tRC=4ck */
-SDCR_D1:       .long   0x00000012  /* no refresh, 13 rows, 10 cols, NO bank active mode */
-SDCR_D2:       .long   0x00000812  /* refresh */
-RTCSR_D:       .long   0xA55A0008  /* 1/4, once */
-RTCNT_D:       .long   0xA55A005D  /* count 93 */
-RTCOR_D:       .long   0xa55a005d  /* count 93 */
-SDMR3_D:       .long   0x440       /* mode register CL2, burst read and SINGLE WRITE */
+/* CS3BCR = 0x10004400, minimum idle cycles, SDRAM, 16 bit */
+CS3BCR_D:      .long   0x10004400
+/* tRP=1ck, tRCD=1ck, CL=2, tRWL=2ck, tRC=4ck */
+CS3WCR_D:      .long   0x00000091
+/* no refresh, 13 rows, 10 cols, NO bank active mode */
+SDCR_D1:       .long   0x00000012
+SDCR_D2:       .long   0x00000812      /* refresh */
+RTCSR_D:       .long   0xA55A0008      /* 1/4, once */
+RTCNT_D:       .long   0xA55A005D      /* count 93 */
+RTCOR_D:       .long   0xa55a005d      /* count 93 */
+/* mode register CL2, burst read and SINGLE WRITE */
+SDMR3_D:       .long   0x440
 
 /*
  * Registers