Skip to contentSkip to conversation

LoongArch: dts: Add more support device ndoes to Loongson-2K

PATCH Applied Binbin Zhou 2 participants 5 messages May 9, 2024 – May 10, 2024

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

v2 cover LoongArch: dts: Add more support device ndoes to Loongson-2K

Hi all:

Now, more Loongson-2K related deviers are supported, this patchset add these device nodes to dts files.

Additionally, we remove the "disable" state of the ls2k1000 clk node as it was unnecessary.

Thanks.

-------
V2:
patch(1/3):
- New patch. Follow Conor's comment, remove the "disable" state of the ls2k1000 clk node as it was unnecessary.
patch(2/3)(3/3):
- Remove the "disable" state of the clk node as it was unnecessary;
- Add cpu-alert trips.

Link to V1:
https://lore.kernel.org/all/[email protected]/

Binbin Zhou (3):
LoongArch: dts: Remove "disabled" state of clock controller node
LoongArch: dts: Add new supported device nodes to Loongson-2K0500
LoongArch: dts: Add new supported device nodes to Loongson-2K2000

 arch/loongarch/boot/dts/loongson-2k0500.dtsi  | 85 ++++++++++++++++++-
 .../boot/dts/loongson-2k1000-ref.dts          |  4 -
 arch/loongarch/boot/dts/loongson-2k1000.dtsi  |  1 -
 arch/loongarch/boot/dts/loongson-2k2000.dtsi  | 48 ++++++++++-
 4 files changed, 126 insertions(+), 12 deletions(-)
Signature · 1 line
2.43.0
#1 lore raw

PATCH v2 1/3 LoongArch: dts: Remove "disabled" state of clock controller node

Things like clock controllers or architectural interrupt controllers, no one would disable them because otherwise they would have no usable system.
So we just "enabled" them by default.

---
 arch/loongarch/boot/dts/loongson-2k1000-ref.dts | 4 ----
 arch/loongarch/boot/dts/loongson-2k1000.dtsi    | 1 -
 2 files changed, 5 deletions(-)
arch/loongarch/boot/dts/loongson-2k1000-ref.dts +0 -4
index a7cd3912f30d..b3b2044a6c4a 100644
@@ -137,10 +137,6 @@ &uart0 {
 	status = "okay";
 };
 
-&clk {
-	status = "okay";
-};
-
 &rtc0 {
 	status = "okay";
 };
arch/loongarch/boot/dts/loongson-2k1000.dtsi +0 -1
index 7aec76adefd9..bb6222a0af21 100644
@@ -159,7 +159,6 @@ clk: clock-controller@1fe00480 {
 			#clock-cells = <1>;
 			clocks = <&ref_100m>;
 			clock-names = "ref_100m";
-			status = "disabled";
 		};
 
 		gpio0: gpio@1fe00500 {
Signature · 1 line
2.43.0
#2 lore raw

PATCH v2 2/3 LoongArch: dts: Add new supported device nodes to Loongson-2K0500

In reply to Binbin Zhou

By now, more Loongson-2K0500 related drivers are supported, such as clock controller, thermal controller, and dma controller. Now we add these device nodes to the Loongson-2K0500 dts file.

---
 arch/loongarch/boot/dts/loongson-2k0500.dtsi | 85 +++++++++++++++++++-
 1 file changed, 82 insertions(+), 3 deletions(-)
arch/loongarch/boot/dts/loongson-2k0500.dtsi +83 -3
index 08531812ed5f..b78240ae9084 100644
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/loongson,ls2k-clk.h>
 
 / {
 	#address-cells = <2>;
@@ -19,14 +20,15 @@ cpu0: cpu@0 {
 			compatible = "loongson,la264";
 			device_type = "cpu";
 			reg = <0x0>;
-			clocks = <&cpu_clk>;
+			clocks = <&clk LOONGSON2_NODE_CLK>;
 		};
 	};
 
-	cpu_clk: cpu-clk {
+	ref_100m: clock-ref-100m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
-		clock-frequency = <500000000>;
+		clock-frequency = <100000000>;
+		clock-output-names = "ref_100m";
 	};
 
 	cpuintc: interrupt-controller {
@@ -35,6 +37,28 @@ cpuintc: interrupt-controller {
 		interrupt-controller;
 	};
 
+	thermal-zones {
+		cpu-thermal {
+			polling-delay-passive = <1000>;
+			polling-delay = <5000>;
+			thermal-sensors = <&tsensor 0>;
+
+			trips {
+				cpu-alert {
+					temperature = <33000>;
+					hysteresis = <2000>;
+					type = "active";
+				};
+
+				cpu-crit {
+					temperature = <85000>;
+					hysteresis = <5000>;
+					type = "critical";
+				};
+			};
+		};
+	};
+
 	bus@10000000 {
 		compatible = "simple-bus";
 		ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
@@ -52,6 +75,54 @@ isa@16400000 {
 			ranges = <1 0x0 0x0 0x16400000 0x4000>;
 		};
 
+		clk: clock-controller@1fe10400 {
+			compatible = "loongson,ls2k0500-clk";
+			reg = <0x0 0x1fe10400 0x0 0x2c>;
+			#clock-cells = <1>;
+			clocks = <&ref_100m>;
+			clock-names = "ref_100m";
+		};
+
+		dma-controller@1fe10c00 {
+			compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+			reg = <0 0x1fe10c00 0 0x8>;
+			interrupt-parent = <&eiointc>;
+			interrupts = <67>;
+			clocks = <&clk LOONGSON2_APB_CLK>;
+			#dma-cells = <1>;
+			status = "disabled";
+		};
+
+		dma-controller@1fe10c10 {
+			compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+			reg = <0 0x1fe10c10 0 0x8>;
+			interrupt-parent = <&eiointc>;
+			interrupts = <68>;
+			clocks = <&clk LOONGSON2_APB_CLK>;
+			#dma-cells = <1>;
+			status = "disabled";
+		};
+
+		dma-controller@1fe10c20 {
+			compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+			reg = <0 0x1fe10c20 0 0x8>;
+			interrupt-parent = <&eiointc>;
+			interrupts = <69>;
+			clocks = <&clk LOONGSON2_APB_CLK>;
+			#dma-cells = <1>;
+			status = "disabled";
+		};
+
+		dma-controller@1fe10c30 {
+			compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
+			reg = <0 0x1fe10c30 0 0x8>;
+			interrupt-parent = <&eiointc>;
+			interrupts = <70>;
+			clocks = <&clk LOONGSON2_APB_CLK>;
+			#dma-cells = <1>;
+			status = "disabled";
+		};
+
 		liointc0: interrupt-controller@1fe11400 {
 			compatible = "loongson,liointc-2.0";
 			reg = <0x0 0x1fe11400 0x0 0x40>,
@@ -299,6 +370,14 @@ ohci0: usb@1f058000 {
 			status = "disabled";
 		};
 
+		tsensor: thermal-sensor@1fe11500 {
+			compatible = "loongson,ls2k0500-thermal", "loongson,ls2k1000-thermal";
+			reg = <0x0 0x1fe11500 0x0 0x30>;
+			interrupt-parent = <&liointc0>;
+			interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+			#thermal-sensor-cells = <1>;
+		};
+
 		uart0: serial@1ff40800 {
 			compatible = "ns16550a";
 			reg = <0x0 0x1ff40800 0x0 0x10>;
Signature · 1 line
2.43.0
#3 lore raw

PATCH v2 3/3 LoongArch: dts: Add new supported device nodes to Loongson-2K2000

In reply to Binbin Zhou

By now, more Loongson-2K2000 related drivers are supported, such as clock controller and thermal controller.
Now we add these device nodes to the Loongson-2K2000 dts file.

---
 arch/loongarch/boot/dts/loongson-2k2000.dtsi | 48 ++++++++++++++++++--
 1 file changed, 44 insertions(+), 4 deletions(-)
arch/loongarch/boot/dts/loongson-2k2000.dtsi +45 -4
index 780d3da6755b..85086604671d 100644
@@ -6,6 +6,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/loongson,ls2k-clk.h>
 
 / {
 	#address-cells = <2>;
@@ -19,21 +20,22 @@ cpu0: cpu@1 {
 			compatible = "loongson,la364";
 			device_type = "cpu";
 			reg = <0x0>;
-			clocks = <&cpu_clk>;
+			clocks = <&clk LOONGSON2_NODE_CLK>;
 		};
 
 		cpu1: cpu@2 {
 			compatible = "loongson,la364";
 			device_type = "cpu";
 			reg = <0x1>;
-			clocks = <&cpu_clk>;
+			clocks = <&clk LOONGSON2_NODE_CLK>;
 		};
 	};
 
-	cpu_clk: cpu-clk {
+	ref_100m: clock-ref-100m {
 		compatible = "fixed-clock";
 		#clock-cells = <0>;
-		clock-frequency = <1400000000>;
+		clock-frequency = <100000000>;
+		clock-output-names = "ref_100m";
 	};
 
 	cpuintc: interrupt-controller {
@@ -42,6 +44,28 @@ cpuintc: interrupt-controller {
 		interrupt-controller;
 	};
 
+	thermal-zones {
+		cpu-thermal {
+			polling-delay-passive = <1000>;
+			polling-delay = <5000>;
+			thermal-sensors = <&tsensor 0>;
+
+			trips {
+				cpu-alert {
+					temperature = <40000>;
+					hysteresis = <2000>;
+					type = "active";
+				};
+
+				cpu-crit {
+					temperature = <85000>;
+					hysteresis = <5000>;
+					type = "critical";
+				};
+			};
+		};
+	};
+
 	bus@10000000 {
 		compatible = "simple-bus";
 		ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
@@ -58,6 +81,14 @@ isa@18400000 {
 			ranges = <1 0x0 0x0 0x18400000 0x4000>;
 		};
 
+		clk: clock-controller@10010480 {
+			compatible = "loongson,ls2k2000-clk";
+			reg = <0x0 0x10010480 0x0 0x100>;
+			#clock-cells = <1>;
+			clocks = <&ref_100m>;
+			clock-names = "ref_100m";
+		};
+
 		pmc: power-management@100d0000 {
 			compatible = "loongson,ls2k2000-pmc", "loongson,ls2k0500-pmc", "syscon";
 			reg = <0x0 0x100d0000 0x0 0x58>;
@@ -80,6 +111,15 @@ syscon-poweroff {
 			};
 		};
 
+		tsensor: thermal-sensor@1fe01460 {
+			compatible = "loongson,ls2k2000-thermal";
+			reg = <0x0 0x1fe01460 0x0 0x30>,
+			      <0x0 0x1fe0019c 0x0 0x4>;
+			interrupt-parent = <&liointc>;
+			interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+			#thermal-sensor-cells = <1>;
+		};
+
 		liointc: interrupt-controller@1fe01400 {
 			compatible = "loongson,liointc-1.0";
 			reg = <0x0 0x1fe01400 0x0 0x64>;
Signature · 1 line
2.43.0
maintainer Applied
#4 lore raw
In reply to Binbin Zhou

Queued, thanks.

Huacai

Quoted 37 lines · Binbin Zhou

Hi all:

Now, more Loongson-2K related deviers are supported, this patchset add these device nodes to dts files.

Additionally, we remove the "disable" state of the ls2k1000 clk node as it was unnecessary.

Thanks.

-------
V2:
patch(1/3):
- New patch. Follow Conor's comment, remove the "disable" state of the ls2k1000 clk node as it was unnecessary.
patch(2/3)(3/3):
- Remove the "disable" state of the clk node as it was unnecessary;
- Add cpu-alert trips.

Link to V1:
https://lore.kernel.org/all/[email protected]/

Binbin Zhou (3):
LoongArch: dts: Remove "disabled" state of clock controller node
LoongArch: dts: Add new supported device nodes to Loongson-2K0500
LoongArch: dts: Add new supported device nodes to Loongson-2K2000

 arch/loongarch/boot/dts/loongson-2k0500.dtsi  | 85 ++++++++++++++++++-
 .../boot/dts/loongson-2k1000-ref.dts          |  4 -
 arch/loongarch/boot/dts/loongson-2k1000.dtsi  |  1 -
 arch/loongarch/boot/dts/loongson-2k2000.dtsi  | 48 ++++++++++-
 4 files changed, 126 insertions(+), 12 deletions(-)

--
2.43.0