From: Li Jun <jun.li@nxp.com>
To: balbi@kernel.org, shawnguo@kernel.org, robh+dt@kernel.org
Cc: gregkh@linuxfoundation.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, peter.chen@nxp.com,
Anson.Huang@nxp.com, peng.fan@nxp.com, horia.geanta@nxp.com
Subject: [PATCH v2 1/5] usb: dwc3: add platform data to dwc3 core device to pass data
Date: Mon, 6 Jul 2020 17:44:55 +0800 [thread overview]
Message-ID: <1594028699-1055-2-git-send-email-jun.li@nxp.com> (raw)
In-Reply-To: <1594028699-1055-1-git-send-email-jun.li@nxp.com>
In case dwc3 has SoC specific customizations, dwc3 glue driver can base on
compatible string and pass it via platform data to dwc3 core driver; and
pass xhci private data further to xhci-plat like quirks.
Signed-off-by: Li Jun <jun.li@nxp.com>
---
drivers/usb/dwc3/core.h | 5 +++++
drivers/usb/dwc3/host.c | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 0b8ea8c..3146697 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -29,6 +29,7 @@
#include <linux/ulpi/interface.h>
#include <linux/phy/phy.h>
+#include "../host/xhci-plat.h"
#define DWC3_MSG_MAX 500
@@ -924,6 +925,10 @@ struct dwc3_scratchpad_array {
__le64 dma_adr[DWC3_MAX_HIBER_SCRATCHBUFS];
};
+struct dwc3_platform_data {
+ struct xhci_plat_priv *xhci_priv;
+};
+
/**
* struct dwc3 - representation of our controller
* @drd_work: workqueue used for role swapping
diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
index bef1c1a..4f8514a 100644
--- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c
@@ -46,6 +46,7 @@ int dwc3_host_init(struct dwc3 *dwc)
{
struct property_entry props[4];
struct platform_device *xhci;
+ struct dwc3_platform_data *dwc3_pdata;
int ret, irq;
struct resource *res;
struct platform_device *dwc3_pdev = to_platform_device(dwc->dev);
@@ -115,6 +116,14 @@ int dwc3_host_init(struct dwc3 *dwc)
}
}
+ dwc3_pdata = (struct dwc3_platform_data *)dev_get_platdata(dwc->dev);
+ if (dwc3_pdata && dwc3_pdata->xhci_priv) {
+ ret = platform_device_add_data(xhci, dwc3_pdata->xhci_priv,
+ sizeof(struct xhci_plat_priv));
+ if (ret)
+ goto err;
+ }
+
ret = platform_device_add(xhci);
if (ret) {
dev_err(dwc->dev, "failed to register xHCI device\n");
--
2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Li Jun <jun.li@nxp.com>
To: balbi@kernel.org, shawnguo@kernel.org, robh+dt@kernel.org
Cc: devicetree@vger.kernel.org, peng.fan@nxp.com,
horia.geanta@nxp.com, Anson.Huang@nxp.com, peter.chen@nxp.com,
gregkh@linuxfoundation.org, s.hauer@pengutronix.de,
linux-usb@vger.kernel.org, linux-imx@nxp.com,
kernel@pengutronix.de, festevam@gmail.com,
linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/5] usb: dwc3: add platform data to dwc3 core device to pass data
Date: Mon, 6 Jul 2020 17:44:55 +0800 [thread overview]
Message-ID: <1594028699-1055-2-git-send-email-jun.li@nxp.com> (raw)
In-Reply-To: <1594028699-1055-1-git-send-email-jun.li@nxp.com>
In case dwc3 has SoC specific customizations, dwc3 glue driver can base on
compatible string and pass it via platform data to dwc3 core driver; and
pass xhci private data further to xhci-plat like quirks.
Signed-off-by: Li Jun <jun.li@nxp.com>
---
drivers/usb/dwc3/core.h | 5 +++++
drivers/usb/dwc3/host.c | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 0b8ea8c..3146697 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -29,6 +29,7 @@
#include <linux/ulpi/interface.h>
#include <linux/phy/phy.h>
+#include "../host/xhci-plat.h"
#define DWC3_MSG_MAX 500
@@ -924,6 +925,10 @@ struct dwc3_scratchpad_array {
__le64 dma_adr[DWC3_MAX_HIBER_SCRATCHBUFS];
};
+struct dwc3_platform_data {
+ struct xhci_plat_priv *xhci_priv;
+};
+
/**
* struct dwc3 - representation of our controller
* @drd_work: workqueue used for role swapping
diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
index bef1c1a..4f8514a 100644
--- a/drivers/usb/dwc3/host.c
+++ b/drivers/usb/dwc3/host.c
@@ -46,6 +46,7 @@ int dwc3_host_init(struct dwc3 *dwc)
{
struct property_entry props[4];
struct platform_device *xhci;
+ struct dwc3_platform_data *dwc3_pdata;
int ret, irq;
struct resource *res;
struct platform_device *dwc3_pdev = to_platform_device(dwc->dev);
@@ -115,6 +116,14 @@ int dwc3_host_init(struct dwc3 *dwc)
}
}
+ dwc3_pdata = (struct dwc3_platform_data *)dev_get_platdata(dwc->dev);
+ if (dwc3_pdata && dwc3_pdata->xhci_priv) {
+ ret = platform_device_add_data(xhci, dwc3_pdata->xhci_priv,
+ sizeof(struct xhci_plat_priv));
+ if (ret)
+ goto err;
+ }
+
ret = platform_device_add(xhci);
if (ret) {
dev_err(dwc->dev, "failed to register xHCI device\n");
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-07-06 9:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-06 9:44 [PATCH v2 0/5] add NXP imx8mp usb support Li Jun
2020-07-06 9:44 ` Li Jun
2020-07-06 9:44 ` Li Jun [this message]
2020-07-06 9:44 ` [PATCH v2 1/5] usb: dwc3: add platform data to dwc3 core device to pass data Li Jun
2020-07-22 14:33 ` Jun Li
2020-07-22 14:33 ` Jun Li
2020-07-23 9:22 ` Felipe Balbi
2020-07-23 9:22 ` Felipe Balbi
2020-07-23 9:58 ` Jun Li
2020-07-23 9:58 ` Jun Li
2020-08-13 9:54 ` Jun Li
2020-08-13 9:54 ` Jun Li
2020-07-06 9:44 ` [PATCH v2 2/5] usb: dwc3: add imx8mp dwc3 glue layer driver Li Jun
2020-07-06 9:44 ` Li Jun
2020-07-06 9:44 ` [PATCH v2 3/5] arm64: dtsi: imx8mp: add usb nodes Li Jun
2020-07-06 9:44 ` Li Jun
2020-07-06 9:44 ` [PATCH v2 4/5] arm64: dts: imx8mp-evk: enable usb1 as host mode Li Jun
2020-07-06 9:44 ` Li Jun
2020-07-06 9:44 ` [PATCH v2 5/5] dt-bindings: usb: dwc3-imx8mp: add imx8mp dwc3 glue bindings Li Jun
2020-07-06 9:44 ` Li Jun
2020-07-14 3:00 ` Rob Herring
2020-07-14 3:00 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1594028699-1055-2-git-send-email-jun.li@nxp.com \
--to=jun.li@nxp.com \
--cc=Anson.Huang@nxp.com \
--cc=balbi@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=horia.geanta@nxp.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-usb@vger.kernel.org \
--cc=peng.fan@nxp.com \
--cc=peter.chen@nxp.com \
--cc=robh+dt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.