// SPDX-License-Identifier: BSD-3-Clause /* * Copyright (c) 2024-2025, Qualcomm Innovation Center, Inc. All rights reserved. */ /* ACD Control register values */ #define ACD_LEVEL_TURBO_L2 0xa8285ffd #define ACD_LEVEL_TURBO_L1 0x88295ffd #define ACD_LEVEL_TURBO_L0 0x882a5ffd #define ACD_LEVEL_TURBO 0x882a5ffd #define ACD_LEVEL_NOM_L1 0xa82a5ffd #define ACD_LEVEL_NOM 0x882b5ffd #define ACD_LEVEL_SVS_L2 0x882b5ffd #define ACD_LEVEL_SVS_L1 0xa82b5ffd #define ACD_LEVEL_SVS 0xc02c5ffd #define ACD_LEVEL_LOW_SVS 0xc8295ffd #define ACD_LEVEL_LOW_SVS_D1 0xc8295ffd &msm_gpu { /* Power levels */ qcom,gpu-pwrlevel-bins { #address-cells = <1>; #size-cells = <0>; compatible = "qcom,gpu-pwrlevels-bins"; /* * The bins need to match based on speed bin first and then SKU. * Keep pwrlevel bins sorted in ascending order of the fmax of the bins. */ qcom,gpu-pwrlevels-0 { #address-cells = <1>; #size-cells = <0>; qcom,initial-pwrlevel = <10>; qcom,speed-bin = <0>; /* Turbo_L2 */ qcom,gpu-pwrlevel@0 { reg = <0>; qcom,gpu-freq = <1150000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo_L1 */ qcom,gpu-pwrlevel@1 { reg = <1>; qcom,gpu-freq = <1100000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo_L0 */ qcom,gpu-pwrlevel@2 { reg = <2>; qcom,gpu-freq = <1050000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo */ qcom,gpu-pwrlevel@3 { reg = <3>; qcom,gpu-freq = <937000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <9>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom_L1 */ qcom,gpu-pwrlevel@4 { reg = <4>; qcom,gpu-freq = <873000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <7>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom */ qcom,gpu-pwrlevel@5 { reg = <5>; qcom,gpu-freq = <763000000>; qcom,level = ; qcom,bus-freq = <8>; qcom,bus-min = <7>; qcom,bus-max = <9>; qcom,acd-level = ; }; /* SVS_L2 */ qcom,gpu-pwrlevel@6 { reg = <6>; qcom,gpu-freq = <688000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS_L1 */ qcom,gpu-pwrlevel@7 { reg = <7>; qcom,gpu-freq = <644000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS */ qcom,gpu-pwrlevel@8 { reg = <8>; qcom,gpu-freq = <510000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <2>; qcom,bus-max = <6>; qcom,acd-level = ; }; /* Low_SVS */ qcom,gpu-pwrlevel@9 { reg = <9>; qcom,gpu-freq = <362000000>; qcom,level = ; qcom,bus-freq = <3>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; /* Low_SVS_D1 */ qcom,gpu-pwrlevel@10 { reg = <10>; qcom,gpu-freq = <264000000>; qcom,level = ; qcom,bus-freq = <1>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; }; qcom,gpu-pwrlevels-1 { #address-cells = <1>; #size-cells = <0>; qcom,initial-pwrlevel = <8>; qcom,speed-bin = <0xd8>; /* Turbo_L1 */ qcom,gpu-pwrlevel@0 { reg = <0>; qcom,gpu-freq = <1025000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo */ qcom,gpu-pwrlevel@1 { reg = <1>; qcom,gpu-freq = <937000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <9>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom_L1 */ qcom,gpu-pwrlevel@2 { reg = <2>; qcom,gpu-freq = <873000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <7>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom */ qcom,gpu-pwrlevel@3 { reg = <3>; qcom,gpu-freq = <763000000>; qcom,level = ; qcom,bus-freq = <8>; qcom,bus-min = <7>; qcom,bus-max = <9>; qcom,acd-level = ; }; /* SVS_L2 */ qcom,gpu-pwrlevel@4 { reg = <4>; qcom,gpu-freq = <688000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS_L1 */ qcom,gpu-pwrlevel@5 { reg = <5>; qcom,gpu-freq = <644000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS */ qcom,gpu-pwrlevel@6 { reg = <6>; qcom,gpu-freq = <510000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <2>; qcom,bus-max = <6>; qcom,acd-level = ; }; /* Low_SVS */ qcom,gpu-pwrlevel@7 { reg = <7>; qcom,gpu-freq = <362000000>; qcom,level = ; qcom,bus-freq = <3>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; /* Low_SVS_D1 */ qcom,gpu-pwrlevel@8 { reg = <8>; qcom,gpu-freq = <264000000>; qcom,level = ; qcom,bus-freq = <1>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; }; qcom,gpu-pwrlevels-2 { #address-cells = <1>; #size-cells = <0>; qcom,initial-pwrlevel = <10>; qcom,speed-bin = <0xf2>; /* Turbo_L2 */ qcom,gpu-pwrlevel@0 { reg = <0>; qcom,gpu-freq = <1150000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo_L1 */ qcom,gpu-pwrlevel@1 { reg = <1>; qcom,gpu-freq = <1100000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo_L0 */ qcom,gpu-pwrlevel@2 { reg = <2>; qcom,gpu-freq = <1050000000>; qcom,level = ; qcom,bus-freq = <11>; qcom,bus-min = <11>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Turbo */ qcom,gpu-pwrlevel@3 { reg = <3>; qcom,gpu-freq = <937000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <9>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom_L1 */ qcom,gpu-pwrlevel@4 { reg = <4>; qcom,gpu-freq = <873000000>; qcom,level = ; qcom,bus-freq = <10>; qcom,bus-min = <7>; qcom,bus-max = <11>; qcom,acd-level = ; }; /* Nom */ qcom,gpu-pwrlevel@5 { reg = <5>; qcom,gpu-freq = <763000000>; qcom,level = ; qcom,bus-freq = <8>; qcom,bus-min = <7>; qcom,bus-max = <9>; qcom,acd-level = ; }; /* SVS_L2 */ qcom,gpu-pwrlevel@6 { reg = <6>; qcom,gpu-freq = <688000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS_L1 */ qcom,gpu-pwrlevel@7 { reg = <7>; qcom,gpu-freq = <644000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <4>; qcom,bus-max = <7>; qcom,acd-level = ; }; /* SVS */ qcom,gpu-pwrlevel@8 { reg = <8>; qcom,gpu-freq = <510000000>; qcom,level = ; qcom,bus-freq = <6>; qcom,bus-min = <2>; qcom,bus-max = <6>; qcom,acd-level = ; }; /* Low_SVS */ qcom,gpu-pwrlevel@9 { reg = <9>; qcom,gpu-freq = <362000000>; qcom,level = ; qcom,bus-freq = <3>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; /* Low_SVS_D1 */ qcom,gpu-pwrlevel@10 { reg = <10>; qcom,gpu-freq = <264000000>; qcom,level = ; qcom,bus-freq = <1>; qcom,bus-min = <1>; qcom,bus-max = <3>; qcom,acd-level = ; }; }; }; };