sg2042.dtsi 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /*
  3. * Copyright (C) 2022 Sophgo Technology Inc. All rights reserved.
  4. */
  5. /dts-v1/;
  6. #include <dt-bindings/clock/sophgo,sg2042-clkgen.h>
  7. #include <dt-bindings/clock/sophgo,sg2042-pll.h>
  8. #include <dt-bindings/clock/sophgo,sg2042-rpgate.h>
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. #include <dt-bindings/reset/sophgo,sg2042-reset.h>
  11. #include "sg2042-cpus.dtsi"
  12. / {
  13. compatible = "sophgo,sg2042";
  14. #address-cells = <2>;
  15. #size-cells = <2>;
  16. dma-noncoherent;
  17. aliases {
  18. serial0 = &uart0;
  19. };
  20. cgi_main: oscillator0 {
  21. compatible = "fixed-clock";
  22. clock-output-names = "cgi_main";
  23. #clock-cells = <0>;
  24. };
  25. cgi_dpll0: oscillator1 {
  26. compatible = "fixed-clock";
  27. clock-output-names = "cgi_dpll0";
  28. #clock-cells = <0>;
  29. };
  30. cgi_dpll1: oscillator2 {
  31. compatible = "fixed-clock";
  32. clock-output-names = "cgi_dpll1";
  33. #clock-cells = <0>;
  34. };
  35. soc: soc {
  36. compatible = "simple-bus";
  37. #address-cells = <2>;
  38. #size-cells = <2>;
  39. interrupt-parent = <&intc>;
  40. ranges;
  41. i2c0: i2c@7030005000 {
  42. compatible = "snps,designware-i2c";
  43. reg = <0x70 0x30005000 0x0 0x1000>;
  44. #address-cells = <1>;
  45. #size-cells = <0>;
  46. clocks = <&clkgen GATE_CLK_APB_I2C>;
  47. clock-names = "ref";
  48. clock-frequency = <100000>;
  49. interrupts = <101 IRQ_TYPE_LEVEL_HIGH>;
  50. resets = <&rstgen RST_I2C0>;
  51. status = "disabled";
  52. };
  53. i2c1: i2c@7030006000 {
  54. compatible = "snps,designware-i2c";
  55. reg = <0x70 0x30006000 0x0 0x1000>;
  56. #address-cells = <1>;
  57. #size-cells = <0>;
  58. clocks = <&clkgen GATE_CLK_APB_I2C>;
  59. clock-names = "ref";
  60. clock-frequency = <100000>;
  61. interrupts = <102 IRQ_TYPE_LEVEL_HIGH>;
  62. resets = <&rstgen RST_I2C1>;
  63. status = "disabled";
  64. };
  65. i2c2: i2c@7030007000 {
  66. compatible = "snps,designware-i2c";
  67. reg = <0x70 0x30007000 0x0 0x1000>;
  68. #address-cells = <1>;
  69. #size-cells = <0>;
  70. clocks = <&clkgen GATE_CLK_APB_I2C>;
  71. clock-names = "ref";
  72. clock-frequency = <100000>;
  73. interrupts = <103 IRQ_TYPE_LEVEL_HIGH>;
  74. resets = <&rstgen RST_I2C2>;
  75. status = "disabled";
  76. };
  77. i2c3: i2c@7030008000 {
  78. compatible = "snps,designware-i2c";
  79. reg = <0x70 0x30008000 0x0 0x1000>;
  80. #address-cells = <1>;
  81. #size-cells = <0>;
  82. clocks = <&clkgen GATE_CLK_APB_I2C>;
  83. clock-names = "ref";
  84. clock-frequency = <100000>;
  85. interrupts = <104 IRQ_TYPE_LEVEL_HIGH>;
  86. resets = <&rstgen RST_I2C3>;
  87. status = "disabled";
  88. };
  89. gpio0: gpio@7030009000 {
  90. compatible = "snps,dw-apb-gpio";
  91. reg = <0x70 0x30009000 0x0 0x400>;
  92. #address-cells = <1>;
  93. #size-cells = <0>;
  94. clocks = <&clkgen GATE_CLK_APB_GPIO>,
  95. <&clkgen GATE_CLK_GPIO_DB>;
  96. clock-names = "bus", "db";
  97. port0a: gpio-controller@0 {
  98. compatible = "snps,dw-apb-gpio-port";
  99. gpio-controller;
  100. #gpio-cells = <2>;
  101. ngpios = <32>;
  102. reg = <0>;
  103. interrupt-controller;
  104. #interrupt-cells = <2>;
  105. interrupt-parent = <&intc>;
  106. interrupts = <96 IRQ_TYPE_LEVEL_HIGH>;
  107. };
  108. };
  109. gpio1: gpio@703000a000 {
  110. compatible = "snps,dw-apb-gpio";
  111. reg = <0x70 0x3000a000 0x0 0x400>;
  112. #address-cells = <1>;
  113. #size-cells = <0>;
  114. clocks = <&clkgen GATE_CLK_APB_GPIO>,
  115. <&clkgen GATE_CLK_GPIO_DB>;
  116. clock-names = "bus", "db";
  117. port1a: gpio-controller@0 {
  118. compatible = "snps,dw-apb-gpio-port";
  119. gpio-controller;
  120. #gpio-cells = <2>;
  121. ngpios = <32>;
  122. reg = <0>;
  123. interrupt-controller;
  124. #interrupt-cells = <2>;
  125. interrupt-parent = <&intc>;
  126. interrupts = <97 IRQ_TYPE_LEVEL_HIGH>;
  127. };
  128. };
  129. gpio2: gpio@703000b000 {
  130. compatible = "snps,dw-apb-gpio";
  131. reg = <0x70 0x3000b000 0x0 0x400>;
  132. #address-cells = <1>;
  133. #size-cells = <0>;
  134. clocks = <&clkgen GATE_CLK_APB_GPIO>,
  135. <&clkgen GATE_CLK_GPIO_DB>;
  136. clock-names = "bus", "db";
  137. port2a: gpio-controller@0 {
  138. compatible = "snps,dw-apb-gpio-port";
  139. gpio-controller;
  140. #gpio-cells = <2>;
  141. ngpios = <32>;
  142. reg = <0>;
  143. interrupt-controller;
  144. #interrupt-cells = <2>;
  145. interrupt-parent = <&intc>;
  146. interrupts = <98 IRQ_TYPE_LEVEL_HIGH>;
  147. };
  148. };
  149. pllclk: clock-controller@70300100c0 {
  150. compatible = "sophgo,sg2042-pll";
  151. reg = <0x70 0x300100c0 0x0 0x40>;
  152. clocks = <&cgi_main>, <&cgi_dpll0>, <&cgi_dpll1>;
  153. clock-names = "cgi_main", "cgi_dpll0", "cgi_dpll1";
  154. #clock-cells = <1>;
  155. };
  156. rpgate: clock-controller@7030010368 {
  157. compatible = "sophgo,sg2042-rpgate";
  158. reg = <0x70 0x30010368 0x0 0x98>;
  159. clocks = <&clkgen GATE_CLK_RP_CPU_NORMAL>;
  160. clock-names = "rpgate";
  161. #clock-cells = <1>;
  162. };
  163. clkgen: clock-controller@7030012000 {
  164. compatible = "sophgo,sg2042-clkgen";
  165. reg = <0x70 0x30012000 0x0 0x1000>;
  166. clocks = <&pllclk MPLL_CLK>,
  167. <&pllclk FPLL_CLK>,
  168. <&pllclk DPLL0_CLK>,
  169. <&pllclk DPLL1_CLK>;
  170. clock-names = "mpll",
  171. "fpll",
  172. "dpll0",
  173. "dpll1";
  174. #clock-cells = <1>;
  175. };
  176. clint_mswi: interrupt-controller@7094000000 {
  177. compatible = "sophgo,sg2042-aclint-mswi", "thead,c900-aclint-mswi";
  178. reg = <0x00000070 0x94000000 0x00000000 0x00004000>;
  179. interrupts-extended = <&cpu0_intc 3>,
  180. <&cpu1_intc 3>,
  181. <&cpu2_intc 3>,
  182. <&cpu3_intc 3>,
  183. <&cpu4_intc 3>,
  184. <&cpu5_intc 3>,
  185. <&cpu6_intc 3>,
  186. <&cpu7_intc 3>,
  187. <&cpu8_intc 3>,
  188. <&cpu9_intc 3>,
  189. <&cpu10_intc 3>,
  190. <&cpu11_intc 3>,
  191. <&cpu12_intc 3>,
  192. <&cpu13_intc 3>,
  193. <&cpu14_intc 3>,
  194. <&cpu15_intc 3>,
  195. <&cpu16_intc 3>,
  196. <&cpu17_intc 3>,
  197. <&cpu18_intc 3>,
  198. <&cpu19_intc 3>,
  199. <&cpu20_intc 3>,
  200. <&cpu21_intc 3>,
  201. <&cpu22_intc 3>,
  202. <&cpu23_intc 3>,
  203. <&cpu24_intc 3>,
  204. <&cpu25_intc 3>,
  205. <&cpu26_intc 3>,
  206. <&cpu27_intc 3>,
  207. <&cpu28_intc 3>,
  208. <&cpu29_intc 3>,
  209. <&cpu30_intc 3>,
  210. <&cpu31_intc 3>,
  211. <&cpu32_intc 3>,
  212. <&cpu33_intc 3>,
  213. <&cpu34_intc 3>,
  214. <&cpu35_intc 3>,
  215. <&cpu36_intc 3>,
  216. <&cpu37_intc 3>,
  217. <&cpu38_intc 3>,
  218. <&cpu39_intc 3>,
  219. <&cpu40_intc 3>,
  220. <&cpu41_intc 3>,
  221. <&cpu42_intc 3>,
  222. <&cpu43_intc 3>,
  223. <&cpu44_intc 3>,
  224. <&cpu45_intc 3>,
  225. <&cpu46_intc 3>,
  226. <&cpu47_intc 3>,
  227. <&cpu48_intc 3>,
  228. <&cpu49_intc 3>,
  229. <&cpu50_intc 3>,
  230. <&cpu51_intc 3>,
  231. <&cpu52_intc 3>,
  232. <&cpu53_intc 3>,
  233. <&cpu54_intc 3>,
  234. <&cpu55_intc 3>,
  235. <&cpu56_intc 3>,
  236. <&cpu57_intc 3>,
  237. <&cpu58_intc 3>,
  238. <&cpu59_intc 3>,
  239. <&cpu60_intc 3>,
  240. <&cpu61_intc 3>,
  241. <&cpu62_intc 3>,
  242. <&cpu63_intc 3>;
  243. };
  244. clint_mtimer0: timer@70ac004000 {
  245. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  246. reg = <0x00000070 0xac004000 0x00000000 0x0000c000>;
  247. reg-names = "mtimecmp";
  248. interrupts-extended = <&cpu0_intc 7>,
  249. <&cpu1_intc 7>,
  250. <&cpu2_intc 7>,
  251. <&cpu3_intc 7>;
  252. };
  253. clint_mtimer1: timer@70ac014000 {
  254. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  255. reg = <0x00000070 0xac014000 0x00000000 0x0000c000>;
  256. reg-names = "mtimecmp";
  257. interrupts-extended = <&cpu4_intc 7>,
  258. <&cpu5_intc 7>,
  259. <&cpu6_intc 7>,
  260. <&cpu7_intc 7>;
  261. };
  262. clint_mtimer2: timer@70ac024000 {
  263. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  264. reg = <0x00000070 0xac024000 0x00000000 0x0000c000>;
  265. reg-names = "mtimecmp";
  266. interrupts-extended = <&cpu8_intc 7>,
  267. <&cpu9_intc 7>,
  268. <&cpu10_intc 7>,
  269. <&cpu11_intc 7>;
  270. };
  271. clint_mtimer3: timer@70ac034000 {
  272. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  273. reg = <0x00000070 0xac034000 0x00000000 0x0000c000>;
  274. reg-names = "mtimecmp";
  275. interrupts-extended = <&cpu12_intc 7>,
  276. <&cpu13_intc 7>,
  277. <&cpu14_intc 7>,
  278. <&cpu15_intc 7>;
  279. };
  280. clint_mtimer4: timer@70ac044000 {
  281. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  282. reg = <0x00000070 0xac044000 0x00000000 0x0000c000>;
  283. reg-names = "mtimecmp";
  284. interrupts-extended = <&cpu16_intc 7>,
  285. <&cpu17_intc 7>,
  286. <&cpu18_intc 7>,
  287. <&cpu19_intc 7>;
  288. };
  289. clint_mtimer5: timer@70ac054000 {
  290. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  291. reg = <0x00000070 0xac054000 0x00000000 0x0000c000>;
  292. reg-names = "mtimecmp";
  293. interrupts-extended = <&cpu20_intc 7>,
  294. <&cpu21_intc 7>,
  295. <&cpu22_intc 7>,
  296. <&cpu23_intc 7>;
  297. };
  298. clint_mtimer6: timer@70ac064000 {
  299. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  300. reg = <0x00000070 0xac064000 0x00000000 0x0000c000>;
  301. reg-names = "mtimecmp";
  302. interrupts-extended = <&cpu24_intc 7>,
  303. <&cpu25_intc 7>,
  304. <&cpu26_intc 7>,
  305. <&cpu27_intc 7>;
  306. };
  307. clint_mtimer7: timer@70ac074000 {
  308. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  309. reg = <0x00000070 0xac074000 0x00000000 0x0000c000>;
  310. reg-names = "mtimecmp";
  311. interrupts-extended = <&cpu28_intc 7>,
  312. <&cpu29_intc 7>,
  313. <&cpu30_intc 7>,
  314. <&cpu31_intc 7>;
  315. };
  316. clint_mtimer8: timer@70ac084000 {
  317. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  318. reg = <0x00000070 0xac084000 0x00000000 0x0000c000>;
  319. reg-names = "mtimecmp";
  320. interrupts-extended = <&cpu32_intc 7>,
  321. <&cpu33_intc 7>,
  322. <&cpu34_intc 7>,
  323. <&cpu35_intc 7>;
  324. };
  325. clint_mtimer9: timer@70ac094000 {
  326. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  327. reg = <0x00000070 0xac094000 0x00000000 0x0000c000>;
  328. reg-names = "mtimecmp";
  329. interrupts-extended = <&cpu36_intc 7>,
  330. <&cpu37_intc 7>,
  331. <&cpu38_intc 7>,
  332. <&cpu39_intc 7>;
  333. };
  334. clint_mtimer10: timer@70ac0a4000 {
  335. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  336. reg = <0x00000070 0xac0a4000 0x00000000 0x0000c000>;
  337. reg-names = "mtimecmp";
  338. interrupts-extended = <&cpu40_intc 7>,
  339. <&cpu41_intc 7>,
  340. <&cpu42_intc 7>,
  341. <&cpu43_intc 7>;
  342. };
  343. clint_mtimer11: timer@70ac0b4000 {
  344. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  345. reg = <0x00000070 0xac0b4000 0x00000000 0x0000c000>;
  346. reg-names = "mtimecmp";
  347. interrupts-extended = <&cpu44_intc 7>,
  348. <&cpu45_intc 7>,
  349. <&cpu46_intc 7>,
  350. <&cpu47_intc 7>;
  351. };
  352. clint_mtimer12: timer@70ac0c4000 {
  353. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  354. reg = <0x00000070 0xac0c4000 0x00000000 0x0000c000>;
  355. reg-names = "mtimecmp";
  356. interrupts-extended = <&cpu48_intc 7>,
  357. <&cpu49_intc 7>,
  358. <&cpu50_intc 7>,
  359. <&cpu51_intc 7>;
  360. };
  361. clint_mtimer13: timer@70ac0d4000 {
  362. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  363. reg = <0x00000070 0xac0d4000 0x00000000 0x0000c000>;
  364. reg-names = "mtimecmp";
  365. interrupts-extended = <&cpu52_intc 7>,
  366. <&cpu53_intc 7>,
  367. <&cpu54_intc 7>,
  368. <&cpu55_intc 7>;
  369. };
  370. clint_mtimer14: timer@70ac0e4000 {
  371. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  372. reg = <0x00000070 0xac0e4000 0x00000000 0x0000c000>;
  373. reg-names = "mtimecmp";
  374. interrupts-extended = <&cpu56_intc 7>,
  375. <&cpu57_intc 7>,
  376. <&cpu58_intc 7>,
  377. <&cpu59_intc 7>;
  378. };
  379. clint_mtimer15: timer@70ac0f4000 {
  380. compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer";
  381. reg = <0x00000070 0xac0f4000 0x00000000 0x0000c000>;
  382. reg-names = "mtimecmp";
  383. interrupts-extended = <&cpu60_intc 7>,
  384. <&cpu61_intc 7>,
  385. <&cpu62_intc 7>,
  386. <&cpu63_intc 7>;
  387. };
  388. intc: interrupt-controller@7090000000 {
  389. compatible = "sophgo,sg2042-plic", "thead,c900-plic";
  390. #address-cells = <0>;
  391. #interrupt-cells = <2>;
  392. reg = <0x00000070 0x90000000 0x00000000 0x04000000>;
  393. interrupt-controller;
  394. interrupts-extended =
  395. <&cpu0_intc 11>, <&cpu0_intc 9>,
  396. <&cpu1_intc 11>, <&cpu1_intc 9>,
  397. <&cpu2_intc 11>, <&cpu2_intc 9>,
  398. <&cpu3_intc 11>, <&cpu3_intc 9>,
  399. <&cpu4_intc 11>, <&cpu4_intc 9>,
  400. <&cpu5_intc 11>, <&cpu5_intc 9>,
  401. <&cpu6_intc 11>, <&cpu6_intc 9>,
  402. <&cpu7_intc 11>, <&cpu7_intc 9>,
  403. <&cpu8_intc 11>, <&cpu8_intc 9>,
  404. <&cpu9_intc 11>, <&cpu9_intc 9>,
  405. <&cpu10_intc 11>, <&cpu10_intc 9>,
  406. <&cpu11_intc 11>, <&cpu11_intc 9>,
  407. <&cpu12_intc 11>, <&cpu12_intc 9>,
  408. <&cpu13_intc 11>, <&cpu13_intc 9>,
  409. <&cpu14_intc 11>, <&cpu14_intc 9>,
  410. <&cpu15_intc 11>, <&cpu15_intc 9>,
  411. <&cpu16_intc 11>, <&cpu16_intc 9>,
  412. <&cpu17_intc 11>, <&cpu17_intc 9>,
  413. <&cpu18_intc 11>, <&cpu18_intc 9>,
  414. <&cpu19_intc 11>, <&cpu19_intc 9>,
  415. <&cpu20_intc 11>, <&cpu20_intc 9>,
  416. <&cpu21_intc 11>, <&cpu21_intc 9>,
  417. <&cpu22_intc 11>, <&cpu22_intc 9>,
  418. <&cpu23_intc 11>, <&cpu23_intc 9>,
  419. <&cpu24_intc 11>, <&cpu24_intc 9>,
  420. <&cpu25_intc 11>, <&cpu25_intc 9>,
  421. <&cpu26_intc 11>, <&cpu26_intc 9>,
  422. <&cpu27_intc 11>, <&cpu27_intc 9>,
  423. <&cpu28_intc 11>, <&cpu28_intc 9>,
  424. <&cpu29_intc 11>, <&cpu29_intc 9>,
  425. <&cpu30_intc 11>, <&cpu30_intc 9>,
  426. <&cpu31_intc 11>, <&cpu31_intc 9>,
  427. <&cpu32_intc 11>, <&cpu32_intc 9>,
  428. <&cpu33_intc 11>, <&cpu33_intc 9>,
  429. <&cpu34_intc 11>, <&cpu34_intc 9>,
  430. <&cpu35_intc 11>, <&cpu35_intc 9>,
  431. <&cpu36_intc 11>, <&cpu36_intc 9>,
  432. <&cpu37_intc 11>, <&cpu37_intc 9>,
  433. <&cpu38_intc 11>, <&cpu38_intc 9>,
  434. <&cpu39_intc 11>, <&cpu39_intc 9>,
  435. <&cpu40_intc 11>, <&cpu40_intc 9>,
  436. <&cpu41_intc 11>, <&cpu41_intc 9>,
  437. <&cpu42_intc 11>, <&cpu42_intc 9>,
  438. <&cpu43_intc 11>, <&cpu43_intc 9>,
  439. <&cpu44_intc 11>, <&cpu44_intc 9>,
  440. <&cpu45_intc 11>, <&cpu45_intc 9>,
  441. <&cpu46_intc 11>, <&cpu46_intc 9>,
  442. <&cpu47_intc 11>, <&cpu47_intc 9>,
  443. <&cpu48_intc 11>, <&cpu48_intc 9>,
  444. <&cpu49_intc 11>, <&cpu49_intc 9>,
  445. <&cpu50_intc 11>, <&cpu50_intc 9>,
  446. <&cpu51_intc 11>, <&cpu51_intc 9>,
  447. <&cpu52_intc 11>, <&cpu52_intc 9>,
  448. <&cpu53_intc 11>, <&cpu53_intc 9>,
  449. <&cpu54_intc 11>, <&cpu54_intc 9>,
  450. <&cpu55_intc 11>, <&cpu55_intc 9>,
  451. <&cpu56_intc 11>, <&cpu56_intc 9>,
  452. <&cpu57_intc 11>, <&cpu57_intc 9>,
  453. <&cpu58_intc 11>, <&cpu58_intc 9>,
  454. <&cpu59_intc 11>, <&cpu59_intc 9>,
  455. <&cpu60_intc 11>, <&cpu60_intc 9>,
  456. <&cpu61_intc 11>, <&cpu61_intc 9>,
  457. <&cpu62_intc 11>, <&cpu62_intc 9>,
  458. <&cpu63_intc 11>, <&cpu63_intc 9>;
  459. riscv,ndev = <224>;
  460. };
  461. rstgen: reset-controller@7030013000 {
  462. compatible = "sophgo,sg2042-reset";
  463. reg = <0x00000070 0x30013000 0x00000000 0x0000000c>;
  464. #reset-cells = <1>;
  465. };
  466. uart0: serial@7040000000 {
  467. compatible = "snps,dw-apb-uart";
  468. reg = <0x00000070 0x40000000 0x00000000 0x00001000>;
  469. interrupts = <112 IRQ_TYPE_LEVEL_HIGH>;
  470. clock-frequency = <500000000>;
  471. clocks = <&clkgen GATE_CLK_UART_500M>,
  472. <&clkgen GATE_CLK_APB_UART>;
  473. clock-names = "baudclk", "apb_pclk";
  474. reg-shift = <2>;
  475. reg-io-width = <4>;
  476. resets = <&rstgen RST_UART0>;
  477. status = "disabled";
  478. };
  479. emmc: mmc@704002a000 {
  480. compatible = "sophgo,sg2042-dwcmshc";
  481. reg = <0x70 0x4002a000 0x0 0x1000>;
  482. interrupt-parent = <&intc>;
  483. interrupts = <134 IRQ_TYPE_LEVEL_HIGH>;
  484. clocks = <&clkgen GATE_CLK_EMMC_100M>,
  485. <&clkgen GATE_CLK_AXI_EMMC>,
  486. <&clkgen GATE_CLK_100K_EMMC>;
  487. clock-names = "core",
  488. "bus",
  489. "timer";
  490. status = "disabled";
  491. };
  492. sd: mmc@704002b000 {
  493. compatible = "sophgo,sg2042-dwcmshc";
  494. reg = <0x70 0x4002b000 0x0 0x1000>;
  495. interrupt-parent = <&intc>;
  496. interrupts = <136 IRQ_TYPE_LEVEL_HIGH>;
  497. clocks = <&clkgen GATE_CLK_SD_100M>,
  498. <&clkgen GATE_CLK_AXI_SD>,
  499. <&clkgen GATE_CLK_100K_SD>;
  500. clock-names = "core",
  501. "bus",
  502. "timer";
  503. status = "disabled";
  504. };
  505. };
  506. };