r8a7778.dtsi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Device Tree Source for the R-Car M1A (R8A77781) SoC
  4. *
  5. * Copyright (C) 2013 Renesas Solutions Corp.
  6. * Copyright (C) 2013 Kuninori Morimoto <[email protected]>
  7. *
  8. * based on r8a7779
  9. *
  10. * Copyright (C) 2013 Renesas Solutions Corp.
  11. * Copyright (C) 2013 Simon Horman
  12. */
  13. #include <dt-bindings/clock/r8a7778-clock.h>
  14. #include <dt-bindings/interrupt-controller/arm-gic.h>
  15. #include <dt-bindings/interrupt-controller/irq.h>
  16. / {
  17. compatible = "renesas,r8a7778";
  18. interrupt-parent = <&gic>;
  19. #address-cells = <1>;
  20. #size-cells = <1>;
  21. cpus {
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. cpu@0 {
  25. device_type = "cpu";
  26. compatible = "arm,cortex-a9";
  27. reg = <0>;
  28. clock-frequency = <800000000>;
  29. clocks = <&z_clk>;
  30. };
  31. };
  32. aliases {
  33. spi0 = &hspi0;
  34. spi1 = &hspi1;
  35. spi2 = &hspi2;
  36. };
  37. bsc: bus@1c000000 {
  38. compatible = "simple-bus";
  39. #address-cells = <1>;
  40. #size-cells = <1>;
  41. ranges = <0 0 0x1c000000>;
  42. };
  43. ether: ethernet@fde00000 {
  44. compatible = "renesas,ether-r8a7778",
  45. "renesas,rcar-gen1-ether";
  46. reg = <0xfde00000 0x400>;
  47. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  48. clocks = <&mstp1_clks R8A7778_CLK_ETHER>;
  49. power-domains = <&cpg_clocks>;
  50. phy-mode = "rmii";
  51. #address-cells = <1>;
  52. #size-cells = <0>;
  53. status = "disabled";
  54. };
  55. gic: interrupt-controller@fe438000 {
  56. compatible = "arm,pl390";
  57. #interrupt-cells = <3>;
  58. interrupt-controller;
  59. reg = <0xfe438000 0x1000>,
  60. <0xfe430000 0x100>;
  61. };
  62. /* irqpin: IRQ0 - IRQ3 */
  63. irqpin: interrupt-controller@fe78001c {
  64. compatible = "renesas,intc-irqpin-r8a7778", "renesas,intc-irqpin";
  65. #interrupt-cells = <2>;
  66. interrupt-controller;
  67. status = "disabled"; /* default off */
  68. reg = <0xfe78001c 4>,
  69. <0xfe780010 4>,
  70. <0xfe780024 4>,
  71. <0xfe780044 4>,
  72. <0xfe780064 4>,
  73. <0xfe780000 4>;
  74. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
  75. <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
  76. <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
  77. <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  78. sense-bitfield-width = <2>;
  79. };
  80. gpio0: gpio@ffc40000 {
  81. compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
  82. reg = <0xffc40000 0x2c>;
  83. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  84. #gpio-cells = <2>;
  85. gpio-controller;
  86. gpio-ranges = <&pfc 0 0 32>;
  87. #interrupt-cells = <2>;
  88. interrupt-controller;
  89. };
  90. gpio1: gpio@ffc41000 {
  91. compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
  92. reg = <0xffc41000 0x2c>;
  93. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  94. #gpio-cells = <2>;
  95. gpio-controller;
  96. gpio-ranges = <&pfc 0 32 32>;
  97. #interrupt-cells = <2>;
  98. interrupt-controller;
  99. };
  100. gpio2: gpio@ffc42000 {
  101. compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
  102. reg = <0xffc42000 0x2c>;
  103. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  104. #gpio-cells = <2>;
  105. gpio-controller;
  106. gpio-ranges = <&pfc 0 64 32>;
  107. #interrupt-cells = <2>;
  108. interrupt-controller;
  109. };
  110. gpio3: gpio@ffc43000 {
  111. compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
  112. reg = <0xffc43000 0x2c>;
  113. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  114. #gpio-cells = <2>;
  115. gpio-controller;
  116. gpio-ranges = <&pfc 0 96 32>;
  117. #interrupt-cells = <2>;
  118. interrupt-controller;
  119. };
  120. gpio4: gpio@ffc44000 {
  121. compatible = "renesas,gpio-r8a7778", "renesas,rcar-gen1-gpio";
  122. reg = <0xffc44000 0x2c>;
  123. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  124. #gpio-cells = <2>;
  125. gpio-controller;
  126. gpio-ranges = <&pfc 0 128 27>;
  127. #interrupt-cells = <2>;
  128. interrupt-controller;
  129. };
  130. pfc: pinctrl@fffc0000 {
  131. compatible = "renesas,pfc-r8a7778";
  132. reg = <0xfffc0000 0x118>;
  133. };
  134. i2c0: i2c@ffc70000 {
  135. #address-cells = <1>;
  136. #size-cells = <0>;
  137. compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
  138. reg = <0xffc70000 0x1000>;
  139. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  140. clocks = <&mstp0_clks R8A7778_CLK_I2C0>;
  141. power-domains = <&cpg_clocks>;
  142. status = "disabled";
  143. };
  144. i2c1: i2c@ffc71000 {
  145. #address-cells = <1>;
  146. #size-cells = <0>;
  147. compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
  148. reg = <0xffc71000 0x1000>;
  149. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  150. clocks = <&mstp0_clks R8A7778_CLK_I2C1>;
  151. power-domains = <&cpg_clocks>;
  152. i2c-scl-internal-delay-ns = <5>;
  153. status = "disabled";
  154. };
  155. i2c2: i2c@ffc72000 {
  156. #address-cells = <1>;
  157. #size-cells = <0>;
  158. compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
  159. reg = <0xffc72000 0x1000>;
  160. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  161. clocks = <&mstp0_clks R8A7778_CLK_I2C2>;
  162. power-domains = <&cpg_clocks>;
  163. i2c-scl-internal-delay-ns = <5>;
  164. status = "disabled";
  165. };
  166. i2c3: i2c@ffc73000 {
  167. #address-cells = <1>;
  168. #size-cells = <0>;
  169. compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
  170. reg = <0xffc73000 0x1000>;
  171. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  172. clocks = <&mstp0_clks R8A7778_CLK_I2C3>;
  173. power-domains = <&cpg_clocks>;
  174. i2c-scl-internal-delay-ns = <5>;
  175. status = "disabled";
  176. };
  177. tmu0: timer@ffd80000 {
  178. compatible = "renesas,tmu-r8a7778", "renesas,tmu";
  179. reg = <0xffd80000 0x30>;
  180. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  181. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  182. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  183. clocks = <&mstp0_clks R8A7778_CLK_TMU0>;
  184. clock-names = "fck";
  185. power-domains = <&cpg_clocks>;
  186. #renesas,channels = <3>;
  187. status = "disabled";
  188. };
  189. tmu1: timer@ffd81000 {
  190. compatible = "renesas,tmu-r8a7778", "renesas,tmu";
  191. reg = <0xffd81000 0x30>;
  192. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
  193. <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
  194. <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  195. clocks = <&mstp0_clks R8A7778_CLK_TMU1>;
  196. clock-names = "fck";
  197. power-domains = <&cpg_clocks>;
  198. #renesas,channels = <3>;
  199. status = "disabled";
  200. };
  201. tmu2: timer@ffd82000 {
  202. compatible = "renesas,tmu-r8a7778", "renesas,tmu";
  203. reg = <0xffd82000 0x30>;
  204. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
  205. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  206. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  207. clocks = <&mstp0_clks R8A7778_CLK_TMU2>;
  208. clock-names = "fck";
  209. power-domains = <&cpg_clocks>;
  210. #renesas,channels = <3>;
  211. status = "disabled";
  212. };
  213. rcar_sound: sound@ffd90000 {
  214. /*
  215. * #sound-dai-cells is required
  216. *
  217. * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
  218. * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;
  219. */
  220. compatible = "renesas,rcar_sound-r8a7778", "renesas,rcar_sound-gen1";
  221. reg = <0xffd90000 0x1000>, /* SRU */
  222. <0xffd91000 0x240>, /* SSI */
  223. <0xfffe0000 0x24>; /* ADG */
  224. clocks = <&mstp3_clks R8A7778_CLK_SSI8>,
  225. <&mstp3_clks R8A7778_CLK_SSI7>,
  226. <&mstp3_clks R8A7778_CLK_SSI6>,
  227. <&mstp3_clks R8A7778_CLK_SSI5>,
  228. <&mstp3_clks R8A7778_CLK_SSI4>,
  229. <&mstp0_clks R8A7778_CLK_SSI3>,
  230. <&mstp0_clks R8A7778_CLK_SSI2>,
  231. <&mstp0_clks R8A7778_CLK_SSI1>,
  232. <&mstp0_clks R8A7778_CLK_SSI0>,
  233. <&mstp5_clks R8A7778_CLK_SRU_SRC8>,
  234. <&mstp5_clks R8A7778_CLK_SRU_SRC7>,
  235. <&mstp5_clks R8A7778_CLK_SRU_SRC6>,
  236. <&mstp5_clks R8A7778_CLK_SRU_SRC5>,
  237. <&mstp5_clks R8A7778_CLK_SRU_SRC4>,
  238. <&mstp5_clks R8A7778_CLK_SRU_SRC3>,
  239. <&mstp5_clks R8A7778_CLK_SRU_SRC2>,
  240. <&mstp5_clks R8A7778_CLK_SRU_SRC1>,
  241. <&mstp5_clks R8A7778_CLK_SRU_SRC0>,
  242. <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>,
  243. <&cpg_clocks R8A7778_CLK_S1>;
  244. clock-names = "ssi.8", "ssi.7", "ssi.6", "ssi.5", "ssi.4",
  245. "ssi.3", "ssi.2", "ssi.1", "ssi.0",
  246. "src.8", "src.7", "src.6", "src.5", "src.4",
  247. "src.3", "src.2", "src.1", "src.0",
  248. "clk_a", "clk_b", "clk_c", "clk_i";
  249. status = "disabled";
  250. rcar_sound,src {
  251. src3: src-3 { };
  252. src4: src-4 { };
  253. src5: src-5 { };
  254. src6: src-6 { };
  255. src7: src-7 { };
  256. src8: src-8 { };
  257. src9: src-9 { };
  258. };
  259. rcar_sound,ssi {
  260. ssi3: ssi-3 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
  261. ssi4: ssi-4 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
  262. ssi5: ssi-5 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
  263. ssi6: ssi-6 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
  264. ssi7: ssi-7 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
  265. ssi8: ssi-8 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
  266. ssi9: ssi-9 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
  267. };
  268. };
  269. scif0: serial@ffe40000 {
  270. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  271. "renesas,scif";
  272. reg = <0xffe40000 0x100>;
  273. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  274. clocks = <&mstp0_clks R8A7778_CLK_SCIF0>,
  275. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  276. clock-names = "fck", "brg_int", "scif_clk";
  277. power-domains = <&cpg_clocks>;
  278. status = "disabled";
  279. };
  280. scif1: serial@ffe41000 {
  281. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  282. "renesas,scif";
  283. reg = <0xffe41000 0x100>;
  284. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  285. clocks = <&mstp0_clks R8A7778_CLK_SCIF1>,
  286. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  287. clock-names = "fck", "brg_int", "scif_clk";
  288. power-domains = <&cpg_clocks>;
  289. status = "disabled";
  290. };
  291. scif2: serial@ffe42000 {
  292. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  293. "renesas,scif";
  294. reg = <0xffe42000 0x100>;
  295. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  296. clocks = <&mstp0_clks R8A7778_CLK_SCIF2>,
  297. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  298. clock-names = "fck", "brg_int", "scif_clk";
  299. power-domains = <&cpg_clocks>;
  300. status = "disabled";
  301. };
  302. scif3: serial@ffe43000 {
  303. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  304. "renesas,scif";
  305. reg = <0xffe43000 0x100>;
  306. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  307. clocks = <&mstp0_clks R8A7778_CLK_SCIF3>,
  308. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  309. clock-names = "fck", "brg_int", "scif_clk";
  310. power-domains = <&cpg_clocks>;
  311. status = "disabled";
  312. };
  313. scif4: serial@ffe44000 {
  314. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  315. "renesas,scif";
  316. reg = <0xffe44000 0x100>;
  317. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  318. clocks = <&mstp0_clks R8A7778_CLK_SCIF4>,
  319. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  320. clock-names = "fck", "brg_int", "scif_clk";
  321. power-domains = <&cpg_clocks>;
  322. status = "disabled";
  323. };
  324. scif5: serial@ffe45000 {
  325. compatible = "renesas,scif-r8a7778", "renesas,rcar-gen1-scif",
  326. "renesas,scif";
  327. reg = <0xffe45000 0x100>;
  328. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  329. clocks = <&mstp0_clks R8A7778_CLK_SCIF5>,
  330. <&cpg_clocks R8A7778_CLK_S1>, <&scif_clk>;
  331. clock-names = "fck", "brg_int", "scif_clk";
  332. power-domains = <&cpg_clocks>;
  333. status = "disabled";
  334. };
  335. hscif0: serial@ffe48000 {
  336. compatible = "renesas,hscif-r8a7778",
  337. "renesas,rcar-gen1-hscif", "renesas,hscif";
  338. reg = <0xffe48000 96>;
  339. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  340. clocks = <&mstp0_clks R8A7778_CLK_HSCIF0>,
  341. <&cpg_clocks R8A7778_CLK_S>, <&scif_clk>;
  342. clock-names = "fck", "brg_int", "scif_clk";
  343. power-domains = <&cpg_clocks>;
  344. status = "disabled";
  345. };
  346. hscif1: serial@ffe49000 {
  347. compatible = "renesas,hscif-r8a7778",
  348. "renesas,rcar-gen1-hscif", "renesas,hscif";
  349. reg = <0xffe49000 96>;
  350. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  351. clocks = <&mstp0_clks R8A7778_CLK_HSCIF1>,
  352. <&cpg_clocks R8A7778_CLK_S>, <&scif_clk>;
  353. clock-names = "fck", "brg_int", "scif_clk";
  354. power-domains = <&cpg_clocks>;
  355. status = "disabled";
  356. };
  357. mmcif: mmc@ffe4e000 {
  358. compatible = "renesas,mmcif-r8a7778", "renesas,sh-mmcif";
  359. reg = <0xffe4e000 0x100>;
  360. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  361. clocks = <&mstp3_clks R8A7778_CLK_MMC>;
  362. power-domains = <&cpg_clocks>;
  363. status = "disabled";
  364. };
  365. sdhi0: mmc@ffe4c000 {
  366. compatible = "renesas,sdhi-r8a7778",
  367. "renesas,rcar-gen1-sdhi";
  368. reg = <0xffe4c000 0x100>;
  369. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  370. clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;
  371. power-domains = <&cpg_clocks>;
  372. status = "disabled";
  373. };
  374. sdhi1: mmc@ffe4d000 {
  375. compatible = "renesas,sdhi-r8a7778",
  376. "renesas,rcar-gen1-sdhi";
  377. reg = <0xffe4d000 0x100>;
  378. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  379. clocks = <&mstp3_clks R8A7778_CLK_SDHI1>;
  380. power-domains = <&cpg_clocks>;
  381. status = "disabled";
  382. };
  383. sdhi2: mmc@ffe4f000 {
  384. compatible = "renesas,sdhi-r8a7778",
  385. "renesas,rcar-gen1-sdhi";
  386. reg = <0xffe4f000 0x100>;
  387. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  388. clocks = <&mstp3_clks R8A7778_CLK_SDHI2>;
  389. power-domains = <&cpg_clocks>;
  390. status = "disabled";
  391. };
  392. hspi0: spi@fffc7000 {
  393. compatible = "renesas,hspi-r8a7778", "renesas,hspi";
  394. reg = <0xfffc7000 0x18>;
  395. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  396. clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
  397. power-domains = <&cpg_clocks>;
  398. #address-cells = <1>;
  399. #size-cells = <0>;
  400. status = "disabled";
  401. };
  402. hspi1: spi@fffc8000 {
  403. compatible = "renesas,hspi-r8a7778", "renesas,hspi";
  404. reg = <0xfffc8000 0x18>;
  405. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  406. clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
  407. power-domains = <&cpg_clocks>;
  408. #address-cells = <1>;
  409. #size-cells = <0>;
  410. status = "disabled";
  411. };
  412. hspi2: spi@fffc6000 {
  413. compatible = "renesas,hspi-r8a7778", "renesas,hspi";
  414. reg = <0xfffc6000 0x18>;
  415. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  416. clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
  417. power-domains = <&cpg_clocks>;
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. status = "disabled";
  421. };
  422. clocks {
  423. #address-cells = <1>;
  424. #size-cells = <1>;
  425. ranges;
  426. /* External input clock */
  427. extal_clk: extal {
  428. compatible = "fixed-clock";
  429. #clock-cells = <0>;
  430. clock-frequency = <0>;
  431. };
  432. /* External SCIF clock */
  433. scif_clk: scif {
  434. compatible = "fixed-clock";
  435. #clock-cells = <0>;
  436. /* This value must be overridden by the board. */
  437. clock-frequency = <0>;
  438. };
  439. /* Special CPG clocks */
  440. cpg_clocks: cpg_clocks@ffc80000 {
  441. compatible = "renesas,r8a7778-cpg-clocks";
  442. reg = <0xffc80000 0x80>;
  443. #clock-cells = <1>;
  444. clocks = <&extal_clk>;
  445. clock-output-names = "plla", "pllb", "b",
  446. "out", "p", "s", "s1";
  447. #power-domain-cells = <0>;
  448. };
  449. /* Audio clocks; frequencies are set by boards if applicable. */
  450. audio_clk_a: audio_clk_a {
  451. compatible = "fixed-clock";
  452. #clock-cells = <0>;
  453. clock-frequency = <0>;
  454. };
  455. audio_clk_b: audio_clk_b {
  456. compatible = "fixed-clock";
  457. #clock-cells = <0>;
  458. clock-frequency = <0>;
  459. };
  460. audio_clk_c: audio_clk_c {
  461. compatible = "fixed-clock";
  462. #clock-cells = <0>;
  463. clock-frequency = <0>;
  464. };
  465. /* Fixed ratio clocks */
  466. g_clk: g {
  467. compatible = "fixed-factor-clock";
  468. clocks = <&cpg_clocks R8A7778_CLK_PLLA>;
  469. #clock-cells = <0>;
  470. clock-div = <12>;
  471. clock-mult = <1>;
  472. };
  473. i_clk: i {
  474. compatible = "fixed-factor-clock";
  475. clocks = <&cpg_clocks R8A7778_CLK_PLLA>;
  476. #clock-cells = <0>;
  477. clock-div = <1>;
  478. clock-mult = <1>;
  479. };
  480. s3_clk: s3 {
  481. compatible = "fixed-factor-clock";
  482. clocks = <&cpg_clocks R8A7778_CLK_PLLA>;
  483. #clock-cells = <0>;
  484. clock-div = <4>;
  485. clock-mult = <1>;
  486. };
  487. s4_clk: s4 {
  488. compatible = "fixed-factor-clock";
  489. clocks = <&cpg_clocks R8A7778_CLK_PLLA>;
  490. #clock-cells = <0>;
  491. clock-div = <8>;
  492. clock-mult = <1>;
  493. };
  494. z_clk: z {
  495. compatible = "fixed-factor-clock";
  496. clocks = <&cpg_clocks R8A7778_CLK_PLLB>;
  497. #clock-cells = <0>;
  498. clock-div = <1>;
  499. clock-mult = <1>;
  500. };
  501. /* Gate clocks */
  502. mstp0_clks: mstp0_clks@ffc80030 {
  503. compatible = "renesas,r8a7778-mstp-clocks", "renesas,cpg-mstp-clocks";
  504. reg = <0xffc80030 4>;
  505. clocks = <&cpg_clocks R8A7778_CLK_P>,
  506. <&cpg_clocks R8A7778_CLK_P>,
  507. <&cpg_clocks R8A7778_CLK_P>,
  508. <&cpg_clocks R8A7778_CLK_P>,
  509. <&cpg_clocks R8A7778_CLK_P>,
  510. <&cpg_clocks R8A7778_CLK_P>,
  511. <&cpg_clocks R8A7778_CLK_P>,
  512. <&cpg_clocks R8A7778_CLK_P>,
  513. <&cpg_clocks R8A7778_CLK_P>,
  514. <&cpg_clocks R8A7778_CLK_P>,
  515. <&cpg_clocks R8A7778_CLK_S>,
  516. <&cpg_clocks R8A7778_CLK_S>,
  517. <&cpg_clocks R8A7778_CLK_P>,
  518. <&cpg_clocks R8A7778_CLK_P>,
  519. <&cpg_clocks R8A7778_CLK_P>,
  520. <&cpg_clocks R8A7778_CLK_P>,
  521. <&cpg_clocks R8A7778_CLK_P>,
  522. <&cpg_clocks R8A7778_CLK_P>,
  523. <&cpg_clocks R8A7778_CLK_P>,
  524. <&cpg_clocks R8A7778_CLK_P>,
  525. <&cpg_clocks R8A7778_CLK_S>;
  526. #clock-cells = <1>;
  527. clock-indices = <
  528. R8A7778_CLK_I2C0 R8A7778_CLK_I2C1
  529. R8A7778_CLK_I2C2 R8A7778_CLK_I2C3
  530. R8A7778_CLK_SCIF0 R8A7778_CLK_SCIF1
  531. R8A7778_CLK_SCIF2 R8A7778_CLK_SCIF3
  532. R8A7778_CLK_SCIF4 R8A7778_CLK_SCIF5
  533. R8A7778_CLK_HSCIF0 R8A7778_CLK_HSCIF1
  534. R8A7778_CLK_TMU0 R8A7778_CLK_TMU1
  535. R8A7778_CLK_TMU2 R8A7778_CLK_SSI0
  536. R8A7778_CLK_SSI1 R8A7778_CLK_SSI2
  537. R8A7778_CLK_SSI3 R8A7778_CLK_SRU
  538. R8A7778_CLK_HSPI
  539. >;
  540. clock-output-names =
  541. "i2c0", "i2c1", "i2c2", "i2c3", "scif0",
  542. "scif1", "scif2", "scif3", "scif4", "scif5",
  543. "hscif0", "hscif1",
  544. "tmu0", "tmu1", "tmu2", "ssi0", "ssi1",
  545. "ssi2", "ssi3", "sru", "hspi";
  546. };
  547. mstp1_clks: mstp1_clks@ffc80034 {
  548. compatible = "renesas,r8a7778-mstp-clocks", "renesas,cpg-mstp-clocks";
  549. reg = <0xffc80034 4>, <0xffc80044 4>;
  550. clocks = <&cpg_clocks R8A7778_CLK_P>,
  551. <&cpg_clocks R8A7778_CLK_S>,
  552. <&cpg_clocks R8A7778_CLK_S>,
  553. <&cpg_clocks R8A7778_CLK_P>;
  554. #clock-cells = <1>;
  555. clock-indices = <
  556. R8A7778_CLK_ETHER R8A7778_CLK_VIN0
  557. R8A7778_CLK_VIN1 R8A7778_CLK_USB
  558. >;
  559. clock-output-names =
  560. "ether", "vin0", "vin1", "usb";
  561. };
  562. mstp3_clks: mstp3_clks@ffc8003c {
  563. compatible = "renesas,r8a7778-mstp-clocks", "renesas,cpg-mstp-clocks";
  564. reg = <0xffc8003c 4>;
  565. clocks = <&s4_clk>,
  566. <&cpg_clocks R8A7778_CLK_P>,
  567. <&cpg_clocks R8A7778_CLK_P>,
  568. <&cpg_clocks R8A7778_CLK_P>,
  569. <&cpg_clocks R8A7778_CLK_P>,
  570. <&cpg_clocks R8A7778_CLK_P>,
  571. <&cpg_clocks R8A7778_CLK_P>,
  572. <&cpg_clocks R8A7778_CLK_P>,
  573. <&cpg_clocks R8A7778_CLK_P>;
  574. #clock-cells = <1>;
  575. clock-indices = <
  576. R8A7778_CLK_MMC R8A7778_CLK_SDHI0
  577. R8A7778_CLK_SDHI1 R8A7778_CLK_SDHI2
  578. R8A7778_CLK_SSI4 R8A7778_CLK_SSI5
  579. R8A7778_CLK_SSI6 R8A7778_CLK_SSI7
  580. R8A7778_CLK_SSI8
  581. >;
  582. clock-output-names =
  583. "mmc", "sdhi0", "sdhi1", "sdhi2", "ssi4",
  584. "ssi5", "ssi6", "ssi7", "ssi8";
  585. };
  586. mstp5_clks: mstp5_clks@ffc80054 {
  587. compatible = "renesas,r8a7778-mstp-clocks", "renesas,cpg-mstp-clocks";
  588. reg = <0xffc80054 4>;
  589. clocks = <&cpg_clocks R8A7778_CLK_P>,
  590. <&cpg_clocks R8A7778_CLK_P>,
  591. <&cpg_clocks R8A7778_CLK_P>,
  592. <&cpg_clocks R8A7778_CLK_P>,
  593. <&cpg_clocks R8A7778_CLK_P>,
  594. <&cpg_clocks R8A7778_CLK_P>,
  595. <&cpg_clocks R8A7778_CLK_P>,
  596. <&cpg_clocks R8A7778_CLK_P>,
  597. <&cpg_clocks R8A7778_CLK_P>;
  598. #clock-cells = <1>;
  599. clock-indices = <
  600. R8A7778_CLK_SRU_SRC0 R8A7778_CLK_SRU_SRC1
  601. R8A7778_CLK_SRU_SRC2 R8A7778_CLK_SRU_SRC3
  602. R8A7778_CLK_SRU_SRC4 R8A7778_CLK_SRU_SRC5
  603. R8A7778_CLK_SRU_SRC6 R8A7778_CLK_SRU_SRC7
  604. R8A7778_CLK_SRU_SRC8
  605. >;
  606. clock-output-names =
  607. "sru-src0", "sru-src1", "sru-src2",
  608. "sru-src3", "sru-src4", "sru-src5",
  609. "sru-src6", "sru-src7", "sru-src8";
  610. };
  611. };
  612. rst: reset-controller@ffcc0000 {
  613. compatible = "renesas,r8a7778-reset-wdt";
  614. reg = <0xffcc0000 0x40>;
  615. };
  616. };