* 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. When omitted
	the module is considered to belong to CPU0.

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>;
	};
