diff mbox

[U-Boot,2/4] powerpc/mpc8536ds: Invert SDHC_WP pin polarity

Message ID 1317669522-19756-2-git-send-email-yorksun@freescale.com
State Accepted
Commit 8af3d22db9aaf1d05cd971940e577d420e9eae6f
Delegated to: Kumar Gala
Headers show

Commit Message

York Sun Oct. 3, 2011, 7:18 p.m. UTC
From: Xie Xiaobo <r63061@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@freescale.com>
---
 board/freescale/mpc8536ds/mpc8536ds.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

Comments

Kumar Gala Oct. 7, 2011, 3:07 p.m. UTC | #1
On Oct 3, 2011, at 2:18 PM, York Sun wrote:

> From: Xie Xiaobo <r63061@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@freescale.com>
> ---
> board/freescale/mpc8536ds/mpc8536ds.c |    8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)

applied to 85xx

- k
diff mbox

Patch

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;
 }