Skip to content

Commit

Permalink
Merge tag 'arm-perf-3.13' of git://git.kernel.org/pub/scm/linux/kerne…
Browse files Browse the repository at this point in the history
…l/git/will/linux into next/drivers

From Will Deacon:
Addition of an ARM PMU driver for the CCI-400 coherent interconnect
found on big.LITTLE systems, such as TC2.

This was originally sent for 3.12, but the device-tree bindings hadn't
settled down so here's the improved version for 3.13. I think the code
has benefited from the wait.

* tag 'arm-perf-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
  drivers: CCI: fix the error handle in cci_pmu_probe()
  drivers: CCI: add ARM CCI PMU support
  ARM: dts: Document the CCI PMU DT bindings
  ARM: dts: Improve CCI bindings documentation

Signed-off-by: Kevin Hilman <khilman@linaro.org>
  • Loading branch information
Kevin Hilman committed Oct 14, 2013
2 parents 0397bb8 + fee4f2c commit e85923a
Show file tree
Hide file tree
Showing 2 changed files with 669 additions and 8 deletions.
60 changes: 56 additions & 4 deletions Documentation/devicetree/bindings/arm/cci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,18 @@ specific to ARM.

- reg
Usage: required
Value type: <prop-encoded-array>
Value type: Integer cells. A register entry, expressed as a pair
of cells, containing base and size.
Definition: A standard property. Specifies base physical
address of CCI control registers common to all
interfaces.

- ranges:
Usage: required
Value type: <prop-encoded-array>
Value type: Integer cells. An array of range entries, expressed
as a tuple of cells, containing child address,
parent address and the size of the region in the
child address space.
Definition: A standard property. Follow rules in the ePAPR for
hierarchical bus addressing. CCI interfaces
addresses refer to the parent node addressing
Expand Down Expand Up @@ -74,11 +78,49 @@ specific to ARM.

- reg:
Usage: required
Value type: <prop-encoded-array>
Value type: Integer cells. A register entry, expressed
as a pair of cells, containing base and
size.
Definition: the base address and size of the
corresponding interface programming
registers.

- CCI PMU node

Parent node must be CCI interconnect node.

A CCI pmu node must contain the following properties:

- compatible
Usage: required
Value type: <string>
Definition: must be "arm,cci-400-pmu"

- reg:
Usage: required
Value type: Integer cells. A register entry, expressed
as a pair of cells, containing base and
size.
Definition: the base address and size of the
corresponding interface programming
registers.

- interrupts:
Usage: required
Value type: Integer cells. Array of interrupt specifier
entries, as defined in
../interrupt-controller/interrupts.txt.
Definition: list of counter overflow interrupts, one per
counter. The interrupts must be specified
starting with the cycle counter overflow
interrupt, followed by counter0 overflow
interrupt, counter1 overflow interrupt,...
,counterN overflow interrupt.

The CCI PMU has an interrupt signal for each
counter. The number of interrupts must be
equal to the number of counters.

* CCI interconnect bus masters

Description: masters in the device tree connected to a CCI port
Expand Down Expand Up @@ -144,7 +186,7 @@ Example:
#address-cells = <1>;
#size-cells = <1>;
reg = <0x0 0x2c090000 0 0x1000>;
ranges = <0x0 0x0 0x2c090000 0x6000>;
ranges = <0x0 0x0 0x2c090000 0x10000>;

cci_control0: slave-if@1000 {
compatible = "arm,cci-400-ctrl-if";
Expand All @@ -163,6 +205,16 @@ Example:
interface-type = "ace";
reg = <0x5000 0x1000>;
};

pmu@9000 {
compatible = "arm,cci-400-pmu";
reg = <0x9000 0x5000>;
interrupts = <0 101 4>,
<0 102 4>,
<0 103 4>,
<0 104 4>,
<0 105 4>;
};
};

This CCI node corresponds to a CCI component whose control registers sits
Expand Down
Loading

0 comments on commit e85923a

Please sign in to comment.