|  | 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@08 { | 
|  | 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>; | 
|  | }; | 
|  | }; |