ARM Versatile Express system registers
--------------------------------------

This is a system control registers block, providing multiple low level
platform functions like board detection and identification, software
interrupt generation, MMC and NOR Flash control etc.

Required node properties:
- compatible value : = "arm,vexpress,sysreg";
- reg : physical base address and the size of the registers window

Deprecated properties, replaced by GPIO subnodes (see below):
- gpio-controller : specifies that the node is a GPIO controller
- #gpio-cells : size of the GPIO specifier, should be 2:
  - first cell is the pseudo-GPIO line number:
    0 - MMC CARDIN
    1 - MMC WPROT
    2 - NOR FLASH WPn
  - second cell can take standard GPIO flags (currently ignored).

Control registers providing pseudo-GPIO lines must be represented
by subnodes, each of them requiring the following properties:
- compatible value : one of
			"arm,vexpress-sysreg,sys_led"
			"arm,vexpress-sysreg,sys_mci"
			"arm,vexpress-sysreg,sys_flash"
- gpio-controller : makes the node a GPIO controller
- #gpio-cells : size of the GPIO specifier, must be 2:
  - first cell is the function number:
    - for sys_led : 0..7 = LED 0..7
    - for sys_mci : 0 = MMC CARDIN, 1 = MMC WPROT
    - for sys_flash : 0 = NOR FLASH WPn
  - second cell can take standard GPIO flags (currently ignored).

Example:
	v2m_sysreg: sysreg@10000000 {
 		compatible = "arm,vexpress-sysreg";
 		reg = <0x10000000 0x1000>;

		v2m_led_gpios: sys_led@8 {
			compatible = "arm,vexpress-sysreg,sys_led";
			gpio-controller;
			#gpio-cells = <2>;
		};

		v2m_mmc_gpios: sys_mci@48 {
			compatible = "arm,vexpress-sysreg,sys_mci";
			gpio-controller;
			#gpio-cells = <2>;
		};

		v2m_flash_gpios: sys_flash@4c {
			compatible = "arm,vexpress-sysreg,sys_flash";
			gpio-controller;
			#gpio-cells = <2>;
		};
 	};

This block also can also act a bridge to the platform's configuration
bus via "system control" interface, addressing devices with site number,
position in the board stack, config controller, function and device
numbers - see motherboard's TRM for more details. All configuration
controller accessible via this interface must reference the sysreg
node via "arm,vexpress,config-bridge" phandle and define appropriate
topology properties - see main vexpress node documentation for more
details. Each child of such node describes one function and must
define the following properties:
- compatible value : must be one of (corresponding to the TRM):
	"arm,vexpress-amp"
	"arm,vexpress-dvimode"
	"arm,vexpress-energy"
	"arm,vexpress-muxfpga"
	"arm,vexpress-osc"
	"arm,vexpress-power"
	"arm,vexpress-reboot"
	"arm,vexpress-reset"
	"arm,vexpress-scc"
	"arm,vexpress-shutdown"
	"arm,vexpress-temp"
	"arm,vexpress-volt"
- arm,vexpress-sysreg,func : must contain a set of two cells long groups:
  - first cell of each group defines the function number
    (eg. 1 for clock generator, 2 for voltage regulators etc.)
  - second cell of each group defines device number (eg. osc 0,
    osc 1 etc.)
  - some functions (eg. energy meter, with its 64 bit long counter)
    are using more than one function/device number pair

Example:
	mcc {
		compatible = "arm,vexpress,config-bus";
		arm,vexpress,config-bridge = <&v2m_sysreg>;

		osc@0 {
			compatible = "arm,vexpress-osc";
			arm,vexpress-sysreg,func = <1 0>;
		};

		energy@0 {
			compatible = "arm,vexpress-energy";
			arm,vexpress-sysreg,func = <13 0>, <13 1>;
		};
	};
