forked from mirrors/linux
		
	dt-bindings: arm: Convert CoreSight CPU debug to DT schema
Convert the CoreSight CPU debug binding to DT schema format. Reviewed-by: Leo Yan <leo.yan@linaro.org> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> Link: https://lore.kernel.org/r/20220603011933.3277315-4-robh@kernel.org Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
		
							parent
							
								
									3c15fddf31
								
							
						
					
					
						commit
						66d052047c
					
				
					 3 changed files with 81 additions and 50 deletions
				
			
		| 
						 | 
					@ -0,0 +1,81 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/arm/arm,coresight-cpu-debug.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: CoreSight CPU Debug Component
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Mathieu Poirier <mathieu.poirier@linaro.org>
 | 
				
			||||||
 | 
					  - Mike Leach <mike.leach@linaro.org>
 | 
				
			||||||
 | 
					  - Leo Yan <leo.yan@linaro.org>
 | 
				
			||||||
 | 
					  - Suzuki K Poulose <suzuki.poulose@arm.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description: |
 | 
				
			||||||
 | 
					  CoreSight CPU debug component are compliant with the ARMv8 architecture
 | 
				
			||||||
 | 
					  reference manual (ARM DDI 0487A.k) Chapter 'Part H: External debug'. The
 | 
				
			||||||
 | 
					  external debug module is mainly used for two modes: self-hosted debug and
 | 
				
			||||||
 | 
					  external debug, and it can be accessed from mmio region from Coresight and
 | 
				
			||||||
 | 
					  eventually the debug module connects with CPU for debugging. And the debug
 | 
				
			||||||
 | 
					  module provides sample-based profiling extension, which can be used to sample
 | 
				
			||||||
 | 
					  CPU program counter, secure state and exception level, etc; usually every CPU
 | 
				
			||||||
 | 
					  has one dedicated debug module to be connected.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					select:
 | 
				
			||||||
 | 
					  properties:
 | 
				
			||||||
 | 
					    compatible:
 | 
				
			||||||
 | 
					      contains:
 | 
				
			||||||
 | 
					        const: arm,coresight-cpu-debug
 | 
				
			||||||
 | 
					  required:
 | 
				
			||||||
 | 
					    - compatible
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					allOf:
 | 
				
			||||||
 | 
					  - $ref: /schemas/arm/primecell.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    items:
 | 
				
			||||||
 | 
					      - const: arm,coresight-cpu-debug
 | 
				
			||||||
 | 
					      - const: arm,primecell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  reg:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  clocks:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  clock-names:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cpu:
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      A phandle to the cpu this debug component is bound to.
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  power-domains:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      A phandle to the debug power domain if the debug logic has its own
 | 
				
			||||||
 | 
					      dedicated power domain. CPU idle states may also need to be separately
 | 
				
			||||||
 | 
					      constrained to keep CPU cores powered.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - reg
 | 
				
			||||||
 | 
					  - clocks
 | 
				
			||||||
 | 
					  - clock-names
 | 
				
			||||||
 | 
					  - cpu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unevaluatedProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    debug@f6590000 {
 | 
				
			||||||
 | 
					        compatible = "arm,coresight-cpu-debug", "arm,primecell";
 | 
				
			||||||
 | 
					        reg = <0xf6590000 0x1000>;
 | 
				
			||||||
 | 
					        clocks = <&sys_ctrl 1>;
 | 
				
			||||||
 | 
					        clock-names = "apb_pclk";
 | 
				
			||||||
 | 
					        cpu = <&cpu0>;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
| 
						 | 
					@ -1,49 +0,0 @@
 | 
				
			||||||
* CoreSight CPU Debug Component:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CoreSight CPU debug component are compliant with the ARMv8 architecture
 | 
					 | 
				
			||||||
reference manual (ARM DDI 0487A.k) Chapter 'Part H: External debug'. The
 | 
					 | 
				
			||||||
external debug module is mainly used for two modes: self-hosted debug and
 | 
					 | 
				
			||||||
external debug, and it can be accessed from mmio region from Coresight
 | 
					 | 
				
			||||||
and eventually the debug module connects with CPU for debugging. And the
 | 
					 | 
				
			||||||
debug module provides sample-based profiling extension, which can be used
 | 
					 | 
				
			||||||
to sample CPU program counter, secure state and exception level, etc;
 | 
					 | 
				
			||||||
usually every CPU has one dedicated debug module to be connected.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Required properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- compatible : should be "arm,coresight-cpu-debug"; supplemented with
 | 
					 | 
				
			||||||
               "arm,primecell" since this driver is using the AMBA bus
 | 
					 | 
				
			||||||
	       interface.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- reg : physical base address and length of the register set.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- clocks : the clock associated to this component.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- clock-names : the name of the clock referenced by the code. Since we are
 | 
					 | 
				
			||||||
                using the AMBA framework, the name of the clock providing
 | 
					 | 
				
			||||||
		the interconnect should be "apb_pclk" and the clock is
 | 
					 | 
				
			||||||
		mandatory. The interface between the debug logic and the
 | 
					 | 
				
			||||||
		processor core is clocked by the internal CPU clock, so it
 | 
					 | 
				
			||||||
		is enabled with CPU clock by default.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- cpu : the CPU phandle the debug module is affined to. Do not assume it
 | 
					 | 
				
			||||||
        to default to CPU0 if omitted.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Optional properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- power-domains: a phandle to the debug power domain. We use "power-domains"
 | 
					 | 
				
			||||||
                 binding to turn on the debug logic if it has own dedicated
 | 
					 | 
				
			||||||
		 power domain and if necessary to use "cpuidle.off=1" or
 | 
					 | 
				
			||||||
		 "nohlt" in the kernel command line or sysfs node to
 | 
					 | 
				
			||||||
		 constrain idle states to ensure registers in the CPU power
 | 
					 | 
				
			||||||
		 domain are accessible.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	debug@f6590000 {
 | 
					 | 
				
			||||||
		compatible = "arm,coresight-cpu-debug","arm,primecell";
 | 
					 | 
				
			||||||
		reg = <0 0xf6590000 0 0x1000>;
 | 
					 | 
				
			||||||
		clocks = <&sys_ctrl HI6220_DAPB_CLK>;
 | 
					 | 
				
			||||||
		clock-names = "apb_pclk";
 | 
					 | 
				
			||||||
		cpu = <&cpu0>;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1981,7 +1981,6 @@ L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
 | 
					T:	git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
 | 
				
			||||||
F:	Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 | 
					F:	Documentation/ABI/testing/sysfs-bus-coresight-devices-*
 | 
				
			||||||
F:	Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
 | 
					 | 
				
			||||||
F:	Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 | 
					F:	Documentation/devicetree/bindings/arm/arm,coresight-*.yaml
 | 
				
			||||||
F:	Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 | 
					F:	Documentation/devicetree/bindings/arm/arm,embedded-trace-extension.yaml
 | 
				
			||||||
F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
 | 
					F:	Documentation/devicetree/bindings/arm/arm,trace-buffer-extension.yaml
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue