mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/3] Add USB DWC3 support for Samsung Exynos8855
       [not found] <CGME20260903071311epcas5p24c547d69b769818834ae2b7285cb541b@epcas5p2.samsung.com>
@ 2026-09-03  7:12 ` Selvarasu Ganesan
       [not found]   ` <CGME20260903071314epcas5p2bf6f08797b9b92aef2bbd5a6a2708867@epcas5p2.samsung.com>
                     ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-03  7:12 UTC (permalink / raw)
  To: krzk, peter.griffin, alim.akhtar, gregkh, robh, conor+dt,
	Thinh.Nguyen, selvarasu.g, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

The Samsung Exynos8855 SoC implements a Synopsys DesignWare USB3 DRD
controller. The DWC3 core on the Exynos8855 is instantiated with the
generic dwc3 platform driver using a flattened model, where the
controller is directly addressable without a separate glue layer.

This series adds the device tree binding and platform driver support
for this configuration. The binding follows qcom,snps-dwc3 pattern:
a single node referencing snps,dwc3-common.yaml for shared DWC3
properties, with per-SoC constraints enforced via if-then conditionals.

The MAINTAINERS entry is updated first so that the new binding falls
under the existing ARM/Samsung SoC maintainership.

Selvarasu Ganesan (3):
  MAINTAINERS: add Samsung USB DT binding to ARM/SAMSUNG entry
  dt-bindings: usb: Introduce samsung,snps-dwc3
  usb: dwc3: Add Exynos8855 to the generic platform driver

 .../bindings/usb/samsung,snps-dwc3.yaml       | 98 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 drivers/usb/dwc3/dwc3-generic-plat.c          |  1 +
 3 files changed, 100 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml

-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/3] MAINTAINERS: add Samsung USB DT binding to ARM/SAMSUNG entry
       [not found]   ` <CGME20260903071314epcas5p2bf6f08797b9b92aef2bbd5a6a2708867@epcas5p2.samsung.com>
@ 2026-09-03  7:12     ` Selvarasu Ganesan
  0 siblings, 0 replies; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-03  7:12 UTC (permalink / raw)
  To: krzk, peter.griffin, alim.akhtar, gregkh, robh, conor+dt,
	Thinh.Nguyen, selvarasu.g, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

Add the Samsung USB devicetree binding file path under the existing
ARM/Samsung SoC maintainership.

Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 6008f16ae2ca..c1a466d772a8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3561,6 +3561,7 @@ F:	Documentation/devicetree/bindings/arm/samsung/
 F:	Documentation/devicetree/bindings/hwinfo/samsung,*
 F:	Documentation/devicetree/bindings/power/pd-samsung.yaml
 F:	Documentation/devicetree/bindings/soc/samsung/
+F:	Documentation/devicetree/bindings/usb/samsung,*
 F:	arch/arm/boot/dts/samsung/
 F:	arch/arm/mach-exynos*/
 F:	arch/arm/mach-s3c/
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3
       [not found]   ` <CGME20260903071318epcas5p4b804edb84554847c576d1d034b814d7a@epcas5p4.samsung.com>
@ 2026-09-03  7:12     ` Selvarasu Ganesan
  2026-09-05  7:22       ` Krzysztof Kozlowski
  0 siblings, 1 reply; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-03  7:12 UTC (permalink / raw)
  To: krzk, peter.griffin, alim.akhtar, gregkh, robh, conor+dt,
	Thinh.Nguyen, selvarasu.g, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

The Samsung Exynos8855 USB glue is not separate from the Synopsys DWC3
core, using a flattened model where the DWC3 controller is directly
addressable rather than nested as a child node of a glue layer.

Describe the Exynos USB block as a single node, referencing the split
out Synopsys DWC3 core properties via snps,dwc3-common.yaml. The new
binding follows the same approach as qcom,snps-dwc3.

A generic fallback compatible "samsung,snps-dwc3" is introduced to
describe this binding, selected by the validator based on the presence
of the fallback string in the compatible list. Future Exynos SoCs
utilizing the same flattened model can be added by extending the
compatible enum with per SoC clock and property constraints.

Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
---

Krzysztof Kozlowski is added as a maintainer of this YAML binding, as
he is the ARM/Samsung SoC architecture maintainer (ARM/SAMSUNG S3C,
S5P AND EXYNOS ARM ARCHITECTURES) who already maintains Samsung Exynos
DT bindings (e.g. samsung,exynos-dwc3.yaml) and reviews all
Samsung related binding changes. This follows the same convention used
by existing Samsung Exynos DT binding schemas.
---
 .../bindings/usb/samsung,snps-dwc3.yaml       | 98 +++++++++++++++++++
 1 file changed, 98 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml

diff --git a/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
new file mode 100644
index 000000000000..480308c16f37
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
@@ -0,0 +1,98 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/samsung,snps-dwc3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung Exynos SoC DWC3 USB Controller
+
+maintainers:
+  - Krzysztof Kozlowski <krzk@kernel.org>
+  - Selvarasu Ganesan <selvarasu.g@samsung.com>
+
+description:
+  Describes the DWC3 USB controller block implemented on Samsung Exynos SoCs.
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: samsung,snps-dwc3
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - samsung,exynos8855-dwc3
+      - const: samsung,snps-dwc3
+
+  reg:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    description: |
+      Several clocks are used, depending on the variant. Typical ones are:
+       - ref: Reference clock for SOF/ITP generation.
+       - bus: Bus (APB) clock for register access.
+    minItems: 1
+    maxItems: 4
+
+  clock-names:
+    minItems: 1
+    maxItems: 4
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+allOf:
+  - $ref: snps,dwc3-common.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynos8855-dwc3
+    then:
+      properties:
+        clocks:
+          minItems: 2
+          maxItems: 2
+        clock-names:
+          items:
+            - const: ref
+            - const: bus
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    usb@13200000 {
+        compatible = "samsung,exynos8855-dwc3",
+                     "samsung,snps-dwc3";
+        reg = <0x13200000 0x10000>;
+        interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&usb_clk 0>,
+                 <&usb_clk 1>;
+        clock-names = "ref", "bus";
+        dr_mode = "peripheral";
+        phys = <&usbdrd_phy 0>;
+        phy-names = "usb2-phy";
+        snps,quirk-frame-length-adjustment = <0x20>;
+        snps,dis-u2-freeclk-exists-quirk;
+        snps,gfladj-refclk-lpm-sel-quirk;
+    };
+...
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver
       [not found]   ` <CGME20260903071322epcas5p2a40e3299b0954dd880c9b3651555760c@epcas5p2.samsung.com>
@ 2026-09-03  7:12     ` Selvarasu Ganesan
  2026-09-05  0:15       ` Thinh Nguyen
  2026-09-05  7:19       ` Krzysztof Kozlowski
  0 siblings, 2 replies; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-03  7:12 UTC (permalink / raw)
  To: krzk, peter.griffin, alim.akhtar, gregkh, robh, conor+dt,
	Thinh.Nguyen, selvarasu.g, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

Add the "samsung,snps-dwc3" compatible string to dwc3-generic-plat so
the Exynos8855 USB3 DWC3 controller can probe through the generic DWC3
platform glue.

The "samsung,snps-dwc3" string is used as a generic fallback to support
any Exynos SoC that utilizes a flattened model instantiation. This
fallback allows multiple Exynos SoCs to be supported by the generic
platform driver simply by adding the fallback compatible to their
respective device tree nodes.

Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
---
 drivers/usb/dwc3/dwc3-generic-plat.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/dwc3/dwc3-generic-plat.c b/drivers/usb/dwc3/dwc3-generic-plat.c
index ca69ac0eb07c..33a76c37d15d 100644
--- a/drivers/usb/dwc3/dwc3-generic-plat.c
+++ b/drivers/usb/dwc3/dwc3-generic-plat.c
@@ -237,6 +237,7 @@ static const struct of_device_id dwc3_generic_of_match[] = {
 	{ .compatible = "fsl,ls1028a-dwc3", &fsl_ls1028_dwc3},
 	{ .compatible = "eswin,eic7700-dwc3", &eic7700_dwc3},
 	{ .compatible = "starfive,jhb100-dwc3", },
+	{ .compatible = "samsung,snps-dwc3", },
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, dwc3_generic_of_match);
-- 
2.17.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver
  2026-09-03  7:12     ` [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver Selvarasu Ganesan
@ 2026-09-05  0:15       ` Thinh Nguyen
  2026-09-05  7:19       ` Krzysztof Kozlowski
  1 sibling, 0 replies; 10+ messages in thread
From: Thinh Nguyen @ 2026-09-05  0:15 UTC (permalink / raw)
  To: Selvarasu Ganesan
  Cc: krzk, peter.griffin, alim.akhtar, gregkh, robh, conor+dt,
	Thinh Nguyen, linux-arm-kernel, linux-samsung-soc, linux-usb,
	devicetree, linux-kernel, jh0801.jung, dh10.jung, akash.m5,
	hongpooh.kim, eomji.oh, shijie.cai, muhammed.ali, thiagu.r

On Thu, Sep 03, 2026, Selvarasu Ganesan wrote:
> Add the "samsung,snps-dwc3" compatible string to dwc3-generic-plat so
> the Exynos8855 USB3 DWC3 controller can probe through the generic DWC3
> platform glue.
> 
> The "samsung,snps-dwc3" string is used as a generic fallback to support
> any Exynos SoC that utilizes a flattened model instantiation. This
> fallback allows multiple Exynos SoCs to be supported by the generic
> platform driver simply by adding the fallback compatible to their
> respective device tree nodes.
> 
> Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
> ---
>  drivers/usb/dwc3/dwc3-generic-plat.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-generic-plat.c b/drivers/usb/dwc3/dwc3-generic-plat.c
> index ca69ac0eb07c..33a76c37d15d 100644
> --- a/drivers/usb/dwc3/dwc3-generic-plat.c
> +++ b/drivers/usb/dwc3/dwc3-generic-plat.c
> @@ -237,6 +237,7 @@ static const struct of_device_id dwc3_generic_of_match[] = {
>  	{ .compatible = "fsl,ls1028a-dwc3", &fsl_ls1028_dwc3},
>  	{ .compatible = "eswin,eic7700-dwc3", &eic7700_dwc3},
>  	{ .compatible = "starfive,jhb100-dwc3", },
> +	{ .compatible = "samsung,snps-dwc3", },
>  	{ /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, dwc3_generic_of_match);
> -- 
> 2.17.1
> 

Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>

Thinh

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver
  2026-09-03  7:12     ` [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver Selvarasu Ganesan
  2026-09-05  0:15       ` Thinh Nguyen
@ 2026-09-05  7:19       ` Krzysztof Kozlowski
  1 sibling, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-05  7:19 UTC (permalink / raw)
  To: Selvarasu Ganesan, peter.griffin, alim.akhtar, gregkh, robh,
	conor+dt, Thinh.Nguyen, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

On 03/09/2026 09:12, Selvarasu Ganesan wrote:
> Add the "samsung,snps-dwc3" compatible string to dwc3-generic-plat so
> the Exynos8855 USB3 DWC3 controller can probe through the generic DWC3
> platform glue.
> 
> The "samsung,snps-dwc3" string is used as a generic fallback to support
> any Exynos SoC that utilizes a flattened model instantiation. This
> fallback allows multiple Exynos SoCs to be supported by the generic
> platform driver simply by adding the fallback compatible to their
> respective device tree nodes.
> 
> Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
> ---
>  drivers/usb/dwc3/dwc3-generic-plat.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/dwc3/dwc3-generic-plat.c b/drivers/usb/dwc3/dwc3-generic-plat.c
> index ca69ac0eb07c..33a76c37d15d 100644
> --- a/drivers/usb/dwc3/dwc3-generic-plat.c
> +++ b/drivers/usb/dwc3/dwc3-generic-plat.c
> @@ -237,6 +237,7 @@ static const struct of_device_id dwc3_generic_of_match[] = {
>  	{ .compatible = "fsl,ls1028a-dwc3", &fsl_ls1028_dwc3},
>  	{ .compatible = "eswin,eic7700-dwc3", &eic7700_dwc3},
>  	{ .compatible = "starfive,jhb100-dwc3", },
> +	{ .compatible = "samsung,snps-dwc3", },

Why not in alphabetical order?

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3
  2026-09-03  7:12     ` [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3 Selvarasu Ganesan
@ 2026-09-05  7:22       ` Krzysztof Kozlowski
  2026-09-07  6:04         ` Selvarasu Ganesan
  0 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-05  7:22 UTC (permalink / raw)
  To: Selvarasu Ganesan, peter.griffin, alim.akhtar, gregkh, robh,
	conor+dt, Thinh.Nguyen, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

On 03/09/2026 09:12, Selvarasu Ganesan wrote:
> The Samsung Exynos8855 USB glue is not separate from the Synopsys DWC3
> core, using a flattened model where the DWC3 controller is directly
> addressable rather than nested as a child node of a glue layer.
> 
> Describe the Exynos USB block as a single node, referencing the split
> out Synopsys DWC3 core properties via snps,dwc3-common.yaml. The new
> binding follows the same approach as qcom,snps-dwc3.
> 
> A generic fallback compatible "samsung,snps-dwc3" is introduced to
> describe this binding, selected by the validator based on the presence
> of the fallback string in the compatible list. Future Exynos SoCs

This is AI slop text. Over longish useless sentence describing diff
without actual information WHY.

Don't send AI generated slop messages.

> utilizing the same flattened model can be added by extending the
> compatible enum with per SoC clock and property constraints.
> 
> Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
> Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
> ---
> 
> Krzysztof Kozlowski is added as a maintainer of this YAML binding, as
> he is the ARM/Samsung SoC architecture maintainer (ARM/SAMSUNG S3C,
> S5P AND EXYNOS ARM ARCHITECTURES) who already maintains Samsung Exynos
> DT bindings (e.g. samsung,exynos-dwc3.yaml) and reviews all
> Samsung related binding changes. This follows the same convention used
> by existing Samsung Exynos DT binding schemas.
> ---
>  .../bindings/usb/samsung,snps-dwc3.yaml       | 98 +++++++++++++++++++
>  1 file changed, 98 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
> 
> diff --git a/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
> new file mode 100644
> index 000000000000..480308c16f37
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
> @@ -0,0 +1,98 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/samsung,snps-dwc3.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung Exynos SoC DWC3 USB Controller
> +
> +maintainers:
> +  - Krzysztof Kozlowski <krzk@kernel.org>
> +  - Selvarasu Ganesan <selvarasu.g@samsung.com>
> +
> +description:
> +  Describes the DWC3 USB controller block implemented on Samsung Exynos SoCs.

Huh? Did you even look at existing bindings?

> +
> +select:
> +  properties:
> +    compatible:
> +      contains:
> +        const: samsung,snps-dwc3
> +  required:
> +    - compatible
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +          - samsung,exynos8855-dwc3
> +      - const: samsung,snps-dwc3

There is no snps device from Samsung, neither DWC3. The name of device
is completely wrong. snps is a vendor, not a device.

Anyway, don't use generic fallbacks.



> +
> +  reg:
> +    maxItems: 1
> +
> +  power-domains:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clocks:
> +    description: |
> +      Several clocks are used, depending on the variant. Typical ones are:
> +       - ref: Reference clock for SOF/ITP generation.
> +       - bus: Bus (APB) clock for register access.
> +    minItems: 1
> +    maxItems: 4
> +
> +  clock-names:
> +    minItems: 1
> +    maxItems: 4

You have only one device, why is this flexible?

> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - interrupts
> +
> +allOf:
> +  - $ref: snps,dwc3-common.yaml#
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: samsung,exynos8855-dwc3
> +    then:
> +      properties:
> +        clocks:
> +          minItems: 2
> +          maxItems: 2
> +        clock-names:
> +          items:
> +            - const: ref
> +            - const: bus

Why do you need all this? Look at existing code, don't duplicate. And
for sure do not introduce one more DWC3 binding claiming to be for
Samsung devices and completely ignoring existing ones.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3
  2026-09-05  7:22       ` Krzysztof Kozlowski
@ 2026-09-07  6:04         ` Selvarasu Ganesan
  2026-09-07  7:07           ` Krzysztof Kozlowski
  0 siblings, 1 reply; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-07  6:04 UTC (permalink / raw)
  To: Krzysztof Kozlowski, peter.griffin, alim.akhtar, gregkh, robh,
	conor+dt, Thinh.Nguyen, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r


On 9/5/2026 12:52 PM, Krzysztof Kozlowski wrote:
> On 03/09/2026 09:12, Selvarasu Ganesan wrote:
>> The Samsung Exynos8855 USB glue is not separate from the Synopsys DWC3
>> core, using a flattened model where the DWC3 controller is directly
>> addressable rather than nested as a child node of a glue layer.
>>
>> Describe the Exynos USB block as a single node, referencing the split
>> out Synopsys DWC3 core properties via snps,dwc3-common.yaml. The new
>> binding follows the same approach as qcom,snps-dwc3.
>>
>> A generic fallback compatible "samsung,snps-dwc3" is introduced to
>> describe this binding, selected by the validator based on the presence
>> of the fallback string in the compatible list. Future Exynos SoCs
> This is AI slop text. Over longish useless sentence describing diff
> without actual information WHY.
>
> Don't send AI generated slop messages.

Sorry for the misleading info on this commit message. We were trying to 
explain why a separate flattened representation is being introduced with 
using generic fallback string, and follow the style of some other DWC3 
flattened refactors (like the Qualcomm : 
https://lore.kernel.org/all/20250414-dwc3-refactor-v7-2-f015b358722d@oss.qualcomm.com) 
to justify the separate binding, but it became too long. We'll simplify 
it and keep only the technical reasoning.


>
>> utilizing the same flattened model can be added by extending the
>> compatible enum with per SoC clock and property constraints.
>>
>> Co-developed-by: Muhammed Ali <muhammed.ali@samsung.com>
>> Signed-off-by: Muhammed Ali <muhammed.ali@samsung.com>
>> Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
>> ---
>>
>> Krzysztof Kozlowski is added as a maintainer of this YAML binding, as
>> he is the ARM/Samsung SoC architecture maintainer (ARM/SAMSUNG S3C,
>> S5P AND EXYNOS ARM ARCHITECTURES) who already maintains Samsung Exynos
>> DT bindings (e.g. samsung,exynos-dwc3.yaml) and reviews all
>> Samsung related binding changes. This follows the same convention used
>> by existing Samsung Exynos DT binding schemas.
>> ---
>>   .../bindings/usb/samsung,snps-dwc3.yaml       | 98 +++++++++++++++++++
>>   1 file changed, 98 insertions(+)
>>   create mode 100644 Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
>> new file mode 100644
>> index 000000000000..480308c16f37
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/usb/samsung,snps-dwc3.yaml
>> @@ -0,0 +1,98 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: https://protect2.fireeye.com/v1/url?k=1a7dfa9a-7bf6efdd-1a7c71d5-000babff99aa-643f51fc0561c489&q=1&e=c6c89336-1f3a-4d30-a005-615c2b8d9c6f&u=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fusb%2Fsamsung%2Csnps-dwc3.yaml%23
>> +$schema: https://protect2.fireeye.com/v1/url?k=515f3c48-30d4290f-515eb707-000babff99aa-9a67f9f3980bd8f3&q=1&e=c6c89336-1f3a-4d30-a005-615c2b8d9c6f&u=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23
>> +
>> +title: Samsung Exynos SoC DWC3 USB Controller
>> +
>> +maintainers:
>> +  - Krzysztof Kozlowski <krzk@kernel.org>
>> +  - Selvarasu Ganesan <selvarasu.g@samsung.com>
>> +
>> +description:
>> +  Describes the DWC3 USB controller block implemented on Samsung Exynos SoCs.
> Huh? Did you even look at existing bindings?


Yes, We checked samsung,exynos-dwc3.yaml. Exynos8855 could use it, but 
that binding uses a parent and child representation. This patch 
introduces a flattened model where the USB vendor block and SNPS dwc3 
block are in a single node. The goal is to use this for Exynos8855 and 
eventually migrate the other samsung USB implementations from the old 
parent and child model to this one. We'll make this clearer and shorter 
in the commit message.

>
>> +
>> +select:
>> +  properties:
>> +    compatible:
>> +      contains:
>> +        const: samsung,snps-dwc3
>> +  required:
>> +    - compatible
>> +
>> +properties:
>> +  compatible:
>> +    items:
>> +      - enum:
>> +          - samsung,exynos8855-dwc3
>> +      - const: samsung,snps-dwc3
> There is no snps device from Samsung, neither DWC3. The name of device
> is completely wrong. snps is a vendor, not a device.
>
> Anyway, don't use generic fallbacks.
Understood. The fallback was intended to cover upcoming SoCs (8865, 
9955, 9965) and the migration of older SoCs without adding a unique 
string for every project, similar to the qcom,snps-dwc3 approach.

We agree that the naming was incorrect since  "snps" is the vendor. We 
can switch to per SoC compatible strings, but would a corrected fallback 
name like samsung,exynos-dwc3-common or samsung,exynos-snps-dwc3 be 
acceptable instead?
>
>
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  power-domains:
>> +    maxItems: 1
>> +
>> +  interrupts:
>> +    maxItems: 1
>> +
>> +  clocks:
>> +    description: |
>> +      Several clocks are used, depending on the variant. Typical ones are:
>> +       - ref: Reference clock for SOF/ITP generation.
>> +       - bus: Bus (APB) clock for register access.
>> +    minItems: 1
>> +    maxItems: 4
>> +
>> +  clock-names:
>> +    minItems: 1
>> +    maxItems: 4
> You have only one device, why is this flexible?


Exynos8855 only needs two clocks, but maxItems: 4 was added to support 
other samsung USB implementations that use up to four. Since we plan to 
migrate those to the flattened representation later, we wanted the 
binding to cover those requirements as well. Example required 4 clocks 
for gs101-dwusb3 (ref: 
Documentation/devicetree/bindings/usb/samsung,exynos-dwc3.yaml)


>
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +  - clocks
>> +  - clock-names
>> +  - interrupts
>> +
>> +allOf:
>> +  - $ref: snps,dwc3-common.yaml#
>> +
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            const: samsung,exynos8855-dwc3
>> +    then:
>> +      properties:
>> +        clocks:
>> +          minItems: 2
>> +          maxItems: 2
>> +        clock-names:
>> +          items:
>> +            - const: ref
>> +            - const: bus
> Why do you need all this? Look at existing code, don't duplicate. And
> for sure do not introduce one more DWC3 binding claiming to be for
> Samsung devices and completely ignoring existing ones.


We understand the concern about adding another binding. The goal is to 
migrate all samsung USB implementations to this flattened model, and 
then deprecate samsung,exynos-dwc3.yaml to avoid duplication.


Thanks,
Selva

>
> Best regards,
> Krzysztof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3
  2026-09-07  6:04         ` Selvarasu Ganesan
@ 2026-09-07  7:07           ` Krzysztof Kozlowski
  2026-09-07  8:50             ` Selvarasu Ganesan
  0 siblings, 1 reply; 10+ messages in thread
From: Krzysztof Kozlowski @ 2026-09-07  7:07 UTC (permalink / raw)
  To: Selvarasu Ganesan, peter.griffin, alim.akhtar, gregkh, robh,
	conor+dt, Thinh.Nguyen, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r

On 07/09/2026 08:04, Selvarasu Ganesan wrote:
> 
> On 9/5/2026 12:52 PM, Krzysztof Kozlowski wrote:
>> On 03/09/2026 09:12, Selvarasu Ganesan wrote:
>>> The Samsung Exynos8855 USB glue is not separate from the Synopsys DWC3
>>> core, using a flattened model where the DWC3 controller is directly
>>> addressable rather than nested as a child node of a glue layer.
>>>
>>> Describe the Exynos USB block as a single node, referencing the split
>>> out Synopsys DWC3 core properties via snps,dwc3-common.yaml. The new
>>> binding follows the same approach as qcom,snps-dwc3.
>>>
>>> A generic fallback compatible "samsung,snps-dwc3" is introduced to
>>> describe this binding, selected by the validator based on the presence
>>> of the fallback string in the compatible list. Future Exynos SoCs
>> This is AI slop text. Over longish useless sentence describing diff
>> without actual information WHY.
>>
>> Don't send AI generated slop messages.
> 
> Sorry for the misleading info on this commit message. We were trying to 
> explain why a separate flattened representation is being introduced with 
> using generic fallback string, and follow the style of some other DWC3 
> flattened refactors (like the Qualcomm : 
> https://lore.kernel.org/all/20250414-dwc3-refactor-v7-2-f015b358722d@oss.qualcomm.com) 
> to justify the separate binding, but it became too long. We'll simplify 
> it and keep only the technical reasoning.

Flattened node is the right approach, so just say this is the first
Samsung Exynos binding using flattened node.


Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3
  2026-09-07  7:07           ` Krzysztof Kozlowski
@ 2026-09-07  8:50             ` Selvarasu Ganesan
  0 siblings, 0 replies; 10+ messages in thread
From: Selvarasu Ganesan @ 2026-09-07  8:50 UTC (permalink / raw)
  To: Krzysztof Kozlowski, peter.griffin, alim.akhtar, gregkh, robh,
	conor+dt, Thinh.Nguyen, linux-arm-kernel, linux-samsung-soc,
	linux-usb, devicetree, linux-kernel
  Cc: jh0801.jung, dh10.jung, akash.m5, hongpooh.kim, eomji.oh,
	shijie.cai, muhammed.ali, thiagu.r


On 9/7/2026 12:37 PM, Krzysztof Kozlowski wrote:
> On 07/09/2026 08:04, Selvarasu Ganesan wrote:
>> On 9/5/2026 12:52 PM, Krzysztof Kozlowski wrote:
>>> On 03/09/2026 09:12, Selvarasu Ganesan wrote:
>>>> The Samsung Exynos8855 USB glue is not separate from the Synopsys DWC3
>>>> core, using a flattened model where the DWC3 controller is directly
>>>> addressable rather than nested as a child node of a glue layer.
>>>>
>>>> Describe the Exynos USB block as a single node, referencing the split
>>>> out Synopsys DWC3 core properties via snps,dwc3-common.yaml. The new
>>>> binding follows the same approach as qcom,snps-dwc3.
>>>>
>>>> A generic fallback compatible "samsung,snps-dwc3" is introduced to
>>>> describe this binding, selected by the validator based on the presence
>>>> of the fallback string in the compatible list. Future Exynos SoCs
>>> This is AI slop text. Over longish useless sentence describing diff
>>> without actual information WHY.
>>>
>>> Don't send AI generated slop messages.
>> Sorry for the misleading info on this commit message. We were trying to
>> explain why a separate flattened representation is being introduced with
>> using generic fallback string, and follow the style of some other DWC3
>> flattened refactors (like the Qualcomm :
>> https://lore.kernel.org/all/20250414-dwc3-refactor-v7-2-f015b358722d@oss.qualcomm.com)
>> to justify the separate binding, but it became too long. We'll simplify
>> it and keep only the technical reasoning.
> Flattened node is the right approach, so just say this is the first
> Samsung Exynos binding using flattened node.


Thanks for your update.
We will update the commit message as follows and post a new patch set.
And We are assuming that all other points including the clock count and 
the generic fallback compatible (samsung,snps-dwc3) are fine.


dt-bindings: usb: Introduce samsung,snps-dwc3

Add the Samsung Exynos8855 DWC3 binding using a flattened node
representation, where the DWC3 controller is directly
addressable rather than nested as a child node of a glue layer.

This is the first Samsung Exynos binding using the flattened
representation. The existing samsung,exynos-dwc3 binding describes the
parent and child representation used by existing Exynos SoCs, which can
be migrated to the flattened model.

Use the samsung,snps-dwc3 fallback compatible for Samsung Exynos SoCs
sharing the same flattened model can be added by extending the
compatible enum with per SoC clock and property constraints.

Thanks,
Selva
>
>
> Best regards,
> Krzysztof

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-09-07  8:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20260903071311epcas5p24c547d69b769818834ae2b7285cb541b@epcas5p2.samsung.com>
2026-09-03  7:12 ` [PATCH 0/3] Add USB DWC3 support for Samsung Exynos8855 Selvarasu Ganesan
     [not found]   ` <CGME20260903071314epcas5p2bf6f08797b9b92aef2bbd5a6a2708867@epcas5p2.samsung.com>
2026-09-03  7:12     ` [PATCH 1/3] MAINTAINERS: add Samsung USB DT binding to ARM/SAMSUNG entry Selvarasu Ganesan
     [not found]   ` <CGME20260903071318epcas5p4b804edb84554847c576d1d034b814d7a@epcas5p4.samsung.com>
2026-09-03  7:12     ` [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3 Selvarasu Ganesan
2026-09-05  7:22       ` Krzysztof Kozlowski
2026-09-07  6:04         ` Selvarasu Ganesan
2026-09-07  7:07           ` Krzysztof Kozlowski
2026-09-07  8:50             ` Selvarasu Ganesan
     [not found]   ` <CGME20260903071322epcas5p2a40e3299b0954dd880c9b3651555760c@epcas5p2.samsung.com>
2026-09-03  7:12     ` [PATCH 3/3] usb: dwc3: Add Exynos8855 to the generic platform driver Selvarasu Ganesan
2026-09-05  0:15       ` Thinh Nguyen
2026-09-05  7:19       ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®