[PATCH v5 12/12] arm64: dts: mediatek: Add CPU Idle support

Alexandre Mergnat amergnat at baylibre.com
Fri Apr 7 06:14:40 PDT 2023


+ To: Catalin Marinas <catalin.marinas at arm.com>
+ To: Will Deacon <will at kernel.org>

Sorry for the noise.

Regards,
Alexandre

Le ven. 7 avr. 2023 à 14:59, <amergnat at baylibre.com> a écrit :
>
> From: Amjad Ouled-Ameur <aouledameur at baylibre.com>
>
> MT8365 has 3 CPU Idle states:
> - MCDI_CPU. (Multi-Core-Deep-Idle)
> - MCDI_CLUSTER.
> - DPIDLE. (Deep-Idle)
>
> Signed-off-by: Amjad Ouled-Ameur <aouledameur at baylibre.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
> Signed-off-by: Alexandre Mergnat <amergnat at baylibre.com>
> ---
>  arch/arm64/boot/dts/mediatek/mt8365.dtsi | 35 ++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> index cfe0c67ad61f..413496c92069 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -128,6 +128,7 @@ cpu0: cpu at 0 {
>                         reg = <0x0>;
>                         #cooling-cells = <2>;
>                         enable-method = "psci";
> +                       cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
>                         i-cache-size = <0x8000>;
>                         i-cache-line-size = <64>;
>                         i-cache-sets = <256>;
> @@ -147,6 +148,7 @@ cpu1: cpu at 1 {
>                         reg = <0x1>;
>                         #cooling-cells = <2>;
>                         enable-method = "psci";
> +                       cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
>                         i-cache-size = <0x8000>;
>                         i-cache-line-size = <64>;
>                         i-cache-sets = <256>;
> @@ -166,6 +168,7 @@ cpu2: cpu at 2 {
>                         reg = <0x2>;
>                         #cooling-cells = <2>;
>                         enable-method = "psci";
> +                       cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
>                         i-cache-size = <0x8000>;
>                         i-cache-line-size = <64>;
>                         i-cache-sets = <256>;
> @@ -185,6 +188,7 @@ cpu3: cpu at 3 {
>                         reg = <0x3>;
>                         #cooling-cells = <2>;
>                         enable-method = "psci";
> +                       cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
>                         i-cache-size = <0x8000>;
>                         i-cache-line-size = <64>;
>                         i-cache-sets = <256>;
> @@ -198,6 +202,37 @@ cpu3: cpu at 3 {
>                         operating-points-v2 = <&cluster0_opp>;
>                 };
>
> +               idle-states {
> +                       entry-method = "psci";
> +
> +                       CPU_MCDI: cpu-mcdi {
> +                               compatible = "arm,idle-state";
> +                               local-timer-stop;
> +                               arm,psci-suspend-param = <0x00010001>;
> +                               entry-latency-us = <300>;
> +                               exit-latency-us = <200>;
> +                               min-residency-us = <1000>;
> +                       };
> +
> +                       CLUSTER_MCDI: cluster-mcdi {
> +                               compatible = "arm,idle-state";
> +                               local-timer-stop;
> +                               arm,psci-suspend-param = <0x01010001>;
> +                               entry-latency-us = <350>;
> +                               exit-latency-us = <250>;
> +                               min-residency-us = <1200>;
> +                       };
> +
> +                       CLUSTER_DPIDLE: cluster-dpidle {
> +                               compatible = "arm,idle-state";
> +                               local-timer-stop;
> +                               arm,psci-suspend-param = <0x01010004>;
> +                               entry-latency-us = <300>;
> +                               exit-latency-us = <800>;
> +                               min-residency-us = <3300>;
> +                       };
> +               };
> +
>                 l2: l2-cache {
>                         compatible = "cache";
>                         cache-level = <2>;
>
> --
> 2.25.1
>



More information about the linux-arm-kernel mailing list