Kernel-3.10.0-957.el7_vexpress-sysreg

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
  • 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).

Example:
v2m_sysreg: sysreg@10000000 {
compatible = “arm,vexpress-sysreg”;
reg = <0x10000000 0x1000>;
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.

The node describing a config device must refer to the sysreg node via
“arm,vexpress,config-bridge” phandle (can be also defined in the node’s
parent) and relies on the board topology properties - see main vexpress
node documentation for more details. It must must also define the
following property:

  • arm,vexpress-sysreg,func : must contain two cells:
    • first cell defines function number (eg. 1 for clock generator,
      2 for voltage regulators etc.)
    • device number (eg. osc 0, osc 1 etc.)

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

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