ARM Integrator/AP (Application Platform) and Integrator/CP (Compact Platform)
-----------------------------------------------------------------------------
ARM's oldest Linux-supported platform with connectors for different core
tiles of ARMv4, ARMv5 and ARMv6 type.

Required properties (in root node):
	compatible = "arm,integrator-ap";  /* Application Platform */
	compatible = "arm,integrator-cp";  /* Compact Platform */

FPGA type interrupt controllers, see the versatile-fpga-irq binding doc.

Required nodes:

- core-module: the root node to the Integrator platforms must have
  a core-module with regs and the compatible string
  "arm,core-module-integrator"

  Required properties for the core module:
  - regs: the location and size of the core module registers, one
    range of 0x200 bytes.

- syscon: the root node of the Integrator platforms must have a
  system controller node pointong to the control registers,
  with the compatible string
  "arm,integrator-ap-syscon"
  "arm,integrator-cp-syscon"
  respectively.

  Required properties for the system controller:
  - regs: the location and size of the system controller registers,
    one range of 0x100 bytes.

  Required properties for the AP system controller:
  - interrupts: the AP syscon node must include the logical module
    interrupts, stated in order of module instance <module 0>,
    <module 1>, <module 2> ... for the CP system controller this
    is not required not of any use.

/dts-v1/;
/include/ "integrator.dtsi"

/ {
	model = "ARM Integrator/AP";
	compatible = "arm,integrator-ap";

	core-module@10000000 {
		compatible = "arm,core-module-integrator";
		reg = <0x10000000 0x200>;
	};

	syscon {
		compatible = "arm,integrator-ap-syscon";
		reg = <0x11000000 0x100>;
		interrupt-parent = <&pic>;
		/* These are the logic module IRQs */
		interrupts = <9>, <10>, <11>, <12>;
	};
};


ARM Versatile Application and Platform Baseboards
-------------------------------------------------
ARM's development hardware platform with connectors for customizable
core tiles.  The hardware configuration of the Versatile boards is
highly customizable.

Required properties (in root node):
	compatible = "arm,versatile-ab";  /* Application baseboard */
	compatible = "arm,versatile-pb";  /* Platform baseboard */

Interrupt controllers:
- VIC required properties:
	compatible = "arm,versatile-vic";
	interrupt-controller;
	#interrupt-cells = <1>;

- SIC required properties:
	compatible = "arm,versatile-sic";
	interrupt-controller;
	#interrupt-cells = <1>;
