* [PATCH 0/3] usb: dwc3: add layerscape platform driver use flatten dwc3 core
@ 2025-06-02 22:01 Frank Li
2025-06-02 22:01 ` [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape Frank Li
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Frank Li @ 2025-06-02 22:01 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thinh Nguyen, Shawn Guo
Cc: linux-usb, devicetree, linux-kernel, linux-arm-kernel,
bjorn.andersson, Frank Li
Add layerscape platform driver use flatten dwc3 core to enable dma-coherence.
It needs set gsburstcfg0 to 0x2222.
There are some several try before:
[1] https://lore.kernel.org/imx/20240710-ls-dwc-v1-0-62f8cbed31d7@nxp.com/
[2] https://lore.kernel.org/imx/20240123170206.3702413-1-Frank.Li@nxp.com/
[2]: add new property, which was reject because there are no varience in
the soc. Fortunately the below commit resolve this problem by use software
managed property.
d504bfa6cfd1a usb: dwc3: enable CCI support for AMD-xilinx DWC3 controller
[1] was reject because there are not actually dwc wrap at layerscape
platform. Fortunately Bjorn Andersson's below patch to make it possible
by use correct dts dwc3 node layer out.
613a2e655d4dc usb: dwc3: core: Expose core driver as library
This resolve problem [1] and [2] by use flatten dwc3 core library.
1. add soc specific compatible string at dt-binding.
2. create platform driver for layerscape chips and pass down gsbuscfg0 if
dma-coherence enabled.
3. update layerscape dts files.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Frank Li (3):
dt-bindings: usb: add missed compatible string for arm64 layerscape
usb: dwc3: add layerscape dwc3 support
arm64: dts: layerscape: add dma-coherent for usb node
.../devicetree/bindings/usb/fsl,ls1028a.yaml | 33 ++++----
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 3 +-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 8 +-
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 9 ++-
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 9 ++-
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 8 +-
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 8 +-
drivers/usb/dwc3/Kconfig | 10 +++
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/dwc3-layerscape.c | 88 ++++++++++++++++++++++
10 files changed, 149 insertions(+), 28 deletions(-)
---
base-commit: 66fda7d5293cdf86be0ef5bde9bf37205622dad2
change-id: 20250602-ls_dma_coherence-c3c2b6f79db2
Best regards,
---
Frank Li <Frank.Li@nxp.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape
2025-06-02 22:01 [PATCH 0/3] usb: dwc3: add layerscape platform driver use flatten dwc3 core Frank Li
@ 2025-06-02 22:01 ` Frank Li
2025-06-25 18:38 ` Rob Herring (Arm)
2025-06-02 22:01 ` [PATCH 2/3] usb: dwc3: add layerscape dwc3 support Frank Li
2025-06-02 22:01 ` [PATCH 3/3] arm64: dts: layerscape: add dma-coherent for usb node Frank Li
2 siblings, 1 reply; 8+ messages in thread
From: Frank Li @ 2025-06-02 22:01 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thinh Nguyen, Shawn Guo
Cc: linux-usb, devicetree, linux-kernel, linux-arm-kernel,
bjorn.andersson, Frank Li
Add missed compatible string for arm64 layerscape platform. Allow these
fallback to fsl,ls1028a-dwc3.
Remove fallback snps,dwc3 because layerscape dwc3 is not full compatible
with common snps,dwc3 device, a special value gsburstcfg0 need be set when
dma coherence enabled.
Allow iommus property.
Change ref to snps,dwc3-common.yaml to use dwc3 flatten library.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
.../devicetree/bindings/usb/fsl,ls1028a.yaml | 33 ++++++++++++----------
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/fsl,ls1028a.yaml b/Documentation/devicetree/bindings/usb/fsl,ls1028a.yaml
index a44bdf391887f..4784f057264ac 100644
--- a/Documentation/devicetree/bindings/usb/fsl,ls1028a.yaml
+++ b/Documentation/devicetree/bindings/usb/fsl,ls1028a.yaml
@@ -9,21 +9,19 @@ title: Freescale layerscape SuperSpeed DWC3 USB SoC controller
maintainers:
- Frank Li <Frank.Li@nxp.com>
-select:
- properties:
- compatible:
- contains:
- enum:
- - fsl,ls1028a-dwc3
- required:
- - compatible
-
properties:
compatible:
- items:
- - enum:
- - fsl,ls1028a-dwc3
- - const: snps,dwc3
+ oneOf:
+ - items:
+ - enum:
+ - fsl,ls1012a-dwc3
+ - fsl,ls1043a-dwc3
+ - fsl,ls1046a-dwc3
+ - fsl,ls1088a-dwc3
+ - fsl,ls208xa-dwc3
+ - fsl,lx2160a-dwc3
+ - const: fsl,ls1028a-dwc3
+ - const: fsl,ls1028a-dwc3
reg:
maxItems: 1
@@ -31,6 +29,11 @@ properties:
interrupts:
maxItems: 1
+ iommus:
+ maxItems: 1
+
+ dma-coherent: true
+
unevaluatedProperties: false
required:
@@ -39,14 +42,14 @@ required:
- interrupts
allOf:
- - $ref: snps,dwc3.yaml#
+ - $ref: snps,dwc3-common.yaml#
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
usb@fe800000 {
- compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
+ compatible = "fsl,ls1028a-dwc3";
reg = <0xfe800000 0x100000>;
interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
};
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] usb: dwc3: add layerscape dwc3 support
2025-06-02 22:01 [PATCH 0/3] usb: dwc3: add layerscape platform driver use flatten dwc3 core Frank Li
2025-06-02 22:01 ` [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape Frank Li
@ 2025-06-02 22:01 ` Frank Li
2025-06-03 1:23 ` Thinh Nguyen
2025-06-02 22:01 ` [PATCH 3/3] arm64: dts: layerscape: add dma-coherent for usb node Frank Li
2 siblings, 1 reply; 8+ messages in thread
From: Frank Li @ 2025-06-02 22:01 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thinh Nguyen, Shawn Guo
Cc: linux-usb, devicetree, linux-kernel, linux-arm-kernel,
bjorn.andersson, Frank Li
Add layerscape dwc3 support by using flatten dwc3 core library. Layerscape
dwc3 need set software managed property snps,gsbuscfg0-reqinfo as 0x2222
when dma-coherence set.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
drivers/usb/dwc3/Kconfig | 10 +++++
drivers/usb/dwc3/Makefile | 1 +
drivers/usb/dwc3/dwc3-layerscape.c | 88 ++++++++++++++++++++++++++++++++++++++
3 files changed, 99 insertions(+)
diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index 310d182e10b50..13a86cf03b94b 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -150,6 +150,16 @@ config USB_DWC3_IMX8MP
functionality.
Say 'Y' or 'M' if you have one such device.
+config USB_DWC3_LAYERSCAPE
+ tristate "NXP Layerscape Platform"
+ depends on OF && COMMON_CLK
+ depends on ARCH_LAYERSCAPE || COMPILE_TEST
+ default USB_DWC3
+ help
+ NXP LAYERSCAPE SoC use DesignWare Core IP for USB2/3
+ functionality.
+ Say 'Y' or 'M' if you have one such device.
+
config USB_DWC3_XILINX
tristate "Xilinx Platforms"
depends on (ARCH_ZYNQMP || COMPILE_TEST) && OF
diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
index 830e6c9e5fe07..cd635b77902fb 100644
--- a/drivers/usb/dwc3/Makefile
+++ b/drivers/usb/dwc3/Makefile
@@ -54,6 +54,7 @@ obj-$(CONFIG_USB_DWC3_ST) += dwc3-st.o
obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom.o
obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom-legacy.o
obj-$(CONFIG_USB_DWC3_IMX8MP) += dwc3-imx8mp.o
+obj-$(CONFIG_USB_DWC3_LAYERSCAPE) += dwc3-layerscape.o
obj-$(CONFIG_USB_DWC3_XILINX) += dwc3-xilinx.o
obj-$(CONFIG_USB_DWC3_OCTEON) += dwc3-octeon.o
obj-$(CONFIG_USB_DWC3_RTK) += dwc3-rtk.o
diff --git a/drivers/usb/dwc3/dwc3-layerscape.c b/drivers/usb/dwc3/dwc3-layerscape.c
new file mode 100644
index 0000000000000..d093f178e1e35
--- /dev/null
+++ b/drivers/usb/dwc3/dwc3-layerscape.c
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2020 NXP
+ */
+
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/usb/of.h>
+
+#include "core.h"
+#include "glue.h"
+
+struct dwc3_ls {
+ struct device *dev;
+ struct dwc3 dwc;
+};
+
+static int dwc3_ls_probe(struct platform_device *pdev)
+{
+ struct device_node *np = pdev->dev.of_node;
+ struct dwc3_probe_data probe_data = {};
+ struct property_entry props[2] = {};
+ struct device *dev = &pdev->dev;
+ struct resource *res;
+ struct dwc3_ls *ls;
+ int prop_idx = 0;
+ int ret = 0;
+
+ ls = devm_kzalloc(&pdev->dev, sizeof(*ls), GFP_KERNEL);
+ if (!ls)
+ return -ENOMEM;
+
+ ls->dev = &pdev->dev;
+
+ ls->dwc.dev = dev;
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ dev_err_probe(&pdev->dev, -ENODEV, "missing memory resource\n");
+
+ if (of_dma_is_coherent(np))
+ props[prop_idx++] = PROPERTY_ENTRY_U16("snps,gsbuscfg0-reqinfo", 0x2222);
+
+ if (prop_idx)
+ ret = device_create_managed_software_node(dev, props, NULL);
+
+ if (ret)
+ return dev_err_probe(dev, ret, "fail create software managed property node\n");
+
+ probe_data.dwc = &ls->dwc;
+ probe_data.res = res;
+ ret = dwc3_core_probe(&probe_data);
+ if (ret)
+ return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
+
+ return 0;
+}
+
+static void dwc3_ls_remove(struct platform_device *pdev)
+{
+ struct dwc3 *dwc = platform_get_drvdata(pdev);
+
+ dwc3_core_remove(dwc);
+}
+
+static const struct of_device_id of_dwc3_ls_match[] = {
+ {
+ .compatible = "fsl,ls1028a-dwc3"
+ },
+ {},
+};
+MODULE_DEVICE_TABLE(of, of_dwc3_ls_match);
+
+static struct platform_driver dwc3_ls_driver = {
+ .probe = dwc3_ls_probe,
+ .remove = dwc3_ls_remove,
+ .driver = {
+ .name = "ls-dwc3",
+ .of_match_table = of_dwc3_ls_match,
+ },
+};
+
+module_platform_driver(dwc3_ls_driver);
+
+MODULE_AUTHOR("Frank Li <frank.li@nxp.com>");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Freescale Layerscape USB3 Controller Driver");
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] arm64: dts: layerscape: add dma-coherent for usb node
2025-06-02 22:01 [PATCH 0/3] usb: dwc3: add layerscape platform driver use flatten dwc3 core Frank Li
2025-06-02 22:01 ` [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape Frank Li
2025-06-02 22:01 ` [PATCH 2/3] usb: dwc3: add layerscape dwc3 support Frank Li
@ 2025-06-02 22:01 ` Frank Li
2 siblings, 0 replies; 8+ messages in thread
From: Frank Li @ 2025-06-02 22:01 UTC (permalink / raw)
To: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thinh Nguyen, Shawn Guo
Cc: linux-usb, devicetree, linux-kernel, linux-arm-kernel,
bjorn.andersson, Frank Li
Add SOC special compatible string, remove fallback snps,dwc3 to let flatten
dwc3-layerscape driver to be probed and enable dma-coherence for usb node
since commit add layerscape dwc3 support, which set correct gsbustcfg0
value.
Add iommus property to run at old uboot, which use fixup add iommus by
check compatible string snsp,dwc3 compatible string.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi | 3 ++-
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 8 ++++++--
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 9 ++++++---
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 9 ++++++---
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 8 ++++++--
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 8 ++++++--
6 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
index dd479889658d4..bb6c40d28c5de 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
@@ -492,10 +492,11 @@ QORIQ_CLK_PLL_DIV(4)>,
};
usb0: usb@2f00000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1012a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x2f00000 0x0 0x10000>;
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
index 7d172d7e5737c..e7f9c9319319a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
@@ -613,9 +613,11 @@ gpio3: gpio@2320000 {
};
usb0: usb@3100000 {
- compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
+ compatible = "fsl,ls1028a-dwc3";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ iommus = <&smmu 1>;
+ dma-coherent;
snps,dis_rxdet_inp3_quirk;
snps,quirk-frame-length-adjustment = <0x20>;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
@@ -623,9 +625,11 @@ usb0: usb@3100000 {
};
usb1: usb@3110000 {
- compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
+ compatible = "fsl,ls1028a-dwc3";
reg = <0x0 0x3110000 0x0 0x10000>;
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+ iommus = <&smmu 2>;
+ dma-coherent;
snps,dis_rxdet_inp3_quirk;
snps,quirk-frame-length-adjustment = <0x20>;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
index c0e3e8fa1e794..755f65a727fba 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -805,10 +805,11 @@ aux_bus: bus {
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
usb0: usb@2f00000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1043a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x2f00000 0x0 0x10000>;
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
usb3-lpm-capable;
@@ -817,10 +818,11 @@ usb0: usb@2f00000 {
};
usb1: usb@3000000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1043a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3000000 0x0 0x10000>;
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
usb3-lpm-capable;
@@ -829,10 +831,11 @@ usb1: usb@3000000 {
};
usb2: usb@3100000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1043a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
usb3-lpm-capable;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index 0baf256b44003..33fa2918d1a46 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -720,10 +720,11 @@ aux_bus: bus {
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
usb0: usb@2f00000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1046a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x2f00000 0x0 0x10000>;
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
@@ -731,10 +732,11 @@ usb0: usb@2f00000 {
};
usb1: usb@3000000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1046a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3000000 0x0 0x10000>;
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
@@ -742,10 +744,11 @@ usb1: usb@3000000 {
};
usb2: usb@3100000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1046a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
index 9d5726378aa01..b2f6cd237be04 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
@@ -489,10 +489,12 @@ esdhc: mmc@2140000 {
};
usb0: usb@3100000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1088a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ iommus = <&smmu 1>;
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
@@ -500,10 +502,12 @@ usb0: usb@3100000 {
};
usb1: usb@3110000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,ls1088a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3110000 0x0 0x10000>;
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
+ iommus = <&smmu 2>;
+ dma-coherent;
snps,quirk-frame-length-adjustment = <0x20>;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
index c9541403bcd82..d899c0355e51d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
@@ -1094,24 +1094,28 @@ ftm_alarm0: rtc@2800000 {
};
usb0: usb@3100000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,lx2160a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3100000 0x0 0x10000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>;
usb3-lpm-capable;
+ iommus = <&smmu 1>;
+ dma-coherent;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
status = "disabled";
};
usb1: usb@3110000 {
- compatible = "snps,dwc3";
+ compatible = "fsl,lx2160a-dwc3", "fsl,ls1028a-dwc3";
reg = <0x0 0x3110000 0x0 0x10000>;
interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
dr_mode = "host";
snps,quirk-frame-length-adjustment = <0x20>;
usb3-lpm-capable;
+ iommus = <&smmu 2>;
+ dma-coherent;
snps,dis_rxdet_inp3_quirk;
snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
status = "disabled";
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] usb: dwc3: add layerscape dwc3 support
2025-06-02 22:01 ` [PATCH 2/3] usb: dwc3: add layerscape dwc3 support Frank Li
@ 2025-06-03 1:23 ` Thinh Nguyen
2025-06-03 14:59 ` Frank Li
0 siblings, 1 reply; 8+ messages in thread
From: Thinh Nguyen @ 2025-06-03 1:23 UTC (permalink / raw)
To: Frank Li
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Thinh Nguyen, Shawn Guo, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
bjorn.andersson@oss.qualcomm.com
Hi,
On Mon, Jun 02, 2025, Frank Li wrote:
> Add layerscape dwc3 support by using flatten dwc3 core library. Layerscape
> dwc3 need set software managed property snps,gsbuscfg0-reqinfo as 0x2222
> when dma-coherence set.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> drivers/usb/dwc3/Kconfig | 10 +++++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/dwc3-layerscape.c | 88 ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 99 insertions(+)
>
> diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> index 310d182e10b50..13a86cf03b94b 100644
> --- a/drivers/usb/dwc3/Kconfig
> +++ b/drivers/usb/dwc3/Kconfig
> @@ -150,6 +150,16 @@ config USB_DWC3_IMX8MP
> functionality.
> Say 'Y' or 'M' if you have one such device.
>
> +config USB_DWC3_LAYERSCAPE
> + tristate "NXP Layerscape Platform"
> + depends on OF && COMMON_CLK
> + depends on ARCH_LAYERSCAPE || COMPILE_TEST
> + default USB_DWC3
> + help
> + NXP LAYERSCAPE SoC use DesignWare Core IP for USB2/3
> + functionality.
> + Say 'Y' or 'M' if you have one such device.
> +
> config USB_DWC3_XILINX
> tristate "Xilinx Platforms"
> depends on (ARCH_ZYNQMP || COMPILE_TEST) && OF
> diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> index 830e6c9e5fe07..cd635b77902fb 100644
> --- a/drivers/usb/dwc3/Makefile
> +++ b/drivers/usb/dwc3/Makefile
> @@ -54,6 +54,7 @@ obj-$(CONFIG_USB_DWC3_ST) += dwc3-st.o
> obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom.o
> obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom-legacy.o
> obj-$(CONFIG_USB_DWC3_IMX8MP) += dwc3-imx8mp.o
> +obj-$(CONFIG_USB_DWC3_LAYERSCAPE) += dwc3-layerscape.o
> obj-$(CONFIG_USB_DWC3_XILINX) += dwc3-xilinx.o
> obj-$(CONFIG_USB_DWC3_OCTEON) += dwc3-octeon.o
> obj-$(CONFIG_USB_DWC3_RTK) += dwc3-rtk.o
> diff --git a/drivers/usb/dwc3/dwc3-layerscape.c b/drivers/usb/dwc3/dwc3-layerscape.c
> new file mode 100644
> index 0000000000000..d093f178e1e35
> --- /dev/null
> +++ b/drivers/usb/dwc3/dwc3-layerscape.c
> @@ -0,0 +1,88 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright (c) 2020 NXP
> + */
> +
> +#include <linux/of.h>
> +#include <linux/of_address.h>
> +#include <linux/platform_device.h>
> +#include <linux/usb/of.h>
> +
> +#include "core.h"
> +#include "glue.h"
> +
> +struct dwc3_ls {
> + struct device *dev;
> + struct dwc3 dwc;
> +};
> +
> +static int dwc3_ls_probe(struct platform_device *pdev)
> +{
> + struct device_node *np = pdev->dev.of_node;
> + struct dwc3_probe_data probe_data = {};
> + struct property_entry props[2] = {};
> + struct device *dev = &pdev->dev;
> + struct resource *res;
> + struct dwc3_ls *ls;
> + int prop_idx = 0;
> + int ret = 0;
> +
> + ls = devm_kzalloc(&pdev->dev, sizeof(*ls), GFP_KERNEL);
> + if (!ls)
> + return -ENOMEM;
> +
> + ls->dev = &pdev->dev;
> +
> + ls->dwc.dev = dev;
> +
> + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> + if (!res)
> + dev_err_probe(&pdev->dev, -ENODEV, "missing memory resource\n");
> +
> + if (of_dma_is_coherent(np))
> + props[prop_idx++] = PROPERTY_ENTRY_U16("snps,gsbuscfg0-reqinfo", 0x2222);
> +
> + if (prop_idx)
> + ret = device_create_managed_software_node(dev, props, NULL);
> +
> + if (ret)
> + return dev_err_probe(dev, ret, "fail create software managed property node\n");
> +
> + probe_data.dwc = &ls->dwc;
> + probe_data.res = res;
> + ret = dwc3_core_probe(&probe_data);
> + if (ret)
> + return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
> +
> + return 0;
> +}
> +
> +static void dwc3_ls_remove(struct platform_device *pdev)
> +{
> + struct dwc3 *dwc = platform_get_drvdata(pdev);
> +
> + dwc3_core_remove(dwc);
> +}
> +
> +static const struct of_device_id of_dwc3_ls_match[] = {
> + {
> + .compatible = "fsl,ls1028a-dwc3"
> + },
> + {},
> +};
> +MODULE_DEVICE_TABLE(of, of_dwc3_ls_match);
> +
> +static struct platform_driver dwc3_ls_driver = {
> + .probe = dwc3_ls_probe,
> + .remove = dwc3_ls_remove,
> + .driver = {
> + .name = "ls-dwc3",
> + .of_match_table = of_dwc3_ls_match,
> + },
> +};
> +
> +module_platform_driver(dwc3_ls_driver);
> +
> +MODULE_AUTHOR("Frank Li <frank.li@nxp.com>");
> +MODULE_LICENSE("GPL");
> +MODULE_DESCRIPTION("Freescale Layerscape USB3 Controller Driver");
>
> --
> 2.34.1
>
Is this something that can be enhanced in dwc3-generic-plat glue from Ze
Huang:
https://lore.kernel.org/linux-usb/20250526-b4-k1-dwc3-v3-v4-3-63e4e525e5cb@whut.edu.cn/T/#u
Thanks,
Thinh
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] usb: dwc3: add layerscape dwc3 support
2025-06-03 1:23 ` Thinh Nguyen
@ 2025-06-03 14:59 ` Frank Li
2025-06-05 0:20 ` Thinh Nguyen
0 siblings, 1 reply; 8+ messages in thread
From: Frank Li @ 2025-06-03 14:59 UTC (permalink / raw)
To: Thinh Nguyen
Cc: Greg Kroah-Hartman, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
bjorn.andersson@oss.qualcomm.com
On Tue, Jun 03, 2025 at 01:23:03AM +0000, Thinh Nguyen wrote:
> Hi,
>
> On Mon, Jun 02, 2025, Frank Li wrote:
> > Add layerscape dwc3 support by using flatten dwc3 core library. Layerscape
> > dwc3 need set software managed property snps,gsbuscfg0-reqinfo as 0x2222
> > when dma-coherence set.
> >
> > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > ---
> > drivers/usb/dwc3/Kconfig | 10 +++++
> > drivers/usb/dwc3/Makefile | 1 +
> > drivers/usb/dwc3/dwc3-layerscape.c | 88 ++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 99 insertions(+)
> >
> > diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> > index 310d182e10b50..13a86cf03b94b 100644
> > --- a/drivers/usb/dwc3/Kconfig
> > +++ b/drivers/usb/dwc3/Kconfig
> > @@ -150,6 +150,16 @@ config USB_DWC3_IMX8MP
> > functionality.
> > Say 'Y' or 'M' if you have one such device.
> >
> > +config USB_DWC3_LAYERSCAPE
> > + tristate "NXP Layerscape Platform"
> > + depends on OF && COMMON_CLK
> > + depends on ARCH_LAYERSCAPE || COMPILE_TEST
> > + default USB_DWC3
> > + help
> > + NXP LAYERSCAPE SoC use DesignWare Core IP for USB2/3
> > + functionality.
> > + Say 'Y' or 'M' if you have one such device.
> > +
> > config USB_DWC3_XILINX
> > tristate "Xilinx Platforms"
> > depends on (ARCH_ZYNQMP || COMPILE_TEST) && OF
> > diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> > index 830e6c9e5fe07..cd635b77902fb 100644
> > --- a/drivers/usb/dwc3/Makefile
> > +++ b/drivers/usb/dwc3/Makefile
> > @@ -54,6 +54,7 @@ obj-$(CONFIG_USB_DWC3_ST) += dwc3-st.o
> > obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom.o
> > obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom-legacy.o
> > obj-$(CONFIG_USB_DWC3_IMX8MP) += dwc3-imx8mp.o
> > +obj-$(CONFIG_USB_DWC3_LAYERSCAPE) += dwc3-layerscape.o
> > obj-$(CONFIG_USB_DWC3_XILINX) += dwc3-xilinx.o
> > obj-$(CONFIG_USB_DWC3_OCTEON) += dwc3-octeon.o
> > obj-$(CONFIG_USB_DWC3_RTK) += dwc3-rtk.o
> > diff --git a/drivers/usb/dwc3/dwc3-layerscape.c b/drivers/usb/dwc3/dwc3-layerscape.c
> > new file mode 100644
> > index 0000000000000..d093f178e1e35
> > --- /dev/null
> > +++ b/drivers/usb/dwc3/dwc3-layerscape.c
> > @@ -0,0 +1,88 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (c) 2020 NXP
> > + */
> > +
> > +#include <linux/of.h>
> > +#include <linux/of_address.h>
> > +#include <linux/platform_device.h>
> > +#include <linux/usb/of.h>
> > +
> > +#include "core.h"
> > +#include "glue.h"
> > +
> > +struct dwc3_ls {
> > + struct device *dev;
> > + struct dwc3 dwc;
> > +};
> > +
> > +static int dwc3_ls_probe(struct platform_device *pdev)
> > +{
> > + struct device_node *np = pdev->dev.of_node;
> > + struct dwc3_probe_data probe_data = {};
> > + struct property_entry props[2] = {};
> > + struct device *dev = &pdev->dev;
> > + struct resource *res;
> > + struct dwc3_ls *ls;
> > + int prop_idx = 0;
> > + int ret = 0;
> > +
> > + ls = devm_kzalloc(&pdev->dev, sizeof(*ls), GFP_KERNEL);
> > + if (!ls)
> > + return -ENOMEM;
> > +
> > + ls->dev = &pdev->dev;
> > +
> > + ls->dwc.dev = dev;
> > +
> > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> > + if (!res)
> > + dev_err_probe(&pdev->dev, -ENODEV, "missing memory resource\n");
> > +
> > + if (of_dma_is_coherent(np))
> > + props[prop_idx++] = PROPERTY_ENTRY_U16("snps,gsbuscfg0-reqinfo", 0x2222);
> > +
> > + if (prop_idx)
> > + ret = device_create_managed_software_node(dev, props, NULL);
> > +
> > + if (ret)
> > + return dev_err_probe(dev, ret, "fail create software managed property node\n");
> > +
> > + probe_data.dwc = &ls->dwc;
> > + probe_data.res = res;
> > + ret = dwc3_core_probe(&probe_data);
> > + if (ret)
> > + return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
> > +
> > + return 0;
> > +}
> > +
> > +static void dwc3_ls_remove(struct platform_device *pdev)
> > +{
> > + struct dwc3 *dwc = platform_get_drvdata(pdev);
> > +
> > + dwc3_core_remove(dwc);
> > +}
> > +
> > +static const struct of_device_id of_dwc3_ls_match[] = {
> > + {
> > + .compatible = "fsl,ls1028a-dwc3"
> > + },
> > + {},
> > +};
> > +MODULE_DEVICE_TABLE(of, of_dwc3_ls_match);
> > +
> > +static struct platform_driver dwc3_ls_driver = {
> > + .probe = dwc3_ls_probe,
> > + .remove = dwc3_ls_remove,
> > + .driver = {
> > + .name = "ls-dwc3",
> > + .of_match_table = of_dwc3_ls_match,
> > + },
> > +};
> > +
> > +module_platform_driver(dwc3_ls_driver);
> > +
> > +MODULE_AUTHOR("Frank Li <frank.li@nxp.com>");
> > +MODULE_LICENSE("GPL");
> > +MODULE_DESCRIPTION("Freescale Layerscape USB3 Controller Driver");
> >
> > --
> > 2.34.1
> >
>
> Is this something that can be enhanced in dwc3-generic-plat glue from Ze
> Huang:
Yes, I can base on Zehuang's work with little modify. Please let me know
when his patch merged.
Frank
>
> https://lore.kernel.org/linux-usb/20250526-b4-k1-dwc3-v3-v4-3-63e4e525e5cb@whut.edu.cn/T/#u
>
> Thanks,
> Thinh
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] usb: dwc3: add layerscape dwc3 support
2025-06-03 14:59 ` Frank Li
@ 2025-06-05 0:20 ` Thinh Nguyen
0 siblings, 0 replies; 8+ messages in thread
From: Thinh Nguyen @ 2025-06-05 0:20 UTC (permalink / raw)
To: Frank Li
Cc: Thinh Nguyen, Greg Kroah-Hartman, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
bjorn.andersson@oss.qualcomm.com
On Tue, Jun 03, 2025, Frank Li wrote:
> On Tue, Jun 03, 2025 at 01:23:03AM +0000, Thinh Nguyen wrote:
> > Hi,
> >
> > On Mon, Jun 02, 2025, Frank Li wrote:
> > > Add layerscape dwc3 support by using flatten dwc3 core library. Layerscape
> > > dwc3 need set software managed property snps,gsbuscfg0-reqinfo as 0x2222
> > > when dma-coherence set.
> > >
> > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > ---
> > > drivers/usb/dwc3/Kconfig | 10 +++++
> > > drivers/usb/dwc3/Makefile | 1 +
> > > drivers/usb/dwc3/dwc3-layerscape.c | 88 ++++++++++++++++++++++++++++++++++++++
> > > 3 files changed, 99 insertions(+)
> > >
> > > diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
> > > index 310d182e10b50..13a86cf03b94b 100644
> > > --- a/drivers/usb/dwc3/Kconfig
> > > +++ b/drivers/usb/dwc3/Kconfig
> > > @@ -150,6 +150,16 @@ config USB_DWC3_IMX8MP
> > > functionality.
> > > Say 'Y' or 'M' if you have one such device.
> > >
> > > +config USB_DWC3_LAYERSCAPE
> > > + tristate "NXP Layerscape Platform"
> > > + depends on OF && COMMON_CLK
> > > + depends on ARCH_LAYERSCAPE || COMPILE_TEST
> > > + default USB_DWC3
> > > + help
> > > + NXP LAYERSCAPE SoC use DesignWare Core IP for USB2/3
> > > + functionality.
> > > + Say 'Y' or 'M' if you have one such device.
> > > +
> > > config USB_DWC3_XILINX
> > > tristate "Xilinx Platforms"
> > > depends on (ARCH_ZYNQMP || COMPILE_TEST) && OF
> > > diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile
> > > index 830e6c9e5fe07..cd635b77902fb 100644
> > > --- a/drivers/usb/dwc3/Makefile
> > > +++ b/drivers/usb/dwc3/Makefile
> > > @@ -54,6 +54,7 @@ obj-$(CONFIG_USB_DWC3_ST) += dwc3-st.o
> > > obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom.o
> > > obj-$(CONFIG_USB_DWC3_QCOM) += dwc3-qcom-legacy.o
> > > obj-$(CONFIG_USB_DWC3_IMX8MP) += dwc3-imx8mp.o
> > > +obj-$(CONFIG_USB_DWC3_LAYERSCAPE) += dwc3-layerscape.o
> > > obj-$(CONFIG_USB_DWC3_XILINX) += dwc3-xilinx.o
> > > obj-$(CONFIG_USB_DWC3_OCTEON) += dwc3-octeon.o
> > > obj-$(CONFIG_USB_DWC3_RTK) += dwc3-rtk.o
> > > diff --git a/drivers/usb/dwc3/dwc3-layerscape.c b/drivers/usb/dwc3/dwc3-layerscape.c
> > > new file mode 100644
> > > index 0000000000000..d093f178e1e35
> > > --- /dev/null
> > > +++ b/drivers/usb/dwc3/dwc3-layerscape.c
> > > @@ -0,0 +1,88 @@
> > > +// SPDX-License-Identifier: GPL-2.0
> > > +/*
> > > + * Copyright (c) 2020 NXP
> > > + */
> > > +
> > > +#include <linux/of.h>
> > > +#include <linux/of_address.h>
> > > +#include <linux/platform_device.h>
> > > +#include <linux/usb/of.h>
> > > +
> > > +#include "core.h"
> > > +#include "glue.h"
> > > +
> > > +struct dwc3_ls {
> > > + struct device *dev;
> > > + struct dwc3 dwc;
> > > +};
> > > +
> > > +static int dwc3_ls_probe(struct platform_device *pdev)
> > > +{
> > > + struct device_node *np = pdev->dev.of_node;
> > > + struct dwc3_probe_data probe_data = {};
> > > + struct property_entry props[2] = {};
> > > + struct device *dev = &pdev->dev;
> > > + struct resource *res;
> > > + struct dwc3_ls *ls;
> > > + int prop_idx = 0;
> > > + int ret = 0;
> > > +
> > > + ls = devm_kzalloc(&pdev->dev, sizeof(*ls), GFP_KERNEL);
> > > + if (!ls)
> > > + return -ENOMEM;
> > > +
> > > + ls->dev = &pdev->dev;
> > > +
> > > + ls->dwc.dev = dev;
> > > +
> > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> > > + if (!res)
> > > + dev_err_probe(&pdev->dev, -ENODEV, "missing memory resource\n");
> > > +
> > > + if (of_dma_is_coherent(np))
> > > + props[prop_idx++] = PROPERTY_ENTRY_U16("snps,gsbuscfg0-reqinfo", 0x2222);
> > > +
> > > + if (prop_idx)
> > > + ret = device_create_managed_software_node(dev, props, NULL);
> > > +
> > > + if (ret)
> > > + return dev_err_probe(dev, ret, "fail create software managed property node\n");
> > > +
> > > + probe_data.dwc = &ls->dwc;
> > > + probe_data.res = res;
> > > + ret = dwc3_core_probe(&probe_data);
> > > + if (ret)
> > > + return dev_err_probe(dev, ret, "failed to register DWC3 Core\n");
> > > +
> > > + return 0;
> > > +}
> > > +
> > > +static void dwc3_ls_remove(struct platform_device *pdev)
> > > +{
> > > + struct dwc3 *dwc = platform_get_drvdata(pdev);
> > > +
> > > + dwc3_core_remove(dwc);
> > > +}
> > > +
> > > +static const struct of_device_id of_dwc3_ls_match[] = {
> > > + {
> > > + .compatible = "fsl,ls1028a-dwc3"
> > > + },
> > > + {},
> > > +};
> > > +MODULE_DEVICE_TABLE(of, of_dwc3_ls_match);
> > > +
> > > +static struct platform_driver dwc3_ls_driver = {
> > > + .probe = dwc3_ls_probe,
> > > + .remove = dwc3_ls_remove,
> > > + .driver = {
> > > + .name = "ls-dwc3",
> > > + .of_match_table = of_dwc3_ls_match,
> > > + },
> > > +};
> > > +
> > > +module_platform_driver(dwc3_ls_driver);
> > > +
> > > +MODULE_AUTHOR("Frank Li <frank.li@nxp.com>");
> > > +MODULE_LICENSE("GPL");
> > > +MODULE_DESCRIPTION("Freescale Layerscape USB3 Controller Driver");
> > >
> > > --
> > > 2.34.1
> > >
> >
> > Is this something that can be enhanced in dwc3-generic-plat glue from Ze
> > Huang:
>
> Yes, I can base on Zehuang's work with little modify. Please let me know
> when his patch merged.
>
Sure thing.
BR,
Thinh
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape
2025-06-02 22:01 ` [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape Frank Li
@ 2025-06-25 18:38 ` Rob Herring (Arm)
0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring (Arm) @ 2025-06-25 18:38 UTC (permalink / raw)
To: Frank Li
Cc: linux-kernel, Krzysztof Kozlowski, Conor Dooley, Thinh Nguyen,
linux-arm-kernel, linux-usb, Shawn Guo, devicetree,
Greg Kroah-Hartman, bjorn.andersson
On Mon, 02 Jun 2025 18:01:01 -0400, Frank Li wrote:
> Add missed compatible string for arm64 layerscape platform. Allow these
> fallback to fsl,ls1028a-dwc3.
>
> Remove fallback snps,dwc3 because layerscape dwc3 is not full compatible
> with common snps,dwc3 device, a special value gsburstcfg0 need be set when
> dma coherence enabled.
>
> Allow iommus property.
>
> Change ref to snps,dwc3-common.yaml to use dwc3 flatten library.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> .../devicetree/bindings/usb/fsl,ls1028a.yaml | 33 ++++++++++++----------
> 1 file changed, 18 insertions(+), 15 deletions(-)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-06-25 18:38 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-02 22:01 [PATCH 0/3] usb: dwc3: add layerscape platform driver use flatten dwc3 core Frank Li
2025-06-02 22:01 ` [PATCH 1/3] dt-bindings: usb: add missed compatible string for arm64 layerscape Frank Li
2025-06-25 18:38 ` Rob Herring (Arm)
2025-06-02 22:01 ` [PATCH 2/3] usb: dwc3: add layerscape dwc3 support Frank Li
2025-06-03 1:23 ` Thinh Nguyen
2025-06-03 14:59 ` Frank Li
2025-06-05 0:20 ` Thinh Nguyen
2025-06-02 22:01 ` [PATCH 3/3] arm64: dts: layerscape: add dma-coherent for usb node Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).