# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/arm,cci-400.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ARM CCI Cache Coherent Interconnect Device Tree Binding

maintainers:
  - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

description: >
  ARM multi-cluster systems maintain intra-cluster coherency through a cache
  coherent interconnect (CCI) that is capable of monitoring bus transactions
  and manage coherency, TLB invalidations and memory barriers.

  It allows snooping and distributed virtual memory message broadcast across
  clusters, through memory mapped interface, with a global control register
  space and multiple sets of interface control registers, one per slave
  interface.

properties:
  $nodename:
    pattern: "^cci(@[0-9a-f]+)?$"

  compatible:
    enum:
      - arm,cci-400
      - arm,cci-500
      - arm,cci-550

  reg:
    maxItems: 1
    description: >
      Specifies base physical address of CCI control registers common to all
      interfaces.

  "#address-cells": true
  "#size-cells": true
  ranges: true

patternProperties:
  "^slave-if@[0-9a-f]+$":
    type: object

    properties:
      compatible:
        const: arm,cci-400-ctrl-if

      interface-type:
        enum:
          - ace
          - ace-lite

      reg:
        maxItems: 1

    required:
      - compatible
      - interface-type
      - reg

    additionalProperties: false

  "^pmu@[0-9a-f]+$":
    type: object

    properties:
      compatible:
        oneOf:
          - const: arm,cci-400-pmu,r0
          - const: arm,cci-400-pmu,r1
          - const: arm,cci-400-pmu
            deprecated: true
            description: >
              Permitted only where OS has secure access to CCI registers
          - const: arm,cci-500-pmu,r0
          - const: arm,cci-550-pmu,r0

      interrupts:
        minItems: 1
        maxItems: 8
        description: >
          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.

      reg:
        maxItems: 1

    required:
      - compatible
      - interrupts
      - reg

    additionalProperties: false

required:
  - "#address-cells"
  - "#size-cells"
  - compatible
  - ranges
  - reg

additionalProperties: false

examples:
  - |
      / {
          #address-cells = <2>;
          #size-cells = <2>;

          compatible = "arm,vexpress,v2p-ca15_a7", "arm,vexpress";
          model = "V2P-CA15_CA7";
          arm,hbi = <0x249>;
          interrupt-parent = <&gic>;

          gic: interrupt-controller {
              interrupt-controller;
              #interrupt-cells = <3>;
          };

          /*
           * This CCI node corresponds to a CCI component whose control
           * registers sits at address 0x000000002c090000.
           *
           * CCI slave interface @0x000000002c091000 is connected to dma
           * controller dma0.
           *
           * CCI slave interface @0x000000002c094000 is connected to CPUs
           * {CPU0, CPU1};
           *
           * CCI slave interface @0x000000002c095000 is connected to CPUs
           * {CPU2, CPU3};
           */

          cpus {
              #size-cells = <0>;
              #address-cells = <1>;

              CPU0: cpu@0 {
                  device_type = "cpu";
                  compatible = "arm,cortex-a15";
                  cci-control-port = <&cci_control1>;
                  reg = <0x0>;
              };

              CPU1: cpu@1 {
                  device_type = "cpu";
                  compatible = "arm,cortex-a15";
                  cci-control-port = <&cci_control1>;
                  reg = <0x1>;
              };

              CPU2: cpu@100 {
                  device_type = "cpu";
                  compatible = "arm,cortex-a7";
                  cci-control-port = <&cci_control2>;
                  reg = <0x100>;
              };

              CPU3: cpu@101 {
                  device_type = "cpu";
                  compatible = "arm,cortex-a7";
                  cci-control-port = <&cci_control2>;
                  reg = <0x101>;
              };
          };

          cci@2c090000 {
              compatible = "arm,cci-400";
              #address-cells = <1>;
              #size-cells = <1>;
              reg = <0x0 0x2c090000 0 0x1000>;
              ranges = <0x0 0x0 0x2c090000 0x10000>;

              cci_control0: slave-if@1000 {
                  compatible = "arm,cci-400-ctrl-if";
                  interface-type = "ace-lite";
                  reg = <0x1000 0x1000>;
              };

              cci_control1: slave-if@4000 {
                  compatible = "arm,cci-400-ctrl-if";
                  interface-type = "ace";
                  reg = <0x4000 0x1000>;
              };

              cci_control2: slave-if@5000 {
                  compatible = "arm,cci-400-ctrl-if";
                  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>;
              };
          };
      };

...
