arm/ls102xa: Add little-endian mode support for audio IPs
authorAlison Wang <b18965@freescale.com>
Tue, 9 Jun 2015 08:07:49 +0000 (16:07 +0800)
committerYork Sun <yorksun@freescale.com>
Mon, 20 Jul 2015 18:44:38 +0000 (11:44 -0700)
As SCFG_ENDIANCR register is added to choose little-endian or big-endian
for audio IPs on Rev2.0 silion, little-endian mode is selected.

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 ee547fb..6a330cc 100644 (file)
@@ -149,6 +149,7 @@ struct ccsr_gur {
 #define SCFG_ETSECCMCR_GE1_CLK125      0x08000000
 #define SCFG_PIXCLKCR_PXCKEN           0x80000000
 #define SCFG_QSPI_CLKSEL               0xc0100000
+#define SCFG_ENDIANCR_LE               0x80000000
 
 /* Supplemental Configuration Unit */
 struct ccsr_scfg {
@@ -207,7 +208,7 @@ struct ccsr_scfg {
        u32 qos2;
        u32 qos3;
        u32 cci_cfg;
-       u32 resv8[1];
+       u32 endiancr;
        u32 etsecdmamcr;
        u32 usb3prm3cr;
        u32 resv9[1];
index 92f613a..ce5cb52 100644 (file)
@@ -209,6 +209,9 @@ int board_early_init_f(void)
        out_be32(&scfg->pixclkcr, SCFG_PIXCLKCR_PXCKEN);
 #endif
 
+       /* Configure Little endian for SAI, ASRC and SPDIF */
+       out_be32(&scfg->endiancr, SCFG_ENDIANCR_LE);
+
        /*
         * Enable snoop requests and DVM message requests for
         * Slave insterface S4 (A7 core cluster)
index 043d938..8fef8e9 100644 (file)
@@ -368,6 +368,9 @@ int board_early_init_f(void)
        out_be32(&scfg->qspi_cfg, SCFG_QSPI_CLKSEL);
 #endif
 
+       /* Configure Little endian for SAI, ASRC and SPDIF */
+       out_be32(&scfg->endiancr, SCFG_ENDIANCR_LE);
+
        /*
         * Enable snoop requests and DVM message requests for
         * Slave insterface S4 (A7 core cluster)