Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 64 additions & 22 deletions Documentation/devicetree/bindings/display/msm/gpu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ properties:
- const: amd,imageon

clocks:
minItems: 2
minItems: 1
maxItems: 7

clock-names:
minItems: 2
minItems: 1
maxItems: 7

reg:
Expand Down Expand Up @@ -388,26 +388,68 @@ allOf:
required:
- clocks
- clock-names
else:
if:
properties:
compatible:
contains:
oneOf:
- pattern: '^qcom,adreno-[67][0-9][0-9]\.[0-9]+$'
- pattern: '^qcom,adreno-[0-9a-f]{8}$'

then: # Starting with A6xx, the clocks are usually defined in the GMU node
properties:
clocks: false
clock-names: false

reg-names:
minItems: 1
items:
- const: kgsl_3d0_reg_memory
- const: cx_mem
- const: cx_dbgc

- if:
properties:
compatible:
contains:
const: qcom,adreno-612.0
then:
properties:
clocks:
items:
- description: GPU Core clock

clock-names:
items:
- const: core

reg-names:
minItems: 1
items:
- const: kgsl_3d0_reg_memory
- const: cx_mem
- const: cx_dbgc

required:
- clocks
- clock-names

- if:
properties:
compatible:
contains:
enum:
- qcom,adreno-615.0
- qcom,adreno-618.0
- qcom,adreno-619.0
- qcom,adreno-621.0
- qcom,adreno-623.0
- qcom,adreno-630.2
- qcom,adreno-635.0
- qcom,adreno-640.1
- qcom,adreno-650.2
- qcom,adreno-660.1
- qcom,adreno-663.0
- qcom,adreno-680.1
- qcom,adreno-690.0
- qcom,adreno-730.1
- qcom,adreno-43030c00
- qcom,adreno-43050a01
- qcom,adreno-43050c01
- qcom,adreno-43051401

then: # Starting with A6xx, the clocks are usually defined in the GMU node
properties:
clocks: false
clock-names: false

reg-names:
minItems: 1
items:
- const: kgsl_3d0_reg_memory
- const: cx_mem
- const: cx_dbgc

examples:
- |
Expand Down
126 changes: 126 additions & 0 deletions Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
%YAML 1.2
---

$id: http://devicetree.org/schemas/display/msm/qcom,adreno-rgmu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RGMU attached to certain Adreno GPUs

maintainers:
- Rob Clark <robin.clark@oss.qualcomm.com>

description:
RGMU (Reduced Graphics Management Unit) IP is present in some GPUs that
belong to Adreno A6xx family. It is a small state machine that helps to
toggle the GX GDSC (connected to CX rail) to implement IFPC feature and save
power.

properties:
compatible:
items:
- const: qcom,adreno-rgmu-612.0
- const: qcom,adreno-rgmu

reg:
items:
- description: Core RGMU registers

clocks:
items:
- description: GMU clock
- description: GPU CX clock
- description: GPU AXI clock
- description: GPU MEMNOC clock
- description: GPU SMMU vote clock

clock-names:
items:
- const: gmu
- const: cxo
- const: axi
- const: memnoc
- const: smmu_vote

power-domains:
items:
- description: CX GDSC power domain
- description: GX GDSC power domain

power-domain-names:
items:
- const: cx
- const: gx

interrupts:
items:
- description: GMU OOB interrupt
- description: GMU interrupt

interrupt-names:
items:
- const: oob
- const: gmu

operating-points-v2: true
opp-table:
type: object

required:
- compatible
- reg
- clocks
- clock-names
- power-domains
- power-domain-names
- interrupts
- interrupt-names
- operating-points-v2

additionalProperties: false

examples:
- |
#include <dt-bindings/clock/qcom,qcs615-gpucc.h>
#include <dt-bindings/clock/qcom,qcs615-gcc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/qcom,rpmhpd.h>

gmu@506a000 {
compatible = "qcom,adreno-rgmu-612.0", "qcom,adreno-rgmu";

reg = <0x05000000 0x90000>;

clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
<&gpucc GPU_CC_CXO_CLK>,
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
<&gcc GCC_GPU_MEMNOC_GFX_CLK>,
<&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
clock-names = "gmu",
"cxo",
"axi",
"memnoc",
"smmu_vote";

power-domains = <&gpucc CX_GDSC>,
<&gpucc GX_GDSC>;
power-domain-names = "cx",
"gx";

interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "oob",
"gmu";

operating-points-v2 = <&gmu_opp_table>;

gmu_opp_table: opp-table {
compatible = "operating-points-v2";

opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
required-opps = <&rpmhpd_opp_low_svs>;
};
};
};
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ properties:
- qcom,qcs404-qfprom
- qcom,qcs615-qfprom
- qcom,qcs8300-qfprom
- qcom,sa8775p-qfprom
- qcom,sar2130p-qfprom
- qcom,sc7180-qfprom
- qcom,sc7280-qfprom
Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -7882,6 +7882,7 @@ S: Maintained
B: https://gitlab.freedesktop.org/drm/msm/-/issues
T: git https://gitlab.freedesktop.org/drm/msm.git
F: Documentation/devicetree/bindings/display/msm/gpu.yaml
F: Documentation/devicetree/bindings/display/msm/qcom,adreno-rgmu.yaml
F: Documentation/devicetree/bindings/opp/opp-v2-qcom-adreno.yaml
F: drivers/gpu/drm/msm/adreno/
F: drivers/gpu/drm/msm/msm_gpu.*
Expand Down
16 changes: 16 additions & 0 deletions drivers/gpu/drm/msm/adreno/a6xx_catalog.c
Original file line number Diff line number Diff line change
Expand Up @@ -705,6 +705,22 @@ static const struct adreno_info a6xx_gpus[] = {
{ 157, 3 },
{ 127, 4 },
),
}, {
.chip_ids = ADRENO_CHIP_IDS(0x06010200),
.family = ADRENO_6XX_GEN1,
.fw = {
[ADRENO_FW_SQE] = "a630_sqe.fw",
[ADRENO_FW_GMU] = "a612_rgmu.bin",
},
.gmem = (SZ_128K + SZ_4K),
.inactive_period = DRM_MSM_INACTIVE_PERIOD,
.init = a6xx_gpu_init,
.a6xx = &(const struct a6xx_info) {
.hwcg = a612_hwcg,
.protect = &a630_protect,
.gmu_cgc_mode = 0x00000022,
.prim_fifo_threshold = 0x00080000,
},
}, {
.chip_ids = ADRENO_CHIP_IDS(0x06010500),
.family = ADRENO_6XX_GEN1,
Expand Down
Loading