uniphier-ld20.dtsi 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. /*
  2. * Device Tree Source for UniPhier LD20 SoC
  3. *
  4. * Copyright (C) 2015-2016 Socionext Inc.
  5. * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  6. *
  7. * This file is dual-licensed: you can use it either under the terms
  8. * of the GPL or the X11 license, at your option. Note that this dual
  9. * licensing only applies to this file, and not this project as a
  10. * whole.
  11. *
  12. * a) This file is free software; you can redistribute it and/or
  13. * modify it under the terms of the GNU General Public License as
  14. * published by the Free Software Foundation; either version 2 of the
  15. * License, or (at your option) any later version.
  16. *
  17. * This file is distributed in the hope that it will be useful,
  18. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. * GNU General Public License for more details.
  21. *
  22. * Or, alternatively,
  23. *
  24. * b) Permission is hereby granted, free of charge, to any person
  25. * obtaining a copy of this software and associated documentation
  26. * files (the "Software"), to deal in the Software without
  27. * restriction, including without limitation the rights to use,
  28. * copy, modify, merge, publish, distribute, sublicense, and/or
  29. * sell copies of the Software, and to permit persons to whom the
  30. * Software is furnished to do so, subject to the following
  31. * conditions:
  32. *
  33. * The above copyright notice and this permission notice shall be
  34. * included in all copies or substantial portions of the Software.
  35. *
  36. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  37. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  38. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  39. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  40. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  41. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  42. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  43. * OTHER DEALINGS IN THE SOFTWARE.
  44. */
  45. /memreserve/ 0x80000000 0x00000008; /* cpu-release-addr */
  46. / {
  47. compatible = "socionext,uniphier-ld20";
  48. #address-cells = <2>;
  49. #size-cells = <2>;
  50. interrupt-parent = <&gic>;
  51. cpus {
  52. #address-cells = <2>;
  53. #size-cells = <0>;
  54. cpu-map {
  55. cluster0 {
  56. core0 {
  57. cpu = <&cpu0>;
  58. };
  59. core1 {
  60. cpu = <&cpu1>;
  61. };
  62. };
  63. cluster1 {
  64. core0 {
  65. cpu = <&cpu2>;
  66. };
  67. core1 {
  68. cpu = <&cpu3>;
  69. };
  70. };
  71. };
  72. cpu0: cpu@0 {
  73. device_type = "cpu";
  74. compatible = "arm,cortex-a72", "arm,armv8";
  75. reg = <0 0x000>;
  76. enable-method = "spin-table";
  77. cpu-release-addr = <0 0x80000000>;
  78. };
  79. cpu1: cpu@1 {
  80. device_type = "cpu";
  81. compatible = "arm,cortex-a72", "arm,armv8";
  82. reg = <0 0x001>;
  83. enable-method = "spin-table";
  84. cpu-release-addr = <0 0x80000000>;
  85. };
  86. cpu2: cpu@100 {
  87. device_type = "cpu";
  88. compatible = "arm,cortex-a53", "arm,armv8";
  89. reg = <0 0x100>;
  90. enable-method = "spin-table";
  91. cpu-release-addr = <0 0x80000000>;
  92. };
  93. cpu3: cpu@101 {
  94. device_type = "cpu";
  95. compatible = "arm,cortex-a53", "arm,armv8";
  96. reg = <0 0x101>;
  97. enable-method = "spin-table";
  98. cpu-release-addr = <0 0x80000000>;
  99. };
  100. };
  101. clocks {
  102. refclk: ref {
  103. compatible = "fixed-clock";
  104. #clock-cells = <0>;
  105. clock-frequency = <25000000>;
  106. };
  107. };
  108. timer {
  109. compatible = "arm,armv8-timer";
  110. interrupts = <1 13 4>,
  111. <1 14 4>,
  112. <1 11 4>,
  113. <1 10 4>;
  114. };
  115. soc {
  116. compatible = "simple-bus";
  117. #address-cells = <1>;
  118. #size-cells = <1>;
  119. ranges = <0 0 0 0xffffffff>;
  120. serial0: serial@54006800 {
  121. compatible = "socionext,uniphier-uart";
  122. status = "disabled";
  123. reg = <0x54006800 0x40>;
  124. interrupts = <0 33 4>;
  125. pinctrl-names = "default";
  126. pinctrl-0 = <&pinctrl_uart0>;
  127. clocks = <&peri_clk 0>;
  128. };
  129. serial1: serial@54006900 {
  130. compatible = "socionext,uniphier-uart";
  131. status = "disabled";
  132. reg = <0x54006900 0x40>;
  133. interrupts = <0 35 4>;
  134. pinctrl-names = "default";
  135. pinctrl-0 = <&pinctrl_uart1>;
  136. clocks = <&peri_clk 1>;
  137. };
  138. serial2: serial@54006a00 {
  139. compatible = "socionext,uniphier-uart";
  140. status = "disabled";
  141. reg = <0x54006a00 0x40>;
  142. interrupts = <0 37 4>;
  143. pinctrl-names = "default";
  144. pinctrl-0 = <&pinctrl_uart2>;
  145. clocks = <&peri_clk 2>;
  146. };
  147. serial3: serial@54006b00 {
  148. compatible = "socionext,uniphier-uart";
  149. status = "disabled";
  150. reg = <0x54006b00 0x40>;
  151. interrupts = <0 177 4>;
  152. pinctrl-names = "default";
  153. pinctrl-0 = <&pinctrl_uart3>;
  154. clocks = <&peri_clk 3>;
  155. };
  156. i2c0: i2c@58780000 {
  157. compatible = "socionext,uniphier-fi2c";
  158. status = "disabled";
  159. reg = <0x58780000 0x80>;
  160. #address-cells = <1>;
  161. #size-cells = <0>;
  162. interrupts = <0 41 4>;
  163. pinctrl-names = "default";
  164. pinctrl-0 = <&pinctrl_i2c0>;
  165. clocks = <&peri_clk 4>;
  166. clock-frequency = <100000>;
  167. };
  168. i2c1: i2c@58781000 {
  169. compatible = "socionext,uniphier-fi2c";
  170. status = "disabled";
  171. reg = <0x58781000 0x80>;
  172. #address-cells = <1>;
  173. #size-cells = <0>;
  174. interrupts = <0 42 4>;
  175. pinctrl-names = "default";
  176. pinctrl-0 = <&pinctrl_i2c1>;
  177. clocks = <&peri_clk 5>;
  178. clock-frequency = <100000>;
  179. };
  180. i2c2: i2c@58782000 {
  181. compatible = "socionext,uniphier-fi2c";
  182. reg = <0x58782000 0x80>;
  183. #address-cells = <1>;
  184. #size-cells = <0>;
  185. interrupts = <0 43 4>;
  186. clocks = <&peri_clk 6>;
  187. clock-frequency = <400000>;
  188. };
  189. i2c3: i2c@58783000 {
  190. compatible = "socionext,uniphier-fi2c";
  191. status = "disabled";
  192. reg = <0x58783000 0x80>;
  193. #address-cells = <1>;
  194. #size-cells = <0>;
  195. interrupts = <0 44 4>;
  196. pinctrl-names = "default";
  197. pinctrl-0 = <&pinctrl_i2c3>;
  198. clocks = <&peri_clk 7>;
  199. clock-frequency = <100000>;
  200. };
  201. i2c4: i2c@58784000 {
  202. compatible = "socionext,uniphier-fi2c";
  203. status = "disabled";
  204. reg = <0x58784000 0x80>;
  205. #address-cells = <1>;
  206. #size-cells = <0>;
  207. interrupts = <0 45 4>;
  208. pinctrl-names = "default";
  209. pinctrl-0 = <&pinctrl_i2c4>;
  210. clocks = <&peri_clk 8>;
  211. clock-frequency = <100000>;
  212. };
  213. i2c5: i2c@58785000 {
  214. compatible = "socionext,uniphier-fi2c";
  215. reg = <0x58785000 0x80>;
  216. #address-cells = <1>;
  217. #size-cells = <0>;
  218. interrupts = <0 25 4>;
  219. clocks = <&peri_clk 9>;
  220. clock-frequency = <400000>;
  221. };
  222. system_bus: system-bus@58c00000 {
  223. compatible = "socionext,uniphier-system-bus";
  224. status = "disabled";
  225. reg = <0x58c00000 0x400>;
  226. #address-cells = <2>;
  227. #size-cells = <1>;
  228. pinctrl-names = "default";
  229. pinctrl-0 = <&pinctrl_system_bus>;
  230. };
  231. smpctrl@59800000 {
  232. compatible = "socionext,uniphier-smpctrl";
  233. reg = <0x59801000 0x400>;
  234. };
  235. sdctrl@59810000 {
  236. compatible = "socionext,uniphier-ld20-sdctrl",
  237. "simple-mfd", "syscon";
  238. reg = <0x59810000 0x800>;
  239. sd_clk: clock {
  240. compatible = "socionext,uniphier-ld20-sd-clock";
  241. #clock-cells = <1>;
  242. };
  243. sd_rst: reset {
  244. compatible = "socionext,uniphier-ld20-sd-reset";
  245. #reset-cells = <1>;
  246. };
  247. };
  248. perictrl@59820000 {
  249. compatible = "socionext,uniphier-perictrl",
  250. "simple-mfd", "syscon";
  251. reg = <0x59820000 0x200>;
  252. peri_clk: clock {
  253. compatible = "socionext,uniphier-ld20-peri-clock";
  254. #clock-cells = <1>;
  255. };
  256. peri_rst: reset {
  257. compatible = "socionext,uniphier-ld20-peri-reset";
  258. #reset-cells = <1>;
  259. };
  260. };
  261. soc-glue@5f800000 {
  262. compatible = "socionext,uniphier-soc-glue",
  263. "simple-mfd", "syscon";
  264. reg = <0x5f800000 0x2000>;
  265. pinctrl: pinctrl {
  266. compatible = "socionext,uniphier-ld20-pinctrl";
  267. };
  268. };
  269. gic: interrupt-controller@5fe00000 {
  270. compatible = "arm,gic-v3";
  271. reg = <0x5fe00000 0x10000>, /* GICD */
  272. <0x5fe80000 0x80000>; /* GICR */
  273. interrupt-controller;
  274. #interrupt-cells = <3>;
  275. interrupts = <1 9 4>;
  276. };
  277. sysctrl@61840000 {
  278. compatible = "socionext,uniphier-sysctrl",
  279. "simple-mfd", "syscon";
  280. reg = <0x61840000 0x4000>;
  281. sys_clk: clock {
  282. compatible = "socionext,uniphier-ld20-clock";
  283. #clock-cells = <1>;
  284. };
  285. sys_rst: reset {
  286. compatible = "socionext,uniphier-ld20-reset";
  287. #reset-cells = <1>;
  288. };
  289. };
  290. };
  291. };
  292. /include/ "uniphier-pinctrl.dtsi"