From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb: dwc2: gadget: Replace phyif with phy_utmi_width From: Krzysztof Kozlowski Message-Id: <20190504095225.23883-2-krzk@kernel.org> Date: Sat, 4 May 2019 11:52:24 +0200 To: Vinod Koul , Dan Williams , Minas Harutyunyan , Greg Kroah-Hartman , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: Jules Maselbas , Felipe Balbi List-ID: RnJvbTogSnVsZXMgTWFzZWxiYXMgPGptYXNlbGJhc0BrYWxyYXkuZXU+CgpUaGUgcGh5IHV0bWkg d2lkdGggaW5mb3JtYXRpb24gaXMgYWxyZWFkeSBzZXQgaW4gaHNvdGcgcGFyYW1zLApwaHlpZiBp cyBvbmx5IHVzZWQgaW4gZmV3IHBsYWNlcyBhbmQgSSBkb24ndCBzZWUgYW55IHJlYXNvbiB0bwpu b3QgdXNlIGhzb3RnJ3MgcGFyYW1zLgoKTW9yZW92ZXIgdGhlIHV0bWkgd2lkdGggd2FzIGJlaW5n IGZvcmNlZCB0byAxNiBiaXRzIGJ5IHBsYXRmb3JtCmluaXRpYWxpemF0aW9uIHdoaWNoIGRvZXNu J3QgdGFrZSBpbiBhY2NvdW50IEhXIGNvbmZpZ3VyYXRpb24uCgpBY2tlZC1ieTogTWluYXMgSGFy dXR5dW55YW4gPGhtaW5hc0BzeW5vcHN5cy5jb20+ClNpZ25lZC1vZmYtYnk6IEp1bGVzIE1hc2Vs YmFzIDxqbWFzZWxiYXNAa2FscmF5LmV1PgpTaWduZWQtb2ZmLWJ5OiBGZWxpcGUgQmFsYmkgPGZl bGlwZS5iYWxiaUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy91c2IvZHdjMi9jb3JlLmgg ICAgIHwgIDIgLS0KIGRyaXZlcnMvdXNiL2R3YzIvZ2FkZ2V0LmMgICB8IDIwICsrKysrKysrKysr KysrLS0tLS0tCiBkcml2ZXJzL3VzYi9kd2MyL3BsYXRmb3JtLmMgfCAgNSArLS0tLQogMyBmaWxl cyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9kd2MyL2NvcmUuaCBiL2RyaXZlcnMvdXNiL2R3YzIvY29yZS5oCmluZGV4 IDc2NGM3OGViZWUyOC4uOGUzZWRmMTBkNzZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9kd2My L2NvcmUuaAorKysgYi9kcml2ZXJzL3VzYi9kd2MyL2NvcmUuaApAQCAtODcxLDcgKzg3MSw2IEBA IHN0cnVjdCBkd2MyX2hyZWdzX2JhY2t1cCB7CiAgKiAgICAgICAgICAgICAgICAgICAgICByZW1v dmVkIG9uY2UgYWxsIFNvQ3Mgc3VwcG9ydCB1c2IgdHJhbnNjZWl2ZXIuCiAgKiBAc3VwcGxpZXM6 ICAgICAgICAgICBEZWZpbml0aW9uIG9mIFVTQiBwb3dlciBzdXBwbGllcwogICogQHZidXNfc3Vw cGx5OiAgICAgICAgUmVndWxhdG9yIHN1cHBseWluZyB2YnVzLgotICogQHBoeWlmOiAgICAgICAg ICAgICAgUEhZIGludGVyZmFjZSB3aWR0aAogICogQGxvY2s6CQlTcGlubG9jayB0aGF0IHByb3Rl Y3RzIGFsbCB0aGUgZHJpdmVyIGRhdGEgc3RydWN0dXJlcwogICogQHByaXY6CQlTdG9yZXMgYSBw b2ludGVyIHRvIHRoZSBzdHJ1Y3QgdXNiX2hjZAogICogQHF1ZXVpbmdfaGlnaF9iYW5kd2lkdGg6 IFRydWUgaWYgbXVsdGlwbGUgcGFja2V0cyBvZiBhIGhpZ2gtYmFuZHdpZHRoCkBAIC0xMDU2LDcg KzEwNTUsNiBAQCBzdHJ1Y3QgZHdjMl9oc290ZyB7CiAJc3RydWN0IGR3YzJfaHNvdGdfcGxhdCAq cGxhdDsKIAlzdHJ1Y3QgcmVndWxhdG9yX2J1bGtfZGF0YSBzdXBwbGllc1tEV0MyX05VTV9TVVBQ TElFU107CiAJc3RydWN0IHJlZ3VsYXRvciAqdmJ1c19zdXBwbHk7Ci0JdTMyIHBoeWlmOwogCiAJ c3BpbmxvY2tfdCBsb2NrOwogCXZvaWQgKnByaXY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9k d2MyL2dhZGdldC5jIGIvZHJpdmVycy91c2IvZHdjMi9nYWRnZXQuYwppbmRleCA5YjczN2M0ZThm NTAuLjYxNGY4YzM0ZDc1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMi9nYWRnZXQuYwor KysgYi9kcml2ZXJzL3VzYi9kd2MyL2dhZGdldC5jCkBAIC0zMzE0LDIwICszMzE0LDI4IEBAIHZv aWQgZHdjMl9oc290Z19jb3JlX2luaXRfZGlzY29ubmVjdGVkKHN0cnVjdCBkd2MyX2hzb3RnICpo c290ZywKIAogCS8qIGtlZXAgb3RoZXIgYml0cyB1bnRvdWNoZWQgKHNvIGUuZy4gZm9yY2VkIG1v ZGVzIGFyZSBub3QgbG9zdCkgKi8KIAl1c2JjZmcgPSBkd2MyX3JlYWRsKGhzb3RnLCBHVVNCQ0ZH KTsKKwkvKiByZW1vdmUgdGhlIEhOUC9TUlAgKi8KIAl1c2JjZmcgJj0gfihHVVNCQ0ZHX1RPVVRD QUxfTUFTSyB8IEdVU0JDRkdfUEhZSUYxNiB8IEdVU0JDRkdfU1JQQ0FQIHwKLQkJR1VTQkNGR19I TlBDQVAgfCBHVVNCQ0ZHX1VTQlRSRFRJTV9NQVNLKTsKKwkJR1VTQkNGR19ITlBDQVApOworCXVz YmNmZyB8PSBHVVNCQ0ZHX1RPVVRDQUwoNyk7CiAKIAlpZiAoaHNvdGctPnBhcmFtcy5waHlfdHlw ZSA9PSBEV0MyX1BIWV9UWVBFX1BBUkFNX0ZTICYmCiAJICAgIChoc290Zy0+cGFyYW1zLnNwZWVk ID09IERXQzJfU1BFRURfUEFSQU1fRlVMTCB8fAogCSAgICAgaHNvdGctPnBhcmFtcy5zcGVlZCA9 PSBEV0MyX1NQRUVEX1BBUkFNX0xPVykpIHsKIAkJLyogRlMvTFMgRGVkaWNhdGVkIFRyYW5zY2Vp dmVyIEludGVyZmFjZSAqLwogCQl1c2JjZmcgfD0gR1VTQkNGR19QSFlTRUw7Ci0JfSBlbHNlIHsK LQkJLyogc2V0IHRoZSBQTEwgb24sIHJlbW92ZSB0aGUgSE5QL1NSUCBhbmQgc2V0IHRoZSBQSFkg Ki8KLQkJdmFsID0gKGhzb3RnLT5waHlpZiA9PSBHVVNCQ0ZHX1BIWUlGOCkgPyA5IDogNTsKLQkJ dXNiY2ZnIHw9IGhzb3RnLT5waHlpZiB8IEdVU0JDRkdfVE9VVENBTCg3KSB8Ci0JCQkodmFsIDw8 IEdVU0JDRkdfVVNCVFJEVElNX1NISUZUKTsKKwl9IGVsc2UgaWYgKGhzb3RnLT5wYXJhbXMucGh5 X3R5cGUgPT0gRFdDMl9QSFlfVFlQRV9QQVJBTV9VVE1JKSB7CisJCWlmIChoc290Zy0+cGFyYW1z LnBoeV91dG1pX3dpZHRoID09IDE2KQorCQkJdXNiY2ZnIHw9IEdVU0JDRkdfUEhZSUYxNjsKKwor CQkvKiBTZXQgdHVybmFyb3VuZCB0aW1lICovCisJCXVzYmNmZyAmPSB+R1VTQkNGR19VU0JUUkRU SU1fTUFTSzsKKwkJaWYgKGhzb3RnLT5wYXJhbXMucGh5X3V0bWlfd2lkdGggPT0gMTYpCisJCQl1 c2JjZmcgfD0gNSA8PCBHVVNCQ0ZHX1VTQlRSRFRJTV9TSElGVDsKKwkJZWxzZQorCQkJdXNiY2Zn IHw9IDkgPDwgR1VTQkNGR19VU0JUUkRUSU1fU0hJRlQ7CiAJfQorCiAJZHdjMl93cml0ZWwoaHNv dGcsIHVzYmNmZywgR1VTQkNGRyk7CiAKIAlkd2MyX2hzb3RnX2luaXRfZmlmbyhoc290Zyk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9kd2MyL3BsYXRmb3JtLmMgYi9kcml2ZXJzL3VzYi9kd2My L3BsYXRmb3JtLmMKaW5kZXggYzAxZmE4ZmZjMGM4Li5kMTBhN2Y4ZGFlYzMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdXNiL2R3YzIvcGxhdGZvcm0uYworKysgYi9kcml2ZXJzL3VzYi9kd2MyL3BsYXRm b3JtLmMKQEAgLTIzMCw5ICsyMzAsNiBAQCBzdGF0aWMgaW50IGR3YzJfbG93bGV2ZWxfaHdfaW5p dChzdHJ1Y3QgZHdjMl9oc290ZyAqaHNvdGcpCiAKIAlyZXNldF9jb250cm9sX2RlYXNzZXJ0KGhz b3RnLT5yZXNldF9lY2MpOwogCi0JLyogU2V0IGRlZmF1bHQgVVRNSSB3aWR0aCAqLwotCWhzb3Rn LT5waHlpZiA9IEdVU0JDRkdfUEhZSUYxNjsKLQogCS8qCiAJICogQXR0ZW1wdCB0byBmaW5kIGEg Z2VuZXJpYyBQSFksIHRoZW4gbG9vayBmb3IgYW4gb2xkIHN0eWxlCiAJICogVVNCIFBIWSBhbmQg dGhlbiBmYWxsIGJhY2sgdG8gcGRhdGEKQEAgLTI4MCw3ICsyNzcsNyBAQCBzdGF0aWMgaW50IGR3 YzJfbG93bGV2ZWxfaHdfaW5pdChzdHJ1Y3QgZHdjMl9oc290ZyAqaHNvdGcpCiAJCSAqIHdpZHRo IGlzIDgtYml0IGFuZCBzZXQgdGhlIHBoeWlmIGFwcHJvcHJpYXRlbHkuCiAJCSAqLwogCQlpZiAo cGh5X2dldF9idXNfd2lkdGgoaHNvdGctPnBoeSkgPT0gOCkKLQkJCWhzb3RnLT5waHlpZiA9IEdV U0JDRkdfUEhZSUY4OworCQkJaHNvdGctPnBhcmFtcy5waHlfdXRtaV93aWR0aCA9IDg7CiAJfQog CiAJLyogQ2xvY2sgKi8K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, T_DKIMWL_WL_HIGH,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BCB7C43219 for ; Sat, 4 May 2019 09:52:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0CA2B206DF for ; Sat, 4 May 2019 09:52:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556963576; bh=yyaQ8JmLbaIGxXWU0tbqV9JpPSBeLwoAskWn0Lg7RkA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=ehBjUVDh8Uujiy67eEen8GccSYVYHvf0toBR5bF0qG7Jat5IFB6kd3R3Iba6K152q TmsAdg4JTHSZGIcX1cQM6Lf1daARhanTi8VNF2yHigQS/SsDc8dz2af32gXRseidi1 qu87KRpO4PyHxN4hEExuuBQt1EgX4BI92G8L7UE4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726957AbfEDJwu (ORCPT ); Sat, 4 May 2019 05:52:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:55222 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726694AbfEDJwt (ORCPT ); Sat, 4 May 2019 05:52:49 -0400 Received: from localhost.localdomain (unknown [194.230.155.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8DAAB206DF; Sat, 4 May 2019 09:52:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556963568; bh=yyaQ8JmLbaIGxXWU0tbqV9JpPSBeLwoAskWn0Lg7RkA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sP17J3sGzMKPn/79A2HbxCAJeSn30we8Blg4uVPmezrZI0XxrUd2xEihPxUbtIAE9 JYOKHtf1imUcnR8ETRjVAEGjBI+ZrY39vQHTmEpYN7L9LsXk45GdnKzrjGFtVA++4d bUx66cZ/mJF35vM8Az74xFWmhXEFNU+OfH/LPEqs= From: Krzysztof Kozlowski To: Vinod Koul , Dan Williams , Minas Harutyunyan , Greg Kroah-Hartman , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: Jules Maselbas , Felipe Balbi Subject: [PATCH] usb: dwc2: gadget: Replace phyif with phy_utmi_width Date: Sat, 4 May 2019 11:52:24 +0200 Message-Id: <20190504095225.23883-2-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190504095225.23883-1-krzk@kernel.org> References: <20190504095225.23883-1-krzk@kernel.org> Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Message-ID: <20190504095224.v5ez9Or1xg7TatXgKgIO3-tUcKULyjFcYp6rL28MHA8@z> From: Jules Maselbas The phy utmi width information is already set in hsotg params, phyif is only used in few places and I don't see any reason to not use hsotg's params. Moreover the utmi width was being forced to 16 bits by platform initialization which doesn't take in account HW configuration. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi --- drivers/usb/dwc2/core.h | 2 -- drivers/usb/dwc2/gadget.c | 20 ++++++++++++++------ drivers/usb/dwc2/platform.c | 5 +---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/usb/dwc2/core.h b/drivers/usb/dwc2/core.h index 764c78ebee28..8e3edf10d76d 100644 --- a/drivers/usb/dwc2/core.h +++ b/drivers/usb/dwc2/core.h @@ -871,7 +871,6 @@ struct dwc2_hregs_backup { * removed once all SoCs support usb transceiver. * @supplies: Definition of USB power supplies * @vbus_supply: Regulator supplying vbus. - * @phyif: PHY interface width * @lock: Spinlock that protects all the driver data structures * @priv: Stores a pointer to the struct usb_hcd * @queuing_high_bandwidth: True if multiple packets of a high-bandwidth @@ -1056,7 +1055,6 @@ struct dwc2_hsotg { struct dwc2_hsotg_plat *plat; struct regulator_bulk_data supplies[DWC2_NUM_SUPPLIES]; struct regulator *vbus_supply; - u32 phyif; spinlock_t lock; void *priv; diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 9b737c4e8f50..614f8c34d759 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -3314,20 +3314,28 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg, /* keep other bits untouched (so e.g. forced modes are not lost) */ usbcfg = dwc2_readl(hsotg, GUSBCFG); + /* remove the HNP/SRP */ usbcfg &= ~(GUSBCFG_TOUTCAL_MASK | GUSBCFG_PHYIF16 | GUSBCFG_SRPCAP | - GUSBCFG_HNPCAP | GUSBCFG_USBTRDTIM_MASK); + GUSBCFG_HNPCAP); + usbcfg |= GUSBCFG_TOUTCAL(7); if (hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_FS && (hsotg->params.speed == DWC2_SPEED_PARAM_FULL || hsotg->params.speed == DWC2_SPEED_PARAM_LOW)) { /* FS/LS Dedicated Transceiver Interface */ usbcfg |= GUSBCFG_PHYSEL; - } else { - /* set the PLL on, remove the HNP/SRP and set the PHY */ - val = (hsotg->phyif == GUSBCFG_PHYIF8) ? 9 : 5; - usbcfg |= hsotg->phyif | GUSBCFG_TOUTCAL(7) | - (val << GUSBCFG_USBTRDTIM_SHIFT); + } else if (hsotg->params.phy_type == DWC2_PHY_TYPE_PARAM_UTMI) { + if (hsotg->params.phy_utmi_width == 16) + usbcfg |= GUSBCFG_PHYIF16; + + /* Set turnaround time */ + usbcfg &= ~GUSBCFG_USBTRDTIM_MASK; + if (hsotg->params.phy_utmi_width == 16) + usbcfg |= 5 << GUSBCFG_USBTRDTIM_SHIFT; + else + usbcfg |= 9 << GUSBCFG_USBTRDTIM_SHIFT; } + dwc2_writel(hsotg, usbcfg, GUSBCFG); dwc2_hsotg_init_fifo(hsotg); diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c index c01fa8ffc0c8..d10a7f8daec3 100644 --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -230,9 +230,6 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg) reset_control_deassert(hsotg->reset_ecc); - /* Set default UTMI width */ - hsotg->phyif = GUSBCFG_PHYIF16; - /* * Attempt to find a generic PHY, then look for an old style * USB PHY and then fall back to pdata @@ -280,7 +277,7 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg) * width is 8-bit and set the phyif appropriately. */ if (phy_get_bus_width(hsotg->phy) == 8) - hsotg->phyif = GUSBCFG_PHYIF8; + hsotg->params.phy_utmi_width = 8; } /* Clock */ -- 2.17.1