mt8186.dtsi 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  1. // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. /*
  3. * Copyright (C) 2022 MediaTek Inc.
  4. * Author: Allen-KH Cheng <[email protected]>
  5. */
  6. /dts-v1/;
  7. #include <dt-bindings/clock/mt8186-clk.h>
  8. #include <dt-bindings/interrupt-controller/arm-gic.h>
  9. #include <dt-bindings/interrupt-controller/irq.h>
  10. #include <dt-bindings/pinctrl/mt8186-pinfunc.h>
  11. #include <dt-bindings/power/mt8186-power.h>
  12. #include <dt-bindings/phy/phy.h>
  13. #include <dt-bindings/reset/mt8186-resets.h>
  14. / {
  15. compatible = "mediatek,mt8186";
  16. interrupt-parent = <&gic>;
  17. #address-cells = <2>;
  18. #size-cells = <2>;
  19. cpus {
  20. #address-cells = <1>;
  21. #size-cells = <0>;
  22. cpu-map {
  23. cluster0 {
  24. core0 {
  25. cpu = <&cpu0>;
  26. };
  27. core1 {
  28. cpu = <&cpu1>;
  29. };
  30. core2 {
  31. cpu = <&cpu2>;
  32. };
  33. core3 {
  34. cpu = <&cpu3>;
  35. };
  36. core4 {
  37. cpu = <&cpu4>;
  38. };
  39. core5 {
  40. cpu = <&cpu5>;
  41. };
  42. core6 {
  43. cpu = <&cpu6>;
  44. };
  45. core7 {
  46. cpu = <&cpu7>;
  47. };
  48. };
  49. };
  50. cpu0: cpu@0 {
  51. device_type = "cpu";
  52. compatible = "arm,cortex-a55";
  53. reg = <0x000>;
  54. enable-method = "psci";
  55. clock-frequency = <2000000000>;
  56. capacity-dmips-mhz = <382>;
  57. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  58. next-level-cache = <&l2_0>;
  59. #cooling-cells = <2>;
  60. };
  61. cpu1: cpu@100 {
  62. device_type = "cpu";
  63. compatible = "arm,cortex-a55";
  64. reg = <0x100>;
  65. enable-method = "psci";
  66. clock-frequency = <2000000000>;
  67. capacity-dmips-mhz = <382>;
  68. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  69. next-level-cache = <&l2_0>;
  70. #cooling-cells = <2>;
  71. };
  72. cpu2: cpu@200 {
  73. device_type = "cpu";
  74. compatible = "arm,cortex-a55";
  75. reg = <0x200>;
  76. enable-method = "psci";
  77. clock-frequency = <2000000000>;
  78. capacity-dmips-mhz = <382>;
  79. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  80. next-level-cache = <&l2_0>;
  81. #cooling-cells = <2>;
  82. };
  83. cpu3: cpu@300 {
  84. device_type = "cpu";
  85. compatible = "arm,cortex-a55";
  86. reg = <0x300>;
  87. enable-method = "psci";
  88. clock-frequency = <2000000000>;
  89. capacity-dmips-mhz = <382>;
  90. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  91. next-level-cache = <&l2_0>;
  92. #cooling-cells = <2>;
  93. };
  94. cpu4: cpu@400 {
  95. device_type = "cpu";
  96. compatible = "arm,cortex-a55";
  97. reg = <0x400>;
  98. enable-method = "psci";
  99. clock-frequency = <2000000000>;
  100. capacity-dmips-mhz = <382>;
  101. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  102. next-level-cache = <&l2_0>;
  103. #cooling-cells = <2>;
  104. };
  105. cpu5: cpu@500 {
  106. device_type = "cpu";
  107. compatible = "arm,cortex-a55";
  108. reg = <0x500>;
  109. enable-method = "psci";
  110. clock-frequency = <2000000000>;
  111. capacity-dmips-mhz = <382>;
  112. cpu-idle-states = <&cpu_off_l &cluster_off_l>;
  113. next-level-cache = <&l2_0>;
  114. #cooling-cells = <2>;
  115. };
  116. cpu6: cpu@600 {
  117. device_type = "cpu";
  118. compatible = "arm,cortex-a76";
  119. reg = <0x600>;
  120. enable-method = "psci";
  121. clock-frequency = <2050000000>;
  122. capacity-dmips-mhz = <1024>;
  123. cpu-idle-states = <&cpu_off_b &cluster_off_b>;
  124. next-level-cache = <&l2_1>;
  125. #cooling-cells = <2>;
  126. };
  127. cpu7: cpu@700 {
  128. device_type = "cpu";
  129. compatible = "arm,cortex-a76";
  130. reg = <0x700>;
  131. enable-method = "psci";
  132. clock-frequency = <2050000000>;
  133. capacity-dmips-mhz = <1024>;
  134. cpu-idle-states = <&cpu_off_b &cluster_off_b>;
  135. next-level-cache = <&l2_1>;
  136. #cooling-cells = <2>;
  137. };
  138. idle-states {
  139. entry-method = "psci";
  140. cpu_off_l: cpu-off-l {
  141. compatible = "arm,idle-state";
  142. arm,psci-suspend-param = <0x00010001>;
  143. local-timer-stop;
  144. entry-latency-us = <50>;
  145. exit-latency-us = <100>;
  146. min-residency-us = <1600>;
  147. };
  148. cpu_off_b: cpu-off-b {
  149. compatible = "arm,idle-state";
  150. arm,psci-suspend-param = <0x00010001>;
  151. local-timer-stop;
  152. entry-latency-us = <50>;
  153. exit-latency-us = <100>;
  154. min-residency-us = <1400>;
  155. };
  156. cluster_off_l: cluster-off-l {
  157. compatible = "arm,idle-state";
  158. arm,psci-suspend-param = <0x01010001>;
  159. local-timer-stop;
  160. entry-latency-us = <100>;
  161. exit-latency-us = <250>;
  162. min-residency-us = <2100>;
  163. };
  164. cluster_off_b: cluster-off-b {
  165. compatible = "arm,idle-state";
  166. arm,psci-suspend-param = <0x01010001>;
  167. local-timer-stop;
  168. entry-latency-us = <100>;
  169. exit-latency-us = <250>;
  170. min-residency-us = <1900>;
  171. };
  172. };
  173. l2_0: l2-cache0 {
  174. compatible = "cache";
  175. next-level-cache = <&l3_0>;
  176. };
  177. l2_1: l2-cache1 {
  178. compatible = "cache";
  179. next-level-cache = <&l3_0>;
  180. };
  181. l3_0: l3-cache {
  182. compatible = "cache";
  183. };
  184. };
  185. clk13m: fixed-factor-clock-13m {
  186. compatible = "fixed-factor-clock";
  187. #clock-cells = <0>;
  188. clocks = <&clk26m>;
  189. clock-div = <2>;
  190. clock-mult = <1>;
  191. clock-output-names = "clk13m";
  192. };
  193. clk26m: oscillator-26m {
  194. compatible = "fixed-clock";
  195. #clock-cells = <0>;
  196. clock-frequency = <26000000>;
  197. clock-output-names = "clk26m";
  198. };
  199. clk32k: oscillator-32k {
  200. compatible = "fixed-clock";
  201. #clock-cells = <0>;
  202. clock-frequency = <32768>;
  203. clock-output-names = "clk32k";
  204. };
  205. pmu-a55 {
  206. compatible = "arm,cortex-a55-pmu";
  207. interrupt-parent = <&gic>;
  208. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
  209. };
  210. pmu-a76 {
  211. compatible = "arm,cortex-a76-pmu";
  212. interrupt-parent = <&gic>;
  213. interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
  214. };
  215. psci {
  216. compatible = "arm,psci-1.0";
  217. method = "smc";
  218. };
  219. timer {
  220. compatible = "arm,armv8-timer";
  221. interrupt-parent = <&gic>;
  222. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
  223. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
  224. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
  225. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
  226. };
  227. soc {
  228. #address-cells = <2>;
  229. #size-cells = <2>;
  230. compatible = "simple-bus";
  231. ranges;
  232. gic: interrupt-controller@c000000 {
  233. compatible = "arm,gic-v3";
  234. #interrupt-cells = <4>;
  235. #redistributor-regions = <1>;
  236. interrupt-parent = <&gic>;
  237. interrupt-controller;
  238. reg = <0 0x0c000000 0 0x40000>,
  239. <0 0x0c040000 0 0x200000>;
  240. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
  241. ppi-partitions {
  242. ppi_cluster0: interrupt-partition-0 {
  243. affinity = <&cpu0 &cpu1 &cpu2 &cpu3 &cpu4 &cpu5>;
  244. };
  245. ppi_cluster1: interrupt-partition-1 {
  246. affinity = <&cpu6 &cpu7>;
  247. };
  248. };
  249. };
  250. mcusys: syscon@c53a000 {
  251. compatible = "mediatek,mt8186-mcusys", "syscon";
  252. reg = <0 0xc53a000 0 0x1000>;
  253. #clock-cells = <1>;
  254. };
  255. topckgen: syscon@10000000 {
  256. compatible = "mediatek,mt8186-topckgen", "syscon";
  257. reg = <0 0x10000000 0 0x1000>;
  258. #clock-cells = <1>;
  259. };
  260. infracfg_ao: syscon@10001000 {
  261. compatible = "mediatek,mt8186-infracfg_ao", "syscon";
  262. reg = <0 0x10001000 0 0x1000>;
  263. #clock-cells = <1>;
  264. #reset-cells = <1>;
  265. };
  266. pericfg: syscon@10003000 {
  267. compatible = "mediatek,mt8186-pericfg", "syscon";
  268. reg = <0 0x10003000 0 0x1000>;
  269. };
  270. pio: pinctrl@10005000 {
  271. compatible = "mediatek,mt8186-pinctrl";
  272. reg = <0 0x10005000 0 0x1000>,
  273. <0 0x10002000 0 0x0200>,
  274. <0 0x10002200 0 0x0200>,
  275. <0 0x10002400 0 0x0200>,
  276. <0 0x10002600 0 0x0200>,
  277. <0 0x10002a00 0 0x0200>,
  278. <0 0x10002c00 0 0x0200>,
  279. <0 0x1000b000 0 0x1000>;
  280. reg-names = "iocfg0", "iocfg_lt", "iocfg_lm", "iocfg_lb",
  281. "iocfg_bl", "iocfg_rb", "iocfg_rt", "eint";
  282. gpio-controller;
  283. #gpio-cells = <2>;
  284. gpio-ranges = <&pio 0 0 185>;
  285. interrupt-controller;
  286. interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
  287. #interrupt-cells = <2>;
  288. };
  289. watchdog: watchdog@10007000 {
  290. compatible = "mediatek,mt8186-wdt";
  291. mediatek,disable-extrst;
  292. reg = <0 0x10007000 0 0x1000>;
  293. #reset-cells = <1>;
  294. };
  295. apmixedsys: syscon@1000c000 {
  296. compatible = "mediatek,mt8186-apmixedsys", "syscon";
  297. reg = <0 0x1000c000 0 0x1000>;
  298. #clock-cells = <1>;
  299. };
  300. pwrap: pwrap@1000d000 {
  301. compatible = "mediatek,mt8186-pwrap", "syscon";
  302. reg = <0 0x1000d000 0 0x1000>;
  303. reg-names = "pwrap";
  304. interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
  305. clocks = <&infracfg_ao CLK_INFRA_AO_PMIC_AP>,
  306. <&infracfg_ao CLK_INFRA_AO_PMIC_TMR>;
  307. clock-names = "spi", "wrap";
  308. };
  309. systimer: timer@10017000 {
  310. compatible = "mediatek,mt8186-timer",
  311. "mediatek,mt6765-timer";
  312. reg = <0 0x10017000 0 0x1000>;
  313. interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH 0>;
  314. clocks = <&clk13m>;
  315. };
  316. scp: scp@10500000 {
  317. compatible = "mediatek,mt8186-scp";
  318. reg = <0 0x10500000 0 0x40000>,
  319. <0 0x105c0000 0 0x19080>;
  320. reg-names = "sram", "cfg";
  321. interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>;
  322. };
  323. nor_flash: spi@11000000 {
  324. compatible = "mediatek,mt8186-nor";
  325. reg = <0 0x11000000 0 0x1000>;
  326. clocks = <&topckgen CLK_TOP_SPINOR>,
  327. <&infracfg_ao CLK_INFRA_AO_SPINOR>,
  328. <&infracfg_ao CLK_INFRA_AO_FLASHIF_133M>,
  329. <&infracfg_ao CLK_INFRA_AO_FLASHIF_66M>;
  330. clock-names = "spi", "sf", "axi", "axi_s";
  331. assigned-clocks = <&topckgen CLK_TOP_SPINOR>;
  332. assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D3_D8>;
  333. interrupts = <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH 0>;
  334. status = "disabled";
  335. };
  336. auxadc: adc@11001000 {
  337. compatible = "mediatek,mt8186-auxadc", "mediatek,mt8173-auxadc";
  338. reg = <0 0x11001000 0 0x1000>;
  339. #io-channel-cells = <1>;
  340. clocks = <&infracfg_ao CLK_INFRA_AO_AUXADC>;
  341. clock-names = "main";
  342. };
  343. uart0: serial@11002000 {
  344. compatible = "mediatek,mt8186-uart",
  345. "mediatek,mt6577-uart";
  346. reg = <0 0x11002000 0 0x1000>;
  347. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH 0>;
  348. clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART0>;
  349. clock-names = "baud", "bus";
  350. status = "disabled";
  351. };
  352. uart1: serial@11003000 {
  353. compatible = "mediatek,mt8186-uart",
  354. "mediatek,mt6577-uart";
  355. reg = <0 0x11003000 0 0x1000>;
  356. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH 0>;
  357. clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART1>;
  358. clock-names = "baud", "bus";
  359. status = "disabled";
  360. };
  361. i2c0: i2c@11007000 {
  362. compatible = "mediatek,mt8186-i2c";
  363. reg = <0 0x11007000 0 0x1000>,
  364. <0 0x10200100 0 0x100>;
  365. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>;
  366. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C0>,
  367. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  368. clock-names = "main", "dma";
  369. clock-div = <1>;
  370. #address-cells = <1>;
  371. #size-cells = <0>;
  372. status = "disabled";
  373. };
  374. i2c1: i2c@11008000 {
  375. compatible = "mediatek,mt8186-i2c";
  376. reg = <0 0x11008000 0 0x1000>,
  377. <0 0x10200200 0 0x100>;
  378. interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
  379. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C1>,
  380. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  381. clock-names = "main", "dma";
  382. clock-div = <1>;
  383. #address-cells = <1>;
  384. #size-cells = <0>;
  385. status = "disabled";
  386. };
  387. i2c2: i2c@11009000 {
  388. compatible = "mediatek,mt8186-i2c";
  389. reg = <0 0x11009000 0 0x1000>,
  390. <0 0x10200300 0 0x180>;
  391. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH 0>;
  392. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C2>,
  393. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  394. clock-names = "main", "dma";
  395. clock-div = <1>;
  396. #address-cells = <1>;
  397. #size-cells = <0>;
  398. status = "disabled";
  399. };
  400. i2c3: i2c@1100f000 {
  401. compatible = "mediatek,mt8186-i2c";
  402. reg = <0 0x1100f000 0 0x1000>,
  403. <0 0x10200480 0 0x100>;
  404. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
  405. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C3>,
  406. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  407. clock-names = "main", "dma";
  408. clock-div = <1>;
  409. #address-cells = <1>;
  410. #size-cells = <0>;
  411. status = "disabled";
  412. };
  413. i2c4: i2c@11011000 {
  414. compatible = "mediatek,mt8186-i2c";
  415. reg = <0 0x11011000 0 0x1000>,
  416. <0 0x10200580 0 0x180>;
  417. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>;
  418. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C4>,
  419. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  420. clock-names = "main", "dma";
  421. clock-div = <1>;
  422. #address-cells = <1>;
  423. #size-cells = <0>;
  424. status = "disabled";
  425. };
  426. i2c5: i2c@11016000 {
  427. compatible = "mediatek,mt8186-i2c";
  428. reg = <0 0x11016000 0 0x1000>,
  429. <0 0x10200700 0 0x100>;
  430. interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH 0>;
  431. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C5>,
  432. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  433. clock-names = "main", "dma";
  434. clock-div = <1>;
  435. #address-cells = <1>;
  436. #size-cells = <0>;
  437. status = "disabled";
  438. };
  439. i2c6: i2c@1100d000 {
  440. compatible = "mediatek,mt8186-i2c";
  441. reg = <0 0x1100d000 0 0x1000>,
  442. <0 0x10200800 0 0x100>;
  443. interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH 0>;
  444. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C6>,
  445. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  446. clock-names = "main", "dma";
  447. clock-div = <1>;
  448. #address-cells = <1>;
  449. #size-cells = <0>;
  450. status = "disabled";
  451. };
  452. i2c7: i2c@11004000 {
  453. compatible = "mediatek,mt8186-i2c";
  454. reg = <0 0x11004000 0 0x1000>,
  455. <0 0x10200900 0 0x180>;
  456. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH 0>;
  457. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C7>,
  458. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  459. clock-names = "main", "dma";
  460. clock-div = <1>;
  461. #address-cells = <1>;
  462. #size-cells = <0>;
  463. status = "disabled";
  464. };
  465. i2c8: i2c@11005000 {
  466. compatible = "mediatek,mt8186-i2c";
  467. reg = <0 0x11005000 0 0x1000>,
  468. <0 0x10200A80 0 0x180>;
  469. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>;
  470. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C8>,
  471. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  472. clock-names = "main", "dma";
  473. clock-div = <1>;
  474. #address-cells = <1>;
  475. #size-cells = <0>;
  476. status = "disabled";
  477. };
  478. spi0: spi@1100a000 {
  479. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  480. #address-cells = <1>;
  481. #size-cells = <0>;
  482. reg = <0 0x1100a000 0 0x1000>;
  483. interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH 0>;
  484. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  485. <&topckgen CLK_TOP_SPI>,
  486. <&infracfg_ao CLK_INFRA_AO_SPI0>;
  487. clock-names = "parent-clk", "sel-clk", "spi-clk";
  488. status = "disabled";
  489. };
  490. pwm0: pwm@1100e000 {
  491. compatible = "mediatek,mt8186-disp-pwm", "mediatek,mt8183-disp-pwm";
  492. reg = <0 0x1100e000 0 0x1000>;
  493. interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>;
  494. #pwm-cells = <2>;
  495. clocks = <&topckgen CLK_TOP_DISP_PWM>,
  496. <&infracfg_ao CLK_INFRA_AO_DISP_PWM>;
  497. clock-names = "main", "mm";
  498. status = "disabled";
  499. };
  500. spi1: spi@11010000 {
  501. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  502. #address-cells = <1>;
  503. #size-cells = <0>;
  504. reg = <0 0x11010000 0 0x1000>;
  505. interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH 0>;
  506. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  507. <&topckgen CLK_TOP_SPI>,
  508. <&infracfg_ao CLK_INFRA_AO_SPI1>;
  509. clock-names = "parent-clk", "sel-clk", "spi-clk";
  510. status = "disabled";
  511. };
  512. spi2: spi@11012000 {
  513. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  514. #address-cells = <1>;
  515. #size-cells = <0>;
  516. reg = <0 0x11012000 0 0x1000>;
  517. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH 0>;
  518. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  519. <&topckgen CLK_TOP_SPI>,
  520. <&infracfg_ao CLK_INFRA_AO_SPI2>;
  521. clock-names = "parent-clk", "sel-clk", "spi-clk";
  522. status = "disabled";
  523. };
  524. spi3: spi@11013000 {
  525. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  526. #address-cells = <1>;
  527. #size-cells = <0>;
  528. reg = <0 0x11013000 0 0x1000>;
  529. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH 0>;
  530. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  531. <&topckgen CLK_TOP_SPI>,
  532. <&infracfg_ao CLK_INFRA_AO_SPI3>;
  533. clock-names = "parent-clk", "sel-clk", "spi-clk";
  534. status = "disabled";
  535. };
  536. spi4: spi@11014000 {
  537. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  538. #address-cells = <1>;
  539. #size-cells = <0>;
  540. reg = <0 0x11014000 0 0x1000>;
  541. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
  542. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  543. <&topckgen CLK_TOP_SPI>,
  544. <&infracfg_ao CLK_INFRA_AO_SPI4>;
  545. clock-names = "parent-clk", "sel-clk", "spi-clk";
  546. status = "disabled";
  547. };
  548. spi5: spi@11015000 {
  549. compatible = "mediatek,mt8186-spi", "mediatek,mt6765-spi";
  550. #address-cells = <1>;
  551. #size-cells = <0>;
  552. reg = <0 0x11015000 0 0x1000>;
  553. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
  554. clocks = <&topckgen CLK_TOP_MAINPLL_D5>,
  555. <&topckgen CLK_TOP_SPI>,
  556. <&infracfg_ao CLK_INFRA_AO_SPI5>;
  557. clock-names = "parent-clk", "sel-clk", "spi-clk";
  558. status = "disabled";
  559. };
  560. imp_iic_wrap: clock-controller@11017000 {
  561. compatible = "mediatek,mt8186-imp_iic_wrap";
  562. reg = <0 0x11017000 0 0x1000>;
  563. #clock-cells = <1>;
  564. };
  565. uart2: serial@11018000 {
  566. compatible = "mediatek,mt8186-uart",
  567. "mediatek,mt6577-uart";
  568. reg = <0 0x11018000 0 0x1000>;
  569. interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>;
  570. clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART2>;
  571. clock-names = "baud", "bus";
  572. status = "disabled";
  573. };
  574. i2c9: i2c@11019000 {
  575. compatible = "mediatek,mt8186-i2c";
  576. reg = <0 0x11019000 0 0x1000>,
  577. <0 0x10200c00 0 0x180>;
  578. interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH 0>;
  579. clocks = <&imp_iic_wrap CLK_IMP_IIC_WRAP_AP_CLOCK_I2C9>,
  580. <&infracfg_ao CLK_INFRA_AO_AP_DMA>;
  581. clock-names = "main", "dma";
  582. clock-div = <1>;
  583. #address-cells = <1>;
  584. #size-cells = <0>;
  585. status = "disabled";
  586. };
  587. mmc0: mmc@11230000 {
  588. compatible = "mediatek,mt8186-mmc",
  589. "mediatek,mt8183-mmc";
  590. reg = <0 0x11230000 0 0x1000>,
  591. <0 0x11cd0000 0 0x1000>;
  592. clocks = <&topckgen CLK_TOP_MSDC50_0>,
  593. <&infracfg_ao CLK_INFRA_AO_MSDC0>,
  594. <&infracfg_ao CLK_INFRA_AO_MSDC0_SRC>;
  595. clock-names = "source", "hclk", "source_cg";
  596. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH 0>;
  597. assigned-clocks = <&topckgen CLK_TOP_MSDC50_0>;
  598. assigned-clock-parents = <&apmixedsys CLK_APMIXED_MSDCPLL>;
  599. status = "disabled";
  600. };
  601. mmc1: mmc@11240000 {
  602. compatible = "mediatek,mt8186-mmc",
  603. "mediatek,mt8183-mmc";
  604. reg = <0 0x11240000 0 0x1000>,
  605. <0 0x11c90000 0 0x1000>;
  606. clocks = <&topckgen CLK_TOP_MSDC30_1>,
  607. <&infracfg_ao CLK_INFRA_AO_MSDC1>,
  608. <&infracfg_ao CLK_INFRA_AO_MSDC1_SRC>;
  609. clock-names = "source", "hclk", "source_cg";
  610. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH 0>;
  611. assigned-clocks = <&topckgen CLK_TOP_MSDC30_1>;
  612. assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
  613. status = "disabled";
  614. };
  615. u3phy0: t-phy@11c80000 {
  616. compatible = "mediatek,mt8186-tphy",
  617. "mediatek,generic-tphy-v2";
  618. #address-cells = <1>;
  619. #size-cells = <1>;
  620. ranges = <0x0 0x0 0x11c80000 0x1000>;
  621. status = "disabled";
  622. u2port1: usb-phy@0 {
  623. reg = <0x0 0x700>;
  624. clocks = <&clk26m>;
  625. clock-names = "ref";
  626. #phy-cells = <1>;
  627. };
  628. u3port1: usb-phy@700 {
  629. reg = <0x700 0x900>;
  630. clocks = <&clk26m>;
  631. clock-names = "ref";
  632. #phy-cells = <1>;
  633. };
  634. };
  635. u3phy1: t-phy@11ca0000 {
  636. compatible = "mediatek,mt8186-tphy",
  637. "mediatek,generic-tphy-v2";
  638. #address-cells = <1>;
  639. #size-cells = <1>;
  640. ranges = <0x0 0x0 0x11ca0000 0x1000>;
  641. status = "disabled";
  642. u2port0: usb-phy@0 {
  643. reg = <0x0 0x700>;
  644. clocks = <&clk26m>;
  645. clock-names = "ref";
  646. #phy-cells = <1>;
  647. mediatek,discth = <0x8>;
  648. };
  649. };
  650. efuse: efuse@11cb0000 {
  651. compatible = "mediatek,mt8186-efuse", "mediatek,efuse";
  652. reg = <0 0x11cb0000 0 0x1000>;
  653. #address-cells = <1>;
  654. #size-cells = <1>;
  655. };
  656. mipi_tx0: dsi-phy@11cc0000 {
  657. compatible = "mediatek,mt8183-mipi-tx";
  658. reg = <0 0x11cc0000 0 0x1000>;
  659. clocks = <&clk26m>;
  660. #clock-cells = <0>;
  661. #phy-cells = <0>;
  662. clock-output-names = "mipi_tx0_pll";
  663. status = "disabled";
  664. };
  665. mfgsys: clock-controller@13000000 {
  666. compatible = "mediatek,mt8186-mfgsys";
  667. reg = <0 0x13000000 0 0x1000>;
  668. #clock-cells = <1>;
  669. };
  670. mmsys: syscon@14000000 {
  671. compatible = "mediatek,mt8186-mmsys", "syscon";
  672. reg = <0 0x14000000 0 0x1000>;
  673. #clock-cells = <1>;
  674. #reset-cells = <1>;
  675. };
  676. wpesys: clock-controller@14020000 {
  677. compatible = "mediatek,mt8186-wpesys";
  678. reg = <0 0x14020000 0 0x1000>;
  679. #clock-cells = <1>;
  680. };
  681. imgsys1: clock-controller@15020000 {
  682. compatible = "mediatek,mt8186-imgsys1";
  683. reg = <0 0x15020000 0 0x1000>;
  684. #clock-cells = <1>;
  685. };
  686. imgsys2: clock-controller@15820000 {
  687. compatible = "mediatek,mt8186-imgsys2";
  688. reg = <0 0x15820000 0 0x1000>;
  689. #clock-cells = <1>;
  690. };
  691. vdecsys: clock-controller@1602f000 {
  692. compatible = "mediatek,mt8186-vdecsys";
  693. reg = <0 0x1602f000 0 0x1000>;
  694. #clock-cells = <1>;
  695. };
  696. vencsys: clock-controller@17000000 {
  697. compatible = "mediatek,mt8186-vencsys";
  698. reg = <0 0x17000000 0 0x1000>;
  699. #clock-cells = <1>;
  700. };
  701. camsys: clock-controller@1a000000 {
  702. compatible = "mediatek,mt8186-camsys";
  703. reg = <0 0x1a000000 0 0x1000>;
  704. #clock-cells = <1>;
  705. };
  706. camsys_rawa: clock-controller@1a04f000 {
  707. compatible = "mediatek,mt8186-camsys_rawa";
  708. reg = <0 0x1a04f000 0 0x1000>;
  709. #clock-cells = <1>;
  710. };
  711. camsys_rawb: clock-controller@1a06f000 {
  712. compatible = "mediatek,mt8186-camsys_rawb";
  713. reg = <0 0x1a06f000 0 0x1000>;
  714. #clock-cells = <1>;
  715. };
  716. mdpsys: clock-controller@1b000000 {
  717. compatible = "mediatek,mt8186-mdpsys";
  718. reg = <0 0x1b000000 0 0x1000>;
  719. #clock-cells = <1>;
  720. };
  721. ipesys: clock-controller@1c000000 {
  722. compatible = "mediatek,mt8186-ipesys";
  723. reg = <0 0x1c000000 0 0x1000>;
  724. #clock-cells = <1>;
  725. };
  726. };
  727. };