xref: /freebsd/sys/contrib/device-tree/Bindings/arm/vexpress-sysreg.txt (revision d4eeb02986980bf33dd56c41ceb9fc5f180c0d47)
1ARM Versatile Express system registers
2--------------------------------------
3
4This is a system control registers block, providing multiple low level
5platform functions like board detection and identification, software
6interrupt generation, MMC and NOR Flash control etc.
7
8Required node properties:
9- compatible value : = "arm,vexpress,sysreg";
10- reg : physical base address and the size of the registers window
11
12Deprecated properties, replaced by GPIO subnodes (see below):
13- gpio-controller : specifies that the node is a GPIO controller
14- #gpio-cells : size of the GPIO specifier, should be 2:
15  - first cell is the pseudo-GPIO line number:
16    0 - MMC CARDIN
17    1 - MMC WPROT
18    2 - NOR FLASH WPn
19  - second cell can take standard GPIO flags (currently ignored).
20
21Control registers providing pseudo-GPIO lines must be represented
22by subnodes, each of them requiring the following properties:
23- compatible value : one of
24			"arm,vexpress-sysreg,sys_led"
25			"arm,vexpress-sysreg,sys_mci"
26			"arm,vexpress-sysreg,sys_flash"
27- gpio-controller : makes the node a GPIO controller
28- #gpio-cells : size of the GPIO specifier, must be 2:
29  - first cell is the function number:
30    - for sys_led : 0..7 = LED 0..7
31    - for sys_mci : 0 = MMC CARDIN, 1 = MMC WPROT
32    - for sys_flash : 0 = NOR FLASH WPn
33  - second cell can take standard GPIO flags (currently ignored).
34
35Example:
36	v2m_sysreg: sysreg@10000000 {
37 		compatible = "arm,vexpress-sysreg";
38 		reg = <0x10000000 0x1000>;
39
40		v2m_led_gpios: sys_led@8 {
41			compatible = "arm,vexpress-sysreg,sys_led";
42			gpio-controller;
43			#gpio-cells = <2>;
44		};
45
46		v2m_mmc_gpios: sys_mci@48 {
47			compatible = "arm,vexpress-sysreg,sys_mci";
48			gpio-controller;
49			#gpio-cells = <2>;
50		};
51
52		v2m_flash_gpios: sys_flash@4c {
53			compatible = "arm,vexpress-sysreg,sys_flash";
54			gpio-controller;
55			#gpio-cells = <2>;
56		};
57 	};
58
59This block also can also act a bridge to the platform's configuration
60bus via "system control" interface, addressing devices with site number,
61position in the board stack, config controller, function and device
62numbers - see motherboard's TRM for more details. All configuration
63controller accessible via this interface must reference the sysreg
64node via "arm,vexpress,config-bridge" phandle and define appropriate
65topology properties - see main vexpress node documentation for more
66details. Each child of such node describes one function and must
67define the following properties:
68- compatible value : must be one of (corresponding to the TRM):
69	"arm,vexpress-amp"
70	"arm,vexpress-dvimode"
71	"arm,vexpress-energy"
72	"arm,vexpress-muxfpga"
73	"arm,vexpress-osc"
74	"arm,vexpress-power"
75	"arm,vexpress-reboot"
76	"arm,vexpress-reset"
77	"arm,vexpress-scc"
78	"arm,vexpress-shutdown"
79	"arm,vexpress-temp"
80	"arm,vexpress-volt"
81- arm,vexpress-sysreg,func : must contain a set of two cells long groups:
82  - first cell of each group defines the function number
83    (eg. 1 for clock generator, 2 for voltage regulators etc.)
84  - second cell of each group defines device number (eg. osc 0,
85    osc 1 etc.)
86  - some functions (eg. energy meter, with its 64 bit long counter)
87    are using more than one function/device number pair
88
89Example:
90	mcc {
91		compatible = "arm,vexpress,config-bus";
92		arm,vexpress,config-bridge = <&v2m_sysreg>;
93
94		osc@0 {
95			compatible = "arm,vexpress-osc";
96			arm,vexpress-sysreg,func = <1 0>;
97		};
98
99		energy@0 {
100			compatible = "arm,vexpress-energy";
101			arm,vexpress-sysreg,func = <13 0>, <13 1>;
102		};
103	};
104