From patchwork Tue May 8 07:18:29 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eric Benard X-Patchwork-Id: 157564 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id C7957B6FC5 for ; Tue, 8 May 2012 17:21:19 +1000 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SRehB-0004rj-SE; Tue, 08 May 2012 07:18:53 +0000 Received: from smtp3-g21.free.fr ([2a01:e0c:1:1599::12]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SReh7-0004nR-7l for linux-arm-kernel@lists.infradead.org; Tue, 08 May 2012 07:18:51 +0000 Received: from localhost.localdomain (unknown [82.233.81.124]) by smtp3-g21.free.fr (Postfix) with ESMTP id A664DA624B; Tue, 8 May 2012 09:18:37 +0200 (CEST) From: =?UTF-8?q?Eric=20B=C3=A9nard?= To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/2] usb: fsl_mxc_udc.c: add workaround for ENGcm09152 for i.MX25 Date: Tue, 8 May 2012 09:18:29 +0200 Message-Id: <1336461510-30190-1-git-send-email-eric@eukrea.com> X-Mailer: git-send-email 1.7.7.6 MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Sascha Hauer , leoli@freescale.com, linux-usb@vger.kernel.org, =?UTF-8?q?Eric=20B=C3=A9nard?= , linux-kernel@vger.kernel.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org this patch gives the possibility to workaround bug ENGcm09152 on i.MX25 when the hardware workaround is also implemented on the board. It covers the workaround described on page 42 of the following Errata, titled "USB: UTMI_USBPHY VBUS input impedance implementation error" : http://cache.freescale.com/files/dsp/doc/errata/IMX25CE.pdf Signed-off-by: Eric BĂ©nard Cc: Sascha Hauer --- drivers/usb/gadget/fsl_mxc_udc.c | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/usb/gadget/fsl_mxc_udc.c b/drivers/usb/gadget/fsl_mxc_udc.c index dcbc0a2..8bbf673 100644 --- a/drivers/usb/gadget/fsl_mxc_udc.c +++ b/drivers/usb/gadget/fsl_mxc_udc.c @@ -89,17 +89,21 @@ eenahb: void fsl_udc_clk_finalize(struct platform_device *pdev) { struct fsl_usb2_platform_data *pdata = pdev->dev.platform_data; - if (cpu_is_mx35()) { + + /* workaround ENGcm09152 for i.MX25 and i.MX35 */ + if (pdata->workaround & FLS_USB2_WORKAROUND_ENGCM09152) { unsigned int v; + void __iomem *otgbase; - /* workaround ENGcm09152 for i.MX35 */ - if (pdata->workaround & FLS_USB2_WORKAROUND_ENGCM09152) { - v = readl(MX35_IO_ADDRESS(MX35_USB_BASE_ADDR + - USBPHYCTRL_OTGBASE_OFFSET)); - writel(v | USBPHYCTRL_EVDO, - MX35_IO_ADDRESS(MX35_USB_BASE_ADDR + - USBPHYCTRL_OTGBASE_OFFSET)); - } + if (cpu_is_mx25()) + otgbase = MX25_IO_ADDRESS(MX25_USB_BASE_ADDR + + USBPHYCTRL_OTGBASE_OFFSET); + else if (cpu_is_mx35()) + otgbase = MX35_IO_ADDRESS(MX35_USB_BASE_ADDR + + USBPHYCTRL_OTGBASE_OFFSET); + + v = readl(otgbase); + writel(v | USBPHYCTRL_EVDO, otgbase); } /* ULPI transceivers don't need usbpll */