Add operating point table for CPU cores, and wire up clocks for CPU
nodes.
This patch isn't intended for upstreaming but only for testing purpose,
since the PMIC driver for scaling CPU voltage isn't ready yet. Only
operating points whose voltage is satisified by Lichee Module 4A's PMIC
default, i.e. <= 1.5GHz, are enabled.
Signed-off-by: Yao Zi <ziyao@disroot.org>
---
arch/riscv/boot/dts/thead/th1520.dtsi | 35 +++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi
index bd5d33840884..6020d568ad7c 100644
--- a/arch/riscv/boot/dts/thead/th1520.dtsi
+++ b/arch/riscv/boot/dts/thead/th1520.dtsi
@@ -38,6 +38,8 @@ c910_0: cpu@0 {
d-cache-sets = <512>;
next-level-cache = <&l2_cache>;
mmu-type = "riscv,sv39";
+ operating-points-v2 = <&cpu_opp>;
+ clocks = <&clk CLK_C910>;
cpu0_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
@@ -65,6 +67,8 @@ c910_1: cpu@1 {
d-cache-sets = <512>;
next-level-cache = <&l2_cache>;
mmu-type = "riscv,sv39";
+ operating-points-v2 = <&cpu_opp>;
+ clocks = <&clk CLK_C910>;
cpu1_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
@@ -92,6 +96,8 @@ c910_2: cpu@2 {
d-cache-sets = <512>;
next-level-cache = <&l2_cache>;
mmu-type = "riscv,sv39";
+ operating-points-v2 = <&cpu_opp>;
+ clocks = <&clk CLK_C910>;
cpu2_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
@@ -119,6 +125,8 @@ c910_3: cpu@3 {
d-cache-sets = <512>;
next-level-cache = <&l2_cache>;
mmu-type = "riscv,sv39";
+ operating-points-v2 = <&cpu_opp>;
+ clocks = <&clk CLK_C910>;
cpu3_intc: interrupt-controller {
compatible = "riscv,cpu-intc";
@@ -137,6 +145,33 @@ l2_cache: l2-cache {
};
};
+ cpu_opp: opp-table-cpu {
+ compatible = "operating-points-v2";
+ opp-shared;
+
+ opp-300000000 {
+ opp-hz = /bits/ 64 <300000000>;
+ opp-microvolt = <600000>;
+ };
+
+ opp-800000000 {
+ opp-hz = /bits/ 64 <800000000>;
+ opp-microvolt = <700000>;
+ };
+
+ opp-1500000000 {
+ opp-hz = /bits/ 64 <1500000000>;
+ opp-microvolt = <800000>;
+ };
+
+/*
+ opp-1848000000 {
+ opp-hz = /bits/ 64 <1848000000>;
+ opp-microvolt = <1000000>;
+ };
+ */
+ };
+
pmu {
compatible = "riscv,pmu";
riscv,event-to-mhpmcounters =
--
2.51.2