Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3411482imu; Thu, 29 Nov 2018 23:05:22 -0800 (PST) X-Google-Smtp-Source: AFSGD/V7AshvsYVPkfvqTHrFTpHKWiklfTVvqs5bKifqdU3+Zih0PpDb27DMz6n6/w6GoYS5L58G X-Received: by 2002:a63:db02:: with SMTP id e2mr3912104pgg.419.1543561522543; Thu, 29 Nov 2018 23:05:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543561522; cv=none; d=google.com; s=arc-20160816; b=jBsNM1evug4z/cXSll4kGGxmGUYwjcpr7/FyusfZ9Y8PZwIeaQ+We4O/UAoaLJM+U+ mSVQyLsFARAGnXHvgawBXKSW9USxoxMu39eIDd8ShLyXdodkhp7Is+pQN+s/2MoayarS X/k+lHH5D2fg4cMQ6eXpx+jxnRKg9FFjv0PIjCr4dPqsoSPjSkEtybhr302w98uX7zg4 ritOOzw3hs4xQUNiszk9DGvwpJIKJTdSlUeHnP+njt3bQNAs4Vu46rT5V9DCRI8+RPE0 lgoaoFjLcg+vGpO+noLwOsda2cgVsqTefyLh+lZT12RVCCVz+VU89LpHOLO1Mdv2FMVT VMoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=UPcnLZFCJHqoJ+1R5/Ig41T2Lsya91PgMHL5dOtTdPo=; b=rftMKqWcrXw3iAAFJFpYyI7/4rny76bzD6YuKZIG8dn808L1Pzh2KsSuDPPus/f6g8 Qwnp9GUSAolah2N0HwgjDqENEGbPKGS3exDqQrqP42sfwyNqxyTTIkILNjJCHTb3xVpo lFbcrq2Ph8A41qSWx99dzua+dAs2lumzS6J3PSWObZ2Hypx2M8NgeZc+Ic0X+ixaV5Zp 4CyYf4iK1jUPZw5ldp5IdMA4H54cvLGwUYXXu+Ux6M0o/mG6lpBGhSVLdi26SZb41BWy n90qW+OSSNDBQbCuZIkeqa6ogT2iebedk5X+Fz1D5bSKqTHU28qAh3sQkwvz+wv6Jggu u6YA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e4si4682547plk.260.2018.11.29.23.05.07; Thu, 29 Nov 2018 23:05:22 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726648AbeK3SLk (ORCPT + 99 others); Fri, 30 Nov 2018 13:11:40 -0500 Received: from relmlor1.renesas.com ([210.160.252.171]:42463 "EHLO relmlie5.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726410AbeK3SLk (ORCPT ); Fri, 30 Nov 2018 13:11:40 -0500 Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie5.idc.renesas.com with ESMTP; 30 Nov 2018 16:03:19 +0900 Received: from localhost.localdomain (unknown [10.166.17.210]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id CD2D64413C47; Fri, 30 Nov 2018 16:03:19 +0900 (JST) From: Yoshihiro Shimoda To: kishon@ti.com Cc: linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, Yoshihiro Shimoda Subject: [PATCH v2] phy: renesas: rcar-gen3-usb2: follow the hardware manual procedure Date: Fri, 30 Nov 2018 16:00:57 +0900 Message-Id: <1543561257-27594-1-git-send-email-yoshihiro.shimoda.uh@renesas.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch modifies rcar_gen3_init_otg() procedure to follow Figure 73.4 of "R-Car Series, 3rd Generation User's Manual: Hardware Rev.1.00". Signed-off-by: Yoshihiro Shimoda --- This patch is based on linux-phy.git / latest next branch (commit id = 9b28b23a7a12cb07536da93100a907f772f00fea) Changes from v1: - Just write value to registers instead of read-modify-write functions (rcar_gen3_set_linectrl() and rcar_gen3_control_otg_irq(). Also, this is the first email I send after changing the email server to avoid using quoted-printable encoding. drivers/phy/renesas/phy-rcar-gen3-usb2.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/phy/renesas/phy-rcar-gen3-usb2.c b/drivers/phy/renesas/phy-rcar-gen3-usb2.c index d0f412c..0a34782 100644 --- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c +++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c @@ -307,16 +307,21 @@ static void rcar_gen3_init_otg(struct rcar_gen3_chan *ch) void __iomem *usb2_base = ch->base; u32 val; + /* Should not use functions of read-modify-write a register */ + val = readl(usb2_base + USB2_LINECTRL1); + val = (val & ~USB2_LINECTRL1_DP_RPD) | USB2_LINECTRL1_DPRPD_EN | + USB2_LINECTRL1_DMRPD_EN | USB2_LINECTRL1_DM_RPD; + writel(val, usb2_base + USB2_LINECTRL1); + val = readl(usb2_base + USB2_VBCTRL); writel(val | USB2_VBCTRL_DRVVBUSSEL, usb2_base + USB2_VBCTRL); - writel(USB2_OBINT_BITS, usb2_base + USB2_OBINTSTA); - rcar_gen3_control_otg_irq(ch, 1); val = readl(usb2_base + USB2_ADPCTRL); writel(val | USB2_ADPCTRL_IDPULLUP, usb2_base + USB2_ADPCTRL); - val = readl(usb2_base + USB2_LINECTRL1); - rcar_gen3_set_linectrl(ch, 0, 0); - writel(val | USB2_LINECTRL1_DPRPD_EN | USB2_LINECTRL1_DMRPD_EN, - usb2_base + USB2_LINECTRL1); + + msleep(20); + + writel(0xffffffff, usb2_base + USB2_OBINTSTA); + writel(USB2_OBINT_BITS, usb2_base + USB2_OBINTEN); rcar_gen3_device_recognition(ch); } -- 1.9.1