diff options
author | Peng Fan <peng.fan@nxp.com> | 2015-12-30 17:04:16 +0800 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2016-03-25 11:17:22 +0800 |
commit | b7724cb4a35890989e822f41a6a854fe5837dd72 (patch) | |
tree | 44d8462d2f2494b4f7b7c780515c15bd278be051 /drivers/mmc | |
parent | 279e0bee725c32f23b63620c455052552cf7adaa (diff) | |
download | u-boot-imx-b7724cb4a35890989e822f41a6a854fe5837dd72.zip u-boot-imx-b7724cb4a35890989e822f41a6a854fe5837dd72.tar.gz u-boot-imx-b7724cb4a35890989e822f41a6a854fe5837dd72.tar.bz2 |
MLK-12102 mmc: fsl: introduce wp_enable
Introudce wp_enable. If want to check WPSPL, then in board code,
need to set wp_enable to 1.
Take i.MX6UL for example, to some boards, they do not use WP singal,
so they does not configure USDHC1_WP_SELECT_INPUT, and its default
value is 0(GPIO1_IO02). However GPIO1_IO02 is muxed for i2c usage and
SION bit set. So USDHC controller can always get wp signal and WPSPL
shows write protect and blocks driver continuing. This is not what
we want to see, so add wp_enable, and if set to 0, just omit the
WPSPL checking and this does not effect normal working of usdhc
controller.
Suggested-by: Ye.Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
(cherry picked from commit 327dad065f6f9a2b29bd646efc7a08a4c01a4ad3)
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/fsl_esdhc.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index 475e6dd..d887d97 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -221,9 +221,12 @@ static int esdhc_setup_data(struct mmc *mmc, struct mmc_data *data) #endif if (wml_value > WML_WR_WML_MAX) wml_value = WML_WR_WML_MAX_VAL; - if ((esdhc_read32(®s->prsstat) & PRSSTAT_WPSPL) == 0) { - printf("\nThe SD card is locked. Can not write to a locked card.\n\n"); - return TIMEOUT; + + if (cfg->wp_enable) { + if ((esdhc_read32(®s->prsstat) & PRSSTAT_WPSPL) == 0) { + printf("\nThe SD card is locked. Can not write to a locked card.\n\n"); + return TIMEOUT; + } } esdhc_clrsetbits32(®s->wml, WML_WR_WML_MASK, |