git-subtree-dir: qcom/graphics git-subtree-mainline:2bb579edb5
git-subtree-split:96de6303a2
541 lines
19 KiB
Plaintext
541 lines
19 KiB
Plaintext
Qualcomm Technologies, Inc. GPU
|
|
|
|
Qualcomm Technologies, Inc. Adreno GPU
|
|
|
|
Required properties:
|
|
- compatible: Must be "qcom,kgsl-3d0".
|
|
May also includes "qcom,adreno-gpu-*" for few targets.
|
|
Must include "qcom,adreno-gpu-a619-holi" for Holi target.
|
|
Must include "qcom,adreno-gpu-a621" for Neo target.
|
|
Must include "qcom,adreno-gpu-a660-shima" for Shima target.
|
|
Must include "qcom,adreno-gpu-gen7-0-0" for Waipio target.
|
|
Must include "qcom,adreno-gpu-gen7-0-1" for Waipio V2 target.
|
|
Must include "qcom,adreno-gpu-gen7-2-0" for Kalama target.
|
|
Must include "qcom,adreno-gpu-gen7-2-1" for Kalama V2 target.
|
|
Must include "qcom,adreno-gpu-gen7-4-0" for Cape target.
|
|
Must include "qcom,adreno-gpu-gen7-3-0" for Parrot target.
|
|
Must include "qcom,adreno-gpu-gen7-9-0" for Pineapple target.
|
|
Must include "qcom,adreno-gpu-gen7-9-1" for Pineapple V2 target.
|
|
Must include "qcom,adreno-gpu-gen7-17-0" for Kera target.
|
|
Must include "qcom,adreno-gpu-gen8-6-0" for Tuna target.
|
|
- reg: Specifies the list of register regions for the device.
|
|
- reg-names: Resource names used for the register regions specified
|
|
in reg.
|
|
- interrupts: Interrupt mapping for GPU nterrupts.
|
|
- interrupt-names: String property to describe the names of the interrupts.
|
|
- qcom,gpu-bimc-interface-clk-freq:
|
|
GPU-BIMC interface clock needs to set to this value for
|
|
targets where B/W requirements does not meet GPU Turbo
|
|
use cases.
|
|
- clocks: List of phandle and clock specifier pairs, one pair
|
|
for each clock input to the device.
|
|
- clock-names: List of clock input name strings sorted in the same
|
|
order as the clocks property.
|
|
|
|
- qcom,base-leakage-coefficient: Dynamic leakage coefficient.
|
|
- qcom,lm-limit: Current limit for GPU limit management.
|
|
- qcom,isense-clk-on-level: below or equal this power level isense clock is at XO rate,
|
|
above this powerlevel isense clock is at working frequency.
|
|
|
|
Bus Scaling Data:
|
|
- qcom,gpu-bus-table: Defines a bus voting table with the below properties. Multiple sets of bus
|
|
voting tables can be defined for given platform based on the type of ddr system.
|
|
|
|
Properties:
|
|
- compatible: Must be "qcom,gpu-bus-table". Additionally, "qcom,gpu-bus-table-ddr" must also
|
|
be provided, with the ddr type value(integer) appended to the string.
|
|
- qcom,msm-bus,name: String property to describe the name of the 3D graphics processor.
|
|
- qcom,msm-bus,num-cases: This is the the number of Bus Scaling use cases defined in the vectors property.
|
|
- qcom,msm-bus,active-only: A boolean flag indicating if it is active only.
|
|
- qcom,msm-bus,num-paths: This represents the number of paths in each Bus Scaling Usecase.
|
|
- qcom,msm-bus,vectors-KBps: A series of 4 cell properties, format of which is:
|
|
<src dst ab ib>, <src dst ab ib>, // For Bus Scaling Usecase 1
|
|
<src dst ab ib>, <src dst ab ib>, // For Bus Scaling Usecase 2
|
|
<.. .. .. ..>, <.. .. .. ..>; // For Bus Scaling Usecase n
|
|
This property is a series of all vectors for all Bus Scaling Usecases.
|
|
Each set of vectors for each usecase describes bandwidth votes for a combination
|
|
of src/dst ports. The driver will set the desired use case based on the selected
|
|
power level and the desired bandwidth vote will be registered for the port pairs.
|
|
Current values of src are:
|
|
0 = MSM_BUS_MASTER_GRAPHICS_3D
|
|
1 = MSM_BUS_MASTER_GRAPHICS_3D_PORT1
|
|
2 = MSM_BUS_MASTER_V_OCMEM_GFX3D
|
|
Current values of dst are:
|
|
0 = MSM_BUS_SLAVE_EBI_CH0
|
|
1 = MSM_BUS_SLAVE_OCMEM
|
|
ab: Represents aggregated bandwidth. This value is 0 for Graphics.
|
|
ib: Represents instantaneous bandwidth. This value has a range <0 8000 MB/s>
|
|
|
|
- qcom,ocmem-bus-client: Container for another set of bus scaling properties
|
|
qcom,msm-bus,name
|
|
qcom,msm-bus,num-cases
|
|
qcom,msm-bus,num-paths
|
|
qcom,msm-bus,vectors-KBps
|
|
to be used by ocmem msm bus scaling client.
|
|
|
|
GDSC Oxili Regulators:
|
|
- regulator-names: List of regulator name strings sorted in power-on order
|
|
- vddcx-supply: Phandle for vddcx regulator device node.
|
|
- vdd-supply: Phandle for vdd regulator device node.
|
|
|
|
Power Domains:
|
|
- power-domains: List of PM domain specifiers that reference each power-domain
|
|
used by the GPU
|
|
- power-domain-names: List of names that represent each of the specifiers in the
|
|
'power-domains' property. Includes 'cx', 'gx' and 'gmu_cx'
|
|
which represent the power-domains for CX GDSC, GX GDSC and
|
|
GMU CX GDSC respectively.
|
|
|
|
IOMMU Data:
|
|
- iommu: Phandle for the KGSL IOMMU device node
|
|
|
|
GPU Power levels:
|
|
- qcom,gpu-pwrlevel-bins: Container for sets of GPU power levels (see
|
|
adreno-pwrlevels.txt)
|
|
DCVS Core info
|
|
- qcom,dcvs-core-info Container for the DCVS core info (see
|
|
dcvs-core-info.txt)
|
|
|
|
Optional Properties:
|
|
- qcom,initial-powerlevel: This value indicates which qcom,gpu-pwrlevel should be used at start time
|
|
and when coming back out of resume
|
|
- qcom,throttle-pwrlevel: This value indicates which qcom,gpu-pwrlevel LM throttling
|
|
may start to occur
|
|
- qcom,bus-control: Boolean. Enables an independent bus vote from the gpu frequency
|
|
- qcom,bus-width: Bus width in number of bytes. This enables dynamic AB bus voting based on
|
|
bus width and actual bus transactions.
|
|
- qcom,bus-accesses: Parameter for tuning bus dcvs.
|
|
- qcom,bus-accesses-ddrX: Parameter for tuning bus dcvs for each DDR configuration where
|
|
X will be the return value from of_fdt_get_ddrtype().
|
|
- qcom,gpubw-dev: a phandle to a device representing bus bandwidth requirements
|
|
(see devdw.txt)
|
|
- qcom,idle-timeout: This property represents the time in milliseconds for idle timeout.
|
|
- qcom,no-nap: If it exists software clockgating will be disabled at boot time.
|
|
- qcom,chipid: If it exists this property is used to replace
|
|
the chip identification read from the GPU hardware.
|
|
This is used to override faulty hardware readings.
|
|
- qcom,gpu-model: If it exists this property is used for GPU model name.
|
|
- qcom,vk-device-id: If it exists this property is used to specify vulkan device ID.
|
|
- qcom,disable-wake-on-touch: Boolean. Disables the GPU power up on a touch input event.
|
|
- qcom,disable-busy-time-burst:
|
|
Boolean. Disables the busy time burst to avoid switching
|
|
of power level for large frames based on the busy time limit.
|
|
|
|
- qcom,pm-qos-active-latency:
|
|
Right after GPU wakes up from sleep, driver votes for
|
|
acceptable maximum latency to the pm-qos driver. This
|
|
voting demands that the system can not go into any
|
|
power save state *if* the latency to bring system back
|
|
into active state is more than this value.
|
|
Value is in microseconds.
|
|
- qcom,pm-qos-wakeup-latency:
|
|
Similar to the above. Driver votes against deep low
|
|
power modes right before GPU wakes up from sleep.
|
|
- qcom,l2pc-cpu-mask-latency:
|
|
The CPU mask latency in microseconds to avoid L2PC
|
|
on masked CPUs.
|
|
|
|
- qcom,gpu-cx-ipeak:
|
|
CX Ipeak is a mitigation scheme which throttles cDSP frequency
|
|
if all the clients are running at their respective threshold
|
|
frequencies to limit CX peak current.
|
|
<phandle bit>
|
|
phandle - phandle of CX Ipeak device node
|
|
bit - Every bit corresponds to a client of CX Ipeak
|
|
driver in the relevant register.
|
|
- qcom, gpu-cx-ipeak-freq:
|
|
GPU frequency threshold for CX Ipeak voting. GPU votes
|
|
to CX Ipeak driver when GPU clock crosses this threshold.
|
|
CX Ipeak can limit peak current based on voting from other clients.
|
|
|
|
- qcom,force-32bit:
|
|
Force the GPU to use 32 bit data sizes even if
|
|
it is capable of doing 64 bit.
|
|
|
|
- qcom,gpu-speed-bin: GPU speed bin information in the format
|
|
<offset mask shift>
|
|
offset - offset of the efuse register from the base.
|
|
mask - mask for the relevant bits in the efuse register.
|
|
shift - number of bits to right shift to get the speed bin
|
|
value.
|
|
- qcom,gpu-disable-fuse: GPU disable fuse
|
|
<offset mask shift>
|
|
offset - offset of the efuse register from the base.
|
|
mask - mask for the relevant bits in the efuse register.
|
|
shift - number of bits to right shift to get the disable_gpu
|
|
fuse bit value.
|
|
|
|
- qcom,soc-hw-rev-efuse: SOC hardware revision fuse information in the format
|
|
<offset bit_position mask>
|
|
offset - offset of the efuse register from the base.
|
|
bit_position - hardware revision starting bit in the efuse register.
|
|
mask - mask for the relevant bits in the efuse register.
|
|
|
|
- qcom,highest-bank-bit:
|
|
Specify the bit of the highest DDR bank. This
|
|
is programmed into protected registers and also
|
|
passed to the user as a property.
|
|
- qcom,min-access-length:
|
|
Specify the minimum access length for the chip.
|
|
Either 32 or 64 bytes.
|
|
Based on the above options, program the appropriate bit into
|
|
certain protected registers and also pass to the user as
|
|
a property.
|
|
- qcom,ubwc-mode:
|
|
Specify the ubwc mode for this chip.
|
|
1: UBWC 1.0
|
|
2: UBWC 2.0
|
|
3: UBWC 3.0
|
|
4: UBWC 4.0
|
|
5: UBWC 5.0
|
|
Based on the ubwc mode, program the appropriate bit into
|
|
certain protected registers and also pass to the user as
|
|
a property.
|
|
- qcom,l2pc-cpu-mask:
|
|
Disables L2PC on masked CPUto the string.rendering thread is running on masked CPUs.
|
|
Bit 0 is for CPU-0, bit 1 is for CPU-1...
|
|
|
|
- qcom,l2pc-update-queue:
|
|
Disables L2PC on masked CPUs at queue time when it's true.
|
|
|
|
- qcom,snapshot-size:
|
|
Specify the size of snapshot in bytes. This will override
|
|
snapshot size defined in the driver code.
|
|
|
|
- qcom,enable-ca-jump:
|
|
Boolean. Enables use of context aware DCVS
|
|
- qcom,ca-busy-penalty:
|
|
This property represents the time in microseconds required to
|
|
initiate context aware power level jump.
|
|
- qcom,ca-target-pwrlevel:
|
|
This value indicates which qcom,gpu-pwrlevel to jump on in case
|
|
of context aware power level jump.
|
|
|
|
- qcom,gpu-qdss-stm:
|
|
<baseAddr size>
|
|
baseAddr - base address of the gpu channels in the qdss stm memory region
|
|
size - size of the gpu stm region
|
|
|
|
- qcom,gpu-timer:
|
|
<baseAddr size>
|
|
baseAddr - base address of the qtimer memory region
|
|
size - size of the qtimer region
|
|
|
|
- qcom,tzone-names:
|
|
Specify the names of GPU thermal zones. These will be used
|
|
to get gpu temperature from the thermal driver API.
|
|
|
|
nvmem-cells:
|
|
A phandle to the configuration data such as gpu speed bin, gpu gaming mode,
|
|
gpu model name provided by a nvmem device. If unspecified default values shall be used.
|
|
nvmem-cell-names:
|
|
Should be "speed_bin", "gaming_bin", "gpu_model"
|
|
|
|
GPU Quirks:
|
|
- qcom,gpu-quirk-two-pass-use-wfi:
|
|
Signal the GPU to set Set TWOPASSUSEWFI bit in
|
|
PC_DBG_ECO_CNTL (5XX and 6XX only)
|
|
- qcom,gpu-quirk-critical-packets:
|
|
Submit a set of critical PM4 packets when the GPU wakes up
|
|
- qcom,gpu-quirk-fault-detect-mask:
|
|
Mask out RB1-3 activity signals from HW hang
|
|
detection logic
|
|
- qcom,gpu-quirk-dp2clockgating-disable:
|
|
Disable RB sampler data path clock gating optimization
|
|
- qcom,gpu-quirk-lmloadkill-disable:
|
|
Use register setting to disable local memory(LM) feature
|
|
to avoid corner case error
|
|
- qcom,gpu-quirk-hfi-use-reg:
|
|
Use registers to replace DCVS HFI message to avoid GMU failure
|
|
to access system memory during IFPC
|
|
- qcom,gpu-quirk-limit-uche-gbif-rw:
|
|
Limit number of read and write transactions from UCHE block to
|
|
GBIF to avoid possible deadlock between GBIF, SMMU and MEMNOC.
|
|
- qcom,gpu-quirk-mmu-secure-cb-alt:
|
|
Select alternate secure context bank to generate SID1 for
|
|
secure playback.
|
|
|
|
KGSL Memory Pools:
|
|
- qcom,gpu-mempools: Container for sets of GPU mempools.Multiple sets
|
|
(pools) can be defined within qcom,gpu-mempools.
|
|
Each mempool defines a pool order, reserved pages,
|
|
allocation allowed.
|
|
Properties:
|
|
- compatible: Must be qcom,gpu-mempools.
|
|
- qcom,mempool-max-pages: Max pages for all mempools, If not defined there is no limit.
|
|
- qcom,gpu-mempool: Defines a set of mempools.
|
|
|
|
Properties:
|
|
- reg: Index of the pool (0 = lowest pool order).
|
|
- qcom,mempool-page-size: Size of page.
|
|
- qcom,mempool-reserved: Number of pages reserved at init time for a pool.
|
|
- qcom,mempool-allocate: Allocate memory from the system memory when the
|
|
reserved pool exhausted.
|
|
- qcom,mempool-max-pages: Limit on max pages this pool can hold, If not defined
|
|
there is no limit.
|
|
GPU model configuration:
|
|
- qcom,gpu-models:
|
|
Container of sets of GPU model names specified by qcom,gpu-models.
|
|
Properties:
|
|
- compatible:
|
|
Must be qcom,gpu-models.
|
|
|
|
- qcom,gpu-model:
|
|
Defines a GPU model name for specific GPU model ID.
|
|
|
|
Properties:
|
|
- compatible:
|
|
May also include "qcom,adreno-gpu-*" for few targets.
|
|
- qcom,gpu-model-id:
|
|
Identifier for the specific GPU hardware configuration - must match the value read
|
|
from the hardware.
|
|
- qcom,gpu-model:
|
|
GPU model name for a specific GPU hardware.
|
|
|
|
- qcom,vk-device-id:
|
|
Vulkan device id unique for specific GPU hardware model.
|
|
SOC Hardware revisions:
|
|
- qcom,soc-hw-revisions:
|
|
Container of sets of SOC hardware revisions specified by
|
|
qcom,soc-hw-revision.
|
|
Properties:
|
|
- compatible:
|
|
Must be qcom,soc-hw-revisions.
|
|
|
|
- qcom,soc-hw-revision:
|
|
Defines a SOC hardware revision.
|
|
|
|
Properties:
|
|
- qcom,soc-hw-revision:
|
|
Identifier for the hardware revision - must match the value read
|
|
from the hardware.
|
|
- qcom,chipid:
|
|
GPU Chip ID to be used for this hardware revision.
|
|
- qcom,gpu-quirk-*:
|
|
GPU quirks applicable for this hardware revision.
|
|
|
|
GPU LLC slice info:
|
|
- cache-slice-names: List of LLC cache slices for GPU transactions
|
|
and pagetable walk.
|
|
- cache-slices: phandle to the system LLC driver, cache slice index.
|
|
|
|
L3 Power levels:
|
|
- qcom,l3-pwrlevels: Container for sets of L3 power levels, the
|
|
L3 frequency is adjusted according to the
|
|
performance hint received from userspace.
|
|
|
|
Properties:
|
|
- compatible: Must be qcom,l3-pwrlevels
|
|
- qcom,l3-pwrlevel: A single L3 powerlevel
|
|
|
|
Properties:
|
|
- reg: Index of the L3 powerlevel
|
|
0 = powerlevel for no L3 vote
|
|
1 = powerlevel for medium L3 vote
|
|
2 = powerlevel for maximum L3 vote
|
|
- qcom,l3-freq: The L3 frequency for the powerlevel (in Hz)
|
|
|
|
GPU coresight info:
|
|
The following properties are optional as collecting data via coresight might
|
|
not be supported for every chipset. The documentation for coresight
|
|
properties can be found in:
|
|
Documentation/devicetree/bindings/coresight/coresight.txt
|
|
|
|
- qcom,gpu-coresights: Container for sets of GPU coresight sources.
|
|
- coresight-id: Unique integer identifier for the bus.
|
|
- coresight-name: Unique descriptive name of the bus.
|
|
- coresight-nr-inports: Number of input ports on the bus.
|
|
- coresight-outports: List of output port numbers on the bus.
|
|
- coresight-child-list: List of phandles pointing to the children of this
|
|
component.
|
|
- coresight-child-ports: List of input port numbers of the children.
|
|
- coresight-atid: The unique ATID value of the coresight device
|
|
|
|
Example of A330 GPU in MSM8916:
|
|
|
|
&soc {
|
|
msm_gpu: qcom,kgsl-3d0@1c00000 {
|
|
label = "kgsl-3d0";
|
|
compatible = "qcom,kgsl-3d0", "qcom,kgsl-3d";
|
|
reg = <0x1c00000 0x10000
|
|
0x1c20000 0x20000>;
|
|
reg-names = "kgsl_3d0_reg_memory" , "kgsl_3d0_shader_memory";
|
|
interrupts = <0 33 0>;
|
|
interrupt-names = "kgsl_3d0_irq";
|
|
qcom,id = <0>;
|
|
|
|
qcom,chipid = <0x03000600>;
|
|
|
|
qcom,initial-pwrlevel = <1>;
|
|
|
|
/* Idle Timeout = HZ/12 */
|
|
qcom,idle-timeout = <8>;
|
|
qcom,strtstp-sleepwake;
|
|
|
|
clocks = <&clock_gcc clk_gcc_oxili_gfx3d_clk>,
|
|
<&clock_gcc clk_gcc_oxili_ahb_clk>,
|
|
<&clock_gcc clk_gcc_oxili_gmem_clk>,
|
|
<&clock_gcc clk_gcc_bimc_gfx_clk>,
|
|
<&clock_gcc clk_gcc_bimc_gpu_clk>;
|
|
clock-names = "core_clk", "iface_clk", "mem_clk",
|
|
"mem_iface_clk", "alt_mem_iface_clk";
|
|
|
|
/* Bus Scale Settings */
|
|
qcom, gpu-bus-table {
|
|
compatible="qcom,gpu-bus-table","qcom,gpu-bus-table-ddr7";
|
|
qcom,msm-bus,name = "grp3d";
|
|
qcom,msm-bus,num-cases = <4>;
|
|
qcom,msm-bus,num-paths = <1>;
|
|
qcom,msm-bus,vectors-KBps =
|
|
<26 512 0 0>,
|
|
<26 512 0 1600000>,
|
|
<26 512 0 3200000>,
|
|
<26 512 0 4264000>;
|
|
};
|
|
|
|
/* GDSC oxili regulators */
|
|
vdd-supply = <&gdsc_oxili_gx>;
|
|
|
|
nvmem-cells = <&gpu_speed_bin>, <&gpu_gaming_bin>, <&gpu_model_bin>;
|
|
nvmem-cell-names = "speed_bin", "gaming_bin","gpu_model";
|
|
|
|
/* IOMMU Data */
|
|
iommu = <&gfx_iommu>;
|
|
|
|
/* Trace bus */
|
|
coresight-id = <67>;
|
|
coresight-name = "coresight-gfx";
|
|
coresight-nr-inports = <0>;
|
|
coresight-outports = <0>;
|
|
coresight-child-list = <&funnel_in0>;
|
|
coresight-child-ports = <5>;
|
|
|
|
/* Enable context aware freq. scaling */
|
|
qcom,enable-ca-jump;
|
|
|
|
/* Context aware jump busy penalty in us */
|
|
qcom,ca-busy-penalty = <12000>;
|
|
|
|
/* Context aware jump target power level */
|
|
qcom,ca-target-pwrlevel = <1>;
|
|
|
|
qcom,soc-hw-revisions {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
compatible="qcom,soc-hw-revisions";
|
|
|
|
qcom,soc-hw-revision@0 {
|
|
reg = <0>;
|
|
|
|
qcom,chipid = <0x06010500>;
|
|
qcom,gpu-quirk-hfi-use-reg;
|
|
qcom,gpu-quirk-limit-uche-gbif-rw;
|
|
};
|
|
|
|
qcom,soc-hw-revision@1 {
|
|
reg = <1>;
|
|
|
|
qcom,chipid = <0x06010501>;
|
|
qcom,gpu-quirk-hfi-use-reg;
|
|
};
|
|
};
|
|
|
|
qcom,gpu-models {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible="qcom,gpu-models";
|
|
|
|
qcom,gpu-model@0 {
|
|
compatible="qcom,adreno-gpu-a642l";
|
|
qcom,gpu-model-id = <0>;
|
|
qcom,gpu-model = "Adreno642Lv1";
|
|
qcom,vk-device-id= <0x06030500>;
|
|
};
|
|
qcom,gpu-model@1 {
|
|
compatible="qcom,adreno-gpu-a645";
|
|
qcom,gpu-model-id = <190>;
|
|
qcom,gpu-model = "Adreno645";
|
|
qcom,vk-device-id= <0x06030500>;
|
|
};
|
|
}
|
|
|
|
/* GPU Mempools */
|
|
qcom,gpu-mempools {
|
|
#address-cells= <1>;
|
|
#size-cells = <0>;
|
|
compatible = "qcom,gpu-mempools";
|
|
|
|
/* 4K Page Pool configuration */
|
|
qcom,gpu-mempool@0 {
|
|
reg = <0>;
|
|
qcom,mempool-page-size = <4096>;
|
|
qcom,mempool-reserved = <2048>;
|
|
qcom,mempool-allocate;
|
|
};
|
|
/* 8K Page Pool configuration */
|
|
qcom,gpu-mempool@1 {
|
|
reg = <1>;
|
|
qcom,mempool-page-size = <8192>;
|
|
qcom,mempool-reserved = <1024>;
|
|
qcom,mempool-allocate;
|
|
};
|
|
/* 64K Page Pool configuration */
|
|
qcom,gpu-mempool@2 {
|
|
reg = <2>;
|
|
qcom,mempool-page-size = <65536>;
|
|
qcom,mempool-reserved = <256>;
|
|
};
|
|
/* 1M Page Pool configuration */
|
|
qcom,gpu-mempool@3 {
|
|
reg = <3>;
|
|
qcom,mempool-page-size = <1048576>;
|
|
qcom,mempool-reserved = <32>;
|
|
};
|
|
};
|
|
|
|
/* Power levels */
|
|
qcom,gpu-pwrlevels-bins {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
qcom,gpu-pwrlevels-0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
qcom,speed-bin = <0>;
|
|
qcom,ca-target-pwrlevel = <1>;
|
|
|
|
qcom,gpu-pwrlevel@0 {
|
|
reg = <0>;
|
|
qcom,gpu-freq = <400000000>;
|
|
qcom,bus-freq = <3>;
|
|
qcom,io-fraction = <33>;
|
|
};
|
|
|
|
qcom,gpu-pwrlevel@1 {
|
|
reg = <1>;
|
|
qcom,gpu-freq = <310000000>;
|
|
qcom,bus-freq = <2>;
|
|
qcom,io-fraction = <66>;
|
|
};
|
|
|
|
qcom,gpu-pwrlevel@2 {
|
|
reg = <2>;
|
|
qcom,gpu-freq = <200000000>;
|
|
qcom,bus-freq = <1>;
|
|
qcom,io-fraction = <100>;
|
|
};
|
|
|
|
qcom,gpu-pwrlevel@3 {
|
|
reg = <3>;
|
|
qcom,gpu-freq = <27000000>;
|
|
qcom,bus-freq = <0>;
|
|
qcom,io-fraction = <0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
};
|
|
};
|