Skip to contentSkip to conversation

usb: chipidea: Add support for s32g2 and s32g3

PATCH Superseded Dan Carpenter 3 participants 14 messages May 28, 2025 – Jun 11, 2025

Subsystems (4)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover usb: chipidea: Add support for s32g2 and s32g3

This patchset adds support for the s32g2 and s32g3 chips.

Dan Carpenter (4):
dt-bindings: usb: Add compatible strings for s32g2/s32g3
usb: chipidea: usbmisc: s32g: Re-apply init settings during resume
usb: chipidea: s32g: Add usb support for s32g2
usb: chipidea: s32g: Add usb support for s32g3

 .../devicetree/bindings/usb/ci-hdrc-usb2.yaml |  2 +
 .../devicetree/bindings/usb/fsl,usbmisc.yaml  |  2 +
 drivers/usb/chipidea/ci_hdrc_imx.c            |  6 ++
 drivers/usb/chipidea/usbmisc_imx.c            | 91 +++++++++++++++++++
 4 files changed, 101 insertions(+)
Signature · 1 line
2.47.2
#1 lore raw

PATCH 1/4 dt-bindings: usb: Add compatible strings for s32g2/s32g3

From: Ghennadi Procopciuc <[email protected]>

Add the compatible strings for the NXP s32g2 and s32g3.

---
 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml | 2 ++
 Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml  | 2 ++
 2 files changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +2 -0
index cc5787a8cfa3..400d885fea96 100644
@@ -24,6 +24,8 @@ properties:
           - nvidia,tegra114-udc
           - nvidia,tegra124-udc
           - qcom,ci-hdrc
+          - nxp,s32g2-usb
+          - nxp,s32g3-usb
       - items:
           - enum:
               - nvidia,tegra114-ehci
Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml +2 -0
index 019435540df0..ca677d1a8274 100644
@@ -21,6 +21,8 @@ properties:
           - fsl,imx53-usbmisc
           - fsl,imx6q-usbmisc
           - fsl,vf610-usbmisc
+          - nxp,s32g2-usbmisc
+          - nxp,s32g3-usbmisc
       - items:
           - enum:
               - fsl,imx6ul-usbmisc
Signature · 1 line
2.47.2
maintainer
#2 lore raw

Re: [PATCH 1/4] dt-bindings: usb: Add compatible strings for s32g2/s32g3

Quoted 18 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Add the compatible strings for the NXP s32g2 and s32g3.

---
 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml | 2 ++
 Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml  | 2 ++
 2 files changed, 4 insertions(+)
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +0 -0
index cc5787a8cfa3..400d885fea96 100644

Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml properties: · line 28

Quoted 5 lines
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +2 -0
@@ -24,6 +24,8 @@ properties:
           - nvidia,tegra114-udc
           - nvidia,tegra124-udc
           - qcom,ci-hdrc
+          - nxp,s32g2-usb
+          - nxp,s32g3-usb

keep alphabet order! Can you use b4 to send patch, look like cc list missed [email protected]

Frank

Quoted 19 lines
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +0 -0
       - items:
           - enum:
               - nvidia,tegra114-ehci
Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml +2 -1
index 019435540df0..ca677d1a8274 100644
@@ -21,6 +21,8 @@ properties:
           - fsl,imx53-usbmisc
           - fsl,imx6q-usbmisc
           - fsl,vf610-usbmisc
+          - nxp,s32g2-usbmisc
+          - nxp,s32g3-usbmisc
       - items:
           - enum:
               - fsl,imx6ul-usbmisc
--

2.47.2

#3 lore raw

Re: [PATCH 1/4] dt-bindings: usb: Add compatible strings for s32g2/s32g3

Quoted 14 lines · Frank Li
Quoted 13 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Add the compatible strings for the NXP s32g2 and s32g3.

---
 Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml | 2 ++
 Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml  | 2 ++
 2 files changed, 4 insertions(+)
Quoted 12 lines

Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml properties: · line 28

Quoted 10 lines
Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml +2 -0
index cc5787a8cfa3..400d885fea96 100644
@@ -24,6 +24,8 @@ properties:
           - nvidia,tegra114-udc
           - nvidia,tegra124-udc
           - qcom,ci-hdrc
+          - nxp,s32g2-usb
+          - nxp,s32g3-usb

keep alphabet order!

Ah, sure.

Quoted 2 lines

Can you use b4 to send patch, look like cc list missed [email protected]

It's MAINTAINERS file which is wrong here.

$ ./scripts/get_maintainer.pl -f Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
Greg Kroah-Hartman <[email protected]> (maintainer:USB SUBSYSTEM)
Rob Herring <[email protected]> (maintainer:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS)
Krzysztof Kozlowski <[email protected]> (maintainer:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS)
Conor Dooley <[email protected]> (maintainer:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS)
Xu Yang <[email protected]> (in file)
Peng Fan <[email protected]> (in file)
[email protected] (open list:USB SUBSYSTEM)
[email protected] (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS)
[email protected] (open list)
USB SUBSYSTEM status: Supported

regards,
dan carpenter

#4 lore raw

Re: [PATCH 1/4] dt-bindings: usb: Add compatible strings for s32g2/s32g3

In reply to Dan Carpenter
Quoted 3 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Add the compatible strings for the NXP s32g2 and s32g3.

Why these are not compatible? Explain the hardware in the commit msg. Your driver, although you did not Cc me on it, suggests they are compatible. Anyway you have entire commit msg to explain unusual things.

Best regards,
Krzysztof

#5 lore raw

PATCH 2/4 usb: chipidea: usbmisc: s32g: Add a REINIT_DURING_RESUME flag

In reply to Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

The s32g2 and s32g3 chips will need to re-initialize in the resume path. Add a REINIT_DURING_RESUME flag which will trigger the reinitialization.

---
 drivers/usb/chipidea/usbmisc_imx.c | 7 +++++++
 1 file changed, 7 insertions(+)
drivers/usb/chipidea/usbmisc_imx.c +7 -0
index 118b9a68496b..95759a4ec60c 100644
@@ -155,6 +155,9 @@
 					 BLKCTL_OTG_VBUS_WAKEUP_EN | \
 					 BLKCTL_OTG_DPDM_WAKEUP_EN)
 
+/* Flags for 'struct imx_usbmisc' */
+#define REINIT_DURING_RESUME	BIT(1)
+
 struct usbmisc_ops {
 	/* It's called once when probe a usb device */
 	int (*init)(struct imx_usbmisc_data *data);
@@ -171,6 +174,7 @@ struct usbmisc_ops {
 	/* It's called when system resume from usb power lost */
 	int (*power_lost_check)(struct imx_usbmisc_data *data);
 	void (*vbus_comparator_on)(struct imx_usbmisc_data *data, bool on);
+	u32 flags;
 };
 
 struct imx_usbmisc {
@@ -1266,6 +1270,9 @@ int imx_usbmisc_resume(struct imx_usbmisc_data *data, bool wakeup)
 
 	usbmisc = dev_get_drvdata(data->dev);
 
+	if ((usbmisc->ops->flags & REINIT_DURING_RESUME) && usbmisc->ops->init)
+		usbmisc->ops->init(data);
+
 	if (usbmisc->ops->power_lost_check)
 		ret = usbmisc->ops->power_lost_check(data);
 	if (ret > 0) {
Signature · 1 line
2.47.2
maintainer
#6 lore raw

Re: [PATCH 2/4] usb: chipidea: usbmisc: s32g: Add a REINIT_DURING_RESUME flag

Quoted 4 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

The s32g2 and s32g3 chips will need to re-initialize in the resume path. Add a REINIT_DURING_RESUME flag which will trigger the reinitialization.

why power_lost_check() doesn't work for you?

Frank

Quoted 42 lines
---
 drivers/usb/chipidea/usbmisc_imx.c | 7 +++++++
 1 file changed, 7 insertions(+)
drivers/usb/chipidea/usbmisc_imx.c +7 -1
index 118b9a68496b..95759a4ec60c 100644
@@ -155,6 +155,9 @@
 					 BLKCTL_OTG_VBUS_WAKEUP_EN | \
 					 BLKCTL_OTG_DPDM_WAKEUP_EN)
 
+/* Flags for 'struct imx_usbmisc' */
+#define REINIT_DURING_RESUME	BIT(1)
+
 struct usbmisc_ops {
 	/* It's called once when probe a usb device */
 	int (*init)(struct imx_usbmisc_data *data);
@@ -171,6 +174,7 @@ struct usbmisc_ops {
 	/* It's called when system resume from usb power lost */
 	int (*power_lost_check)(struct imx_usbmisc_data *data);
 	void (*vbus_comparator_on)(struct imx_usbmisc_data *data, bool on);
+	u32 flags;
 };
 
 struct imx_usbmisc {
@@ -1266,6 +1270,9 @@ int imx_usbmisc_resume(struct imx_usbmisc_data *data, bool wakeup)
 
 	usbmisc = dev_get_drvdata(data->dev);
 
+	if ((usbmisc->ops->flags & REINIT_DURING_RESUME) && usbmisc->ops->init)
+		usbmisc->ops->init(data);
+
 	if (usbmisc->ops->power_lost_check)
 		ret = usbmisc->ops->power_lost_check(data);
 	if (ret > 0) {
--

2.47.2

#7 lore raw

Re: [PATCH 2/4] usb: chipidea: usbmisc: s32g: Add a REINIT_DURING_RESUME flag

Quoted 8 lines · Frank Li
Quoted 4 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

The s32g2 and s32g3 chips will need to re-initialize in the resume path. Add a REINIT_DURING_RESUME flag which will trigger the reinitialization.

why power_lost_check() doesn't work for you?

Yeah. That looks like it should work. Thanks.

regards,
dan carpenter

#8 lore raw

PATCH 3/4 usb: chipidea: s32g: Add usb support for s32g2

In reply to Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for s32g2.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  6 +++
 drivers/usb/chipidea/usbmisc_imx.c | 69 ++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +6 -0
index 780f4d151345..ce207f8566d5 100644
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2020 NXP
  * Copyright (C) 2012 Marek Vasut <[email protected]>
  * on behalf of DENX Software Engineering GmbH
  */
@@ -78,6 +79,10 @@ static const struct ci_hdrc_imx_platform_flag imx8ulp_usb_data = {
 		CI_HDRC_HAS_PORTSC_PEC_MISSED,
 };
 
+static const struct ci_hdrc_imx_platform_flag s32g_usb_data = {
+	.flags = CI_HDRC_DISABLE_HOST_STREAMING,
+};
+
 static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
 	{ .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
@@ -89,6 +94,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7d-usb", .data = &imx7d_usb_data},
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
+	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids);
drivers/usb/chipidea/usbmisc_imx.c +69 -0

99 lines not on this page · raw message

Signature · 1 line
2.47.2
maintainer
#9 lore raw

Re: [PATCH 3/4] usb: chipidea: s32g: Add usb support for s32g2

Quoted 16 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for s32g2.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  6 +++
 drivers/usb/chipidea/usbmisc_imx.c | 69 ++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +0 -0
index 780f4d151345..ce207f8566d5 100644

drivers/usb/chipidea/ci_hdrc_imx.c line 4

Quoted 4 lines
drivers/usb/chipidea/ci_hdrc_imx.c +1 -0
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2020 NXP

2025?

Frank

Quoted 133 lines
drivers/usb/chipidea/ci_hdrc_imx.c +5 -0
  * Copyright (C) 2012 Marek Vasut <[email protected]>
  * on behalf of DENX Software Engineering GmbH
  */
@@ -78,6 +79,10 @@ static const struct ci_hdrc_imx_platform_flag imx8ulp_usb_data = {
 		CI_HDRC_HAS_PORTSC_PEC_MISSED,
 };
 
+static const struct ci_hdrc_imx_platform_flag s32g_usb_data = {
+	.flags = CI_HDRC_DISABLE_HOST_STREAMING,
+};
+
 static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx23-usb", .data = &imx23_usb_data},
 	{ .compatible = "fsl,imx28-usb", .data = &imx28_usb_data},
@@ -89,6 +94,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7d-usb", .data = &imx7d_usb_data},
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
+	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids);
drivers/usb/chipidea/usbmisc_imx.c +69 -1
index 95759a4ec60c..43098a150e83 100644
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2020 NXP
  */
 
 #include <linux/module.h>
@@ -158,6 +159,18 @@
 /* Flags for 'struct imx_usbmisc' */
 #define REINIT_DURING_RESUME	BIT(1)
 
+#define S32G_WAKEUP_IE		BIT(0)
+#define S32G_CORE_IE		BIT(1)
+#define S32G_PWRFLTEN		BIT(7)
+#define S32G_WAKEUPCTRL		BIT(10)
+#define S32G_WAKEUPEN		BIT(11)
+
+/* Workaround errata ERR050474 (handle packages that aren't 4 byte aligned) */
+#define S32G_UCMALLBE		BIT(15)
+
+#define S32G_WAKEUP_BITS (S32G_WAKEUP_IE | S32G_CORE_IE | S32G_WAKEUPEN | \
+			  S32G_WAKEUPCTRL)
+
 struct usbmisc_ops {
 	/* It's called once when probe a usb device */
 	int (*init)(struct imx_usbmisc_data *data);
@@ -618,6 +631,52 @@ static int usbmisc_vf610_init(struct imx_usbmisc_data *data)
 	return 0;
 }
 
+static int usbmisc_s32g_set_wakeup(struct imx_usbmisc_data *data, bool enabled)
+{
+	struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev);
+	unsigned long flags;
+	u32 reg;
+
+	spin_lock_irqsave(&usbmisc->lock, flags);
+
+	reg = readl(usbmisc->base);
+	if (enabled)
+		reg |= S32G_WAKEUP_BITS;
+	else
+		reg &= ~S32G_WAKEUP_BITS;
+
+	writel(reg, usbmisc->base);
+	spin_unlock_irqrestore(&usbmisc->lock, flags);
+
+	return 0;
+}
+
+static int usbmisc_s32g_init(struct imx_usbmisc_data *data, u32 extra_flags)
+{
+	struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev);
+	unsigned long flags;
+	u32 reg;
+
+	spin_lock_irqsave(&usbmisc->lock, flags);
+
+	reg = readl(usbmisc->base);
+
+	reg |= S32G_PWRFLTEN;
+	reg |= extra_flags;
+
+	writel(reg, usbmisc->base);
+
+	spin_unlock_irqrestore(&usbmisc->lock, flags);
+	usbmisc_s32g_set_wakeup(data, false);
+
+	return 0;
+}
+
+static int usbmisc_s32g2_init(struct imx_usbmisc_data *data)
+{
+	return usbmisc_s32g_init(data, S32G_UCMALLBE);
+}
+
 static int usbmisc_imx7d_set_wakeup
 	(struct imx_usbmisc_data *data, bool enabled)
 {
@@ -1135,6 +1194,12 @@ static const struct usbmisc_ops imx95_usbmisc_ops = {
 	.vbus_comparator_on = usbmisc_imx7d_vbus_comparator_on,
 };
 
+static const struct usbmisc_ops s32g2_usbmisc_ops = {
+	.init = usbmisc_s32g2_init,
+	.set_wakeup = usbmisc_s32g_set_wakeup,
+	.flags = REINIT_DURING_RESUME,
+};
+
 static inline bool is_imx53_usbmisc(struct imx_usbmisc_data *data)
 {
 	struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev);
@@ -1363,6 +1428,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
 		.compatible = "fsl,imx95-usbmisc",
 		.data = &imx95_usbmisc_ops,
 	},
+	{
+		.compatible = "nxp,s32g2-usbmisc",
+		.data = &s32g2_usbmisc_ops,
+	},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, usbmisc_imx_dt_ids);
--

2.47.2

#10 lore raw

PATCH 4/4 usb: chipidea: s32g: Add usb support for s32g3

In reply to Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for the s32g3 USB device.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  1 +
 drivers/usb/chipidea/usbmisc_imx.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +1 -0
index ce207f8566d5..d062399ce15e 100644
@@ -95,6 +95,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
 	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
+	{ .compatible = "nxp,s32g3-usb", .data = &s32g_usb_data},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids);
drivers/usb/chipidea/usbmisc_imx.c +15 -0
index 43098a150e83..34fd26faa303 100644
@@ -677,6 +677,11 @@ static int usbmisc_s32g2_init(struct imx_usbmisc_data *data)
 	return usbmisc_s32g_init(data, S32G_UCMALLBE);
 }
 
+static int usbmisc_s32g3_init(struct imx_usbmisc_data *data)
+{
+	return usbmisc_s32g_init(data, 0);
+}
+
 static int usbmisc_imx7d_set_wakeup
 	(struct imx_usbmisc_data *data, bool enabled)
 {
@@ -1200,6 +1205,12 @@ static const struct usbmisc_ops s32g2_usbmisc_ops = {
 	.flags = REINIT_DURING_RESUME,
 };
 
+static const struct usbmisc_ops s32g3_usbmisc_ops = {
+	.init = usbmisc_s32g3_init,
+	.set_wakeup = usbmisc_s32g_set_wakeup,
+	.flags = REINIT_DURING_RESUME,
+};
+
 static inline bool is_imx53_usbmisc(struct imx_usbmisc_data *data)
 {
 	struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev);
@@ -1432,6 +1443,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
 		.compatible = "nxp,s32g2-usbmisc",
 		.data = &s32g2_usbmisc_ops,
 	},
+	{
+		.compatible = "nxp,s32g3-usbmisc",
+		.data = &s32g3_usbmisc_ops,
+	},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, usbmisc_imx_dt_ids);
Signature · 1 line
2.47.2
maintainer
#11 lore raw

Re: [PATCH 4/4] usb: chipidea: s32g: Add usb support for s32g3

Quoted 16 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for the s32g3 USB device.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  1 +
 drivers/usb/chipidea/usbmisc_imx.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +0 -0
index ce207f8566d5..d062399ce15e 100644

drivers/usb/chipidea/ci_hdrc_imx.c static const struct of_device_id ci_hdrc_imx_dt_ids[] = { · line 98

Quoted 4 lines
drivers/usb/chipidea/ci_hdrc_imx.c +1 -0
@@ -95,6 +95,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
 	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
+	{ .compatible = "nxp,s32g3-usb", .data = &s32g_usb_data},

If it is same, suggest compatible string fallback to nxp,s32g2-usb

compatible = "nxp,s32g3-usb", "nxp,s32g2-usb".

Frank

Quoted 46 lines
drivers/usb/chipidea/ci_hdrc_imx.c +0 -0
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids);
drivers/usb/chipidea/usbmisc_imx.c +15 -1
index 43098a150e83..34fd26faa303 100644
@@ -677,6 +677,11 @@ static int usbmisc_s32g2_init(struct imx_usbmisc_data *data)
 	return usbmisc_s32g_init(data, S32G_UCMALLBE);
 }
 
+static int usbmisc_s32g3_init(struct imx_usbmisc_data *data)
+{
+	return usbmisc_s32g_init(data, 0);
+}
+
 static int usbmisc_imx7d_set_wakeup
 	(struct imx_usbmisc_data *data, bool enabled)
 {
@@ -1200,6 +1205,12 @@ static const struct usbmisc_ops s32g2_usbmisc_ops = {
 	.flags = REINIT_DURING_RESUME,
 };
 
+static const struct usbmisc_ops s32g3_usbmisc_ops = {
+	.init = usbmisc_s32g3_init,
+	.set_wakeup = usbmisc_s32g_set_wakeup,
+	.flags = REINIT_DURING_RESUME,
+};
+
 static inline bool is_imx53_usbmisc(struct imx_usbmisc_data *data)
 {
 	struct imx_usbmisc *usbmisc = dev_get_drvdata(data->dev);
@@ -1432,6 +1443,10 @@ static const struct of_device_id usbmisc_imx_dt_ids[] = {
 		.compatible = "nxp,s32g2-usbmisc",
 		.data = &s32g2_usbmisc_ops,
 	},
+	{
+		.compatible = "nxp,s32g3-usbmisc",
+		.data = &s32g3_usbmisc_ops,
+	},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, usbmisc_imx_dt_ids);
--

2.47.2

#12 lore raw

Re: [PATCH 4/4] usb: chipidea: s32g: Add usb support for s32g3

Quoted 24 lines · Frank Li
Quoted 16 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for the s32g3 USB device.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  1 +
 drivers/usb/chipidea/usbmisc_imx.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +0 -0
index ce207f8566d5..d062399ce15e 100644

drivers/usb/chipidea/ci_hdrc_imx.c static const struct of_device_id ci_hdrc_imx_dt_ids[] = { · line 98

Quoted 4 lines
drivers/usb/chipidea/ci_hdrc_imx.c +1 -0
@@ -95,6 +95,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
 	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
+	{ .compatible = "nxp,s32g3-usb", .data = &s32g_usb_data},

If it is same, suggest compatible string fallback to nxp,s32g2-usb

Quoted 2 lines

compatible = "nxp,s32g3-usb", "nxp,s32g2-usb".

These are the same, yeah. I'm not sure I understand. Did you mean just add the "nxp,s32g2-usb" string to the driver, and put both the g2 and g3 in the devicetree file?

regards,
dan carpenter

maintainer
#13 lore raw

Re: [PATCH 4/4] usb: chipidea: s32g: Add usb support for s32g3

Quoted 25 lines · Dan Carpenter
Quoted 24 lines · Frank Li
Quoted 16 lines · Dan Carpenter

From: Ghennadi Procopciuc <[email protected]>

Enable USB driver for the s32g3 USB device.

---
 drivers/usb/chipidea/ci_hdrc_imx.c |  1 +
 drivers/usb/chipidea/usbmisc_imx.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)
drivers/usb/chipidea/ci_hdrc_imx.c +0 -0
index ce207f8566d5..d062399ce15e 100644

drivers/usb/chipidea/ci_hdrc_imx.c static const struct of_device_id ci_hdrc_imx_dt_ids[] = { · line 98

Quoted 4 lines
drivers/usb/chipidea/ci_hdrc_imx.c +1 -0
@@ -95,6 +95,7 @@ static const struct of_device_id ci_hdrc_imx_dt_ids[] = {
 	{ .compatible = "fsl,imx7ulp-usb", .data = &imx7ulp_usb_data},
 	{ .compatible = "fsl,imx8ulp-usb", .data = &imx8ulp_usb_data},
 	{ .compatible = "nxp,s32g2-usb", .data = &s32g_usb_data},
+	{ .compatible = "nxp,s32g3-usb", .data = &s32g_usb_data},

If it is same, suggest compatible string fallback to nxp,s32g2-usb

Quoted 6 lines
Quoted 2 lines

compatible = "nxp,s32g3-usb", "nxp,s32g2-usb".

These are the same, yeah. I'm not sure I understand. Did you mean just add the "nxp,s32g2-usb" string to the driver, and put both the g2 and g3 in the devicetree file?

Yes,

Frank

Quoted 4 lines

regards,
dan carpenter