mfd: vexpress: Convert custom func API to regmap
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / arm / vexpress-sysreg.txt
1 ARM Versatile Express system registers
2 --------------------------------------
3
4 This is a system control registers block, providing multiple low level
5 platform functions like board detection and identification, software
6 interrupt generation, MMC and NOR Flash control etc.
7
8 Required node properties:
9 - compatible value : = "arm,vexpress,sysreg";
10 - reg : physical base address and the size of the registers window
11 - gpio-controller : specifies that the node is a GPIO controller
12 - #gpio-cells : size of the GPIO specifier, should be 2:
13   - first cell is the pseudo-GPIO line number:
14     0 - MMC CARDIN
15     1 - MMC WPROT
16     2 - NOR FLASH WPn
17   - second cell can take standard GPIO flags (currently ignored).
18
19 Example:
20         v2m_sysreg: sysreg@10000000 {
21                 compatible = "arm,vexpress-sysreg";
22                 reg = <0x10000000 0x1000>;
23                 gpio-controller;
24                 #gpio-cells = <2>;
25         };
26
27 This block also can also act a bridge to the platform's configuration
28 bus via "system control" interface, addressing devices with site number,
29 position in the board stack, config controller, function and device
30 numbers - see motherboard's TRM for more details. All configuration
31 controller accessible via this interface must reference the sysreg
32 node via "arm,vexpress,config-bridge" phandle and define appropriate
33 topology properties - see main vexpress node documentation for more
34 details. Each child of such node describes one function and must
35 define the following properties:
36 - compatible value : must be one of (corresponding to the TRM):
37         "arm,vexpress-amp"
38         "arm,vexpress-dvimode"
39         "arm,vexpress-energy"
40         "arm,vexpress-muxfpga"
41         "arm,vexpress-osc"
42         "arm,vexpress-power"
43         "arm,vexpress-reboot"
44         "arm,vexpress-reset"
45         "arm,vexpress-scc"
46         "arm,vexpress-shutdown"
47         "arm,vexpress-temp"
48         "arm,vexpress-volt"
49 - arm,vexpress-sysreg,func : must contain a set of two cells long groups:
50   - first cell of each group defines the function number
51     (eg. 1 for clock generator, 2 for voltage regulators etc.)
52   - second cell of each group defines device number (eg. osc 0,
53     osc 1 etc.)
54   - some functions (eg. energy meter, with its 64 bit long counter)
55     are using more than one function/device number pair
56
57 Example:
58         mcc {
59                 compatible = "arm,vexpress,config-bus";
60                 arm,vexpress,config-bridge = <&v2m_sysreg>;
61
62                 osc@0 {
63                         compatible = "arm,vexpress-osc";
64                         arm,vexpress-sysreg,func = <1 0>;
65                 };
66
67                 energy@0 {
68                         compatible = "arm,vexpress-energy";
69                         arm,vexpress-sysreg,func = <13 0>, <13 1>;
70                 };
71         };