arm: ls102xa: Remove bit reversing for SCFG registers
authorAlison Wang <b18965@freescale.com>
Fri, 17 Oct 2014 07:26:33 +0000 (15:26 +0800)
committerYork Sun <yorksun@freescale.com>
Mon, 24 Nov 2014 17:27:23 +0000 (09:27 -0800)
SCFG_SCFGREVCR is SCFG bit reverse register. This register
must be written with 0xFFFFFFFF before writing to any other
SCFG register. Then other SCFG register could be written in
big-endian mode.

Address: 157_0000h base + 200h offset = 157_0200h
Bit   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15|16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
W/R                                   SCFGREV
Reset 0 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0-31
SCFGREV SCFG Bit Reverse Control Filed
32'h 0000_0000 - No bit reverse is applied
32'h FFFF_FFFF - Bit reverse is applied; so 31:0 will be stored/read as
0:31

This patch removes the bit reversing for SCFG registers in
u-boot. It will be implemented through PBI commands in RCW
.pbi
write 0x570200, 0xffffffff
.end
So other SCFG register could be written in big-endian mode
in u-boot or kernel directly.

Signed-off-by: Alison Wang <alison.wang@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
board/freescale/ls1021aqds/ls1021aqds.c
board/freescale/ls1021atwr/ls1021atwr.c

index 9f4fbba38f51f2b291e15b98ff27d2d1f334865a..b0c267cfc2b2680e7bbe6c30e05297fa3dcd2e87 100644 (file)
@@ -95,8 +95,6 @@ struct ccsr_gur {
        u32     sdhcpcr;
 };
 
-#define SCFG_SCFGREVCR_REV             0xffffffff
-#define SCFG_SCFGREVCR_NOREV           0
 #define SCFG_ETSECDMAMCR_LE_BD_FR      0xf8001a0f
 #define SCFG_ETSECCMCR_GE2_CLK125      0x04000000
 #define SCFG_PIXCLKCR_PXCKEN           0x80000000
index 5154a85b2d7dbc5ab2ac53eb030d8cb47d35e785..913dda92c5a8022673659b09b1825b4129367740 100644 (file)
@@ -140,9 +140,7 @@ int board_early_init_f(void)
        struct ccsr_cci400 *cci = (struct ccsr_cci400 *)CONFIG_SYS_CCI400_ADDR;
 
 #ifdef CONFIG_TSEC_ENET
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_REV);
        out_be32(&scfg->etsecdmamcr, SCFG_ETSECDMAMCR_LE_BD_FR);
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_NOREV);
 #endif
 
 #ifdef CONFIG_FSL_IFC
index 3e8981b39f9c233d946957e7a2fcb928c9679f49..3f2dc1acadb4e21205e5963304b573e88d6e3f45 100644 (file)
@@ -255,11 +255,8 @@ int board_early_init_f(void)
        struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR;
 
 #ifdef CONFIG_TSEC_ENET
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_REV);
        out_be32(&scfg->etsecdmamcr, SCFG_ETSECDMAMCR_LE_BD_FR);
        out_be32(&scfg->etsecmcr, SCFG_ETSECCMCR_GE2_CLK125);
-       udelay(10);
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_NOREV);
 #endif
 
 #ifdef CONFIG_FSL_IFC
@@ -267,9 +264,7 @@ int board_early_init_f(void)
 #endif
 
 #ifdef CONFIG_FSL_DCU_FB
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_REV);
        out_be32(&scfg->pixclkcr, SCFG_PIXCLKCR_PXCKEN);
-       out_be32(&scfg->scfgrevcr, SCFG_SCFGREVCR_NOREV);
 #endif
 
        return 0;