Skip to contentSkip to conversation

riscv: sophgo: add top syscon device for cv18xx

PATCH Superseded Longbin Li 3 participants 12 messages Oct 24, 2025 – Oct 27, 2025

Subsystems (3)

v4 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Longbin Li

author
#0 lore raw

v4 cover riscv: sophgo: add top syscon device for cv18xx

Add top syscon device bindings related DTS change for CV1800.

---
Changes from v3:
- https://lore.kernel.org/all/[email protected]/
- Corrected Co-developed-by information in commit message.
- Fixed patch version number.

Changes from v2:
- https://lore.kernel.org/all/[email protected]/
- Add ranges property.
- Use proper regex in patternProperties.
- Add complete example including child nodes.

Changed by RFC:
- https://lore.kernel.org/all/[email protected]/

---

Longbin Li (3):
dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC
riscv: dts: sophgo: Add syscon node for cv18xx
riscv: dts: sophgo: Add USB support for cv18xx

 .../soc/sophgo/sophgo,cv1800b-top-syscon.yaml | 81 +++++++++++++++++++
 .../boot/dts/sophgo/cv1800b-milkv-duo.dts     |  5 ++
 arch/riscv/boot/dts/sophgo/cv180x.dtsi        | 42 ++++++++++
 .../boot/dts/sophgo/cv1812h-huashan-pi.dts    |  5 ++
 .../dts/sophgo/sg2002-licheerv-nano-b.dts     |  5 ++
 5 files changed, 138 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml

--
2.51.0

author
#1 lore raw

PATCH v4 1/3 dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

The Sophgo CV1800/SG2000 SoC top misc system controller provides register access to configure related modules. It includes a usb2 phy and a dma multiplexer.

---
 .../soc/sophgo/sophgo,cv1800b-top-syscon.yaml | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +81 -0
new file mode 100644
index 000000000000..d044ca661fa2
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/sophgo/sophgo,cv1800b-top-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV18XX/SG200X SoC top system controller
+
+maintainers:
+  - Inochi Amaoto <[email protected]>
+
+description:
+  The Sophgo CV18XX/SG200X SoC top misc system controller provides
+  register access to configure related modules.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true
+
+patternProperties:
+  "dma-router@[0-9a-f]+$":
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {
+        compatible = "sophgo,cv1800b-usb2-phy";
+        reg = <0x48 0x4>;
+        #phy-cells = <0>;
+        clocks = <&clk CLK_USB_125M>,
+                 <&clk CLK_USB_33K>,
+                 <&clk CLK_USB_12M>;
+        clock-names = "app", "stb", "lpm";
+        resets = <&rst 58>;
+      };
+
+      dmamux: dma-router@154 {
+        compatible = "sophgo,cv1800b-dmamux";
+        reg = <0x154 0x8>, <0x298 0x4>;
+        #dma-cells = <2>;
+        dma-masters = <&dmac>;
+      };
+    };
+
+...

--
2.51.0

#2 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 1 line · Longbin Li

The Sophgo CV1800/SG2000 SoC top misc system controller provides register

Please remind me how it works, sg2000 is just a rebadge and really this just refers to one device?

Quoted 21 lines

access to configure related modules. It includes a usb2 phy and a dma multiplexer.

---
 .../soc/sophgo/sophgo,cv1800b-top-syscon.yaml | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +4 -0
new file mode 100644
index 000000000000..d044ca661fa2
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/sophgo/sophgo,cv1800b-top-syscon.yaml#

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 14

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV18XX/SG200X SoC top system controller
+
+maintainers:
+  - Inochi Amaoto <[email protected]>
+
+description:
+  The Sophgo CV18XX/SG200X SoC top misc system controller provides
+  register access to configure related modules.

Here and in the title you have Xs, are those placeholder or is this going into cv180x.dtsi and going to be used on multiple devices?

Quoted 9 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +9 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 36

Quoted 2 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +2 -0
+patternProperties:
+  "dma-router@[0-9a-f]+$":

Do these actually appear at variable addresses, or is it always 48 for the phy and 53 for the dma router?

Quoted 16 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +16 -0
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 62

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {

Drop the labels off of these two, since they're unused in the example.

Quoted 21 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +19 -1
+        compatible = "sophgo,cv1800b-usb2-phy";
+        reg = <0x48 0x4>;
+        #phy-cells = <0>;
+        clocks = <&clk CLK_USB_125M>,
+                 <&clk CLK_USB_33K>,
+                 <&clk CLK_USB_12M>;
+        clock-names = "app", "stb", "lpm";
+        resets = <&rst 58>;
+      };
+
+      dmamux: dma-router@154 {
+        compatible = "sophgo,cv1800b-dmamux";
+        reg = <0x154 0x8>, <0x298 0x4>;
+        #dma-cells = <2>;
+        dma-masters = <&dmac>;
+      };
+    };
+
+...
--

2.51.0

#3 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 32 lines · Conor Dooley
Quoted 1 line · Longbin Li

The Sophgo CV1800/SG2000 SoC top misc system controller provides register

Please remind me how it works, sg2000 is just a rebadge and really this just refers to one device?

Quoted 26 lines

access to configure related modules. It includes a usb2 phy and a dma multiplexer.

---
 .../soc/sophgo/sophgo,cv1800b-top-syscon.yaml | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +9 -0
new file mode 100644
index 000000000000..d044ca661fa2
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/sophgo/sophgo,cv1800b-top-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo CV18XX/SG200X SoC top system controller
+
+maintainers:
Quoted 8 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 14

Quoted 5 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +5 -0
+  - Inochi Amaoto <[email protected]>
+
+description:
+  The Sophgo CV18XX/SG200X SoC top misc system controller provides
+  register access to configure related modules.

Here and in the title you have Xs, are those placeholder or is this going into cv180x.dtsi and going to be used on multiple devices?

nvm, I read the next patch. It's going into cv180x.dtsi.

Quoted 77 lines
Quoted 8 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +8 -0
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 36

Quoted 2 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +2 -0
+patternProperties:
+  "dma-router@[0-9a-f]+$":

Do these actually appear at variable addresses, or is it always 48 for the phy and 53 for the dma router?

Quoted 16 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +16 -0
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 62

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {

Drop the labels off of these two, since they're unused in the example.

Quoted 21 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +19 -1
+        compatible = "sophgo,cv1800b-usb2-phy";
+        reg = <0x48 0x4>;
+        #phy-cells = <0>;
+        clocks = <&clk CLK_USB_125M>,
+                 <&clk CLK_USB_33K>,
+                 <&clk CLK_USB_12M>;
+        clock-names = "app", "stb", "lpm";
+        resets = <&rst 58>;
+      };
+
+      dmamux: dma-router@154 {
+        compatible = "sophgo,cv1800b-dmamux";
+        reg = <0x154 0x8>, <0x298 0x4>;
+        #dma-cells = <2>;
+        dma-masters = <&dmac>;
+      };
+    };
+
+...
--

2.51.0

author
#4 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

In reply to Conor Dooley
Quoted 6 lines · Conor Dooley
Quoted 1 line · Longbin Li

The Sophgo CV1800/SG2000 SoC top misc system controller provides register

Please remind me how it works, sg2000 is just a rebadge and really this just refers to one device?

SG2000 and CV1800 belong to the same SoC series. So it's more accurate to describe as “CV18XX/SG200X”.

Quoted 5 lines
Quoted 5 lines

access to configure related modules. It includes a usb2 phy and a dma multiplexer.

....

Quoted 8 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 14

Quoted 4 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +4 -0
+
+description:
+  The Sophgo CV18XX/SG200X SoC top misc system controller provides
+  register access to configure related modules.

Here and in the title you have Xs, are those placeholder or is this going into cv180x.dtsi and going to be used on multiple devices?

Yes, the “XX” is going to be used in the whole CV18XX/SG200X SoC series.

author
#5 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

In reply to Conor Dooley
Quoted 49 lines · Conor Dooley
Quoted 10 lines

...

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +9 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 36

Quoted 2 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +2 -0
+patternProperties:
+  "dma-router@[0-9a-f]+$":

Do these actually appear at variable addresses, or is it always 48 for the phy and 53 for the dma router?

Quoted 20 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +20 -0
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
Quoted 9 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 62

Quoted 6 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +6 -0
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {

Drop the labels off of these two, since they're unused in the example.

Hi,

Thanks for the review.

There are a couple of different opinions here.
Could you please help confirm which approach is preferred here?

This is Rob's reply:
https://lore.kernel.org/all/[email protected]/

#6 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 63 lines · Longbin Li
Quoted 49 lines · Conor Dooley
Quoted 10 lines

...

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +9 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 36

Quoted 2 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +2 -0
+patternProperties:
+  "dma-router@[0-9a-f]+$":

Do these actually appear at variable addresses, or is it always 48 for the phy and 53 for the dma router?

Quoted 20 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +20 -0
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
Quoted 9 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 62

Quoted 6 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +6 -0
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {

Drop the labels off of these two, since they're unused in the example.

Hi,

Quoted 7 lines

Thanks for the review.

There are a couple of different opinions here.
Could you please help confirm which approach is preferred here?

This is Rob's reply:
https://lore.kernel.org/all/[email protected]/

I don't think that Rob and I disgree about the example, having child nodes is good, having the label on them is what I don't want.

Re: the child node patterns, I was not looking for a return to what Rob didn't like, but rather a move to just making them normal properties rather than a pattern, if there's only one possible address.

author
#7 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 18 lines · Conor Dooley
Quoted 17 lines · Longbin Li
Quoted 15 lines · Conor Dooley
Quoted 15 lines

...

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +14 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 5 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +5 -0
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Actually, I do not use it.
I added it following Rob's suggestion in
https://lore.kernel.org/all/[email protected]/.
Should I drop it or not?

Quoted 46 lines
Quoted 38 lines
Quoted 26 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 36

Quoted 2 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +2 -0
+patternProperties:
+  "dma-router@[0-9a-f]+$":

Do these actually appear at variable addresses, or is it always 48 for the phy and 53 for the dma router?

Quoted 20 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +20 -0
+    $ref: /schemas/dma/sophgo,cv1800b-dmamux.yaml#
+    unevaluatedProperties: false
+
+  "phy@[0-9a-f]+$":
+    $ref: /schemas/phy/sophgo,cv1800b-usb2-phy.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sophgo,cv1800.h>
+
+    syscon@3000000 {
Quoted 9 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 62

Quoted 6 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +6 -0
+      compatible = "sophgo,cv1800b-top-syscon", "syscon", "simple-mfd";
+      reg = <0x03000000 0x1000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      usbphy: phy@48 {

Drop the labels off of these two, since they're unused in the example.

Hi,

Quoted 7 lines

Thanks for the review.

There are a couple of different opinions here.
Could you please help confirm which approach is preferred here?

This is Rob's reply:
https://lore.kernel.org/all/[email protected]/

Quoted 6 lines

I don't think that Rob and I disgree about the example, having child nodes is good, having the label on them is what I don't want.

Re: the child node patterns, I was not looking for a return to what Rob didn't like, but rather a move to just making them normal properties rather than a pattern, if there's only one possible address.

Thanks!
I will drop the lable and move the child nodes to normal properties.

#8 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Rob, Longbin,

Quoted 28 lines · Longbin Li
Quoted 18 lines · Conor Dooley
Quoted 17 lines · Longbin Li
Quoted 15 lines · Conor Dooley
Quoted 15 lines

...

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +14 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 5 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +5 -0
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Quoted 4 lines

Actually, I do not use it.
I added it following Rob's suggestion in
https://lore.kernel.org/all/[email protected]/.
Should I drop it or not?

I don't know why he suggested it, if it is not being used. Rob?

maintainer
#9 lore raw

Re: [PATCH v4 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 31 lines · Conor Dooley

Rob, Longbin,

Quoted 28 lines · Longbin Li
Quoted 26 lines · Conor Dooley
Quoted 25 lines · Longbin Li
Quoted 23 lines · Conor Dooley
Quoted 10 lines

...

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +9 -0
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: sophgo,cv1800b-top-syscon
+          - const: syscon
+          - const: simple-mfd
+

Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/soc/sophgo/sophgo,cv1800b-top-syscon.yaml new file +10 -0
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  ranges: true

Do you actually use ranges?

Quoted 6 lines
Quoted 4 lines

Actually, I do not use it.
I added it following Rob's suggestion in
https://lore.kernel.org/all/[email protected]/.
Should I drop it or not?

I don't know why he suggested it, if it is not being used. Rob?

Child nodes are memory-mapped, right? MMIO should have 'ranges' all the way down. Doesn't matter if Linux (currently) uses it or not.

Rob

author
#10 lore raw

PATCH v4 2/3 riscv: dts: sophgo: Add syscon node for cv18xx

In reply to Longbin Li

Add top syscon node and all subdevice nodes for cv18xx series SoC.

---
 arch/riscv/boot/dts/sophgo/cv180x.dtsi | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
arch/riscv/boot/dts/sophgo/cv180x.dtsi +26 -0
index ccdb45498653..42303acb2b39 100644
@@ -25,6 +25,32 @@ soc {
 		#size-cells = <1>;
 		ranges;
 
+		syscon: syscon@3000000 {
+			compatible = "sophgo,cv1800b-top-syscon",
+				     "syscon", "simple-mfd";
+			reg = <0x03000000 0x1000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			usbphy: phy@48 {
+				compatible = "sophgo,cv1800b-usb2-phy";
+				reg = <0x48 0x4>;
+				#phy-cells = <0>;
+				clocks = <&clk CLK_USB_125M>,
+					 <&clk CLK_USB_33K>,
+					 <&clk CLK_USB_12M>;
+				clock-names = "app", "stb", "lpm";
+				resets = <&rst RST_COMBO_PHY0>;
+			};
+
+			dmamux: dma-router@154 {
+				compatible = "sophgo,cv1800b-dmamux";
+				reg = <0x154 0x8>, <0x298 0x4>;
+				#dma-cells = <2>;
+				dma-masters = <&dmac>;
+			};
+		};
+
 		rst: reset-controller@3003000 {
 			compatible = "sophgo,cv1800b-reset";
 			reg = <0x3003000 0x1000>;

--
2.51.0

author
#11 lore raw

PATCH v4 3/3 riscv: dts: sophgo: Add USB support for cv18xx

In reply to Longbin Li

Add USB controller node for cv18xx and enable it for Huashan Pi, milkv-duo.

---
 arch/riscv/boot/dts/sophgo/cv1800b-milkv-duo.dts |  5 +++++
 arch/riscv/boot/dts/sophgo/cv180x.dtsi           | 16 ++++++++++++++++
 .../riscv/boot/dts/sophgo/cv1812h-huashan-pi.dts |  5 +++++
 .../boot/dts/sophgo/sg2002-licheerv-nano-b.dts   |  5 +++++
 4 files changed, 31 insertions(+)
arch/riscv/boot/dts/sophgo/cv1800b-milkv-duo.dts +5 -0
index 9feb520eaec4..0e6d79e6e3a4 100644
@@ -100,3 +100,8 @@ &uart0 {
 	pinctrl-names = "default";
 	status = "okay";
 };
+
+&usb {
+	dr_mode = "host";
+	status = "okay";
+};
arch/riscv/boot/dts/sophgo/cv180x.dtsi +16 -0
index 42303acb2b39..1b2b1969a648 100644
@@ -432,6 +432,22 @@ dmac: dma-controller@4330000 {
 			status = "disabled";
 		};
 
+		usb: usb@4340000 {
+			compatible = "sophgo,cv1800b-usb";
+			reg = <0x04340000 0x10000>;
+			clocks = <&clk CLK_AXI4_USB>, <&clk CLK_APB_USB>;
+			clock-names = "otg", "utmi";
+			g-np-tx-fifo-size = <32>;
+			g-rx-fifo-size = <536>;
+			g-tx-fifo-size = <768 512 512 384 128 128>;
+			interrupts = <SOC_PERIPHERAL_IRQ(14) IRQ_TYPE_LEVEL_HIGH>;
+			phys = <&usbphy>;
+			phy-names = "usb2-phy";
+			resets = <&rst RST_USB>;
+			reset-names = "dwc2";
+			status = "disabled";
+		};
+
 		rtc@5025000 {
 			compatible = "sophgo,cv1800b-rtc", "syscon";
 			reg = <0x5025000 0x2000>;
arch/riscv/boot/dts/sophgo/cv1812h-huashan-pi.dts +5 -0
index 4a5835fa9e96..aedf79f47407 100644
@@ -86,3 +86,8 @@ &sdhci1 {
 &uart0 {
 	status = "okay";
 };
+
+&usb {
+	dr_mode = "host";
+	status = "okay";
+};
arch/riscv/boot/dts/sophgo/sg2002-licheerv-nano-b.dts +5 -0
index 86a712b953a5..b1853770d017 100644
@@ -93,3 +93,8 @@ &uart0 {
 	pinctrl-names = "default";
 	status = "okay";
 };
+
+&usb {
+	dr_mode = "host";
+	status = "okay";
+};

--
2.51.0