arm64: dts: amlogic: axg: initialize default SoC capacitance
authorDmitry Rokosov <ddrokosov@salutedevices.com>
Fri, 9 Feb 2024 21:28:06 +0000 (00:28 +0300)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 13 Feb 2024 08:40:42 +0000 (09:40 +0100)
The capacitance value is required for the usage of the cpufreq cooling
device and power_allocator thermal governor in the appropriate energy
model.

It helps to compute the power estimated by the SoC at the appropriate
frequency. If it is the frequency of an existing OPP, or at the
frequency of the first OPP above the requested value otherwise.

The power is estimated as P = C * V^2 * f, with C being the SoC's
capacitance and V and f respectively representing the voltage and
frequency of the OPP.

Since AXG SoC doesn't have SCMI protocol support, we need to initialize
capacitance using the 'dynamic-power-coefficient' DT entry. Its value is
retrieved from the vendor kernel, and it gives us the following
freq2power mapping:
    +-----------+--------+
    | frequency,| power, |
    |    MHz    |   uW   |
    +-----------+--------+
    |     100   |  10354 |
    +-----------+--------+
    |     250   |  27104 |
    +-----------+--------+
    |     500   |  55447 |
    +-----------+--------+
    |     667   |  77327 |
    +-----------+--------+
    |    1000   | 129024 |
    +-----------+--------+
    |    1200   | 164656 |
    +-----------+--------+
    |    1296   | 192489 |
    +-----------+--------+
    |    1416   | 239870 |
    +-----------+--------+

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240209212816.11187-3-ddrokosov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/meson-axg.dtsi

index ea96fef328e89ed64b79939a594550584e591976..6d12b760b90f75c2b857460e0f0e26fec900d55e 100644 (file)
@@ -74,6 +74,7 @@
                        enable-method = "psci";
                        next-level-cache = <&l2>;
                        clocks = <&scpi_dvfs 0>;
+                       dynamic-power-coefficient = <140>;
                        #cooling-cells = <2>;
                };
 
@@ -84,6 +85,7 @@
                        enable-method = "psci";
                        next-level-cache = <&l2>;
                        clocks = <&scpi_dvfs 0>;
+                       dynamic-power-coefficient = <140>;
                        #cooling-cells = <2>;
                };
 
@@ -94,6 +96,7 @@
                        enable-method = "psci";
                        next-level-cache = <&l2>;
                        clocks = <&scpi_dvfs 0>;
+                       dynamic-power-coefficient = <140>;
                        #cooling-cells = <2>;
                };
 
                        enable-method = "psci";
                        next-level-cache = <&l2>;
                        clocks = <&scpi_dvfs 0>;
+                       dynamic-power-coefficient = <140>;
                        #cooling-cells = <2>;
                };