[U-Boot] [PATCH 2/4] powerpc/mpc8536ds: Invert SDHC_WP pin polarity
York Sun
yorksun at freescale.com
Mon Oct 3 21:18:40 CEST 2011
From: Xie Xiaobo <r63061 at freescale.com>
MPC8536 Rev 1.0 silicon have NMG_eSDHC118 erratum,
so that the SDHC write protected pin polarity does not
follow the SD card standard in MPC8536 Rev 1.0 silicon.
The MPC8536DS board invert the SDHC_WP pin as a workaround.
However, This silicon erratum has been fixed in Rev 1.1,
So need invert the SDHC_WP polarity again when use the MPC8536
Rev1.1 and greater on MPC8536DS board.
Signed-off-by: Xie Xiaobo <r63061 at freescale.com>
---
board/freescale/mpc8536ds/mpc8536ds.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/board/freescale/mpc8536ds/mpc8536ds.c b/board/freescale/mpc8536ds/mpc8536ds.c
index 2beea34..c9f85c8 100644
--- a/board/freescale/mpc8536ds/mpc8536ds.c
+++ b/board/freescale/mpc8536ds/mpc8536ds.c
@@ -51,6 +51,14 @@ int board_early_init_f (void)
setbits_be32(&gur->pmuxcr,
(MPC85xx_PMUXCR_SDHC_CD |
MPC85xx_PMUXCR_SDHC_WP));
+
+ /* The MPC8536DS board insert the SDHC_WP pin for erratum NMG_eSDHC118,
+ * however, this erratum only applies to MPC8536 Rev1.0.
+ * So set SDHC_WP to active-low when use MPC8536 Rev1.1 and greater.*/
+ if ((((SVR_MAJ(get_svr()) & 0x7) == 0x1) &&
+ (SVR_MIN(get_svr()) >= 0x1))
+ || (SVR_MAJ(get_svr() & 0x7) > 0x1))
+ setbits_be32(&gur->gencfgr, MPC85xx_GENCFGR_SDHC_WP_INV);
#endif
return 0;
}
--
1.7.0.4
More information about the U-Boot
mailing list