mt7623.dtsi 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801
  1. /*
  2. * Copyright (c) 2017 MediaTek Inc.
  3. * Author: John Crispin <john@phrozen.org>
  4. * Sean Wang <sean.wang@mediatek.com>
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. */
  15. #include <dt-bindings/interrupt-controller/irq.h>
  16. #include <dt-bindings/interrupt-controller/arm-gic.h>
  17. #include <dt-bindings/clock/mt2701-clk.h>
  18. #include <dt-bindings/pinctrl/mt7623-pinfunc.h>
  19. #include <dt-bindings/power/mt2701-power.h>
  20. #include <dt-bindings/gpio/gpio.h>
  21. #include <dt-bindings/phy/phy.h>
  22. #include <dt-bindings/reset/mt2701-resets.h>
  23. #include <dt-bindings/thermal/thermal.h>
  24. #include "skeleton64.dtsi"
  25. / {
  26. compatible = "mediatek,mt7623";
  27. interrupt-parent = <&sysirq>;
  28. cpu_opp_table: opp_table {
  29. compatible = "operating-points-v2";
  30. opp-shared;
  31. opp-98000000 {
  32. opp-hz = /bits/ 64 <98000000>;
  33. opp-microvolt = <1050000>;
  34. };
  35. opp-198000000 {
  36. opp-hz = /bits/ 64 <198000000>;
  37. opp-microvolt = <1050000>;
  38. };
  39. opp-398000000 {
  40. opp-hz = /bits/ 64 <398000000>;
  41. opp-microvolt = <1050000>;
  42. };
  43. opp-598000000 {
  44. opp-hz = /bits/ 64 <598000000>;
  45. opp-microvolt = <1050000>;
  46. };
  47. opp-747500000 {
  48. opp-hz = /bits/ 64 <747500000>;
  49. opp-microvolt = <1050000>;
  50. };
  51. opp-1040000000 {
  52. opp-hz = /bits/ 64 <1040000000>;
  53. opp-microvolt = <1150000>;
  54. };
  55. opp-1196000000 {
  56. opp-hz = /bits/ 64 <1196000000>;
  57. opp-microvolt = <1200000>;
  58. };
  59. opp-1300000000 {
  60. opp-hz = /bits/ 64 <1300000000>;
  61. opp-microvolt = <1300000>;
  62. };
  63. };
  64. cpus {
  65. #address-cells = <1>;
  66. #size-cells = <0>;
  67. enable-method = "mediatek,mt6589-smp";
  68. cpu0: cpu@0 {
  69. device_type = "cpu";
  70. compatible = "arm,cortex-a7";
  71. reg = <0x0>;
  72. clocks = <&infracfg CLK_INFRA_CPUSEL>,
  73. <&apmixedsys CLK_APMIXED_MAINPLL>;
  74. clock-names = "cpu", "intermediate";
  75. operating-points-v2 = <&cpu_opp_table>;
  76. #cooling-cells = <2>;
  77. clock-frequency = <1300000000>;
  78. };
  79. cpu1: cpu@1 {
  80. device_type = "cpu";
  81. compatible = "arm,cortex-a7";
  82. reg = <0x1>;
  83. operating-points-v2 = <&cpu_opp_table>;
  84. clock-frequency = <1300000000>;
  85. };
  86. cpu2: cpu@2 {
  87. device_type = "cpu";
  88. compatible = "arm,cortex-a7";
  89. reg = <0x2>;
  90. operating-points-v2 = <&cpu_opp_table>;
  91. clock-frequency = <1300000000>;
  92. };
  93. cpu3: cpu@3 {
  94. device_type = "cpu";
  95. compatible = "arm,cortex-a7";
  96. reg = <0x3>;
  97. operating-points-v2 = <&cpu_opp_table>;
  98. clock-frequency = <1300000000>;
  99. };
  100. };
  101. system_clk: dummy13m {
  102. compatible = "fixed-clock";
  103. clock-frequency = <13000000>;
  104. #clock-cells = <0>;
  105. };
  106. rtc32k: oscillator@1 {
  107. compatible = "fixed-clock";
  108. #clock-cells = <0>;
  109. clock-frequency = <32000>;
  110. clock-output-names = "rtc32k";
  111. };
  112. clk26m: oscillator@0 {
  113. compatible = "fixed-clock";
  114. #clock-cells = <0>;
  115. clock-frequency = <26000000>;
  116. clock-output-names = "clk26m";
  117. };
  118. thermal-zones {
  119. cpu_thermal: cpu_thermal {
  120. polling-delay-passive = <1000>;
  121. polling-delay = <1000>;
  122. thermal-sensors = <&thermal 0>;
  123. trips {
  124. cpu_passive: cpu_passive {
  125. temperature = <47000>;
  126. hysteresis = <2000>;
  127. type = "passive";
  128. };
  129. cpu_active: cpu_active {
  130. temperature = <67000>;
  131. hysteresis = <2000>;
  132. type = "active";
  133. };
  134. cpu_hot: cpu_hot {
  135. temperature = <87000>;
  136. hysteresis = <2000>;
  137. type = "hot";
  138. };
  139. cpu_crit {
  140. temperature = <107000>;
  141. hysteresis = <2000>;
  142. type = "critical";
  143. };
  144. };
  145. cooling-maps {
  146. map0 {
  147. trip = <&cpu_passive>;
  148. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  149. };
  150. map1 {
  151. trip = <&cpu_active>;
  152. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  153. };
  154. map2 {
  155. trip = <&cpu_hot>;
  156. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  157. };
  158. };
  159. };
  160. };
  161. timer {
  162. compatible = "arm,armv7-timer";
  163. interrupt-parent = <&gic>;
  164. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  165. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  166. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  167. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  168. clock-frequency = <13000000>;
  169. arm,cpu-registers-not-fw-configured;
  170. };
  171. topckgen: syscon@10000000 {
  172. compatible = "mediatek,mt7623-topckgen",
  173. "mediatek,mt2701-topckgen",
  174. "syscon";
  175. reg = <0 0x10000000 0 0x1000>;
  176. #clock-cells = <1>;
  177. };
  178. infracfg: syscon@10001000 {
  179. compatible = "mediatek,mt7623-infracfg",
  180. "mediatek,mt2701-infracfg",
  181. "syscon";
  182. reg = <0 0x10001000 0 0x1000>;
  183. #clock-cells = <1>;
  184. #reset-cells = <1>;
  185. };
  186. pericfg: syscon@10003000 {
  187. compatible = "mediatek,mt7623-pericfg",
  188. "mediatek,mt2701-pericfg",
  189. "syscon";
  190. reg = <0 0x10003000 0 0x1000>;
  191. #clock-cells = <1>;
  192. #reset-cells = <1>;
  193. };
  194. pio: pinctrl@10005000 {
  195. compatible = "mediatek,mt7623-pinctrl";
  196. reg = <0 0x1000b000 0 0x1000>;
  197. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  198. pins-are-numbered;
  199. gpio-controller;
  200. #gpio-cells = <2>;
  201. interrupt-controller;
  202. interrupt-parent = <&gic>;
  203. #interrupt-cells = <2>;
  204. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  205. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  206. };
  207. syscfg_pctl_a: syscfg@10005000 {
  208. compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
  209. reg = <0 0x10005000 0 0x1000>;
  210. };
  211. scpsys: scpsys@10006000 {
  212. compatible = "mediatek,mt7623-scpsys",
  213. "mediatek,mt2701-scpsys",
  214. "syscon";
  215. #power-domain-cells = <1>;
  216. reg = <0 0x10006000 0 0x1000>;
  217. infracfg = <&infracfg>;
  218. clocks = <&topckgen CLK_TOP_MM_SEL>,
  219. <&topckgen CLK_TOP_MFG_SEL>,
  220. <&topckgen CLK_TOP_ETHIF_SEL>;
  221. clock-names = "mm", "mfg", "ethif";
  222. };
  223. watchdog: watchdog@10007000 {
  224. compatible = "mediatek,mt7623-wdt",
  225. "mediatek,mt6589-wdt";
  226. reg = <0 0x10007000 0 0x100>;
  227. };
  228. timer: timer@10008000 {
  229. compatible = "mediatek,mt7623-timer",
  230. "mediatek,mt6577-timer";
  231. reg = <0 0x10008000 0 0x80>;
  232. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
  233. clocks = <&system_clk>, <&rtc32k>;
  234. clock-names = "system-clk", "rtc-clk";
  235. };
  236. pwrap: pwrap@1000d000 {
  237. compatible = "mediatek,mt7623-pwrap",
  238. "mediatek,mt2701-pwrap";
  239. reg = <0 0x1000d000 0 0x1000>;
  240. reg-names = "pwrap";
  241. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  242. resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
  243. reset-names = "pwrap";
  244. clocks = <&infracfg CLK_INFRA_PMICSPI>,
  245. <&infracfg CLK_INFRA_PMICWRAP>;
  246. clock-names = "spi", "wrap";
  247. };
  248. cir: cir@10013000 {
  249. compatible = "mediatek,mt7623-cir";
  250. reg = <0 0x10013000 0 0x1000>;
  251. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
  252. clocks = <&infracfg CLK_INFRA_IRRX>;
  253. clock-names = "clk";
  254. status = "disabled";
  255. };
  256. sysirq: interrupt-controller@10200100 {
  257. compatible = "mediatek,mt7623-sysirq",
  258. "mediatek,mt6577-sysirq";
  259. interrupt-controller;
  260. #interrupt-cells = <3>;
  261. interrupt-parent = <&gic>;
  262. reg = <0 0x10200100 0 0x1c>;
  263. };
  264. efuse: efuse@10206000 {
  265. compatible = "mediatek,mt7623-efuse",
  266. "mediatek,mt8173-efuse";
  267. reg = <0 0x10206000 0 0x1000>;
  268. #address-cells = <1>;
  269. #size-cells = <1>;
  270. thermal_calibration_data: calib@424 {
  271. reg = <0x424 0xc>;
  272. };
  273. };
  274. apmixedsys: syscon@10209000 {
  275. compatible = "mediatek,mt7623-apmixedsys",
  276. "mediatek,mt2701-apmixedsys",
  277. "syscon";
  278. reg = <0 0x10209000 0 0x1000>;
  279. #clock-cells = <1>;
  280. };
  281. rng: rng@1020f000 {
  282. compatible = "mediatek,mt7623-rng";
  283. reg = <0 0x1020f000 0 0x1000>;
  284. clocks = <&infracfg CLK_INFRA_TRNG>;
  285. clock-names = "rng";
  286. };
  287. gic: interrupt-controller@10211000 {
  288. compatible = "arm,cortex-a7-gic";
  289. interrupt-controller;
  290. #interrupt-cells = <3>;
  291. interrupt-parent = <&gic>;
  292. reg = <0 0x10211000 0 0x1000>,
  293. <0 0x10212000 0 0x2000>,
  294. <0 0x10214000 0 0x2000>,
  295. <0 0x10216000 0 0x2000>;
  296. };
  297. auxadc: adc@11001000 {
  298. compatible = "mediatek,mt7623-auxadc",
  299. "mediatek,mt2701-auxadc";
  300. reg = <0 0x11001000 0 0x1000>;
  301. clocks = <&pericfg CLK_PERI_AUXADC>;
  302. clock-names = "main";
  303. #io-channel-cells = <1>;
  304. };
  305. uart0: serial@11002000 {
  306. compatible = "mediatek,mt7623-uart",
  307. "mediatek,mt6577-uart";
  308. reg = <0 0x11002000 0 0x400>;
  309. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
  310. clocks = <&pericfg CLK_PERI_UART0_SEL>,
  311. <&pericfg CLK_PERI_UART0>;
  312. clock-names = "baud", "bus";
  313. status = "disabled";
  314. };
  315. uart1: serial@11003000 {
  316. compatible = "mediatek,mt7623-uart",
  317. "mediatek,mt6577-uart";
  318. reg = <0 0x11003000 0 0x400>;
  319. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
  320. clocks = <&pericfg CLK_PERI_UART1_SEL>,
  321. <&pericfg CLK_PERI_UART1>;
  322. clock-names = "baud", "bus";
  323. status = "disabled";
  324. };
  325. uart2: serial@11004000 {
  326. compatible = "mediatek,mt7623-uart",
  327. "mediatek,mt6577-uart";
  328. reg = <0 0x11004000 0 0x400>;
  329. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
  330. clocks = <&pericfg CLK_PERI_UART2_SEL>,
  331. <&pericfg CLK_PERI_UART2>;
  332. clock-names = "baud", "bus";
  333. status = "disabled";
  334. };
  335. uart3: serial@11005000 {
  336. compatible = "mediatek,mt7623-uart",
  337. "mediatek,mt6577-uart";
  338. reg = <0 0x11005000 0 0x400>;
  339. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
  340. clocks = <&pericfg CLK_PERI_UART3_SEL>,
  341. <&pericfg CLK_PERI_UART3>;
  342. clock-names = "baud", "bus";
  343. status = "disabled";
  344. };
  345. pwm: pwm@11006000 {
  346. compatible = "mediatek,mt7623-pwm";
  347. reg = <0 0x11006000 0 0x1000>;
  348. #pwm-cells = <2>;
  349. clocks = <&topckgen CLK_TOP_PWM_SEL>,
  350. <&pericfg CLK_PERI_PWM>,
  351. <&pericfg CLK_PERI_PWM1>,
  352. <&pericfg CLK_PERI_PWM2>,
  353. <&pericfg CLK_PERI_PWM3>,
  354. <&pericfg CLK_PERI_PWM4>,
  355. <&pericfg CLK_PERI_PWM5>;
  356. clock-names = "top", "main", "pwm1", "pwm2",
  357. "pwm3", "pwm4", "pwm5";
  358. status = "disabled";
  359. };
  360. i2c0: i2c@11007000 {
  361. compatible = "mediatek,mt7623-i2c",
  362. "mediatek,mt6577-i2c";
  363. reg = <0 0x11007000 0 0x70>,
  364. <0 0x11000200 0 0x80>;
  365. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
  366. clock-div = <16>;
  367. clocks = <&pericfg CLK_PERI_I2C0>,
  368. <&pericfg CLK_PERI_AP_DMA>;
  369. clock-names = "main", "dma";
  370. #address-cells = <1>;
  371. #size-cells = <0>;
  372. status = "disabled";
  373. };
  374. i2c1: i2c@11008000 {
  375. compatible = "mediatek,mt7623-i2c",
  376. "mediatek,mt6577-i2c";
  377. reg = <0 0x11008000 0 0x70>,
  378. <0 0x11000280 0 0x80>;
  379. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
  380. clock-div = <16>;
  381. clocks = <&pericfg CLK_PERI_I2C1>,
  382. <&pericfg CLK_PERI_AP_DMA>;
  383. clock-names = "main", "dma";
  384. #address-cells = <1>;
  385. #size-cells = <0>;
  386. status = "disabled";
  387. };
  388. i2c2: i2c@11009000 {
  389. compatible = "mediatek,mt7623-i2c",
  390. "mediatek,mt6577-i2c";
  391. reg = <0 0x11009000 0 0x70>,
  392. <0 0x11000300 0 0x80>;
  393. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
  394. clock-div = <16>;
  395. clocks = <&pericfg CLK_PERI_I2C2>,
  396. <&pericfg CLK_PERI_AP_DMA>;
  397. clock-names = "main", "dma";
  398. #address-cells = <1>;
  399. #size-cells = <0>;
  400. status = "disabled";
  401. };
  402. spi0: spi@1100a000 {
  403. compatible = "mediatek,mt7623-spi",
  404. "mediatek,mt2701-spi";
  405. #address-cells = <1>;
  406. #size-cells = <0>;
  407. reg = <0 0x1100a000 0 0x100>;
  408. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
  409. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  410. <&topckgen CLK_TOP_SPI0_SEL>,
  411. <&pericfg CLK_PERI_SPI0>;
  412. clock-names = "parent-clk", "sel-clk", "spi-clk";
  413. status = "disabled";
  414. };
  415. thermal: thermal@1100b000 {
  416. #thermal-sensor-cells = <1>;
  417. compatible = "mediatek,mt7623-thermal",
  418. "mediatek,mt2701-thermal";
  419. reg = <0 0x1100b000 0 0x1000>;
  420. interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
  421. clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
  422. clock-names = "therm", "auxadc";
  423. resets = <&pericfg MT2701_PERI_THERM_SW_RST>;
  424. reset-names = "therm";
  425. mediatek,auxadc = <&auxadc>;
  426. mediatek,apmixedsys = <&apmixedsys>;
  427. nvmem-cells = <&thermal_calibration_data>;
  428. nvmem-cell-names = "calibration-data";
  429. };
  430. nandc: nfi@1100d000 {
  431. compatible = "mediatek,mt7623-nfc",
  432. "mediatek,mt2701-nfc";
  433. reg = <0 0x1100d000 0 0x1000>;
  434. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
  435. power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
  436. clocks = <&pericfg CLK_PERI_NFI>,
  437. <&pericfg CLK_PERI_NFI_PAD>;
  438. clock-names = "nfi_clk", "pad_clk";
  439. status = "disabled";
  440. ecc-engine = <&bch>;
  441. #address-cells = <1>;
  442. #size-cells = <0>;
  443. };
  444. bch: ecc@1100e000 {
  445. compatible = "mediatek,mt7623-ecc",
  446. "mediatek,mt2701-ecc";
  447. reg = <0 0x1100e000 0 0x1000>;
  448. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
  449. clocks = <&pericfg CLK_PERI_NFI_ECC>;
  450. clock-names = "nfiecc_clk";
  451. status = "disabled";
  452. };
  453. spi1: spi@11016000 {
  454. compatible = "mediatek,mt7623-spi",
  455. "mediatek,mt2701-spi";
  456. #address-cells = <1>;
  457. #size-cells = <0>;
  458. reg = <0 0x11016000 0 0x100>;
  459. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
  460. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  461. <&topckgen CLK_TOP_SPI1_SEL>,
  462. <&pericfg CLK_PERI_SPI1>;
  463. clock-names = "parent-clk", "sel-clk", "spi-clk";
  464. status = "disabled";
  465. };
  466. spi2: spi@11017000 {
  467. compatible = "mediatek,mt7623-spi",
  468. "mediatek,mt2701-spi";
  469. #address-cells = <1>;
  470. #size-cells = <0>;
  471. reg = <0 0x11017000 0 0x1000>;
  472. interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_LOW>;
  473. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  474. <&topckgen CLK_TOP_SPI2_SEL>,
  475. <&pericfg CLK_PERI_SPI2>;
  476. clock-names = "parent-clk", "sel-clk", "spi-clk";
  477. status = "disabled";
  478. };
  479. afe: audio-controller@11220000 {
  480. compatible = "mediatek,mt7623-audio",
  481. "mediatek,mt2701-audio";
  482. reg = <0 0x11220000 0 0x2000>,
  483. <0 0x112a0000 0 0x20000>;
  484. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
  485. <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
  486. interrupt-names = "afe", "asys";
  487. power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
  488. clocks = <&infracfg CLK_INFRA_AUDIO>,
  489. <&topckgen CLK_TOP_AUD_MUX1_SEL>,
  490. <&topckgen CLK_TOP_AUD_MUX2_SEL>,
  491. <&topckgen CLK_TOP_AUD_MUX1_DIV>,
  492. <&topckgen CLK_TOP_AUD_MUX2_DIV>,
  493. <&topckgen CLK_TOP_AUD_48K_TIMING>,
  494. <&topckgen CLK_TOP_AUD_44K_TIMING>,
  495. <&topckgen CLK_TOP_AUDPLL_MUX_SEL>,
  496. <&topckgen CLK_TOP_APLL_SEL>,
  497. <&topckgen CLK_TOP_AUD1PLL_98M>,
  498. <&topckgen CLK_TOP_AUD2PLL_90M>,
  499. <&topckgen CLK_TOP_HADDS2PLL_98M>,
  500. <&topckgen CLK_TOP_HADDS2PLL_294M>,
  501. <&topckgen CLK_TOP_AUDPLL>,
  502. <&topckgen CLK_TOP_AUDPLL_D4>,
  503. <&topckgen CLK_TOP_AUDPLL_D8>,
  504. <&topckgen CLK_TOP_AUDPLL_D16>,
  505. <&topckgen CLK_TOP_AUDPLL_D24>,
  506. <&topckgen CLK_TOP_AUDINTBUS_SEL>,
  507. <&clk26m>,
  508. <&topckgen CLK_TOP_SYSPLL1_D4>,
  509. <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
  510. <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
  511. <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
  512. <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
  513. <&topckgen CLK_TOP_AUD_K5_SRC_SEL>,
  514. <&topckgen CLK_TOP_AUD_K6_SRC_SEL>,
  515. <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
  516. <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
  517. <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
  518. <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
  519. <&topckgen CLK_TOP_AUD_K5_SRC_DIV>,
  520. <&topckgen CLK_TOP_AUD_K6_SRC_DIV>,
  521. <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
  522. <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
  523. <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
  524. <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
  525. <&topckgen CLK_TOP_AUD_I2S5_MCLK>,
  526. <&topckgen CLK_TOP_AUD_I2S6_MCLK>,
  527. <&topckgen CLK_TOP_ASM_M_SEL>,
  528. <&topckgen CLK_TOP_ASM_H_SEL>,
  529. <&topckgen CLK_TOP_UNIVPLL2_D4>,
  530. <&topckgen CLK_TOP_UNIVPLL2_D2>,
  531. <&topckgen CLK_TOP_SYSPLL_D5>;
  532. clock-names = "infra_sys_audio_clk",
  533. "top_audio_mux1_sel",
  534. "top_audio_mux2_sel",
  535. "top_audio_mux1_div",
  536. "top_audio_mux2_div",
  537. "top_audio_48k_timing",
  538. "top_audio_44k_timing",
  539. "top_audpll_mux_sel",
  540. "top_apll_sel",
  541. "top_aud1_pll_98M",
  542. "top_aud2_pll_90M",
  543. "top_hadds2_pll_98M",
  544. "top_hadds2_pll_294M",
  545. "top_audpll",
  546. "top_audpll_d4",
  547. "top_audpll_d8",
  548. "top_audpll_d16",
  549. "top_audpll_d24",
  550. "top_audintbus_sel",
  551. "clk_26m",
  552. "top_syspll1_d4",
  553. "top_aud_k1_src_sel",
  554. "top_aud_k2_src_sel",
  555. "top_aud_k3_src_sel",
  556. "top_aud_k4_src_sel",
  557. "top_aud_k5_src_sel",
  558. "top_aud_k6_src_sel",
  559. "top_aud_k1_src_div",
  560. "top_aud_k2_src_div",
  561. "top_aud_k3_src_div",
  562. "top_aud_k4_src_div",
  563. "top_aud_k5_src_div",
  564. "top_aud_k6_src_div",
  565. "top_aud_i2s1_mclk",
  566. "top_aud_i2s2_mclk",
  567. "top_aud_i2s3_mclk",
  568. "top_aud_i2s4_mclk",
  569. "top_aud_i2s5_mclk",
  570. "top_aud_i2s6_mclk",
  571. "top_asm_m_sel",
  572. "top_asm_h_sel",
  573. "top_univpll2_d4",
  574. "top_univpll2_d2",
  575. "top_syspll_d5";
  576. };
  577. mmc0: mmc@11230000 {
  578. compatible = "mediatek,mt7623-mmc",
  579. "mediatek,mt2701-mmc";
  580. reg = <0 0x11230000 0 0x1000>;
  581. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
  582. clocks = <&pericfg CLK_PERI_MSDC30_0>,
  583. <&topckgen CLK_TOP_MSDC30_0_SEL>;
  584. clock-names = "source", "hclk";
  585. status = "disabled";
  586. };
  587. mmc1: mmc@11240000 {
  588. compatible = "mediatek,mt7623-mmc",
  589. "mediatek,mt2701-mmc";
  590. reg = <0 0x11240000 0 0x1000>;
  591. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
  592. clocks = <&pericfg CLK_PERI_MSDC30_1>,
  593. <&topckgen CLK_TOP_MSDC30_1_SEL>;
  594. clock-names = "source", "hclk";
  595. status = "disabled";
  596. };
  597. hifsys: syscon@1a000000 {
  598. compatible = "mediatek,mt7623-hifsys",
  599. "mediatek,mt2701-hifsys",
  600. "syscon";
  601. reg = <0 0x1a000000 0 0x1000>;
  602. #clock-cells = <1>;
  603. #reset-cells = <1>;
  604. };
  605. usb1: usb@1a1c0000 {
  606. compatible = "mediatek,mt7623-xhci",
  607. "mediatek,mt8173-xhci";
  608. reg = <0 0x1a1c0000 0 0x1000>,
  609. <0 0x1a1c4700 0 0x0100>;
  610. reg-names = "mac", "ippc";
  611. interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
  612. clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
  613. <&topckgen CLK_TOP_ETHIF_SEL>;
  614. clock-names = "sys_ck", "ref_ck";
  615. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  616. phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
  617. status = "disabled";
  618. };
  619. u3phy1: usb-phy@1a1c4000 {
  620. compatible = "mediatek,mt7623-u3phy",
  621. "mediatek,mt2701-u3phy";
  622. reg = <0 0x1a1c4000 0 0x0700>;
  623. #address-cells = <2>;
  624. #size-cells = <2>;
  625. ranges;
  626. status = "disabled";
  627. u2port0: usb-phy@1a1c4800 {
  628. reg = <0 0x1a1c4800 0 0x0100>;
  629. clocks = <&topckgen CLK_TOP_USB_PHY48M>;
  630. clock-names = "ref";
  631. #phy-cells = <1>;
  632. status = "okay";
  633. };
  634. u3port0: usb-phy@1a1c4900 {
  635. reg = <0 0x1a1c4900 0 0x0700>;
  636. clocks = <&clk26m>;
  637. clock-names = "ref";
  638. #phy-cells = <1>;
  639. status = "okay";
  640. };
  641. };
  642. usb2: usb@1a240000 {
  643. compatible = "mediatek,mt7623-xhci",
  644. "mediatek,mt8173-xhci";
  645. reg = <0 0x1a240000 0 0x1000>,
  646. <0 0x1a244700 0 0x0100>;
  647. reg-names = "mac", "ippc";
  648. interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
  649. clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
  650. <&topckgen CLK_TOP_ETHIF_SEL>;
  651. clock-names = "sys_ck", "ref_ck";
  652. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  653. phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
  654. status = "disabled";
  655. };
  656. u3phy2: usb-phy@1a244000 {
  657. compatible = "mediatek,mt7623-u3phy",
  658. "mediatek,mt2701-u3phy";
  659. reg = <0 0x1a244000 0 0x0700>;
  660. #address-cells = <2>;
  661. #size-cells = <2>;
  662. ranges;
  663. status = "disabled";
  664. u2port1: usb-phy@1a244800 {
  665. reg = <0 0x1a244800 0 0x0100>;
  666. clocks = <&topckgen CLK_TOP_USB_PHY48M>;
  667. clock-names = "ref";
  668. #phy-cells = <1>;
  669. status = "okay";
  670. };
  671. u3port1: usb-phy@1a244900 {
  672. reg = <0 0x1a244900 0 0x0700>;
  673. clocks = <&clk26m>;
  674. clock-names = "ref";
  675. #phy-cells = <1>;
  676. status = "okay";
  677. };
  678. };
  679. ethsys: syscon@1b000000 {
  680. compatible = "mediatek,mt7623-ethsys",
  681. "mediatek,mt2701-ethsys",
  682. "syscon";
  683. reg = <0 0x1b000000 0 0x1000>;
  684. #clock-cells = <1>;
  685. #reset-cells = <1>;
  686. };
  687. eth: ethernet@1b100000 {
  688. compatible = "mediatek,mt7623-eth",
  689. "mediatek,mt2701-eth",
  690. "syscon";
  691. reg = <0 0x1b100000 0 0x20000>;
  692. interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
  693. <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
  694. <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
  695. clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
  696. <&ethsys CLK_ETHSYS_ESW>,
  697. <&ethsys CLK_ETHSYS_GP1>,
  698. <&ethsys CLK_ETHSYS_GP2>,
  699. <&apmixedsys CLK_APMIXED_TRGPLL>;
  700. clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
  701. resets = <&ethsys MT2701_ETHSYS_FE_RST>,
  702. <&ethsys MT2701_ETHSYS_GMAC_RST>,
  703. <&ethsys MT2701_ETHSYS_PPE_RST>;
  704. reset-names = "fe", "gmac", "ppe";
  705. power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
  706. mediatek,ethsys = <&ethsys>;
  707. mediatek,pctl = <&syscfg_pctl_a>;
  708. #address-cells = <1>;
  709. #size-cells = <0>;
  710. status = "disabled";
  711. };
  712. crypto: crypto@1b240000 {
  713. compatible = "mediatek,eip97-crypto";
  714. reg = <0 0x1b240000 0 0x20000>;
  715. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>,
  716. <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>,
  717. <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>,
  718. <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>,
  719. <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
  720. clocks = <&ethsys CLK_ETHSYS_CRYPTO>;
  721. clock-names = "cryp";
  722. power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
  723. status = "disabled";
  724. };
  725. };