Commit | Line | Data |
---|---|---|
88e0abcd PM |
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 | |
974cc7b9 PM |
11 | |
12 | Deprecated properties, replaced by GPIO subnodes (see below): | |
88e0abcd PM |
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 | ||
974cc7b9 PM |
21 | Control registers providing pseudo-GPIO lines must be represented |
22 | by 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 | ||
88e0abcd PM |
35 | Example: |
36 | v2m_sysreg: sysreg@10000000 { | |
37 | compatible = "arm,vexpress-sysreg"; | |
38 | reg = <0x10000000 0x1000>; | |
974cc7b9 PM |
39 | |
40 | v2m_led_gpios: sys_led@08 { | |
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 | }; | |
88e0abcd PM |
57 | }; |
58 | ||
59 | This block also can also act a bridge to the platform's configuration | |
60 | bus via "system control" interface, addressing devices with site number, | |
61 | position in the board stack, config controller, function and device | |
3b9334ac PM |
62 | numbers - see motherboard's TRM for more details. All configuration |
63 | controller accessible via this interface must reference the sysreg | |
64 | node via "arm,vexpress,config-bridge" phandle and define appropriate | |
65 | topology properties - see main vexpress node documentation for more | |
66 | details. Each child of such node describes one function and must | |
67 | define 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 | |
88e0abcd PM |
88 | |
89 | Example: | |
90 | mcc { | |
3b9334ac | 91 | compatible = "arm,vexpress,config-bus"; |
88e0abcd PM |
92 | arm,vexpress,config-bridge = <&v2m_sysreg>; |
93 | ||
94 | osc@0 { | |
95 | compatible = "arm,vexpress-osc"; | |
96 | arm,vexpress-sysreg,func = <1 0>; | |
97 | }; | |
3b9334ac PM |
98 | |
99 | energy@0 { | |
100 | compatible = "arm,vexpress-energy"; | |
101 | arm,vexpress-sysreg,func = <13 0>, <13 1>; | |
102 | }; | |
88e0abcd | 103 | }; |