vexpress-sysreg.txt 3.4 KB

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