mt2701.dtsi 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Copyright (c) 2015 MediaTek Inc.
  4. * Author: Erin.Lo <[email protected]>
  5. *
  6. */
  7. #include <dt-bindings/clock/mt2701-clk.h>
  8. #include <dt-bindings/phy/phy.h>
  9. #include <dt-bindings/power/mt2701-power.h>
  10. #include <dt-bindings/interrupt-controller/irq.h>
  11. #include <dt-bindings/interrupt-controller/arm-gic.h>
  12. #include <dt-bindings/memory/mt2701-larb-port.h>
  13. #include <dt-bindings/reset/mt2701-resets.h>
  14. #include "mt2701-pinfunc.h"
  15. / {
  16. #address-cells = <2>;
  17. #size-cells = <2>;
  18. compatible = "mediatek,mt2701";
  19. interrupt-parent = <&cirq>;
  20. cpus {
  21. #address-cells = <1>;
  22. #size-cells = <0>;
  23. enable-method = "mediatek,mt81xx-tz-smp";
  24. cpu@0 {
  25. device_type = "cpu";
  26. compatible = "arm,cortex-a7";
  27. reg = <0x0>;
  28. };
  29. cpu@1 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a7";
  32. reg = <0x1>;
  33. };
  34. cpu@2 {
  35. device_type = "cpu";
  36. compatible = "arm,cortex-a7";
  37. reg = <0x2>;
  38. };
  39. cpu@3 {
  40. device_type = "cpu";
  41. compatible = "arm,cortex-a7";
  42. reg = <0x3>;
  43. };
  44. };
  45. reserved-memory {
  46. #address-cells = <2>;
  47. #size-cells = <2>;
  48. ranges;
  49. trustzone-bootinfo@80002000 {
  50. compatible = "mediatek,trustzone-bootinfo";
  51. reg = <0 0x80002000 0 0x1000>;
  52. };
  53. };
  54. system_clk: dummy13m {
  55. compatible = "fixed-clock";
  56. clock-frequency = <13000000>;
  57. #clock-cells = <0>;
  58. };
  59. rtc_clk: dummy32k {
  60. compatible = "fixed-clock";
  61. clock-frequency = <32000>;
  62. #clock-cells = <0>;
  63. };
  64. clk26m: oscillator@0 {
  65. compatible = "fixed-clock";
  66. #clock-cells = <0>;
  67. clock-frequency = <26000000>;
  68. clock-output-names = "clk26m";
  69. };
  70. rtc32k: oscillator@1 {
  71. compatible = "fixed-clock";
  72. #clock-cells = <0>;
  73. clock-frequency = <32000>;
  74. clock-output-names = "rtc32k";
  75. };
  76. thermal-zones {
  77. cpu_thermal: cpu_thermal {
  78. polling-delay-passive = <1000>; /* milliseconds */
  79. polling-delay = <1000>; /* milliseconds */
  80. thermal-sensors = <&thermal 0>;
  81. sustainable-power = <1000>;
  82. trips {
  83. threshold: trip-point@0 {
  84. temperature = <68000>;
  85. hysteresis = <2000>;
  86. type = "passive";
  87. };
  88. target: trip-point@1 {
  89. temperature = <85000>;
  90. hysteresis = <2000>;
  91. type = "passive";
  92. };
  93. cpu_crit: cpu_crit@0 {
  94. temperature = <115000>;
  95. hysteresis = <2000>;
  96. type = "critical";
  97. };
  98. };
  99. };
  100. };
  101. timer {
  102. compatible = "arm,armv7-timer";
  103. interrupt-parent = <&gic>;
  104. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  105. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  106. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  107. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  108. };
  109. topckgen: syscon@10000000 {
  110. compatible = "mediatek,mt2701-topckgen", "syscon";
  111. reg = <0 0x10000000 0 0x1000>;
  112. #clock-cells = <1>;
  113. };
  114. infracfg: syscon@10001000 {
  115. compatible = "mediatek,mt2701-infracfg", "syscon";
  116. reg = <0 0x10001000 0 0x1000>;
  117. #clock-cells = <1>;
  118. #reset-cells = <1>;
  119. };
  120. pericfg: syscon@10003000 {
  121. compatible = "mediatek,mt2701-pericfg", "syscon";
  122. reg = <0 0x10003000 0 0x1000>;
  123. #clock-cells = <1>;
  124. #reset-cells = <1>;
  125. };
  126. syscfg_pctl_a: syscfg@10005000 {
  127. compatible = "mediatek,mt2701-pctl-a-syscfg", "syscon";
  128. reg = <0 0x10005000 0 0x1000>;
  129. };
  130. scpsys: power-controller@10006000 {
  131. compatible = "mediatek,mt2701-scpsys", "syscon";
  132. #power-domain-cells = <1>;
  133. reg = <0 0x10006000 0 0x1000>;
  134. infracfg = <&infracfg>;
  135. clocks = <&topckgen CLK_TOP_MM_SEL>,
  136. <&topckgen CLK_TOP_MFG_SEL>,
  137. <&topckgen CLK_TOP_ETHIF_SEL>;
  138. clock-names = "mm", "mfg", "ethif";
  139. };
  140. watchdog: watchdog@10007000 {
  141. compatible = "mediatek,mt2701-wdt",
  142. "mediatek,mt6589-wdt";
  143. reg = <0 0x10007000 0 0x100>;
  144. };
  145. timer: timer@10008000 {
  146. compatible = "mediatek,mt2701-timer",
  147. "mediatek,mt6577-timer";
  148. reg = <0 0x10008000 0 0x80>;
  149. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
  150. clocks = <&system_clk>, <&rtc_clk>;
  151. clock-names = "system-clk", "rtc-clk";
  152. };
  153. pio: pinctrl@1000b000 {
  154. compatible = "mediatek,mt2701-pinctrl";
  155. reg = <0 0x1000b000 0 0x1000>;
  156. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  157. pins-are-numbered;
  158. gpio-controller;
  159. #gpio-cells = <2>;
  160. interrupt-controller;
  161. #interrupt-cells = <2>;
  162. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  163. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  164. };
  165. smi_common: smi@1000c000 {
  166. compatible = "mediatek,mt2701-smi-common";
  167. reg = <0 0x1000c000 0 0x1000>;
  168. clocks = <&infracfg CLK_INFRA_SMI>,
  169. <&mmsys CLK_MM_SMI_COMMON>,
  170. <&infracfg CLK_INFRA_SMI>;
  171. clock-names = "apb", "smi", "async";
  172. power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
  173. };
  174. sysirq: interrupt-controller@10200100 {
  175. compatible = "mediatek,mt2701-sysirq",
  176. "mediatek,mt6577-sysirq";
  177. interrupt-controller;
  178. #interrupt-cells = <3>;
  179. interrupt-parent = <&gic>;
  180. reg = <0 0x10200100 0 0x1c>;
  181. };
  182. cirq: interrupt-controller@10204000 {
  183. compatible = "mediatek,mt2701-cirq",
  184. "mediatek,mtk-cirq";
  185. interrupt-controller;
  186. #interrupt-cells = <3>;
  187. interrupt-parent = <&sysirq>;
  188. reg = <0 0x10204000 0 0x400>;
  189. mediatek,ext-irq-range = <32 200>;
  190. };
  191. iommu: mmsys_iommu@10205000 {
  192. compatible = "mediatek,mt2701-m4u";
  193. reg = <0 0x10205000 0 0x1000>;
  194. interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>;
  195. clocks = <&infracfg CLK_INFRA_M4U>;
  196. clock-names = "bclk";
  197. mediatek,larbs = <&larb0 &larb1 &larb2>;
  198. #iommu-cells = <1>;
  199. };
  200. apmixedsys: syscon@10209000 {
  201. compatible = "mediatek,mt2701-apmixedsys", "syscon";
  202. reg = <0 0x10209000 0 0x1000>;
  203. #clock-cells = <1>;
  204. };
  205. gic: interrupt-controller@10211000 {
  206. compatible = "arm,cortex-a7-gic";
  207. interrupt-controller;
  208. #interrupt-cells = <3>;
  209. interrupt-parent = <&gic>;
  210. reg = <0 0x10211000 0 0x1000>,
  211. <0 0x10212000 0 0x2000>,
  212. <0 0x10214000 0 0x2000>,
  213. <0 0x10216000 0 0x2000>;
  214. };
  215. auxadc: adc@11001000 {
  216. compatible = "mediatek,mt2701-auxadc";
  217. reg = <0 0x11001000 0 0x1000>;
  218. clocks = <&pericfg CLK_PERI_AUXADC>;
  219. clock-names = "main";
  220. #io-channel-cells = <1>;
  221. status = "disabled";
  222. };
  223. uart0: serial@11002000 {
  224. compatible = "mediatek,mt2701-uart",
  225. "mediatek,mt6577-uart";
  226. reg = <0 0x11002000 0 0x400>;
  227. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
  228. clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
  229. clock-names = "baud", "bus";
  230. status = "disabled";
  231. };
  232. uart1: serial@11003000 {
  233. compatible = "mediatek,mt2701-uart",
  234. "mediatek,mt6577-uart";
  235. reg = <0 0x11003000 0 0x400>;
  236. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
  237. clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
  238. clock-names = "baud", "bus";
  239. status = "disabled";
  240. };
  241. uart2: serial@11004000 {
  242. compatible = "mediatek,mt2701-uart",
  243. "mediatek,mt6577-uart";
  244. reg = <0 0x11004000 0 0x400>;
  245. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
  246. clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
  247. clock-names = "baud", "bus";
  248. status = "disabled";
  249. };
  250. uart3: serial@11005000 {
  251. compatible = "mediatek,mt2701-uart",
  252. "mediatek,mt6577-uart";
  253. reg = <0 0x11005000 0 0x400>;
  254. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
  255. clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
  256. clock-names = "baud", "bus";
  257. status = "disabled";
  258. };
  259. i2c0: i2c@11007000 {
  260. compatible = "mediatek,mt2701-i2c",
  261. "mediatek,mt6577-i2c";
  262. reg = <0 0x11007000 0 0x70>,
  263. <0 0x11000200 0 0x80>;
  264. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
  265. clock-div = <16>;
  266. clocks = <&pericfg CLK_PERI_I2C0>, <&pericfg CLK_PERI_AP_DMA>;
  267. clock-names = "main", "dma";
  268. #address-cells = <1>;
  269. #size-cells = <0>;
  270. status = "disabled";
  271. };
  272. i2c1: i2c@11008000 {
  273. compatible = "mediatek,mt2701-i2c",
  274. "mediatek,mt6577-i2c";
  275. reg = <0 0x11008000 0 0x70>,
  276. <0 0x11000280 0 0x80>;
  277. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
  278. clock-div = <16>;
  279. clocks = <&pericfg CLK_PERI_I2C1>, <&pericfg CLK_PERI_AP_DMA>;
  280. clock-names = "main", "dma";
  281. #address-cells = <1>;
  282. #size-cells = <0>;
  283. status = "disabled";
  284. };
  285. i2c2: i2c@11009000 {
  286. compatible = "mediatek,mt2701-i2c",
  287. "mediatek,mt6577-i2c";
  288. reg = <0 0x11009000 0 0x70>,
  289. <0 0x11000300 0 0x80>;
  290. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
  291. clock-div = <16>;
  292. clocks = <&pericfg CLK_PERI_I2C2>, <&pericfg CLK_PERI_AP_DMA>;
  293. clock-names = "main", "dma";
  294. #address-cells = <1>;
  295. #size-cells = <0>;
  296. status = "disabled";
  297. };
  298. spi0: spi@1100a000 {
  299. compatible = "mediatek,mt2701-spi";
  300. #address-cells = <1>;
  301. #size-cells = <0>;
  302. reg = <0 0x1100a000 0 0x100>;
  303. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
  304. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  305. <&topckgen CLK_TOP_SPI0_SEL>,
  306. <&pericfg CLK_PERI_SPI0>;
  307. clock-names = "parent-clk", "sel-clk", "spi-clk";
  308. status = "disabled";
  309. };
  310. thermal: thermal@1100b000 {
  311. #thermal-sensor-cells = <0>;
  312. compatible = "mediatek,mt2701-thermal";
  313. reg = <0 0x1100b000 0 0x1000>;
  314. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_LOW>;
  315. clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
  316. clock-names = "therm", "auxadc";
  317. resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
  318. reset-names = "therm";
  319. mediatek,auxadc = <&auxadc>;
  320. mediatek,apmixedsys = <&apmixedsys>;
  321. };
  322. nandc: nfi@1100d000 {
  323. compatible = "mediatek,mt2701-nfc";
  324. reg = <0 0x1100d000 0 0x1000>;
  325. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
  326. clocks = <&pericfg CLK_PERI_NFI>,
  327. <&pericfg CLK_PERI_NFI_PAD>;
  328. clock-names = "nfi_clk", "pad_clk";
  329. status = "disabled";
  330. ecc-engine = <&bch>;
  331. #address-cells = <1>;
  332. #size-cells = <0>;
  333. };
  334. bch: ecc@1100e000 {
  335. compatible = "mediatek,mt2701-ecc";
  336. reg = <0 0x1100e000 0 0x1000>;
  337. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
  338. clocks = <&pericfg CLK_PERI_NFI_ECC>;
  339. clock-names = "nfiecc_clk";
  340. status = "disabled";
  341. };
  342. nor_flash: spi@11014000 {
  343. compatible = "mediatek,mt2701-nor",
  344. "mediatek,mt8173-nor";
  345. reg = <0 0x11014000 0 0xe0>;
  346. clocks = <&pericfg CLK_PERI_FLASH>,
  347. <&topckgen CLK_TOP_FLASH_SEL>;
  348. clock-names = "spi", "sf";
  349. #address-cells = <1>;
  350. #size-cells = <0>;
  351. status = "disabled";
  352. };
  353. spi1: spi@11016000 {
  354. compatible = "mediatek,mt2701-spi";
  355. #address-cells = <1>;
  356. #size-cells = <0>;
  357. reg = <0 0x11016000 0 0x100>;
  358. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
  359. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  360. <&topckgen CLK_TOP_SPI1_SEL>,
  361. <&pericfg CLK_PERI_SPI1>;
  362. clock-names = "parent-clk", "sel-clk", "spi-clk";
  363. status = "disabled";
  364. };
  365. spi2: spi@11017000 {
  366. compatible = "mediatek,mt2701-spi";
  367. #address-cells = <1>;
  368. #size-cells = <0>;
  369. reg = <0 0x11017000 0 0x1000>;
  370. interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
  371. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  372. <&topckgen CLK_TOP_SPI2_SEL>,
  373. <&pericfg CLK_PERI_SPI2>;
  374. clock-names = "parent-clk", "sel-clk", "spi-clk";
  375. status = "disabled";
  376. };
  377. audsys: clock-controller@11220000 {
  378. compatible = "mediatek,mt2701-audsys", "syscon";
  379. reg = <0 0x11220000 0 0x2000>;
  380. #clock-cells = <1>;
  381. afe: audio-controller {
  382. compatible = "mediatek,mt2701-audio";
  383. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
  384. <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
  385. interrupt-names = "afe", "asys";
  386. power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
  387. clocks = <&infracfg CLK_INFRA_AUDIO>,
  388. <&topckgen CLK_TOP_AUD_MUX1_SEL>,
  389. <&topckgen CLK_TOP_AUD_MUX2_SEL>,
  390. <&topckgen CLK_TOP_AUD_48K_TIMING>,
  391. <&topckgen CLK_TOP_AUD_44K_TIMING>,
  392. <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
  393. <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
  394. <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
  395. <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
  396. <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
  397. <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
  398. <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
  399. <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
  400. <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
  401. <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
  402. <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
  403. <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
  404. <&audsys CLK_AUD_I2SO1>,
  405. <&audsys CLK_AUD_I2SO2>,
  406. <&audsys CLK_AUD_I2SO3>,
  407. <&audsys CLK_AUD_I2SO4>,
  408. <&audsys CLK_AUD_I2SIN1>,
  409. <&audsys CLK_AUD_I2SIN2>,
  410. <&audsys CLK_AUD_I2SIN3>,
  411. <&audsys CLK_AUD_I2SIN4>,
  412. <&audsys CLK_AUD_ASRCO1>,
  413. <&audsys CLK_AUD_ASRCO2>,
  414. <&audsys CLK_AUD_ASRCO3>,
  415. <&audsys CLK_AUD_ASRCO4>,
  416. <&audsys CLK_AUD_AFE>,
  417. <&audsys CLK_AUD_AFE_CONN>,
  418. <&audsys CLK_AUD_A1SYS>,
  419. <&audsys CLK_AUD_A2SYS>,
  420. <&audsys CLK_AUD_AFE_MRGIF>;
  421. clock-names = "infra_sys_audio_clk",
  422. "top_audio_mux1_sel",
  423. "top_audio_mux2_sel",
  424. "top_audio_a1sys_hp",
  425. "top_audio_a2sys_hp",
  426. "i2s0_src_sel",
  427. "i2s1_src_sel",
  428. "i2s2_src_sel",
  429. "i2s3_src_sel",
  430. "i2s0_src_div",
  431. "i2s1_src_div",
  432. "i2s2_src_div",
  433. "i2s3_src_div",
  434. "i2s0_mclk_en",
  435. "i2s1_mclk_en",
  436. "i2s2_mclk_en",
  437. "i2s3_mclk_en",
  438. "i2so0_hop_ck",
  439. "i2so1_hop_ck",
  440. "i2so2_hop_ck",
  441. "i2so3_hop_ck",
  442. "i2si0_hop_ck",
  443. "i2si1_hop_ck",
  444. "i2si2_hop_ck",
  445. "i2si3_hop_ck",
  446. "asrc0_out_ck",
  447. "asrc1_out_ck",
  448. "asrc2_out_ck",
  449. "asrc3_out_ck",
  450. "audio_afe_pd",
  451. "audio_afe_conn_pd",
  452. "audio_a1sys_pd",
  453. "audio_a2sys_pd",
  454. "audio_mrgif_pd";
  455. assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
  456. <&topckgen CLK_TOP_AUD_MUX2_SEL>,
  457. <&topckgen CLK_TOP_AUD_MUX1_DIV>,
  458. <&topckgen CLK_TOP_AUD_MUX2_DIV>;
  459. assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
  460. <&topckgen CLK_TOP_AUD2PLL_90M>;
  461. assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
  462. };
  463. };
  464. mmsys: syscon@14000000 {
  465. compatible = "mediatek,mt2701-mmsys", "syscon";
  466. reg = <0 0x14000000 0 0x1000>;
  467. #clock-cells = <1>;
  468. };
  469. bls: pwm@1400a000 {
  470. compatible = "mediatek,mt2701-disp-pwm";
  471. reg = <0 0x1400a000 0 0x1000>;
  472. #pwm-cells = <2>;
  473. clocks = <&mmsys CLK_MM_MDP_BLS_26M>, <&mmsys CLK_MM_DISP_BLS>;
  474. clock-names = "main", "mm";
  475. status = "disabled";
  476. };
  477. larb0: larb@14010000 {
  478. compatible = "mediatek,mt2701-smi-larb";
  479. reg = <0 0x14010000 0 0x1000>;
  480. mediatek,smi = <&smi_common>;
  481. mediatek,larb-id = <0>;
  482. clocks = <&mmsys CLK_MM_SMI_LARB0>,
  483. <&mmsys CLK_MM_SMI_LARB0>;
  484. clock-names = "apb", "smi";
  485. power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
  486. };
  487. imgsys: syscon@15000000 {
  488. compatible = "mediatek,mt2701-imgsys", "syscon";
  489. reg = <0 0x15000000 0 0x1000>;
  490. #clock-cells = <1>;
  491. };
  492. larb2: larb@15001000 {
  493. compatible = "mediatek,mt2701-smi-larb";
  494. reg = <0 0x15001000 0 0x1000>;
  495. mediatek,smi = <&smi_common>;
  496. mediatek,larb-id = <2>;
  497. clocks = <&imgsys CLK_IMG_SMI_COMM>,
  498. <&imgsys CLK_IMG_SMI_COMM>;
  499. clock-names = "apb", "smi";
  500. power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
  501. };
  502. jpegdec: jpegdec@15004000 {
  503. compatible = "mediatek,mt2701-jpgdec";
  504. reg = <0 0x15004000 0 0x1000>;
  505. interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>;
  506. clocks = <&imgsys CLK_IMG_JPGDEC_SMI>,
  507. <&imgsys CLK_IMG_JPGDEC>;
  508. clock-names = "jpgdec-smi",
  509. "jpgdec";
  510. power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
  511. iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
  512. <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
  513. };
  514. jpegenc: jpegenc@1500a000 {
  515. compatible = "mediatek,mt2701-jpgenc",
  516. "mediatek,mtk-jpgenc";
  517. reg = <0 0x1500a000 0 0x1000>;
  518. interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_LOW>;
  519. clocks = <&imgsys CLK_IMG_VENC>;
  520. clock-names = "jpgenc";
  521. power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
  522. iommus = <&iommu MT2701_M4U_PORT_JPGENC_RDMA>,
  523. <&iommu MT2701_M4U_PORT_JPGENC_BSDMA>;
  524. };
  525. vdecsys: syscon@16000000 {
  526. compatible = "mediatek,mt2701-vdecsys", "syscon";
  527. reg = <0 0x16000000 0 0x1000>;
  528. #clock-cells = <1>;
  529. };
  530. larb1: larb@16010000 {
  531. compatible = "mediatek,mt2701-smi-larb";
  532. reg = <0 0x16010000 0 0x1000>;
  533. mediatek,smi = <&smi_common>;
  534. mediatek,larb-id = <1>;
  535. clocks = <&vdecsys CLK_VDEC_CKGEN>,
  536. <&vdecsys CLK_VDEC_LARB>;
  537. clock-names = "apb", "smi";
  538. power-domains = <&scpsys MT2701_POWER_DOMAIN_VDEC>;
  539. };
  540. hifsys: syscon@1a000000 {
  541. compatible = "mediatek,mt2701-hifsys", "syscon";
  542. reg = <0 0x1a000000 0 0x1000>;
  543. #clock-cells = <1>;
  544. #reset-cells = <1>;
  545. };
  546. usb0: usb@1a1c0000 {
  547. compatible = "mediatek,mt2701-xhci", "mediatek,mtk-xhci";
  548. reg = <0 0x1a1c0000 0 0x1000>,
  549. <0 0x1a1c4700 0 0x0100>;
  550. reg-names = "mac", "ippc";
  551. interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
  552. clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
  553. <&topckgen CLK_TOP_ETHIF_SEL>;
  554. clock-names = "sys_ck", "ref_ck";
  555. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  556. phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
  557. status = "disabled";
  558. };
  559. u3phy0: t-phy@1a1c4000 {
  560. compatible = "mediatek,mt2701-tphy",
  561. "mediatek,generic-tphy-v1";
  562. reg = <0 0x1a1c4000 0 0x0700>;
  563. #address-cells = <2>;
  564. #size-cells = <2>;
  565. ranges;
  566. status = "disabled";
  567. u2port0: usb-phy@1a1c4800 {
  568. reg = <0 0x1a1c4800 0 0x0100>;
  569. clocks = <&topckgen CLK_TOP_USB_PHY48M>;
  570. clock-names = "ref";
  571. #phy-cells = <1>;
  572. status = "okay";
  573. };
  574. u3port0: usb-phy@1a1c4900 {
  575. reg = <0 0x1a1c4900 0 0x0700>;
  576. clocks = <&clk26m>;
  577. clock-names = "ref";
  578. #phy-cells = <1>;
  579. status = "okay";
  580. };
  581. };
  582. usb1: usb@1a240000 {
  583. compatible = "mediatek,mt2701-xhci", "mediatek,mtk-xhci";
  584. reg = <0 0x1a240000 0 0x1000>,
  585. <0 0x1a244700 0 0x0100>;
  586. reg-names = "mac", "ippc";
  587. interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
  588. clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
  589. <&topckgen CLK_TOP_ETHIF_SEL>;
  590. clock-names = "sys_ck", "ref_ck";
  591. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  592. phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
  593. status = "disabled";
  594. };
  595. u3phy1: t-phy@1a244000 {
  596. compatible = "mediatek,mt2701-tphy",
  597. "mediatek,generic-tphy-v1";
  598. reg = <0 0x1a244000 0 0x0700>;
  599. #address-cells = <2>;
  600. #size-cells = <2>;
  601. ranges;
  602. status = "disabled";
  603. u2port1: usb-phy@1a244800 {
  604. reg = <0 0x1a244800 0 0x0100>;
  605. clocks = <&topckgen CLK_TOP_USB_PHY48M>;
  606. clock-names = "ref";
  607. #phy-cells = <1>;
  608. status = "okay";
  609. };
  610. u3port1: usb-phy@1a244900 {
  611. reg = <0 0x1a244900 0 0x0700>;
  612. clocks = <&clk26m>;
  613. clock-names = "ref";
  614. #phy-cells = <1>;
  615. status = "okay";
  616. };
  617. };
  618. usb2: usb@11200000 {
  619. compatible = "mediatek,mt2701-musb",
  620. "mediatek,mtk-musb";
  621. reg = <0 0x11200000 0 0x1000>;
  622. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
  623. interrupt-names = "mc";
  624. phys = <&u2port2 PHY_TYPE_USB2>;
  625. dr_mode = "otg";
  626. clocks = <&pericfg CLK_PERI_USB0>,
  627. <&pericfg CLK_PERI_USB0_MCU>,
  628. <&pericfg CLK_PERI_USB_SLV>;
  629. clock-names = "main","mcu","univpll";
  630. power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
  631. status = "disabled";
  632. };
  633. u2phy0: t-phy@11210000 {
  634. compatible = "mediatek,mt2701-tphy",
  635. "mediatek,generic-tphy-v1";
  636. reg = <0 0x11210000 0 0x0800>;
  637. #address-cells = <2>;
  638. #size-cells = <2>;
  639. ranges;
  640. status = "okay";
  641. u2port2: usb-phy@1a1c4800 {
  642. reg = <0 0x11210800 0 0x0100>;
  643. clocks = <&topckgen CLK_TOP_USB_PHY48M>;
  644. clock-names = "ref";
  645. #phy-cells = <1>;
  646. status = "okay";
  647. };
  648. };
  649. ethsys: syscon@1b000000 {
  650. compatible = "mediatek,mt2701-ethsys", "syscon";
  651. reg = <0 0x1b000000 0 0x1000>;
  652. #clock-cells = <1>;
  653. #reset-cells = <1>;
  654. };
  655. eth: ethernet@1b100000 {
  656. compatible = "mediatek,mt2701-eth", "syscon";
  657. reg = <0 0x1b100000 0 0x20000>;
  658. interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
  659. <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
  660. <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
  661. clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
  662. <&ethsys CLK_ETHSYS_ESW>,
  663. <&ethsys CLK_ETHSYS_GP1>,
  664. <&ethsys CLK_ETHSYS_GP2>,
  665. <&apmixedsys CLK_APMIXED_TRGPLL>;
  666. clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
  667. resets = <&ethsys MT2701_ETHSYS_FE_RST>,
  668. <&ethsys MT2701_ETHSYS_GMAC_RST>,
  669. <&ethsys MT2701_ETHSYS_PPE_RST>;
  670. reset-names = "fe", "gmac", "ppe";
  671. power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
  672. mediatek,ethsys = <&ethsys>;
  673. mediatek,pctl = <&syscfg_pctl_a>;
  674. #address-cells = <1>;
  675. #size-cells = <0>;
  676. status = "disabled";
  677. };
  678. bdpsys: syscon@1c000000 {
  679. compatible = "mediatek,mt2701-bdpsys", "syscon";
  680. reg = <0 0x1c000000 0 0x1000>;
  681. #clock-cells = <1>;
  682. };
  683. };