1*66d05204SRob Herring# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*66d05204SRob Herring%YAML 1.2
3*66d05204SRob Herring---
4*66d05204SRob Herring$id: http://devicetree.org/schemas/arm/arm,coresight-cpu-debug.yaml#
5*66d05204SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6*66d05204SRob Herring
7*66d05204SRob Herringtitle: CoreSight CPU Debug Component
8*66d05204SRob Herring
9*66d05204SRob Herringmaintainers:
10*66d05204SRob Herring  - Mathieu Poirier <mathieu.poirier@linaro.org>
11*66d05204SRob Herring  - Mike Leach <mike.leach@linaro.org>
12*66d05204SRob Herring  - Leo Yan <leo.yan@linaro.org>
13*66d05204SRob Herring  - Suzuki K Poulose <suzuki.poulose@arm.com>
14*66d05204SRob Herring
15*66d05204SRob Herringdescription: |
16*66d05204SRob Herring  CoreSight CPU debug component are compliant with the ARMv8 architecture
17*66d05204SRob Herring  reference manual (ARM DDI 0487A.k) Chapter 'Part H: External debug'. The
18*66d05204SRob Herring  external debug module is mainly used for two modes: self-hosted debug and
19*66d05204SRob Herring  external debug, and it can be accessed from mmio region from Coresight and
20*66d05204SRob Herring  eventually the debug module connects with CPU for debugging. And the debug
21*66d05204SRob Herring  module provides sample-based profiling extension, which can be used to sample
22*66d05204SRob Herring  CPU program counter, secure state and exception level, etc; usually every CPU
23*66d05204SRob Herring  has one dedicated debug module to be connected.
24*66d05204SRob Herring
25*66d05204SRob Herringselect:
26*66d05204SRob Herring  properties:
27*66d05204SRob Herring    compatible:
28*66d05204SRob Herring      contains:
29*66d05204SRob Herring        const: arm,coresight-cpu-debug
30*66d05204SRob Herring  required:
31*66d05204SRob Herring    - compatible
32*66d05204SRob Herring
33*66d05204SRob HerringallOf:
34*66d05204SRob Herring  - $ref: /schemas/arm/primecell.yaml#
35*66d05204SRob Herring
36*66d05204SRob Herringproperties:
37*66d05204SRob Herring  compatible:
38*66d05204SRob Herring    items:
39*66d05204SRob Herring      - const: arm,coresight-cpu-debug
40*66d05204SRob Herring      - const: arm,primecell
41*66d05204SRob Herring
42*66d05204SRob Herring  reg:
43*66d05204SRob Herring    maxItems: 1
44*66d05204SRob Herring
45*66d05204SRob Herring  clocks:
46*66d05204SRob Herring    maxItems: 1
47*66d05204SRob Herring
48*66d05204SRob Herring  clock-names:
49*66d05204SRob Herring    maxItems: 1
50*66d05204SRob Herring
51*66d05204SRob Herring  cpu:
52*66d05204SRob Herring    description:
53*66d05204SRob Herring      A phandle to the cpu this debug component is bound to.
54*66d05204SRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
55*66d05204SRob Herring
56*66d05204SRob Herring  power-domains:
57*66d05204SRob Herring    maxItems: 1
58*66d05204SRob Herring    description:
59*66d05204SRob Herring      A phandle to the debug power domain if the debug logic has its own
60*66d05204SRob Herring      dedicated power domain. CPU idle states may also need to be separately
61*66d05204SRob Herring      constrained to keep CPU cores powered.
62*66d05204SRob Herring
63*66d05204SRob Herringrequired:
64*66d05204SRob Herring  - compatible
65*66d05204SRob Herring  - reg
66*66d05204SRob Herring  - clocks
67*66d05204SRob Herring  - clock-names
68*66d05204SRob Herring  - cpu
69*66d05204SRob Herring
70*66d05204SRob HerringunevaluatedProperties: false
71*66d05204SRob Herring
72*66d05204SRob Herringexamples:
73*66d05204SRob Herring  - |
74*66d05204SRob Herring    debug@f6590000 {
75*66d05204SRob Herring        compatible = "arm,coresight-cpu-debug", "arm,primecell";
76*66d05204SRob Herring        reg = <0xf6590000 0x1000>;
77*66d05204SRob Herring        clocks = <&sys_ctrl 1>;
78*66d05204SRob Herring        clock-names = "apb_pclk";
79*66d05204SRob Herring        cpu = <&cpu0>;
80*66d05204SRob Herring    };
81*66d05204SRob Herring...
82