Thread (11 messages) flat view 11 messages, 3 authors, 1d ago

Re: [PATCH 2/3] dt-bindings: usb: Introduce samsung,snps-dwc3

From: Selvarasu Ganesan <hidden>
Date: 2026-09-07 06:05:09
Also in: linux-devicetree, linux-samsung-soc, linux-usb, lkml

On 9/5/2026 12:52 PM, Krzysztof Kozlowski wrote:
On 03/09/2026 09:12, Selvarasu Ganesan wrote:
quoted
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 (local)) 
to justify the separate binding, but it became too long. We'll simplify 
it and keep only the technical reasoning.

quoted
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 <redacted>
Signed-off-by: Muhammed Ali <redacted>
Signed-off-by: Selvarasu Ganesan <redacted>
---

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.
quoted
+
+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?
quoted
+
+  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)

quoted
+
+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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help