From patchwork Fri Nov 18 07:11:06 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Hui X-Patchwork-Id: 5204 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 888B323FFE for ; Fri, 18 Nov 2011 07:04:42 +0000 (UTC) Received: from mail-lpp01m010-f52.google.com (mail-lpp01m010-f52.google.com [209.85.215.52]) by fiordland.canonical.com (Postfix) with ESMTP id 6C745A181F1 for ; Fri, 18 Nov 2011 07:04:42 +0000 (UTC) Received: by laah2 with SMTP id h2so65831laa.11 for ; Thu, 17 Nov 2011 23:04:41 -0800 (PST) Received: by 10.152.135.225 with SMTP id pv1mr1129006lab.19.1321599881893; Thu, 17 Nov 2011 23:04:41 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.152.41.198 with SMTP id h6cs169128lal; Thu, 17 Nov 2011 23:04:41 -0800 (PST) Received: by 10.68.38.5 with SMTP id c5mr6653300pbk.93.1321599879474; Thu, 17 Nov 2011 23:04:39 -0800 (PST) Received: from VA3EHSOBE005.bigfish.com (va3ehsobe005.messaging.microsoft.com. [216.32.180.31]) by mx.google.com with ESMTPS id y9si5771785pbi.88.2011.11.17.23.04.38 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 17 Nov 2011 23:04:39 -0800 (PST) Received-SPF: neutral (google.com: 216.32.180.31 is neither permitted nor denied by best guess record for domain of jason.hui@linaro.org) client-ip=216.32.180.31; Authentication-Results: mx.google.com; spf=neutral (google.com: 216.32.180.31 is neither permitted nor denied by best guess record for domain of jason.hui@linaro.org) smtp.mail=jason.hui@linaro.org Received: from mail15-va3-R.bigfish.com (10.7.14.249) by VA3EHSOBE005.bigfish.com (10.7.40.25) with Microsoft SMTP Server id 14.1.225.22; Fri, 18 Nov 2011 07:04:03 +0000 Received: from mail15-va3 (localhost [127.0.0.1]) by mail15-va3-R.bigfish.com (Postfix) with ESMTP id 58DB93A05B7; Fri, 18 Nov 2011 07:03:57 +0000 (UTC) X-SpamScore: 0 X-BigFish: VS0(zzzz1202hzz8275dhz2dh87h2a8h668h839h61h) X-Spam-TCS-SCL: 0:0 X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPV:NLI; H:mail.freescale.net; RD:none; EFVD:NLI X-FB-DOMAIN-IP-MATCH: fail Received: from mail15-va3 (localhost.localdomain [127.0.0.1]) by mail15-va3 (MessageSwitch) id 1321599749622180_25062; Fri, 18 Nov 2011 07:02:29 +0000 (UTC) Received: from VA3EHSMHS001.bigfish.com (unknown [10.7.14.240]) by mail15-va3.bigfish.com (Postfix) with ESMTP id 868B9C0045; Fri, 18 Nov 2011 07:02:29 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by VA3EHSMHS001.bigfish.com (10.7.99.11) with Microsoft SMTP Server (TLS) id 14.1.225.22; Fri, 18 Nov 2011 07:02:35 +0000 Received: from az33smr01.freescale.net (10.64.34.199) by 039-SN1MMR1-002.039d.mgd.msft.net (10.84.1.15) with Microsoft SMTP Server id 14.1.339.2; Fri, 18 Nov 2011 01:03:09 -0600 Received: from r64343-desktop.ap.freescale.net (r64343-desktop.ap.freescale.net [10.192.242.36]) by az33smr01.freescale.net (8.13.1/8.13.0) with ESMTP id pAI72vbZ002190; Fri, 18 Nov 2011 01:03:08 -0600 (CST) From: Jason Liu To: CC: Subject: [U-Boot][PATCH V2 5/6] i.mx: fsl_esdhc: add the i.mx6q support Date: Fri, 18 Nov 2011 15:11:06 +0800 Message-ID: <1321600267-8514-6-git-send-email-jason.hui@linaro.org> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1321600267-8514-1-git-send-email-jason.hui@linaro.org> References: <1321600267-8514-1-git-send-email-jason.hui@linaro.org> MIME-Version: 1.0 X-OriginatorOrg: sigmatel.com The mmc host controller on the i.mx6q is called usdhc which is redesigned based on the freescale esdhc controller. The usdhc controller is almost compatible with esdhc except it adds one mix register to support debug/SD3.0 and move the low bit 0-6 of XFERTYP register to the mix control reg low bit 0-6. Thus on i.mx6q, we have the following compared with the previous soc: (can refer to RM of chapter 56.3.3) i.mx6q: mix control: bit 31 - bit 7: Added for debug/SD3.0 support bit 6 - bit 0: move in the XFERTYP register bit 6-0 on previous soc XFERTYP register: bit 31 - bit 7: the same as before, bit 6 - bit 0: no-use previous soc mix control: no XFERTYP register: bit 31 - bit 0: xfertype information Signed-off-by: Jason Liu CC:Stefano Babic Acked-by: Stefano Babic --- v2: extend the commit message by adding mix/xtertype register change remove one #ifdef as Marek suggested change the print of USDHC/ESDHC to SDHC --- drivers/mmc/fsl_esdhc.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index ec953f0..ddd1b4c 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -58,7 +58,8 @@ struct fsl_esdhc { uint autoc12err; uint hostcapblt; uint wml; - char reserved1[8]; + uint mixctrl; + char reserved1[4]; uint fevt; char reserved2[168]; uint hostver; @@ -298,8 +299,13 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) /* Send the command */ esdhc_write32(®s->cmdarg, cmd->cmdarg); +#if defined(CONFIG_FSL_USDHC) + esdhc_write32(®s->mixctrl, + (esdhc_read32(®s->mixctrl) & 0xFFFFFF80) | (xfertyp & 0x7F)); + esdhc_write32(®s->xfertyp, xfertyp & 0xFFFF0000); +#else esdhc_write32(®s->xfertyp, xfertyp); - +#endif /* Wait for the command to complete */ while (!(esdhc_read32(®s->irqstat) & IRQSTAT_CC)) ; @@ -482,7 +488,7 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg) mmc = malloc(sizeof(struct mmc)); - sprintf(mmc->name, "FSL_ESDHC"); + sprintf(mmc->name, "FSL_SDHC"); regs = (struct fsl_esdhc *)cfg->esdhc_base; /* First reset the eSDHC controller */