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=-3.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 0E357C4321D for ; Wed, 22 Aug 2018 20:43:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B9C10208B7 for ; Wed, 22 Aug 2018 20:43:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B9C10208B7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=v3.sk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728688AbeHWAKP (ORCPT ); Wed, 22 Aug 2018 20:10:15 -0400 Received: from shell.v3.sk ([90.176.6.54]:53360 "EHLO shell.v3.sk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728497AbeHWAKN (ORCPT ); Wed, 22 Aug 2018 20:10:13 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.v3.sk (Postfix) with ESMTP id 3809FB5B97; Wed, 22 Aug 2018 22:43:46 +0200 (CEST) Received: from shell.v3.sk ([127.0.0.1]) by localhost (zimbra.v3.sk [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id ZKJfPONjqW_S; Wed, 22 Aug 2018 22:43:32 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by zimbra.v3.sk (Postfix) with ESMTP id B7415B5B9F; Wed, 22 Aug 2018 22:43:18 +0200 (CEST) X-Virus-Scanned: amavisd-new at zimbra.v3.sk Received: from shell.v3.sk ([127.0.0.1]) by localhost (zimbra.v3.sk [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id KafwWKzl1TPP; Wed, 22 Aug 2018 22:43:16 +0200 (CEST) Received: from odvarok.lan (ip-89-102-31-34.net.upcbroadband.cz [89.102.31.34]) by zimbra.v3.sk (Postfix) with ESMTPSA id 4B0BAB5B97; Wed, 22 Aug 2018 22:43:14 +0200 (CEST) From: Lubomir Rintel To: linux-kernel@vger.kernel.org Cc: linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rob Herring , Mark Rutland , Greg Kroah-Hartman , Eric Miao , Haojian Zhuang , Kishon Vijay Abraham I , Alan Stern , Lubomir Rintel Subject: [PATCH 11/14] USB: EHCI: ehci-mv: add DT support Date: Wed, 22 Aug 2018 22:43:04 +0200 Message-Id: <20180822204307.13251-12-lkundrak@v3.sk> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180822204307.13251-1-lkundrak@v3.sk> References: <20180822204307.13251-1-lkundrak@v3.sk> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add Device tree support. Signed-off-by: Lubomir Rintel --- drivers/usb/host/ehci-mv.c | 41 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/drivers/usb/host/ehci-mv.c b/drivers/usb/host/ehci-mv.c index 43b300c90875..f26109eafdbf 100644 --- a/drivers/usb/host/ehci-mv.c +++ b/drivers/usb/host/ehci-mv.c @@ -34,11 +34,11 @@ struct ehci_hcd_mv { void __iomem *op_regs; struct usb_phy *otg; + struct clk *clk; - struct mv_usb_platform_data *pdata; struct phy *phy; - struct clk *clk; + int (*set_vbus)(unsigned int vbus); }; static void ehci_clock_enable(struct ehci_hcd_mv *ehci_mv) @@ -100,11 +100,6 @@ static int mv_ehci_probe(struct platform_device *pdev) int retval = -ENODEV; u32 offset; - if (!pdata) { - dev_err(&pdev->dev, "missing platform_data\n"); - return -ENODEV; - } - if (usb_disabled()) return -ENODEV; @@ -114,7 +109,12 @@ static int mv_ehci_probe(struct platform_device *pdev) platform_set_drvdata(pdev, hcd); ehci_mv = hcd_to_ehci_hcd_mv(hcd); - ehci_mv->pdata = pdata; + + ehci_mv->mode = MV_USB_MODE_HOST; + if (pdata) { + ehci_mv->mode = pdata->mode; + ehci_mv->set_vbus = pdata->set_vbus; + } ehci_mv->phy = devm_phy_get(&pdev->dev, "usb"); if (IS_ERR(ehci_mv->phy)) { @@ -166,7 +166,6 @@ static int mv_ehci_probe(struct platform_device *pdev) ehci = hcd_to_ehci(hcd); ehci->caps = (struct ehci_caps *) ehci_mv->cap_regs; - ehci_mv->mode = pdata->mode; if (ehci_mv->mode == MV_USB_MODE_OTG) { ehci_mv->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2); if (IS_ERR(ehci_mv->otg)) { @@ -191,8 +190,8 @@ static int mv_ehci_probe(struct platform_device *pdev) /* otg will enable clock before use as host */ mv_ehci_disable(ehci_mv); } else { - if (pdata->set_vbus) - pdata->set_vbus(1); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(1); retval = usb_add_hcd(hcd, hcd->irq, IRQF_SHARED); if (retval) { @@ -211,8 +210,8 @@ static int mv_ehci_probe(struct platform_device *pdev) return 0; err_set_vbus: - if (pdata->set_vbus) - pdata->set_vbus(0); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(0); err_disable_clk: mv_ehci_disable(ehci_mv); err_put_hcd: @@ -233,8 +232,8 @@ static int mv_ehci_remove(struct platform_device *pdev) otg_set_host(ehci_mv->otg->otg, NULL); if (ehci_mv->mode == MV_USB_MODE_HOST) { - if (ehci_mv->pdata->set_vbus) - ehci_mv->pdata->set_vbus(0); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(0); mv_ehci_disable(ehci_mv); } @@ -265,14 +264,20 @@ static void mv_ehci_shutdown(struct platform_device *pdev) hcd->driver->shutdown(hcd); } +static const struct of_device_id ehci_mv_dt_ids[] = { + { .compatible = "marvell,pxau2o-ehci", }, + {}, +}; + static struct platform_driver ehci_mv_driver = { .probe = mv_ehci_probe, .remove = mv_ehci_remove, .shutdown = mv_ehci_shutdown, .driver = { - .name = "mv-ehci", - .bus = &platform_bus_type, - }, + .name = "mv-ehci", + .bus = &platform_bus_type, + .of_match_table = ehci_mv_dt_ids, + }, .id_table = ehci_id_table, }; -- 2.17.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: [11/14] USB: EHCI: ehci-mv: add DT support From: Lubomir Rintel Message-Id: <20180822204307.13251-12-lkundrak@v3.sk> Date: Wed, 22 Aug 2018 22:43:04 +0200 To: linux-kernel@vger.kernel.org Cc: linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rob Herring , Mark Rutland , Greg Kroah-Hartman , Eric Miao , Haojian Zhuang , Kishon Vijay Abraham I , Alan Stern , Lubomir Rintel List-ID: QWRkIERldmljZSB0cmVlIHN1cHBvcnQuCgpTaWduZWQtb2ZmLWJ5OiBMdWJvbWlyIFJpbnRlbCA8 bGt1bmRyYWtAdjMuc2s+Ci0tLQogZHJpdmVycy91c2IvaG9zdC9laGNpLW12LmMgfCA0MSArKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGlu c2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hv c3QvZWhjaS1tdi5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW12LmMKaW5kZXggNDNiMzAwYzkw ODc1Li5mMjYxMDllYWZkYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1tdi5j CisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1tdi5jCkBAIC0zNCwxMSArMzQsMTEgQEAgc3Ry dWN0IGVoY2lfaGNkX212IHsKIAl2b2lkIF9faW9tZW0gKm9wX3JlZ3M7CiAKIAlzdHJ1Y3QgdXNi X3BoeSAqb3RnOworCXN0cnVjdCBjbGsgKmNsazsKIAotCXN0cnVjdCBtdl91c2JfcGxhdGZvcm1f ZGF0YSAqcGRhdGE7CiAJc3RydWN0IHBoeSAqcGh5OwogCi0Jc3RydWN0IGNsayAqY2xrOworCWlu dCAoKnNldF92YnVzKSh1bnNpZ25lZCBpbnQgdmJ1cyk7CiB9OwogCiBzdGF0aWMgdm9pZCBlaGNp X2Nsb2NrX2VuYWJsZShzdHJ1Y3QgZWhjaV9oY2RfbXYgKmVoY2lfbXYpCkBAIC0xMDAsMTEgKzEw MCw2IEBAIHN0YXRpYyBpbnQgbXZfZWhjaV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCWludCByZXR2YWwgPSAtRU5PREVWOwogCXUzMiBvZmZzZXQ7CiAKLQlpZiAoIXBkYXRh KSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm1pc3NpbmcgcGxhdGZvcm1fZGF0YVxuIik7Ci0J CXJldHVybiAtRU5PREVWOwotCX0KLQogCWlmICh1c2JfZGlzYWJsZWQoKSkKIAkJcmV0dXJuIC1F Tk9ERVY7CiAKQEAgLTExNCw3ICsxMDksMTIgQEAgc3RhdGljIGludCBtdl9laGNpX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2 LCBoY2QpOwogCWVoY2lfbXYgPSBoY2RfdG9fZWhjaV9oY2RfbXYoaGNkKTsKLQllaGNpX212LT5w ZGF0YSA9IHBkYXRhOworCisJZWhjaV9tdi0+bW9kZSA9IE1WX1VTQl9NT0RFX0hPU1Q7CisJaWYg KHBkYXRhKSB7CisJCWVoY2lfbXYtPm1vZGUgPSBwZGF0YS0+bW9kZTsKKwkJZWhjaV9tdi0+c2V0 X3ZidXMgPSBwZGF0YS0+c2V0X3ZidXM7CisJfQogCiAJZWhjaV9tdi0+cGh5ID0gZGV2bV9waHlf Z2V0KCZwZGV2LT5kZXYsICJ1c2IiKTsKIAlpZiAoSVNfRVJSKGVoY2lfbXYtPnBoeSkpIHsKQEAg LTE2Niw3ICsxNjYsNiBAQCBzdGF0aWMgaW50IG12X2VoY2lfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAllaGNpID0gaGNkX3RvX2VoY2koaGNkKTsKIAllaGNpLT5jYXBzID0g KHN0cnVjdCBlaGNpX2NhcHMgKikgZWhjaV9tdi0+Y2FwX3JlZ3M7CiAKLQllaGNpX212LT5tb2Rl ID0gcGRhdGEtPm1vZGU7CiAJaWYgKGVoY2lfbXYtPm1vZGUgPT0gTVZfVVNCX01PREVfT1RHKSB7 CiAJCWVoY2lfbXYtPm90ZyA9IGRldm1fdXNiX2dldF9waHkoJnBkZXYtPmRldiwgVVNCX1BIWV9U WVBFX1VTQjIpOwogCQlpZiAoSVNfRVJSKGVoY2lfbXYtPm90ZykpIHsKQEAgLTE5MSw4ICsxOTAs OCBAQCBzdGF0aWMgaW50IG12X2VoY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAkJLyogb3RnIHdpbGwgZW5hYmxlIGNsb2NrIGJlZm9yZSB1c2UgYXMgaG9zdCAqLwogCQlt dl9laGNpX2Rpc2FibGUoZWhjaV9tdik7CiAJfSBlbHNlIHsKLQkJaWYgKHBkYXRhLT5zZXRfdmJ1 cykKLQkJCXBkYXRhLT5zZXRfdmJ1cygxKTsKKwkJaWYgKGVoY2lfbXYtPnNldF92YnVzKQorCQkJ ZWhjaV9tdi0+c2V0X3ZidXMoMSk7CiAKIAkJcmV0dmFsID0gdXNiX2FkZF9oY2QoaGNkLCBoY2Qt PmlycSwgSVJRRl9TSEFSRUQpOwogCQlpZiAocmV0dmFsKSB7CkBAIC0yMTEsOCArMjEwLDggQEAg c3RhdGljIGludCBtdl9laGNpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJ cmV0dXJuIDA7CiAKIGVycl9zZXRfdmJ1czoKLQlpZiAocGRhdGEtPnNldF92YnVzKQotCQlwZGF0 YS0+c2V0X3ZidXMoMCk7CisJaWYgKGVoY2lfbXYtPnNldF92YnVzKQorCQllaGNpX212LT5zZXRf dmJ1cygwKTsKIGVycl9kaXNhYmxlX2NsazoKIAltdl9laGNpX2Rpc2FibGUoZWhjaV9tdik7CiBl cnJfcHV0X2hjZDoKQEAgLTIzMyw4ICsyMzIsOCBAQCBzdGF0aWMgaW50IG12X2VoY2lfcmVtb3Zl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCW90Z19zZXRfaG9zdChlaGNpX212LT5v dGctPm90ZywgTlVMTCk7CiAKIAlpZiAoZWhjaV9tdi0+bW9kZSA9PSBNVl9VU0JfTU9ERV9IT1NU KSB7Ci0JCWlmIChlaGNpX212LT5wZGF0YS0+c2V0X3ZidXMpCi0JCQllaGNpX212LT5wZGF0YS0+ c2V0X3ZidXMoMCk7CisJCWlmIChlaGNpX212LT5zZXRfdmJ1cykKKwkJCWVoY2lfbXYtPnNldF92 YnVzKDApOwogCiAJCW12X2VoY2lfZGlzYWJsZShlaGNpX212KTsKIAl9CkBAIC0yNjUsMTQgKzI2 NCwyMCBAQCBzdGF0aWMgdm9pZCBtdl9laGNpX3NodXRkb3duKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAJCWhjZC0+ZHJpdmVyLT5zaHV0ZG93bihoY2QpOwogfQogCitzdGF0aWMgY29u c3Qgc3RydWN0IG9mX2RldmljZV9pZCBlaGNpX212X2R0X2lkc1tdID0geworCXsgLmNvbXBhdGli bGUgPSAibWFydmVsbCxweGF1Mm8tZWhjaSIsIH0sCisJe30sCit9OworCiBzdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBlaGNpX212X2RyaXZlciA9IHsKIAkucHJvYmUgPSBtdl9laGNpX3By b2JlLAogCS5yZW1vdmUgPSBtdl9laGNpX3JlbW92ZSwKIAkuc2h1dGRvd24gPSBtdl9laGNpX3No dXRkb3duLAogCS5kcml2ZXIgPSB7Ci0JCSAgIC5uYW1lID0gIm12LWVoY2kiLAotCQkgICAuYnVz ID0gJnBsYXRmb3JtX2J1c190eXBlLAotCQkgICB9LAorCQkubmFtZSA9ICJtdi1laGNpIiwKKwkJ LmJ1cyA9ICZwbGF0Zm9ybV9idXNfdHlwZSwKKwkJLm9mX21hdGNoX3RhYmxlID0gZWhjaV9tdl9k dF9pZHMsCisJfSwKIAkuaWRfdGFibGUgPSBlaGNpX2lkX3RhYmxlLAogfTsKIAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: lkundrak@v3.sk (Lubomir Rintel) Date: Wed, 22 Aug 2018 22:43:04 +0200 Subject: [PATCH 11/14] USB: EHCI: ehci-mv: add DT support In-Reply-To: <20180822204307.13251-1-lkundrak@v3.sk> References: <20180822204307.13251-1-lkundrak@v3.sk> Message-ID: <20180822204307.13251-12-lkundrak@v3.sk> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Add Device tree support. Signed-off-by: Lubomir Rintel --- drivers/usb/host/ehci-mv.c | 41 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/drivers/usb/host/ehci-mv.c b/drivers/usb/host/ehci-mv.c index 43b300c90875..f26109eafdbf 100644 --- a/drivers/usb/host/ehci-mv.c +++ b/drivers/usb/host/ehci-mv.c @@ -34,11 +34,11 @@ struct ehci_hcd_mv { void __iomem *op_regs; struct usb_phy *otg; + struct clk *clk; - struct mv_usb_platform_data *pdata; struct phy *phy; - struct clk *clk; + int (*set_vbus)(unsigned int vbus); }; static void ehci_clock_enable(struct ehci_hcd_mv *ehci_mv) @@ -100,11 +100,6 @@ static int mv_ehci_probe(struct platform_device *pdev) int retval = -ENODEV; u32 offset; - if (!pdata) { - dev_err(&pdev->dev, "missing platform_data\n"); - return -ENODEV; - } - if (usb_disabled()) return -ENODEV; @@ -114,7 +109,12 @@ static int mv_ehci_probe(struct platform_device *pdev) platform_set_drvdata(pdev, hcd); ehci_mv = hcd_to_ehci_hcd_mv(hcd); - ehci_mv->pdata = pdata; + + ehci_mv->mode = MV_USB_MODE_HOST; + if (pdata) { + ehci_mv->mode = pdata->mode; + ehci_mv->set_vbus = pdata->set_vbus; + } ehci_mv->phy = devm_phy_get(&pdev->dev, "usb"); if (IS_ERR(ehci_mv->phy)) { @@ -166,7 +166,6 @@ static int mv_ehci_probe(struct platform_device *pdev) ehci = hcd_to_ehci(hcd); ehci->caps = (struct ehci_caps *) ehci_mv->cap_regs; - ehci_mv->mode = pdata->mode; if (ehci_mv->mode == MV_USB_MODE_OTG) { ehci_mv->otg = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2); if (IS_ERR(ehci_mv->otg)) { @@ -191,8 +190,8 @@ static int mv_ehci_probe(struct platform_device *pdev) /* otg will enable clock before use as host */ mv_ehci_disable(ehci_mv); } else { - if (pdata->set_vbus) - pdata->set_vbus(1); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(1); retval = usb_add_hcd(hcd, hcd->irq, IRQF_SHARED); if (retval) { @@ -211,8 +210,8 @@ static int mv_ehci_probe(struct platform_device *pdev) return 0; err_set_vbus: - if (pdata->set_vbus) - pdata->set_vbus(0); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(0); err_disable_clk: mv_ehci_disable(ehci_mv); err_put_hcd: @@ -233,8 +232,8 @@ static int mv_ehci_remove(struct platform_device *pdev) otg_set_host(ehci_mv->otg->otg, NULL); if (ehci_mv->mode == MV_USB_MODE_HOST) { - if (ehci_mv->pdata->set_vbus) - ehci_mv->pdata->set_vbus(0); + if (ehci_mv->set_vbus) + ehci_mv->set_vbus(0); mv_ehci_disable(ehci_mv); } @@ -265,14 +264,20 @@ static void mv_ehci_shutdown(struct platform_device *pdev) hcd->driver->shutdown(hcd); } +static const struct of_device_id ehci_mv_dt_ids[] = { + { .compatible = "marvell,pxau2o-ehci", }, + {}, +}; + static struct platform_driver ehci_mv_driver = { .probe = mv_ehci_probe, .remove = mv_ehci_remove, .shutdown = mv_ehci_shutdown, .driver = { - .name = "mv-ehci", - .bus = &platform_bus_type, - }, + .name = "mv-ehci", + .bus = &platform_bus_type, + .of_match_table = ehci_mv_dt_ids, + }, .id_table = ehci_id_table, }; -- 2.17.1