2020-03-19 21:36:10 -06:00
# SPDX-License-Identifier: GPL-2.0-only
# Copyright 2019-2020, The Linux Foundation, All Rights Reserved
%YAML 1.2
---
$id : "http://devicetree.org/schemas/display/msm/gmu.yaml#"
$schema : "http://devicetree.org/meta-schemas/core.yaml#"
2022-12-16 17:38:13 +01:00
title : GMU attached to certain Adreno GPUs
2020-03-19 21:36:10 -06:00
maintainers :
- Rob Clark <robdclark@gmail.com>
description : |
These bindings describe the Graphics Management Unit (GMU) that is attached
to members of the Adreno A6xx GPU family. The GMU provides on-device power
management and support to improve power efficiency and reduce the load on
the CPU.
properties :
compatible :
items :
2022-07-06 17:52:21 +03:00
- pattern : '^qcom,adreno-gmu-6[0-9][0-9]\.[0-9]$'
2020-03-19 21:36:10 -06:00
- const : qcom,adreno-gmu
reg :
2022-07-06 17:52:21 +03:00
minItems : 3
maxItems : 4
2020-03-19 21:36:10 -06:00
reg-names :
2022-07-06 17:52:21 +03:00
minItems : 3
maxItems : 4
2020-03-19 21:36:10 -06:00
clocks :
2022-07-06 17:52:21 +03:00
minItems : 4
maxItems : 7
2020-03-19 21:36:10 -06:00
clock-names :
2022-07-06 17:52:21 +03:00
minItems : 4
maxItems : 7
2020-03-19 21:36:10 -06:00
interrupts :
items :
2020-04-20 21:24:47 -05:00
- description : GMU HFI interrupt
- description : GMU interrupt
2020-03-19 21:36:10 -06:00
interrupt-names :
items :
- const : hfi
- const : gmu
power-domains :
2020-04-20 21:24:47 -05:00
items :
- description : CX power domain
- description : GX power domain
2020-03-19 21:36:10 -06:00
power-domain-names :
2020-04-20 21:24:47 -05:00
items :
- const : cx
- const : gx
2020-03-19 21:36:10 -06:00
iommus :
maxItems : 1
operating-points-v2 : true
2022-07-06 17:52:21 +03:00
opp-table :
type : object
2020-03-19 21:36:10 -06:00
required :
- compatible
- reg
- reg-names
- clocks
- clock-names
- interrupts
- interrupt-names
- power-domains
- power-domain-names
- iommus
- operating-points-v2
2020-10-02 18:41:43 -05:00
additionalProperties : false
2022-07-06 17:52:21 +03:00
allOf :
- if :
properties :
compatible :
contains :
enum :
- qcom,adreno-gmu-618.0
- qcom,adreno-gmu-630.2
then :
properties :
reg :
items :
- description : Core GMU registers
- description : GMU PDC registers
- description : GMU PDC sequence registers
reg-names :
items :
- const : gmu
- const : gmu_pdc
- const : gmu_pdc_seq
clocks :
items :
- description : GMU clock
- description : GPU CX clock
- description : GPU AXI clock
- description : GPU MEMNOC clock
clock-names :
items :
- const : gmu
- const : cxo
- const : axi
- const : memnoc
- if :
properties :
compatible :
contains :
enum :
- qcom,adreno-gmu-635.0
2023-02-09 15:38:34 +02:00
- qcom,adreno-gmu-660.1
2022-07-06 17:52:21 +03:00
then :
properties :
reg :
items :
- description : Core GMU registers
- description : Resource controller registers
- description : GMU PDC registers
reg-names :
items :
- const : gmu
- const : rscc
- const : gmu_pdc
clocks :
items :
- description : GMU clock
- description : GPU CX clock
- description : GPU AXI clock
- description : GPU MEMNOC clock
- description : GPU AHB clock
- description : GPU HUB CX clock
- description : GPU SMMU vote clock
clock-names :
items :
- const : gmu
- const : cxo
- const : axi
- const : memnoc
- const : ahb
- const : hub
- const : smmu_vote
- if :
properties :
compatible :
contains :
enum :
- qcom,adreno-gmu-640.1
then :
properties :
reg :
items :
- description : Core GMU registers
- description : GMU PDC registers
- description : GMU PDC sequence registers
reg-names :
items :
- const : gmu
- const : gmu_pdc
- const : gmu_pdc_seq
- if :
properties :
compatible :
contains :
enum :
- qcom,adreno-gmu-650.2
then :
properties :
reg :
items :
- description : Core GMU registers
- description : Resource controller registers
- description : GMU PDC registers
- description : GMU PDC sequence registers
reg-names :
items :
- const : gmu
- const : rscc
- const : gmu_pdc
- const : gmu_pdc_seq
- if :
properties :
compatible :
contains :
enum :
- qcom,adreno-gmu-640.1
- qcom,adreno-gmu-650.2
then :
properties :
clocks :
items :
- description : GPU AHB clock
- description : GMU clock
- description : GPU CX clock
- description : GPU AXI clock
- description : GPU MEMNOC clock
clock-names :
items :
- const : ahb
- const : gmu
- const : cxo
- const : axi
- const : memnoc
2020-03-19 21:36:10 -06:00
examples :
2020-04-20 21:24:47 -05:00
- |
#include <dt-bindings/clock/qcom,gpucc-sdm845.h>
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
2020-03-19 21:36:10 -06:00
2020-04-20 21:24:47 -05:00
gmu : gmu@506a000 {
2020-03-19 21:36:10 -06:00
compatible="qcom,adreno-gmu-630.2", "qcom,adreno-gmu";
reg = <0x506a000 0x30000>,
<0xb280000 0x10000>,
<0xb480000 0x10000>;
reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq";
clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
<&gpucc GPU_CC_CXO_CLK>,
<&gcc GCC_DDRSS_GPU_AXI_CLK>,
<&gcc GCC_GPU_MEMNOC_GFX_CLK>;
clock-names = "gmu", "cxo", "axi", "memnoc";
interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "hfi", "gmu";
power-domains = <&gpucc GPU_CX_GDSC>,
<&gpucc GPU_GX_GDSC>;
power-domain-names = "cx", "gx";
iommus = <&adreno_smmu 5>;
operating-points-v2 = <&gmu_opp_table>;
2020-04-20 21:24:47 -05:00
};