git-subtree-dir: qcom/graphics git-subtree-mainline:2bb579edb5
git-subtree-split:96de6303a2
117 lines
4.3 KiB
Plaintext
117 lines
4.3 KiB
Plaintext
Qualcomm Technologies, Inc. GPU Graphics Management Unit (GMU)
|
|
|
|
Required properties:
|
|
- compatible :
|
|
- "qcom,gpu-gmu"
|
|
- "qcom,gpu-gmu-hwsched"
|
|
- "qcom,gpu-rgmu"
|
|
- "qcom,gen7-gmu"
|
|
- "qcom,gen7-gmu-hwsched"
|
|
- reg: Specifies the GMU register base address and size.
|
|
- reg-names: Resource names used for the physical address
|
|
and length of GMU registers.
|
|
- interrupts: Interrupt mapping for GMU and HFI IRQs.
|
|
- interrupt-names: String property to describe the name of each interrupt.
|
|
|
|
Bus Scaling Data:
|
|
qcom,msm-bus,name: String property to describe the name of bus client.
|
|
qcom,msm-bus,num-cases: This is the the number of Bus Scaling use cases defined in the vectors property.
|
|
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.
|
|
|
|
GMU GDSC/regulators:
|
|
- regulator-names: List of regulator name strings
|
|
- vddcx-supply: Phandle for vddcx regulator device node.
|
|
- vdd-supply: Phandle for vdd regulator device node.
|
|
|
|
- clock: List of clocks to be used for GMU register access and DCVS. See
|
|
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
for information about the format. For each clock specified
|
|
here, there must be a corresponding entry in clock-names
|
|
(see below).
|
|
|
|
- clock-names: List of clock names corresponding to the clocks specified in
|
|
the "clocks" property (above). See
|
|
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
|
for more info. Currently GMU required these clock names:
|
|
"gmu_clk", "ahb_clk", "cxo_clk", "axi_clk", "memnoc_clk",
|
|
"rbcpr_clk"
|
|
|
|
- qcom,gmu-freq-table: List of frequencies the GMU clock can run at with their corresponding
|
|
voltage levels.
|
|
|
|
- List of sub nodes, one for each of the translation context banks needed
|
|
for GMU to access system memory in different operating mode. Currently
|
|
supported names are:
|
|
- gmu_user: used for GMU 'user' mode address space.
|
|
- gmu_kernel: used for GMU 'kernel' mode address space.
|
|
Each sub node has the following required properties:
|
|
|
|
- compatible : "qcom,smmu-gmu-user-cb" or "qcom,smmu-gmu-kernel-cb"
|
|
- iommus : Specifies the SID's used by this context bank, this
|
|
needs to be <kgsl_smmu SID> pair, kgsl_smmu is the string
|
|
parsed by iommu driver to match this context bank with the
|
|
kgsl_smmu device defined in iommu device tree. On targets
|
|
where the msm iommu driver is used rather than the arm smmu
|
|
driver, this property may be absent.
|
|
|
|
- qcom,ipc-core: <baseAddr size>
|
|
baseAddr - base address of the IPC region
|
|
size - size of the IPC region
|
|
|
|
- qcom,soccp-controller: Phandle of the soccp controller
|
|
|
|
Example:
|
|
|
|
gmu: qcom,gmu@2c6a000 {
|
|
label = "kgsl-gmu";
|
|
compatible = "qcom,gpu-gmu";
|
|
|
|
reg = <0x2c6a000 0x30000>;
|
|
reg-names = "kgsl_gmu_reg";
|
|
|
|
interrupts = <0 304 0>, <0 305 0>;
|
|
interrupt-names = "kgsl_gmu_irq", "kgsl_hfi_irq";
|
|
|
|
qcom,msm-bus,name = "cnoc";
|
|
qcom,msm-bus,num-cases = <2>;
|
|
qcom,msm-bus,num-paths = <1>;
|
|
qcom,msm-bus,vectors-KBps =
|
|
<26 10036 0 0>, // CNOC off
|
|
<26 10036 0 100>; // CNOC on
|
|
|
|
regulator-name = "vddcx", "vdd";
|
|
vddcx-supply = <&gpu_cx_gdsc>;
|
|
vdd-supply = <&gpu_gx_gdsc>;
|
|
|
|
clocks = <&clock_gpugcc clk_gcc_gmu_clk>,
|
|
<&clock_gcc GCC_GPU_CFG_AHB_CLK>,
|
|
<&clock_gpucc GPU_CC_CXO_CLK>,
|
|
<&clock_gcc GCC_DDRSS_GPU_AXI_CLK>,
|
|
<&clock_gcc GCC_GPU_MEMNOC_GFX_CLK>,
|
|
<&clock_gpucc GPU_CC_RBCPR_CLK>;
|
|
|
|
clock-names = "gmu_clk", "ahb_clk", "cxo_clk",
|
|
"axi_clk", "memnoc_clk", "rbcpr_clk";
|
|
|
|
qcom,gmu-freq-table = <200000000 RPMH_REGULATOR_LEVEL_LOW_SVS>,
|
|
<500000000 RPMH_REGULATOR_LEVEL_SVS>;
|
|
|
|
gmu_user: gmu_user {
|
|
compatible = "qcom,smmu-gmu-user-cb";
|
|
iommus = <&kgsl_smmu 4>;
|
|
};
|
|
|
|
gmu_kernel: gmu_kernel {
|
|
compatible = "qcom,smmu-gmu-kernel-cb";
|
|
iommus = <&kgsl_smmu 5>;
|
|
};
|
|
};
|