marvell,berlin.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. Marvell Berlin SoC Family Device Tree Bindings
  2. ---------------------------------------------------------------
  3. Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
  4. shall have the following properties:
  5. * Required root node properties:
  6. compatible: must contain "marvell,berlin"
  7. In addition, the above compatible shall be extended with the specific
  8. SoC and board used. Currently known SoC compatibles are:
  9. "marvell,berlin2" for Marvell Armada 1500 (BG2, 88DE3100),
  10. "marvell,berlin2cd" for Marvell Armada 1500-mini (BG2CD, 88DE3005)
  11. "marvell,berlin2ct" for Marvell Armada ? (BG2CT, 88DE????)
  12. "marvell,berlin2q" for Marvell Armada 1500-pro (BG2Q, 88DE3114)
  13. "marvell,berlin3" for Marvell Armada ? (BG3, 88DE????)
  14. * Example:
  15. / {
  16. model = "Sony NSZ-GS7";
  17. compatible = "sony,nsz-gs7", "marvell,berlin2", "marvell,berlin";
  18. ...
  19. }
  20. * Marvell Berlin CPU control bindings
  21. CPU control register allows various operations on CPUs, like resetting them
  22. independently.
  23. Required properties:
  24. - compatible: should be "marvell,berlin-cpu-ctrl"
  25. - reg: address and length of the register set
  26. Example:
  27. cpu-ctrl@f7dd0000 {
  28. compatible = "marvell,berlin-cpu-ctrl";
  29. reg = <0xf7dd0000 0x10000>;
  30. };
  31. * Marvell Berlin2 chip control binding
  32. Marvell Berlin SoCs have a chip control register set providing several
  33. individual registers dealing with pinmux, padmux, clock, reset, and secondary
  34. CPU boot address. Unfortunately, the individual registers are spread among the
  35. chip control registers, so there should be a single DT node only providing the
  36. different functions which are described below.
  37. Required properties:
  38. - compatible: shall be one of
  39. "marvell,berlin2-chip-ctrl" for BG2
  40. "marvell,berlin2cd-chip-ctrl" for BG2CD
  41. "marvell,berlin2q-chip-ctrl" for BG2Q
  42. - reg: address and length of following register sets for
  43. BG2/BG2CD: chip control register set
  44. BG2Q: chip control register set and cpu pll registers
  45. * Marvell Berlin2 system control binding
  46. Marvell Berlin SoCs have a system control register set providing several
  47. individual registers dealing with pinmux, padmux, and reset.
  48. Required properties:
  49. - compatible: should be one of
  50. "marvell,berlin2-system-ctrl" for BG2
  51. "marvell,berlin2cd-system-ctrl" for BG2CD
  52. "marvell,berlin2q-system-ctrl" for BG2Q
  53. - reg: address and length of the system control register set
  54. * Clock provider binding
  55. As clock related registers are spread among the chip control registers, the
  56. chip control node also provides the clocks. Marvell Berlin2 (BG2, BG2CD, BG2Q)
  57. SoCs share the same IP for PLLs and clocks, with some minor differences in
  58. features and register layout.
  59. Required properties:
  60. - #clock-cells: shall be set to 1
  61. - clocks: clock specifiers referencing the core clock input clocks
  62. - clock-names: array of strings describing the input clock specifiers above.
  63. Allowed clock-names for the reference clocks are
  64. "refclk" for the SoCs osciallator input on all SoCs,
  65. and SoC-specific input clocks for
  66. BG2/BG2CD: "video_ext0" for the external video clock input
  67. Clocks provided by core clocks shall be referenced by a clock specifier
  68. indexing one of the provided clocks. Refer to dt-bindings/clock/berlin<soc>.h
  69. for the corresponding index mapping.
  70. * Pin controller binding
  71. Pin control registers are part of both register sets, chip control and system
  72. control. The pins controlled are organized in groups, so no actual pin
  73. information is needed.
  74. A pin-controller node should contain subnodes representing the pin group
  75. configurations, one per function. Each subnode has the group name and the muxing
  76. function used.
  77. Be aware the Marvell Berlin datasheets use the keyword 'mode' for what is called
  78. a 'function' in the pin-controller subsystem.
  79. Required subnode-properties:
  80. - groups: a list of strings describing the group names.
  81. - function: a string describing the function used to mux the groups.
  82. Example:
  83. chip: chip-control@ea0000 {
  84. compatible = "marvell,berlin2-chip-ctrl";
  85. #clock-cells = <1>;
  86. reg = <0xea0000 0x400>;
  87. clocks = <&refclk>, <&externaldev 0>;
  88. clock-names = "refclk", "video_ext0";
  89. spi1_pmux: spi1-pmux {
  90. groups = "G0";
  91. function = "spi1";
  92. };
  93. };
  94. sysctrl: system-controller@d000 {
  95. compatible = "marvell,berlin2-system-ctrl";
  96. reg = <0xd000 0x100>;
  97. uart0_pmux: uart0-pmux {
  98. groups = "GSM4";
  99. function = "uart0";
  100. };
  101. uart1_pmux: uart1-pmux {
  102. groups = "GSM5";
  103. function = "uart1";
  104. };
  105. uart2_pmux: uart2-pmux {
  106. groups = "GSM3";
  107. function = "uart2";
  108. };
  109. };