From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x226dBiBmB/kCe9FibUBHNF0zGeSMgJ76u5ur76MYQgQOZd/jQqfRZgDAdZ9NHSHCgXCswQ6H ARC-Seal: i=1; a=rsa-sha256; t=1516814084; cv=none; d=google.com; s=arc-20160816; b=yDtg9omnHZRmVWSiwoAFaIC6Ps9/9XOR1zltTEDjfqetBZNJnLs6P7gUKyU7lQzd54 AzqQOnAfHnSkq+BJr7QnNo0/qHVzMtB9fp1TX1BiXap+Ufknp23TcxAI5zllzHMCdudb vf/e+hiqR2Ba6UIpPz5sNlfER3HiHIGYiOCjcQiCFKUYzHpt5U1rBr/xTOEQIzZdtulU pEsWj86hxhBZajF0XLTHGr0scHv5P9P0ENqVvRxhailwgxTi5a6/dW5dSXwO+Ndc23yZ EaFXpknu8dGqj5irq2Gc0iKdoE8kyo/gsBoR60l3hJyfbyDs+h+6jY1aw3hqDw/zd2aO 6c5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=YBwxaL0DP7KQOIRVIWKVwG6NwNr5/qnezw9mIwliHLE=; b=xcYcsH1Bp1b7mDefmbmu2TsrGKlJPr/xqwvQc9xDuvX1asWmaxJaRxQ2RsAG1QzV+M Lz/aDv1SsDTj8F/sVgIFYaV2khaaeJVwzX9KcBcSHwcPRO+tEk3IfQcBYx5BB0eF7lri QUjkUeF22s9Xrq+6JQwPUUscYLKlZprnCUYyBM1SSen7kisaagQPdNhj0d7/3r36erjK W8vSY/anJ/KaZVT1L4SXn258DgNCxRAv4eiFWuE5M0S86FHcvBDOBGLuFEL8Wzlw08C2 CiqyTlfyIrHpUAfJBuOoM/RBa/goursgcUIoD8PQ/x/fZp8COh59e57/wlj1XwuFS5P6 n7oA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of sebastian.reichel@collabora.co.uk designates 2a00:1098:0:82:1000:25:2eeb:e3e3 as permitted sender) smtp.mailfrom=sebastian.reichel@collabora.co.uk; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.co.uk Authentication-Results: mx.google.com; spf=pass (google.com: domain of sebastian.reichel@collabora.co.uk designates 2a00:1098:0:82:1000:25:2eeb:e3e3 as permitted sender) smtp.mailfrom=sebastian.reichel@collabora.co.uk; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.co.uk From: Sebastian Reichel To: Peter Chen , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Ian Ray , Nandor Han , Fabien Lahoudere , kernel@lists.collabora.co.uk, Sebastian Reichel Subject: [PATCH 2/2] usb: chipidea: imx: Fix ULPI on imx53 Date: Wed, 24 Jan 2018 18:14:39 +0100 Message-Id: <20180124171439.10721-2-sebastian.reichel@collabora.co.uk> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180124171439.10721-1-sebastian.reichel@collabora.co.uk> References: <20180124171439.10721-1-sebastian.reichel@collabora.co.uk> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590494846034483631?= X-GMAIL-MSGID: =?utf-8?q?1590494846034483631?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: Traditionally, PORTSC should be set before initializing ULPI phys. But setting PORTSC before powering on the phy results in a kernel freeze on imx53 based GE PPD. As a workaround this initializes the phy early in the imx platform code and disables phy power management from the core. Signed-off-by: Fabien Lahoudere Signed-off-by: Sebastian Reichel --- drivers/usb/chipidea/ci_hdrc_imx.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c index de155c80eb70..e431c5aafe35 100644 --- a/drivers/usb/chipidea/ci_hdrc_imx.c +++ b/drivers/usb/chipidea/ci_hdrc_imx.c @@ -83,6 +83,7 @@ struct ci_hdrc_imx_data { struct clk *clk; struct imx_usbmisc_data *usbmisc_data; bool supports_runtime_pm; + bool override_phy_control; bool in_lpm; /* SoC before i.mx6 (except imx23/imx28) needs three clks */ bool need_three_clks; @@ -254,6 +255,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) int ret; const struct of_device_id *of_id; const struct ci_hdrc_imx_platform_flag *imx_platform_flag; + struct device_node *np = pdev->dev.of_node; of_id = of_match_device(ci_hdrc_imx_dt_ids, &pdev->dev); if (!of_id) @@ -288,6 +290,14 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) } pdata.usb_phy = data->phy; + + if (of_device_is_compatible(np, "fsl,imx53-usb") && pdata.usb_phy && + of_usb_get_phy_mode(np) == USBPHY_INTERFACE_MODE_ULPI) { + pdata.flags |= CI_HDRC_OVERRIDE_PHY_CONTROL; + data->override_phy_control = true; + usb_phy_init(pdata.usb_phy); + } + pdata.flags |= imx_platform_flag->flags; if (pdata.flags & CI_HDRC_SUPPORTS_RUNTIME_PM) data->supports_runtime_pm = true; @@ -341,6 +351,8 @@ static int ci_hdrc_imx_remove(struct platform_device *pdev) pm_runtime_put_noidle(&pdev->dev); } ci_hdrc_remove_device(data->ci_pdev); + if (data->override_phy_control) + usb_phy_shutdown(data->phy); imx_disable_unprepare_clks(&pdev->dev); return 0; -- 2.15.1 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: [2/2] usb: chipidea: imx: Fix ULPI on imx53 From: Sebastian Reichel Message-Id: <20180124171439.10721-2-sebastian.reichel@collabora.co.uk> Date: Wed, 24 Jan 2018 18:14:39 +0100 To: Peter Chen , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Ian Ray , Nandor Han , Fabien Lahoudere , kernel@lists.collabora.co.uk, Sebastian Reichel List-ID: VHJhZGl0aW9uYWxseSwgUE9SVFNDIHNob3VsZCBiZSBzZXQgYmVmb3JlIGluaXRpYWxpemluZyBV TFBJIHBoeXMuIEJ1dApzZXR0aW5nIFBPUlRTQyBiZWZvcmUgcG93ZXJpbmcgb24gdGhlIHBoeSBy ZXN1bHRzIGluIGEga2VybmVsIGZyZWV6ZQpvbiBpbXg1MyBiYXNlZCBHRSBQUEQuIEFzIGEgd29y a2Fyb3VuZCB0aGlzIGluaXRpYWxpemVzIHRoZSBwaHkgZWFybHkKaW4gdGhlIGlteCBwbGF0Zm9y bSBjb2RlIGFuZCBkaXNhYmxlcyBwaHkgcG93ZXIgbWFuYWdlbWVudCBmcm9tIHRoZQpjb3JlLgoK U2lnbmVkLW9mZi1ieTogRmFiaWVuIExhaG91ZGVyZSA8ZmFiaWVuLmxhaG91ZGVyZUBjb2xsYWJv cmEuY28udWs+ClNpZ25lZC1vZmYtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVp Y2hlbEBjb2xsYWJvcmEuY28udWs+Ci0tLQogZHJpdmVycy91c2IvY2hpcGlkZWEvY2lfaGRyY19p bXguYyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jaV9oZHJjX2lteC5jIGIvZHJpdmVy cy91c2IvY2hpcGlkZWEvY2lfaGRyY19pbXguYwppbmRleCBkZTE1NWM4MGViNzAuLmU0MzFjNWFh ZmUzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY2hpcGlkZWEvY2lfaGRyY19pbXguYworKysg Yi9kcml2ZXJzL3VzYi9jaGlwaWRlYS9jaV9oZHJjX2lteC5jCkBAIC04Myw2ICs4Myw3IEBAIHN0 cnVjdCBjaV9oZHJjX2lteF9kYXRhIHsKIAlzdHJ1Y3QgY2xrICpjbGs7CiAJc3RydWN0IGlteF91 c2JtaXNjX2RhdGEgKnVzYm1pc2NfZGF0YTsKIAlib29sIHN1cHBvcnRzX3J1bnRpbWVfcG07CisJ Ym9vbCBvdmVycmlkZV9waHlfY29udHJvbDsKIAlib29sIGluX2xwbTsKIAkvKiBTb0MgYmVmb3Jl IGkubXg2IChleGNlcHQgaW14MjMvaW14MjgpIG5lZWRzIHRocmVlIGNsa3MgKi8KIAlib29sIG5l ZWRfdGhyZWVfY2xrczsKQEAgLTI1NCw2ICsyNTUsNyBAQCBzdGF0aWMgaW50IGNpX2hkcmNfaW14 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaW50IHJldDsKIAljb25zdCBz dHJ1Y3Qgb2ZfZGV2aWNlX2lkICpvZl9pZDsKIAljb25zdCBzdHJ1Y3QgY2lfaGRyY19pbXhfcGxh dGZvcm1fZmxhZyAqaW14X3BsYXRmb3JtX2ZsYWc7CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9 IHBkZXYtPmRldi5vZl9ub2RlOwogCiAJb2ZfaWQgPSBvZl9tYXRjaF9kZXZpY2UoY2lfaGRyY19p bXhfZHRfaWRzLCAmcGRldi0+ZGV2KTsKIAlpZiAoIW9mX2lkKQpAQCAtMjg4LDYgKzI5MCwxNCBA QCBzdGF0aWMgaW50IGNpX2hkcmNfaW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJfQogCiAJcGRhdGEudXNiX3BoeSA9IGRhdGEtPnBoeTsKKworCWlmIChvZl9kZXZpY2Vf aXNfY29tcGF0aWJsZShucCwgImZzbCxpbXg1My11c2IiKSAmJiBwZGF0YS51c2JfcGh5ICYmCisJ ICAgIG9mX3VzYl9nZXRfcGh5X21vZGUobnApID09IFVTQlBIWV9JTlRFUkZBQ0VfTU9ERV9VTFBJ KSB7CisJCXBkYXRhLmZsYWdzIHw9IENJX0hEUkNfT1ZFUlJJREVfUEhZX0NPTlRST0w7CisJCWRh dGEtPm92ZXJyaWRlX3BoeV9jb250cm9sID0gdHJ1ZTsKKwkJdXNiX3BoeV9pbml0KHBkYXRhLnVz Yl9waHkpOworCX0KKwogCXBkYXRhLmZsYWdzIHw9IGlteF9wbGF0Zm9ybV9mbGFnLT5mbGFnczsK IAlpZiAocGRhdGEuZmxhZ3MgJiBDSV9IRFJDX1NVUFBPUlRTX1JVTlRJTUVfUE0pCiAJCWRhdGEt PnN1cHBvcnRzX3J1bnRpbWVfcG0gPSB0cnVlOwpAQCAtMzQxLDYgKzM1MSw4IEBAIHN0YXRpYyBp bnQgY2lfaGRyY19pbXhfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXBt X3J1bnRpbWVfcHV0X25vaWRsZSgmcGRldi0+ZGV2KTsKIAl9CiAJY2lfaGRyY19yZW1vdmVfZGV2 aWNlKGRhdGEtPmNpX3BkZXYpOworCWlmIChkYXRhLT5vdmVycmlkZV9waHlfY29udHJvbCkKKwkJ dXNiX3BoeV9zaHV0ZG93bihkYXRhLT5waHkpOwogCWlteF9kaXNhYmxlX3VucHJlcGFyZV9jbGtz KCZwZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7Cg==