From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Blumenstingl Subject: [PATCH usb-next v2 3/3] usb: dwc3: of-simple: add support for the Amlogic Meson GXL and AXG SoCs Date: Sun, 11 Feb 2018 22:15:17 +0100 Message-ID: <20180211211517.5846-4-martin.blumenstingl@googlemail.com> References: <20180211211517.5846-1-martin.blumenstingl@googlemail.com> Return-path: In-Reply-To: <20180211211517.5846-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> Sender: linux-usb-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org, balbi-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, yixun.lan-LpR1jeaWuhtBDgjK7y7TUQ@public.gmane.org, Martin Blumenstingl List-Id: devicetree@vger.kernel.org Amlogic Meson GXL and AXG SoCs come with a (host-only) dwc3 USB controller. To use this controller a clock has to be enabled and a reset line has to be pulsed. Enabling the clock works identical to other SoCs. However, the reset line has to be pulsed (using reset_control_reset) instead of using a level reset (reset_control_{assert,deassert}). Signed-off-by: Martin Blumenstingl Tested-by: Yixun Lan --- drivers/usb/dwc3/dwc3-of-simple.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c index d2e4928c8d62..66cdc79017cf 100644 --- a/drivers/usb/dwc3/dwc3-of-simple.c +++ b/drivers/usb/dwc3/dwc3-of-simple.c @@ -93,6 +93,12 @@ static int dwc3_of_simple_probe(struct platform_device *pdev) platform_set_drvdata(pdev, simple); simple->dev = dev; + if (of_device_is_compatible(np, "amlogic,meson-axg-dwc3") || + of_device_is_compatible(np, "amlogic,meson-gxl-dwc3")) { + shared_resets = true; + simple->pulse_resets = true; + } + simple->resets = of_reset_control_array_get(np, shared_resets, true); if (IS_ERR(simple->resets)) { ret = PTR_ERR(simple->resets); @@ -206,6 +212,8 @@ static const struct of_device_id of_dwc3_simple_match[] = { { .compatible = "xlnx,zynqmp-dwc3" }, { .compatible = "cavium,octeon-7130-usb-uctl" }, { .compatible = "sprd,sc9860-dwc3" }, + { .compatible = "amlogic,meson-axg-dwc3" }, + { .compatible = "amlogic,meson-gxl-dwc3" }, { /* Sentinel */ } }; MODULE_DEVICE_TABLE(of, of_dwc3_simple_match); -- 2.16.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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-next,v2,3/3] usb: dwc3: of-simple: add support for the Amlogic Meson GXL and AXG SoCs From: Martin Blumenstingl Message-Id: <20180211211517.5846-4-martin.blumenstingl@googlemail.com> Date: Sun, 11 Feb 2018 22:15:17 +0100 To: gregkh@linuxfoundation.org, balbi@kernel.org, linux-usb@vger.kernel.org Cc: robh+dt@kernel.org, mark.rutland@arm.com, devicetree@vger.kernel.org, linux-amlogic@lists.infradead.org, yixun.lan@amlogic.com, Martin Blumenstingl List-ID: QW1sb2dpYyBNZXNvbiBHWEwgYW5kIEFYRyBTb0NzIGNvbWUgd2l0aCBhIChob3N0LW9ubHkpIGR3 YzMgVVNCCmNvbnRyb2xsZXIuIFRvIHVzZSB0aGlzIGNvbnRyb2xsZXIgYSBjbG9jayBoYXMgdG8g YmUgZW5hYmxlZCBhbmQgYSByZXNldApsaW5lIGhhcyB0byBiZSBwdWxzZWQuCkVuYWJsaW5nIHRo ZSBjbG9jayB3b3JrcyBpZGVudGljYWwgdG8gb3RoZXIgU29Dcy4gSG93ZXZlciwgdGhlIHJlc2V0 CmxpbmUgaGFzIHRvIGJlIHB1bHNlZCAodXNpbmcgcmVzZXRfY29udHJvbF9yZXNldCkgaW5zdGVh ZCBvZiB1c2luZyBhCmxldmVsIHJlc2V0IChyZXNldF9jb250cm9sX3thc3NlcnQsZGVhc3NlcnR9 KS4KClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBCbHVtZW5zdGluZ2wgPG1hcnRpbi5ibHVtZW5zdGlu Z2xAZ29vZ2xlbWFpbC5jb20+ClRlc3RlZC1ieTogWWl4dW4gTGFuIDx5aXh1bi5sYW5AYW1sb2dp Yy5jb20+Ci0tLQogZHJpdmVycy91c2IvZHdjMy9kd2MzLW9mLXNpbXBsZS5jIHwgOCArKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2R3YzMvZHdjMy1vZi1zaW1wbGUuYyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1vZi1zaW1w bGUuYwppbmRleCBkMmU0OTI4YzhkNjIuLjY2Y2RjNzkwMTdjZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2IvZHdjMy9kd2MzLW9mLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvdXNiL2R3YzMvZHdjMy1v Zi1zaW1wbGUuYwpAQCAtOTMsNiArOTMsMTIgQEAgc3RhdGljIGludCBkd2MzX29mX3NpbXBsZV9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXBsYXRmb3JtX3NldF9kcnZkYXRh KHBkZXYsIHNpbXBsZSk7CiAJc2ltcGxlLT5kZXYgPSBkZXY7CiAKKwlpZiAob2ZfZGV2aWNlX2lz X2NvbXBhdGlibGUobnAsICJhbWxvZ2ljLG1lc29uLWF4Zy1kd2MzIikgfHwKKwkgICAgb2ZfZGV2 aWNlX2lzX2NvbXBhdGlibGUobnAsICJhbWxvZ2ljLG1lc29uLWd4bC1kd2MzIikpIHsKKwkJc2hh cmVkX3Jlc2V0cyA9IHRydWU7CisJCXNpbXBsZS0+cHVsc2VfcmVzZXRzID0gdHJ1ZTsKKwl9CisK IAlzaW1wbGUtPnJlc2V0cyA9IG9mX3Jlc2V0X2NvbnRyb2xfYXJyYXlfZ2V0KG5wLCBzaGFyZWRf cmVzZXRzLCB0cnVlKTsKIAlpZiAoSVNfRVJSKHNpbXBsZS0+cmVzZXRzKSkgewogCQlyZXQgPSBQ VFJfRVJSKHNpbXBsZS0+cmVzZXRzKTsKQEAgLTIwNiw2ICsyMTIsOCBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBvZl9kd2MzX3NpbXBsZV9tYXRjaFtdID0gewogCXsgLmNvbXBh dGlibGUgPSAieGxueCx6eW5xbXAtZHdjMyIgfSwKIAl7IC5jb21wYXRpYmxlID0gImNhdml1bSxv Y3Rlb24tNzEzMC11c2ItdWN0bCIgfSwKIAl7IC5jb21wYXRpYmxlID0gInNwcmQsc2M5ODYwLWR3 YzMiIH0sCisJeyAuY29tcGF0aWJsZSA9ICJhbWxvZ2ljLG1lc29uLWF4Zy1kd2MzIiB9LAorCXsg LmNvbXBhdGlibGUgPSAiYW1sb2dpYyxtZXNvbi1neGwtZHdjMyIgfSwKIAl7IC8qIFNlbnRpbmVs ICovIH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl9kd2MzX3NpbXBsZV9tYXRjaCk7 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: martin.blumenstingl@googlemail.com (Martin Blumenstingl) Date: Sun, 11 Feb 2018 22:15:17 +0100 Subject: [PATCH usb-next v2 3/3] usb: dwc3: of-simple: add support for the Amlogic Meson GXL and AXG SoCs In-Reply-To: <20180211211517.5846-1-martin.blumenstingl@googlemail.com> References: <20180211211517.5846-1-martin.blumenstingl@googlemail.com> Message-ID: <20180211211517.5846-4-martin.blumenstingl@googlemail.com> To: linus-amlogic@lists.infradead.org List-Id: linus-amlogic.lists.infradead.org Amlogic Meson GXL and AXG SoCs come with a (host-only) dwc3 USB controller. To use this controller a clock has to be enabled and a reset line has to be pulsed. Enabling the clock works identical to other SoCs. However, the reset line has to be pulsed (using reset_control_reset) instead of using a level reset (reset_control_{assert,deassert}). Signed-off-by: Martin Blumenstingl Tested-by: Yixun Lan --- drivers/usb/dwc3/dwc3-of-simple.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/usb/dwc3/dwc3-of-simple.c b/drivers/usb/dwc3/dwc3-of-simple.c index d2e4928c8d62..66cdc79017cf 100644 --- a/drivers/usb/dwc3/dwc3-of-simple.c +++ b/drivers/usb/dwc3/dwc3-of-simple.c @@ -93,6 +93,12 @@ static int dwc3_of_simple_probe(struct platform_device *pdev) platform_set_drvdata(pdev, simple); simple->dev = dev; + if (of_device_is_compatible(np, "amlogic,meson-axg-dwc3") || + of_device_is_compatible(np, "amlogic,meson-gxl-dwc3")) { + shared_resets = true; + simple->pulse_resets = true; + } + simple->resets = of_reset_control_array_get(np, shared_resets, true); if (IS_ERR(simple->resets)) { ret = PTR_ERR(simple->resets); @@ -206,6 +212,8 @@ static const struct of_device_id of_dwc3_simple_match[] = { { .compatible = "xlnx,zynqmp-dwc3" }, { .compatible = "cavium,octeon-7130-usb-uctl" }, { .compatible = "sprd,sc9860-dwc3" }, + { .compatible = "amlogic,meson-axg-dwc3" }, + { .compatible = "amlogic,meson-gxl-dwc3" }, { /* Sentinel */ } }; MODULE_DEVICE_TABLE(of, of_dwc3_simple_match); -- 2.16.1