1*e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*e67e8565SEmmanuel Vadot%YAML 1.2 3*e67e8565SEmmanuel Vadot--- 4*e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/perf/arm,smmu-v3-pmcg.yaml# 5*e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*e67e8565SEmmanuel Vadot 7*e67e8565SEmmanuel Vadottitle: Arm SMMUv3 Performance Monitor Counter Group 8*e67e8565SEmmanuel Vadot 9*e67e8565SEmmanuel Vadotmaintainers: 10*e67e8565SEmmanuel Vadot - Will Deacon <will@kernel.org> 11*e67e8565SEmmanuel Vadot - Robin Murphy <robin.murphy@arm.com> 12*e67e8565SEmmanuel Vadot 13*e67e8565SEmmanuel Vadotdescription: | 14*e67e8565SEmmanuel Vadot An SMMUv3 may have several Performance Monitor Counter Group (PMCG). 15*e67e8565SEmmanuel Vadot They are standalone performance monitoring units that support both 16*e67e8565SEmmanuel Vadot architected and IMPLEMENTATION DEFINED event counters. 17*e67e8565SEmmanuel Vadot 18*e67e8565SEmmanuel Vadotproperties: 19*e67e8565SEmmanuel Vadot $nodename: 20*e67e8565SEmmanuel Vadot pattern: "^pmu@[0-9a-f]*" 21*e67e8565SEmmanuel Vadot compatible: 22*e67e8565SEmmanuel Vadot oneOf: 23*e67e8565SEmmanuel Vadot - items: 24*e67e8565SEmmanuel Vadot - const: arm,mmu-600-pmcg 25*e67e8565SEmmanuel Vadot - const: arm,smmu-v3-pmcg 26*e67e8565SEmmanuel Vadot - const: arm,smmu-v3-pmcg 27*e67e8565SEmmanuel Vadot 28*e67e8565SEmmanuel Vadot reg: 29*e67e8565SEmmanuel Vadot items: 30*e67e8565SEmmanuel Vadot - description: Register page 0 31*e67e8565SEmmanuel Vadot - description: Register page 1, if SMMU_PMCG_CFGR.RELOC_CTRS = 1 32*e67e8565SEmmanuel Vadot minItems: 1 33*e67e8565SEmmanuel Vadot 34*e67e8565SEmmanuel Vadot interrupts: 35*e67e8565SEmmanuel Vadot maxItems: 1 36*e67e8565SEmmanuel Vadot 37*e67e8565SEmmanuel Vadot msi-parent: true 38*e67e8565SEmmanuel Vadot 39*e67e8565SEmmanuel Vadotrequired: 40*e67e8565SEmmanuel Vadot - compatible 41*e67e8565SEmmanuel Vadot - reg 42*e67e8565SEmmanuel Vadot 43*e67e8565SEmmanuel VadotanyOf: 44*e67e8565SEmmanuel Vadot - required: 45*e67e8565SEmmanuel Vadot - interrupts 46*e67e8565SEmmanuel Vadot - required: 47*e67e8565SEmmanuel Vadot - msi-parent 48*e67e8565SEmmanuel Vadot 49*e67e8565SEmmanuel VadotadditionalProperties: false 50*e67e8565SEmmanuel Vadot 51*e67e8565SEmmanuel Vadotexamples: 52*e67e8565SEmmanuel Vadot - | 53*e67e8565SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 54*e67e8565SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 55*e67e8565SEmmanuel Vadot 56*e67e8565SEmmanuel Vadot pmu@2b420000 { 57*e67e8565SEmmanuel Vadot compatible = "arm,smmu-v3-pmcg"; 58*e67e8565SEmmanuel Vadot reg = <0x2b420000 0x1000>, 59*e67e8565SEmmanuel Vadot <0x2b430000 0x1000>; 60*e67e8565SEmmanuel Vadot interrupts = <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>; 61*e67e8565SEmmanuel Vadot msi-parent = <&its 0xff0000>; 62*e67e8565SEmmanuel Vadot }; 63*e67e8565SEmmanuel Vadot 64*e67e8565SEmmanuel Vadot pmu@2b440000 { 65*e67e8565SEmmanuel Vadot compatible = "arm,smmu-v3-pmcg"; 66*e67e8565SEmmanuel Vadot reg = <0x2b440000 0x1000>, 67*e67e8565SEmmanuel Vadot <0x2b450000 0x1000>; 68*e67e8565SEmmanuel Vadot interrupts = <GIC_SPI 81 IRQ_TYPE_EDGE_RISING>; 69*e67e8565SEmmanuel Vadot msi-parent = <&its 0xff0000>; 70*e67e8565SEmmanuel Vadot }; 71