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>; }; };