Skip to contentSkip to conversation

riscv: sophgo: add top syscon device for cv18xx

PATCH Superseded Longbin Li 3 participants 10 messages Oct 20, 2025 – Oct 23, 2025

Subsystems (3)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Longbin Li

author
#0 lore raw

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

Add top syscon device bindings related DTS change for CV1800.

---

Changes in v2:

- Add ranges property.
- Use proper regex in patternProperties.
- Add complete example including child nodes.

Changes in v1:

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

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 v2 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 v2 1/3] dt-bindings: soc: sophgo: add TOP syscon for CV18XX/SG200X series SoC

Quoted 5 lines · Longbin Li

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.

There is no such tag. Also incomplete DCO.

Read carefully submitting patches.

Best regards,
Krzysztof

author
#3 lore raw

PATCH v2 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

#4 lore raw

Re: [PATCH v2 2/3] riscv: dts: sophgo: Add syscon node for cv18xx

Quoted 3 lines · Longbin Li

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

There is no such tag. Also incomplete DCO.

Read carefully submitting patches.

Best regards,
Krzysztof

Tested-by on v2 2/3
#5 lore raw

Re: [PATCH v2 2/3] riscv: dts: sophgo: Add syscon node for cv18xx

In reply to Longbin Li

Hi Longbin,

Quoted 4 lines · Longbin Li

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

Successfully tested in host mode on Milk-V Duo Module 01 EVB:

(please don't forget to take this tag into your v4 if it still will apply)

Quoted 3 lines

---
 arch/riscv/boot/dts/sophgo/cv180x.dtsi | 26 ++++++++++++++++++++++++++

 1 file changed, 26 insertions(+)
Signature · 1 line
Alexander Sverdlin.
author
#6 lore raw

PATCH v2 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

Tested-by on v2 3/3
#7 lore raw

Re: [PATCH v2 3/3] riscv: dts: sophgo: Add USB support for cv18xx

Hi Longbin,

Quoted 4 lines · Longbin Li

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

Successfully tested in host mode on Milk-V Duo Module 01 EVB:

(please don't forget to take this tag into your v4 if it still will apply)

Quoted 6 lines

---
 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(+)
Signature · 1 line
Alexander Sverdlin.
#8 lore raw
In reply to Longbin Li
Quoted 10 lines · Longbin Li

Add top syscon device bindings related DTS change for CV1800.

---

Changes in v2:

- Add ranges property.
- Use proper regex in patternProperties.
- Add complete example including child nodes.

Quoted 7 lines

Changes in v1:

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

Changed by RFC:

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

So this is v3, not v2. We do not count from 0, -1 or -2 (of you have three RFCs). Please start using b4, so you will get it right. Otherwise how can we compare versions between v1 and RFC? Try yourself with b4 diff.

Best regards,
Krzysztof

author
#9 lore raw
Quoted 20 lines · Krzysztof Kozlowski
Quoted 10 lines · Longbin Li

Add top syscon device bindings related DTS change for CV1800.

---

Changes in v2:

- Add ranges property.
- Use proper regex in patternProperties.
- Add complete example including child nodes.

Quoted 7 lines

Changes in v1:

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

Changed by RFC:

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

Quoted 6 lines

So this is v3, not v2. We do not count from 0, -1 or -2 (of you have three RFCs). Please start using b4, so you will get it right. Otherwise how can we compare versions between v1 and RFC? Try yourself with b4 diff.

Best regards,
Krzysztof

Sorry about that, I will fix it next commit. Thanks!