18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/arm/pmu.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: ARM Performance Monitor Units
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Mark Rutland <mark.rutland@arm.com>
118c2ecf20Sopenharmony_ci  - Will Deacon <will.deacon@arm.com>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription: |+
148c2ecf20Sopenharmony_ci  ARM cores often have a PMU for counting cpu and cache events like cache misses
158c2ecf20Sopenharmony_ci  and hits. The interface to the PMU is part of the ARM ARM. The ARM PMU
168c2ecf20Sopenharmony_ci  representation in the device tree should be done as under:-
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciproperties:
198c2ecf20Sopenharmony_ci  compatible:
208c2ecf20Sopenharmony_ci    items:
218c2ecf20Sopenharmony_ci      - enum:
228c2ecf20Sopenharmony_ci          - apm,potenza-pmu
238c2ecf20Sopenharmony_ci          - arm,armv8-pmuv3 # Only for s/w models
248c2ecf20Sopenharmony_ci          - arm,arm1136-pmu
258c2ecf20Sopenharmony_ci          - arm,arm1176-pmu
268c2ecf20Sopenharmony_ci          - arm,arm11mpcore-pmu
278c2ecf20Sopenharmony_ci          - arm,cortex-a5-pmu
288c2ecf20Sopenharmony_ci          - arm,cortex-a7-pmu
298c2ecf20Sopenharmony_ci          - arm,cortex-a8-pmu
308c2ecf20Sopenharmony_ci          - arm,cortex-a9-pmu
318c2ecf20Sopenharmony_ci          - arm,cortex-a12-pmu
328c2ecf20Sopenharmony_ci          - arm,cortex-a15-pmu
338c2ecf20Sopenharmony_ci          - arm,cortex-a17-pmu
348c2ecf20Sopenharmony_ci          - arm,cortex-a32-pmu
358c2ecf20Sopenharmony_ci          - arm,cortex-a34-pmu
368c2ecf20Sopenharmony_ci          - arm,cortex-a35-pmu
378c2ecf20Sopenharmony_ci          - arm,cortex-a53-pmu
388c2ecf20Sopenharmony_ci          - arm,cortex-a55-pmu
398c2ecf20Sopenharmony_ci          - arm,cortex-a57-pmu
408c2ecf20Sopenharmony_ci          - arm,cortex-a65-pmu
418c2ecf20Sopenharmony_ci          - arm,cortex-a72-pmu
428c2ecf20Sopenharmony_ci          - arm,cortex-a73-pmu
438c2ecf20Sopenharmony_ci          - arm,cortex-a75-pmu
448c2ecf20Sopenharmony_ci          - arm,cortex-a76-pmu
458c2ecf20Sopenharmony_ci          - arm,cortex-a77-pmu
468c2ecf20Sopenharmony_ci          - arm,neoverse-e1-pmu
478c2ecf20Sopenharmony_ci          - arm,neoverse-n1-pmu
488c2ecf20Sopenharmony_ci          - brcm,vulcan-pmu
498c2ecf20Sopenharmony_ci          - cavium,thunder-pmu
508c2ecf20Sopenharmony_ci          - qcom,krait-pmu
518c2ecf20Sopenharmony_ci          - qcom,scorpion-pmu
528c2ecf20Sopenharmony_ci          - qcom,scorpion-mp-pmu
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci  interrupts:
558c2ecf20Sopenharmony_ci    # Don't know how many CPUs, so no constraints to specify
568c2ecf20Sopenharmony_ci    description: 1 per-cpu interrupt (PPI) or 1 interrupt per core.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  interrupt-affinity:
598c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
608c2ecf20Sopenharmony_ci    description:
618c2ecf20Sopenharmony_ci      When using SPIs, specifies a list of phandles to CPU
628c2ecf20Sopenharmony_ci      nodes corresponding directly to the affinity of
638c2ecf20Sopenharmony_ci      the SPIs listed in the interrupts property.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci      When using a PPI, specifies a list of phandles to CPU
668c2ecf20Sopenharmony_ci      nodes corresponding to the set of CPUs which have
678c2ecf20Sopenharmony_ci      a PMU of this type signalling the PPI listed in the
688c2ecf20Sopenharmony_ci      interrupts property, unless this is already specified
698c2ecf20Sopenharmony_ci      by the PPI interrupt specifier itself (in which case
708c2ecf20Sopenharmony_ci      the interrupt-affinity property shouldn't be present).
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci      This property should be present when there is more than
738c2ecf20Sopenharmony_ci      a single SPI.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci  qcom,no-pc-write:
768c2ecf20Sopenharmony_ci    type: boolean
778c2ecf20Sopenharmony_ci    description:
788c2ecf20Sopenharmony_ci      Indicates that this PMU doesn't support the 0xc and 0xd events.
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci  secure-reg-access:
818c2ecf20Sopenharmony_ci    type: boolean
828c2ecf20Sopenharmony_ci    description:
838c2ecf20Sopenharmony_ci      Indicates that the ARMv7 Secure Debug Enable Register
848c2ecf20Sopenharmony_ci      (SDER) is accessible. This will cause the driver to do
858c2ecf20Sopenharmony_ci      any setup required that is only possible in ARMv7 secure
868c2ecf20Sopenharmony_ci      state. If not present the ARMv7 SDER will not be touched,
878c2ecf20Sopenharmony_ci      which means the PMU may fail to operate unless external
888c2ecf20Sopenharmony_ci      code (bootloader or security monitor) has performed the
898c2ecf20Sopenharmony_ci      appropriate initialisation. Note that this property is
908c2ecf20Sopenharmony_ci      not valid for non-ARMv7 CPUs or ARMv7 CPUs booting Linux
918c2ecf20Sopenharmony_ci      in Non-secure state.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_cirequired:
948c2ecf20Sopenharmony_ci  - compatible
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciadditionalProperties: false
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci...
99