r8a77990.dtsi 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Device Tree Source for the r8a77990 SoC
  4. *
  5. * Copyright (C) 2018 Renesas Electronics Corp.
  6. */
  7. #include <dt-bindings/clock/renesas-cpg-mssr.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/power/r8a77990-sysc.h>
  10. / {
  11. compatible = "renesas,r8a77990";
  12. #address-cells = <2>;
  13. #size-cells = <2>;
  14. cpus {
  15. #address-cells = <1>;
  16. #size-cells = <0>;
  17. a53_0: cpu@0 {
  18. compatible = "arm,cortex-a53", "arm,armv8";
  19. reg = <0>;
  20. device_type = "cpu";
  21. power-domains = <&sysc 5>;
  22. next-level-cache = <&L2_CA53>;
  23. enable-method = "psci";
  24. };
  25. a53_1: cpu@1 {
  26. compatible = "arm,cortex-a53", "arm,armv8";
  27. reg = <1>;
  28. device_type = "cpu";
  29. power-domains = <&sysc 6>;
  30. next-level-cache = <&L2_CA53>;
  31. enable-method = "psci";
  32. };
  33. L2_CA53: cache-controller-0 {
  34. compatible = "cache";
  35. power-domains = <&sysc 21>;
  36. cache-unified;
  37. cache-level = <2>;
  38. };
  39. };
  40. extal_clk: extal {
  41. compatible = "fixed-clock";
  42. #clock-cells = <0>;
  43. /* This value must be overridden by the board */
  44. clock-frequency = <0>;
  45. };
  46. pmu_a53 {
  47. compatible = "arm,cortex-a53-pmu";
  48. interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
  49. <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  50. interrupt-affinity = <&a53_0>, <&a53_1>;
  51. };
  52. psci {
  53. compatible = "arm,psci-1.0", "arm,psci-0.2";
  54. method = "smc";
  55. };
  56. soc: soc {
  57. compatible = "simple-bus";
  58. interrupt-parent = <&gic>;
  59. #address-cells = <2>;
  60. #size-cells = <2>;
  61. ranges;
  62. rwdt: watchdog@e6020000 {
  63. compatible = "renesas,r8a77990-wdt",
  64. "renesas,rcar-gen3-wdt";
  65. reg = <0 0xe6020000 0 0x0c>;
  66. clocks = <&cpg CPG_MOD 402>;
  67. power-domains = <&sysc 32>;
  68. resets = <&cpg 402>;
  69. status = "disabled";
  70. };
  71. gpio0: gpio@e6050000 {
  72. compatible = "renesas,gpio-r8a77990",
  73. "renesas,rcar-gen3-gpio";
  74. reg = <0 0xe6050000 0 0x50>;
  75. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  76. #gpio-cells = <2>;
  77. gpio-controller;
  78. gpio-ranges = <&pfc 0 0 18>;
  79. #interrupt-cells = <2>;
  80. interrupt-controller;
  81. clocks = <&cpg CPG_MOD 912>;
  82. power-domains = <&sysc 32>;
  83. resets = <&cpg 912>;
  84. };
  85. gpio1: gpio@e6051000 {
  86. compatible = "renesas,gpio-r8a77990",
  87. "renesas,rcar-gen3-gpio";
  88. reg = <0 0xe6051000 0 0x50>;
  89. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  90. #gpio-cells = <2>;
  91. gpio-controller;
  92. gpio-ranges = <&pfc 0 32 23>;
  93. #interrupt-cells = <2>;
  94. interrupt-controller;
  95. clocks = <&cpg CPG_MOD 911>;
  96. power-domains = <&sysc 32>;
  97. resets = <&cpg 911>;
  98. };
  99. gpio2: gpio@e6052000 {
  100. compatible = "renesas,gpio-r8a77990",
  101. "renesas,rcar-gen3-gpio";
  102. reg = <0 0xe6052000 0 0x50>;
  103. interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
  104. #gpio-cells = <2>;
  105. gpio-controller;
  106. gpio-ranges = <&pfc 0 64 26>;
  107. #interrupt-cells = <2>;
  108. interrupt-controller;
  109. clocks = <&cpg CPG_MOD 910>;
  110. power-domains = <&sysc 32>;
  111. resets = <&cpg 910>;
  112. };
  113. gpio3: gpio@e6053000 {
  114. compatible = "renesas,gpio-r8a77990",
  115. "renesas,rcar-gen3-gpio";
  116. reg = <0 0xe6053000 0 0x50>;
  117. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  118. #gpio-cells = <2>;
  119. gpio-controller;
  120. gpio-ranges = <&pfc 0 96 16>;
  121. #interrupt-cells = <2>;
  122. interrupt-controller;
  123. clocks = <&cpg CPG_MOD 909>;
  124. power-domains = <&sysc 32>;
  125. resets = <&cpg 909>;
  126. };
  127. gpio4: gpio@e6054000 {
  128. compatible = "renesas,gpio-r8a77990",
  129. "renesas,rcar-gen3-gpio";
  130. reg = <0 0xe6054000 0 0x50>;
  131. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  132. #gpio-cells = <2>;
  133. gpio-controller;
  134. gpio-ranges = <&pfc 0 128 11>;
  135. #interrupt-cells = <2>;
  136. interrupt-controller;
  137. clocks = <&cpg CPG_MOD 908>;
  138. power-domains = <&sysc 32>;
  139. resets = <&cpg 908>;
  140. };
  141. gpio5: gpio@e6055000 {
  142. compatible = "renesas,gpio-r8a77990",
  143. "renesas,rcar-gen3-gpio";
  144. reg = <0 0xe6055000 0 0x50>;
  145. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  146. #gpio-cells = <2>;
  147. gpio-controller;
  148. gpio-ranges = <&pfc 0 160 20>;
  149. #interrupt-cells = <2>;
  150. interrupt-controller;
  151. clocks = <&cpg CPG_MOD 907>;
  152. power-domains = <&sysc 32>;
  153. resets = <&cpg 907>;
  154. };
  155. gpio6: gpio@e6055400 {
  156. compatible = "renesas,gpio-r8a77990",
  157. "renesas,rcar-gen3-gpio";
  158. reg = <0 0xe6055400 0 0x50>;
  159. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  160. #gpio-cells = <2>;
  161. gpio-controller;
  162. gpio-ranges = <&pfc 0 192 18>;
  163. #interrupt-cells = <2>;
  164. interrupt-controller;
  165. clocks = <&cpg CPG_MOD 906>;
  166. power-domains = <&sysc 32>;
  167. resets = <&cpg 906>;
  168. };
  169. pfc: pin-controller@e6060000 {
  170. compatible = "renesas,pfc-r8a77990";
  171. reg = <0 0xe6060000 0 0x508>;
  172. };
  173. cpg: clock-controller@e6150000 {
  174. compatible = "renesas,r8a77990-cpg-mssr";
  175. reg = <0 0xe6150000 0 0x1000>;
  176. clocks = <&extal_clk>;
  177. clock-names = "extal";
  178. #clock-cells = <2>;
  179. #power-domain-cells = <0>;
  180. #reset-cells = <1>;
  181. };
  182. rst: reset-controller@e6160000 {
  183. compatible = "renesas,r8a77990-rst";
  184. reg = <0 0xe6160000 0 0x0200>;
  185. };
  186. sysc: system-controller@e6180000 {
  187. compatible = "renesas,r8a77990-sysc";
  188. reg = <0 0xe6180000 0 0x0400>;
  189. #power-domain-cells = <1>;
  190. };
  191. ipmmu_ds0: mmu@e6740000 {
  192. compatible = "renesas,ipmmu-r8a77990";
  193. reg = <0 0xe6740000 0 0x1000>;
  194. renesas,ipmmu-main = <&ipmmu_mm 0>;
  195. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  196. #iommu-cells = <1>;
  197. };
  198. ipmmu_ds1: mmu@e7740000 {
  199. compatible = "renesas,ipmmu-r8a77990";
  200. reg = <0 0xe7740000 0 0x1000>;
  201. renesas,ipmmu-main = <&ipmmu_mm 1>;
  202. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  203. #iommu-cells = <1>;
  204. };
  205. ipmmu_hc: mmu@e6570000 {
  206. compatible = "renesas,ipmmu-r8a77990";
  207. reg = <0 0xe6570000 0 0x1000>;
  208. renesas,ipmmu-main = <&ipmmu_mm 2>;
  209. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  210. #iommu-cells = <1>;
  211. };
  212. ipmmu_mm: mmu@e67b0000 {
  213. compatible = "renesas,ipmmu-r8a77990";
  214. reg = <0 0xe67b0000 0 0x1000>;
  215. interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
  216. <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
  217. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  218. #iommu-cells = <1>;
  219. };
  220. ipmmu_mp: mmu@ec670000 {
  221. compatible = "renesas,ipmmu-r8a77990";
  222. reg = <0 0xec670000 0 0x1000>;
  223. renesas,ipmmu-main = <&ipmmu_mm 4>;
  224. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  225. #iommu-cells = <1>;
  226. };
  227. ipmmu_pv0: mmu@fd800000 {
  228. compatible = "renesas,ipmmu-r8a77990";
  229. reg = <0 0xfd800000 0 0x1000>;
  230. renesas,ipmmu-main = <&ipmmu_mm 6>;
  231. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  232. #iommu-cells = <1>;
  233. };
  234. ipmmu_rt: mmu@ffc80000 {
  235. compatible = "renesas,ipmmu-r8a77990";
  236. reg = <0 0xffc80000 0 0x1000>;
  237. renesas,ipmmu-main = <&ipmmu_mm 10>;
  238. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  239. #iommu-cells = <1>;
  240. };
  241. ipmmu_vc0: mmu@fe6b0000 {
  242. compatible = "renesas,ipmmu-r8a77990";
  243. reg = <0 0xfe6b0000 0 0x1000>;
  244. renesas,ipmmu-main = <&ipmmu_mm 12>;
  245. power-domains = <&sysc R8A77990_PD_A3VC>;
  246. #iommu-cells = <1>;
  247. };
  248. ipmmu_vi0: mmu@febd0000 {
  249. compatible = "renesas,ipmmu-r8a77990";
  250. reg = <0 0xfebd0000 0 0x1000>;
  251. renesas,ipmmu-main = <&ipmmu_mm 14>;
  252. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  253. #iommu-cells = <1>;
  254. };
  255. ipmmu_vp0: mmu@fe990000 {
  256. compatible = "renesas,ipmmu-r8a77990";
  257. reg = <0 0xfe990000 0 0x1000>;
  258. renesas,ipmmu-main = <&ipmmu_mm 16>;
  259. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  260. #iommu-cells = <1>;
  261. };
  262. avb: ethernet@e6800000 {
  263. compatible = "renesas,etheravb-r8a77990",
  264. "renesas,etheravb-rcar-gen3";
  265. reg = <0 0xe6800000 0 0x800>;
  266. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
  267. <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
  268. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  269. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
  270. <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
  271. <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
  272. <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
  273. <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
  274. <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
  275. <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
  276. <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
  277. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
  278. <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
  279. <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
  280. <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  281. <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
  282. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  283. <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
  284. <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
  285. <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
  286. <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  287. <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
  288. <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
  289. <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
  290. <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  291. interrupt-names = "ch0", "ch1", "ch2", "ch3",
  292. "ch4", "ch5", "ch6", "ch7",
  293. "ch8", "ch9", "ch10", "ch11",
  294. "ch12", "ch13", "ch14", "ch15",
  295. "ch16", "ch17", "ch18", "ch19",
  296. "ch20", "ch21", "ch22", "ch23",
  297. "ch24";
  298. clocks = <&cpg CPG_MOD 812>;
  299. power-domains = <&sysc 32>;
  300. resets = <&cpg 812>;
  301. phy-mode = "rgmii";
  302. #address-cells = <1>;
  303. #size-cells = <0>;
  304. status = "disabled";
  305. };
  306. scif2: serial@e6e88000 {
  307. compatible = "renesas,scif-r8a77990",
  308. "renesas,rcar-gen3-scif", "renesas,scif";
  309. reg = <0 0xe6e88000 0 64>;
  310. interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
  311. clocks = <&cpg CPG_MOD 310>;
  312. clock-names = "fck";
  313. power-domains = <&sysc 32>;
  314. resets = <&cpg 310>;
  315. status = "disabled";
  316. };
  317. xhci0: usb@ee000000 {
  318. compatible = "renesas,xhci-r8a77990",
  319. "renesas,rcar-gen3-xhci";
  320. reg = <0 0xee000000 0 0xc00>;
  321. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  322. clocks = <&cpg CPG_MOD 328>;
  323. power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
  324. resets = <&cpg 328>;
  325. status = "disabled";
  326. };
  327. ohci0: usb@ee080000 {
  328. compatible = "generic-ohci";
  329. reg = <0 0xee080000 0 0x100>;
  330. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  331. clocks = <&cpg CPG_MOD 703>;
  332. phys = <&usb2_phy0>;
  333. phy-names = "usb";
  334. power-domains = <&sysc 32>;
  335. resets = <&cpg 703>;
  336. status = "disabled";
  337. };
  338. ehci0: usb@ee080100 {
  339. compatible = "generic-ehci";
  340. reg = <0 0xee080100 0 0x100>;
  341. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  342. clocks = <&cpg CPG_MOD 703>;
  343. phys = <&usb2_phy0>;
  344. phy-names = "usb";
  345. companion = <&ohci0>;
  346. power-domains = <&sysc 32>;
  347. resets = <&cpg 703>;
  348. status = "disabled";
  349. };
  350. usb2_phy0: usb-phy@ee080200 {
  351. compatible = "renesas,usb2-phy-r8a77990",
  352. "renesas,rcar-gen3-usb2-phy";
  353. reg = <0 0xee080200 0 0x700>;
  354. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  355. clocks = <&cpg CPG_MOD 703>;
  356. power-domains = <&sysc 32>;
  357. resets = <&cpg 703>;
  358. #phy-cells = <0>;
  359. status = "disabled";
  360. };
  361. gic: interrupt-controller@f1010000 {
  362. compatible = "arm,gic-400";
  363. #interrupt-cells = <3>;
  364. #address-cells = <0>;
  365. interrupt-controller;
  366. reg = <0x0 0xf1010000 0 0x1000>,
  367. <0x0 0xf1020000 0 0x20000>,
  368. <0x0 0xf1040000 0 0x20000>,
  369. <0x0 0xf1060000 0 0x20000>;
  370. interrupts = <GIC_PPI 9
  371. (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
  372. clocks = <&cpg CPG_MOD 408>;
  373. clock-names = "clk";
  374. power-domains = <&sysc 32>;
  375. resets = <&cpg 408>;
  376. };
  377. prr: chipid@fff00044 {
  378. compatible = "renesas,prr";
  379. reg = <0 0xfff00044 0 4>;
  380. };
  381. };
  382. timer {
  383. compatible = "arm,armv8-timer";
  384. interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
  385. <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
  386. <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
  387. <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
  388. };
  389. };