Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp1723248ybg; Sat, 19 Oct 2019 01:06:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqxJGJr07BjrtFX9YUmsQZWZZVqvQjJaXtlsDk5Ad78yaJesL8GQ+IYurdwbGhNiXcb1ggWE X-Received: by 2002:a50:8264:: with SMTP id 91mr269147edf.69.1571472401676; Sat, 19 Oct 2019 01:06:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571472401; cv=none; d=google.com; s=arc-20160816; b=f4voBD+k/Fe+2p0kMt+yYL7m+Dv5/TKWxI6D/WJTKgaHuabFnbDCdxsJL3TFubme4k /6xUFguqS81mX+kRATE+klUh1YvnWCZSf/pVbCuw/U4WaEkRHleuoPFCQahyycvgevXK 54eJk0xjIWQOqAG2UGtYaHvIEyK42iO74uhZ8wyZ8cCjzO20itI5PTCUMPMiwOZSgmAC lc4yAympKpeYw+qoNtFWlvmbFZArMTeIKpD9LHinmLKctt+M5tteQ4+oOxXB3BdXVfcF 5uhF3DkuB4AlHSX/HncqcheNyaf9pSrDORWvCHeW+8Z9irPkqgd5Oac6+CahFL5kGNsF SUQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from; bh=KmIzSzhZCYtihMTv5UP/R/NMSgJSLGZSI+IvB+ha/Uw=; b=sb/Rk6ZYNykWhCs7wXvf1Sc5CYgjz3OmfNZVJ1v+y0+uLknESyXOAJHzK7CoPQz+X7 rE640e711HrwgPLzLodMdDX5GJODWk9JYnQ+OtKVMqyc2PSEhyoYNSvaitzce7x1MKrC sCAyQfHAJegzQIWZEPjoYcrpLp2LNeePOX8iWUIkYo/drShstNyss8i6YZI8+j9Vx4ka 3J8dZ5F8nd5cmdIovwB+FbPDjOhXf2VVW1bbAG4bBDFod1elg2ZJlX4BQdazdUmFsA35 q7TEorBOwVO2JUQBRg09LkBEDk0Q70aKJJ+iaOGiGtsfhk15TCsuJGgQHOm3YUyumBkE mMjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=WXgyqBno; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x47si5623308eda.396.2019.10.19.01.06.18; Sat, 19 Oct 2019 01:06:41 -0700 (PDT) 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; dkim=pass header.i=@nvidia.com header.s=n1 header.b=WXgyqBno; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2442307AbfJRJj3 (ORCPT + 99 others); Fri, 18 Oct 2019 05:39:29 -0400 Received: from hqemgate15.nvidia.com ([216.228.121.64]:9716 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2442297AbfJRJj1 (ORCPT ); Fri, 18 Oct 2019 05:39:27 -0400 Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqemgate15.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Fri, 18 Oct 2019 02:39:38 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Fri, 18 Oct 2019 02:39:27 -0700 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Fri, 18 Oct 2019 02:39:27 -0700 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 18 Oct 2019 09:39:26 +0000 Received: from HQMAIL105.nvidia.com (172.20.187.12) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 18 Oct 2019 09:39:26 +0000 Received: from hqnvemgw03.nvidia.com (10.124.88.68) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 18 Oct 2019 09:39:26 +0000 Received: from nkristam-ubuntu.nvidia.com (Not Verified[10.19.66.147]) by hqnvemgw03.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Fri, 18 Oct 2019 02:39:25 -0700 From: Nagarjuna Kristam To: , , , , , , CC: , , , , "Nagarjuna Kristam" Subject: [Patch V11 04/11] phy: tegra: xusb: Add vbus override support on Tegra186 Date: Fri, 18 Oct 2019 15:08:09 +0530 Message-ID: <1571391496-20834-5-git-send-email-nkristam@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1571391496-20834-1-git-send-email-nkristam@nvidia.com> References: <1571391496-20834-1-git-send-email-nkristam@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1571391578; bh=KmIzSzhZCYtihMTv5UP/R/NMSgJSLGZSI+IvB+ha/Uw=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:X-NVConfidentiality:MIME-Version: Content-Type; b=WXgyqBno2MBu7f2Chp8GwNpTRwhItqcotQums4Hk+8lfu+vLgqY0TluYGWyCjngBB rier49i/1i/zp+XtfsbZOcaf9FOSPk6pGO8IO171969tRmmPDuqzAlgtLJiZOq5k62 79ksIdgb4cWTuxjB/DGHFkZ0FtbJjdMlTlZQ3hVb+HF6Gbqa90kDzo2INcbPk6e1PZ OnmnZtaeCXHXmX6/Y+2pEemDISciwKcnbq8fDwmKOt3nSM9Dp9qz6BEcY8ZBzBaZUG u4HMR1E8c9m4QuihIecxdE9THJcb0WWpaqvbWzG4zyqaFkR9LPpxZxk7nAw0snoYRp ER8TgOjyUtiQg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Tegra XUSB device control driver needs to control vbus override during its operations, add API for the support. Signed-off-by: Nagarjuna Kristam --- drivers/phy/tegra/xusb-tegra186.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c index 6f3afaf..84c2739 100644 --- a/drivers/phy/tegra/xusb-tegra186.c +++ b/drivers/phy/tegra/xusb-tegra186.c @@ -857,9 +857,32 @@ static void tegra186_xusb_padctl_remove(struct tegra_xusb_padctl *padctl) { } +static int tegra186_xusb_padctl_vbus_override(struct tegra_xusb_padctl *padctl, + bool status) +{ + u32 value; + + dev_dbg(padctl->dev, "%s vbus override\n", status ? "set" : "clear"); + + value = padctl_readl(padctl, USB2_VBUS_ID); + + if (status) { + value |= VBUS_OVERRIDE; + value &= ~ID_OVERRIDE(~0); + value |= ID_OVERRIDE_FLOATING; + } else { + value &= ~VBUS_OVERRIDE; + } + + padctl_writel(padctl, value, USB2_VBUS_ID); + + return 0; +} + static const struct tegra_xusb_padctl_ops tegra186_xusb_padctl_ops = { .probe = tegra186_xusb_padctl_probe, .remove = tegra186_xusb_padctl_remove, + .vbus_override = tegra186_xusb_padctl_vbus_override, }; static const char * const tegra186_xusb_padctl_supply_names[] = { -- 2.7.4