From patchwork Thu Nov 22 02:04:53 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chao Xie X-Patchwork-Id: 1782691 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 54A773FCA5 for ; Thu, 22 Nov 2012 02:23:50 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TbMPS-0004zR-H2; Thu, 22 Nov 2012 02:20:58 +0000 Received: from na3sys009aog110.obsmtp.com ([74.125.149.203]) by merlin.infradead.org with smtps (Exim 4.76 #1 (Red Hat Linux)) id 1TbMPO-0004xv-An for linux-arm-kernel@lists.infradead.org; Thu, 22 Nov 2012 02:20:55 +0000 Received: from MSI-MTA.marvell.com ([65.219.4.132]) (using TLSv1) by na3sys009aob110.postini.com ([74.125.148.12]) with SMTP ID DSNKUK2MApxqs6iBAZlAR7vVuqsDcFCeQ2Dm@postini.com; Wed, 21 Nov 2012 18:20:54 PST Received: from maili.marvell.com ([10.68.76.210]) by MSI-MTA.marvell.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 21 Nov 2012 18:05:19 -0800 Received: from localhost (unknown [10.38.36.205]) by maili.marvell.com (Postfix) with ESMTP id 1FD4C4E513; Wed, 21 Nov 2012 18:05:19 -0800 (PST) From: Chao Xie To: linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, haojian.zhuang@gmail.com Subject: [PATCH 12/29] usb: otg: mv_otg: use PHY driver for otg Date: Wed, 21 Nov 2012 21:04:53 -0500 Message-Id: <1353549910-988-12-git-send-email-xiechao.mail@gmail.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1353549910-988-1-git-send-email-xiechao.mail@gmail.com> References: <1353549910-988-1-git-send-email-xiechao.mail@gmail.com> X-OriginalArrivalTime: 22 Nov 2012 02:05:19.0315 (UTC) FILETIME=[D2826A30:01CDC855] X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20121121_212054_579523_B6ADA77C X-CRM114-Status: GOOD ( 13.45 ) X-Spam-Score: -3.3 (---) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-3.3 points) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (xiechao.mail[at]gmail.com) -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, medium trust [74.125.149.203 listed in list.dnswl.org] 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is CUSTOM_MED -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.9 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org From: Chao Xie Signed-off-by: Chao Xie --- drivers/usb/otg/mv_otg.c | 33 ++++++++++++--------------------- drivers/usb/otg/mv_otg.h | 2 +- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/drivers/usb/otg/mv_otg.c b/drivers/usb/otg/mv_otg.c index ffc0689..344f246 100644 --- a/drivers/usb/otg/mv_otg.c +++ b/drivers/usb/otg/mv_otg.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "mv_otg.h" @@ -261,8 +262,8 @@ static int mv_otg_enable_internal(struct mv_otg *mvotg) dev_dbg(&mvotg->pdev->dev, "otg enabled\n"); otg_clock_enable(mvotg); - if (mvotg->pdata->phy_init) { - retval = mvotg->pdata->phy_init(mvotg->phy_regs); + if (mvotg->mvphy->init) { + retval = mvotg->mvphy->init(mvotg->mvphy); if (retval) { dev_err(&mvotg->pdev->dev, "init phy error %d\n", retval); @@ -288,8 +289,8 @@ static void mv_otg_disable_internal(struct mv_otg *mvotg) { if (mvotg->active) { dev_dbg(&mvotg->pdev->dev, "otg disabled\n"); - if (mvotg->pdata->phy_deinit) - mvotg->pdata->phy_deinit(mvotg->phy_regs); + if (mvotg->mvphy->shutdown) + mvotg->mvphy->shutdown(mvotg->mvphy); otg_clock_disable(mvotg); mvotg->active = 0; } @@ -741,23 +742,8 @@ static int mv_otg_probe(struct platform_device *pdev) for (i = 0; i < OTG_TIMER_NUM; i++) init_timer(&mvotg->otg_ctrl.timer[i]); - r = platform_get_resource_byname(mvotg->pdev, - IORESOURCE_MEM, "phyregs"); - if (r == NULL) { - dev_err(&pdev->dev, "no phy I/O memory resource defined\n"); - retval = -ENODEV; - goto err_destroy_workqueue; - } - - mvotg->phy_regs = devm_ioremap(&pdev->dev, r->start, resource_size(r)); - if (mvotg->phy_regs == NULL) { - dev_err(&pdev->dev, "failed to map phy I/O memory\n"); - retval = -EFAULT; - goto err_destroy_workqueue; - } - - r = platform_get_resource_byname(mvotg->pdev, - IORESOURCE_MEM, "capregs"); + r = platform_get_resource(mvotg->pdev, + IORESOURCE_MEM, 0); if (r == NULL) { dev_err(&pdev->dev, "no I/O memory resource defined\n"); retval = -ENODEV; @@ -770,6 +756,11 @@ static int mv_otg_probe(struct platform_device *pdev) retval = -EFAULT; goto err_destroy_workqueue; } + mvotg->mvphy = mv_usb2_get_phy(); + if (mvotg->mvphy == NULL) { + retval = -ENODEV; + goto err_destroy_workqueue; + } /* we will acces controller register, so enable the udc controller */ retval = mv_otg_enable_internal(mvotg); diff --git a/drivers/usb/otg/mv_otg.h b/drivers/usb/otg/mv_otg.h index 8a9e351..7b9629a 100644 --- a/drivers/usb/otg/mv_otg.h +++ b/drivers/usb/otg/mv_otg.h @@ -137,10 +137,10 @@ struct mv_otg_regs { struct mv_otg { struct usb_phy phy; + struct mv_usb2_phy *mvphy; struct mv_otg_ctrl otg_ctrl; /* base address */ - void __iomem *phy_regs; void __iomem *cap_regs; struct mv_otg_regs __iomem *op_regs;