forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.4 KiB
103 lines
3.4 KiB
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@8 { |
|
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>; |
|
}; |
|
};
|
|
|