mt2701.dtsi 20 KB

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