1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# Copyright 2019-2020, The Linux Foundation, All Rights Reserved 3*4882a593Smuzhiyun%YAML 1.2 4*4882a593Smuzhiyun--- 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/display/msm/gmu.yaml#" 7*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 8*4882a593Smuzhiyun 9*4882a593Smuzhiyuntitle: Devicetree bindings for the GMU attached to certain Adreno GPUs 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunmaintainers: 12*4882a593Smuzhiyun - Rob Clark <robdclark@gmail.com> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyundescription: | 15*4882a593Smuzhiyun These bindings describe the Graphics Management Unit (GMU) that is attached 16*4882a593Smuzhiyun to members of the Adreno A6xx GPU family. The GMU provides on-device power 17*4882a593Smuzhiyun management and support to improve power efficiency and reduce the load on 18*4882a593Smuzhiyun the CPU. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunproperties: 21*4882a593Smuzhiyun compatible: 22*4882a593Smuzhiyun items: 23*4882a593Smuzhiyun - enum: 24*4882a593Smuzhiyun - qcom,adreno-gmu-630.2 25*4882a593Smuzhiyun - const: qcom,adreno-gmu 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun reg: 28*4882a593Smuzhiyun items: 29*4882a593Smuzhiyun - description: Core GMU registers 30*4882a593Smuzhiyun - description: GMU PDC registers 31*4882a593Smuzhiyun - description: GMU PDC sequence registers 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun reg-names: 34*4882a593Smuzhiyun items: 35*4882a593Smuzhiyun - const: gmu 36*4882a593Smuzhiyun - const: gmu_pdc 37*4882a593Smuzhiyun - const: gmu_pdc_seq 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun clocks: 40*4882a593Smuzhiyun items: 41*4882a593Smuzhiyun - description: GMU clock 42*4882a593Smuzhiyun - description: GPU CX clock 43*4882a593Smuzhiyun - description: GPU AXI clock 44*4882a593Smuzhiyun - description: GPU MEMNOC clock 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun clock-names: 47*4882a593Smuzhiyun items: 48*4882a593Smuzhiyun - const: gmu 49*4882a593Smuzhiyun - const: cxo 50*4882a593Smuzhiyun - const: axi 51*4882a593Smuzhiyun - const: memnoc 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun interrupts: 54*4882a593Smuzhiyun items: 55*4882a593Smuzhiyun - description: GMU HFI interrupt 56*4882a593Smuzhiyun - description: GMU interrupt 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun interrupt-names: 60*4882a593Smuzhiyun items: 61*4882a593Smuzhiyun - const: hfi 62*4882a593Smuzhiyun - const: gmu 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun power-domains: 65*4882a593Smuzhiyun items: 66*4882a593Smuzhiyun - description: CX power domain 67*4882a593Smuzhiyun - description: GX power domain 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun power-domain-names: 70*4882a593Smuzhiyun items: 71*4882a593Smuzhiyun - const: cx 72*4882a593Smuzhiyun - const: gx 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun iommus: 75*4882a593Smuzhiyun maxItems: 1 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun operating-points-v2: true 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunrequired: 80*4882a593Smuzhiyun - compatible 81*4882a593Smuzhiyun - reg 82*4882a593Smuzhiyun - reg-names 83*4882a593Smuzhiyun - clocks 84*4882a593Smuzhiyun - clock-names 85*4882a593Smuzhiyun - interrupts 86*4882a593Smuzhiyun - interrupt-names 87*4882a593Smuzhiyun - power-domains 88*4882a593Smuzhiyun - power-domain-names 89*4882a593Smuzhiyun - iommus 90*4882a593Smuzhiyun - operating-points-v2 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunadditionalProperties: false 93*4882a593Smuzhiyun 94*4882a593Smuzhiyunexamples: 95*4882a593Smuzhiyun - | 96*4882a593Smuzhiyun #include <dt-bindings/clock/qcom,gpucc-sdm845.h> 97*4882a593Smuzhiyun #include <dt-bindings/clock/qcom,gcc-sdm845.h> 98*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/irq.h> 99*4882a593Smuzhiyun #include <dt-bindings/interrupt-controller/arm-gic.h> 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun gmu: gmu@506a000 { 102*4882a593Smuzhiyun compatible="qcom,adreno-gmu-630.2", "qcom,adreno-gmu"; 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun reg = <0x506a000 0x30000>, 105*4882a593Smuzhiyun <0xb280000 0x10000>, 106*4882a593Smuzhiyun <0xb480000 0x10000>; 107*4882a593Smuzhiyun reg-names = "gmu", "gmu_pdc", "gmu_pdc_seq"; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun clocks = <&gpucc GPU_CC_CX_GMU_CLK>, 110*4882a593Smuzhiyun <&gpucc GPU_CC_CXO_CLK>, 111*4882a593Smuzhiyun <&gcc GCC_DDRSS_GPU_AXI_CLK>, 112*4882a593Smuzhiyun <&gcc GCC_GPU_MEMNOC_GFX_CLK>; 113*4882a593Smuzhiyun clock-names = "gmu", "cxo", "axi", "memnoc"; 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, 116*4882a593Smuzhiyun <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; 117*4882a593Smuzhiyun interrupt-names = "hfi", "gmu"; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun power-domains = <&gpucc GPU_CX_GDSC>, 120*4882a593Smuzhiyun <&gpucc GPU_GX_GDSC>; 121*4882a593Smuzhiyun power-domain-names = "cx", "gx"; 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun iommus = <&adreno_smmu 5>; 124*4882a593Smuzhiyun operating-points-v2 = <&gmu_opp_table>; 125*4882a593Smuzhiyun }; 126