mt8173.dtsi 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142
  1. /*
  2. * Copyright (c) 2014 MediaTek Inc.
  3. * Author: Eddie Huang <eddie.huang@mediatek.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. */
  13. #include <dt-bindings/clock/mt8173-clk.h>
  14. #include <dt-bindings/interrupt-controller/irq.h>
  15. #include <dt-bindings/interrupt-controller/arm-gic.h>
  16. #include <dt-bindings/memory/mt8173-larb-port.h>
  17. #include <dt-bindings/phy/phy.h>
  18. #include <dt-bindings/power/mt8173-power.h>
  19. #include <dt-bindings/reset/mt8173-resets.h>
  20. #include "mt8173-pinfunc.h"
  21. / {
  22. compatible = "mediatek,mt8173";
  23. interrupt-parent = <&sysirq>;
  24. #address-cells = <2>;
  25. #size-cells = <2>;
  26. aliases {
  27. ovl0 = &ovl0;
  28. ovl1 = &ovl1;
  29. rdma0 = &rdma0;
  30. rdma1 = &rdma1;
  31. rdma2 = &rdma2;
  32. wdma0 = &wdma0;
  33. wdma1 = &wdma1;
  34. color0 = &color0;
  35. color1 = &color1;
  36. split0 = &split0;
  37. split1 = &split1;
  38. dpi0 = &dpi0;
  39. dsi0 = &dsi0;
  40. dsi1 = &dsi1;
  41. };
  42. cpus {
  43. #address-cells = <1>;
  44. #size-cells = <0>;
  45. cpu-map {
  46. cluster0 {
  47. core0 {
  48. cpu = <&cpu0>;
  49. };
  50. core1 {
  51. cpu = <&cpu1>;
  52. };
  53. };
  54. cluster1 {
  55. core0 {
  56. cpu = <&cpu2>;
  57. };
  58. core1 {
  59. cpu = <&cpu3>;
  60. };
  61. };
  62. };
  63. cpu0: cpu@0 {
  64. device_type = "cpu";
  65. compatible = "arm,cortex-a53";
  66. reg = <0x000>;
  67. enable-method = "psci";
  68. cpu-idle-states = <&CPU_SLEEP_0>;
  69. #cooling-cells = <2>;
  70. };
  71. cpu1: cpu@1 {
  72. device_type = "cpu";
  73. compatible = "arm,cortex-a53";
  74. reg = <0x001>;
  75. enable-method = "psci";
  76. cpu-idle-states = <&CPU_SLEEP_0>;
  77. };
  78. cpu2: cpu@100 {
  79. device_type = "cpu";
  80. compatible = "arm,cortex-a57";
  81. reg = <0x100>;
  82. enable-method = "psci";
  83. cpu-idle-states = <&CPU_SLEEP_0>;
  84. #cooling-cells = <2>;
  85. };
  86. cpu3: cpu@101 {
  87. device_type = "cpu";
  88. compatible = "arm,cortex-a57";
  89. reg = <0x101>;
  90. enable-method = "psci";
  91. cpu-idle-states = <&CPU_SLEEP_0>;
  92. };
  93. idle-states {
  94. entry-method = "psci";
  95. CPU_SLEEP_0: cpu-sleep-0 {
  96. compatible = "arm,idle-state";
  97. local-timer-stop;
  98. entry-latency-us = <639>;
  99. exit-latency-us = <680>;
  100. min-residency-us = <1088>;
  101. arm,psci-suspend-param = <0x0010000>;
  102. };
  103. };
  104. };
  105. psci {
  106. compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
  107. method = "smc";
  108. cpu_suspend = <0x84000001>;
  109. cpu_off = <0x84000002>;
  110. cpu_on = <0x84000003>;
  111. };
  112. clk26m: oscillator@0 {
  113. compatible = "fixed-clock";
  114. #clock-cells = <0>;
  115. clock-frequency = <26000000>;
  116. clock-output-names = "clk26m";
  117. };
  118. clk32k: oscillator@1 {
  119. compatible = "fixed-clock";
  120. #clock-cells = <0>;
  121. clock-frequency = <32000>;
  122. clock-output-names = "clk32k";
  123. };
  124. cpum_ck: oscillator@2 {
  125. compatible = "fixed-clock";
  126. #clock-cells = <0>;
  127. clock-frequency = <0>;
  128. clock-output-names = "cpum_ck";
  129. };
  130. thermal-zones {
  131. cpu_thermal: cpu_thermal {
  132. polling-delay-passive = <1000>; /* milliseconds */
  133. polling-delay = <1000>; /* milliseconds */
  134. thermal-sensors = <&thermal>;
  135. sustainable-power = <1500>; /* milliwatts */
  136. trips {
  137. threshold: trip-point@0 {
  138. temperature = <68000>;
  139. hysteresis = <2000>;
  140. type = "passive";
  141. };
  142. target: trip-point@1 {
  143. temperature = <85000>;
  144. hysteresis = <2000>;
  145. type = "passive";
  146. };
  147. cpu_crit: cpu_crit@0 {
  148. temperature = <115000>;
  149. hysteresis = <2000>;
  150. type = "critical";
  151. };
  152. };
  153. cooling-maps {
  154. map@0 {
  155. trip = <&target>;
  156. cooling-device = <&cpu0 0 0>;
  157. contribution = <1024>;
  158. };
  159. map@1 {
  160. trip = <&target>;
  161. cooling-device = <&cpu2 0 0>;
  162. contribution = <2048>;
  163. };
  164. };
  165. };
  166. };
  167. reserved-memory {
  168. #address-cells = <2>;
  169. #size-cells = <2>;
  170. ranges;
  171. vpu_dma_reserved: vpu_dma_mem_region {
  172. compatible = "shared-dma-pool";
  173. reg = <0 0xb7000000 0 0x500000>;
  174. alignment = <0x1000>;
  175. no-map;
  176. };
  177. };
  178. timer {
  179. compatible = "arm,armv8-timer";
  180. interrupt-parent = <&gic>;
  181. interrupts = <GIC_PPI 13
  182. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  183. <GIC_PPI 14
  184. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  185. <GIC_PPI 11
  186. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  187. <GIC_PPI 10
  188. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  189. };
  190. soc {
  191. #address-cells = <2>;
  192. #size-cells = <2>;
  193. compatible = "simple-bus";
  194. ranges;
  195. topckgen: clock-controller@10000000 {
  196. compatible = "mediatek,mt8173-topckgen";
  197. reg = <0 0x10000000 0 0x1000>;
  198. #clock-cells = <1>;
  199. };
  200. infracfg: power-controller@10001000 {
  201. compatible = "mediatek,mt8173-infracfg", "syscon";
  202. reg = <0 0x10001000 0 0x1000>;
  203. #clock-cells = <1>;
  204. #reset-cells = <1>;
  205. };
  206. pericfg: power-controller@10003000 {
  207. compatible = "mediatek,mt8173-pericfg", "syscon";
  208. reg = <0 0x10003000 0 0x1000>;
  209. #clock-cells = <1>;
  210. #reset-cells = <1>;
  211. };
  212. syscfg_pctl_a: syscfg_pctl_a@10005000 {
  213. compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon";
  214. reg = <0 0x10005000 0 0x1000>;
  215. };
  216. pio: pinctrl@0x10005000 {
  217. compatible = "mediatek,mt8173-pinctrl";
  218. reg = <0 0x1000b000 0 0x1000>;
  219. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  220. pins-are-numbered;
  221. gpio-controller;
  222. #gpio-cells = <2>;
  223. interrupt-controller;
  224. #interrupt-cells = <2>;
  225. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  226. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  227. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  228. hdmi_pin: xxx {
  229. /*hdmi htplg pin*/
  230. pins1 {
  231. pinmux = <MT8173_PIN_21_HTPLG__FUNC_HTPLG>;
  232. input-enable;
  233. bias-pull-down;
  234. };
  235. };
  236. i2c0_pins_a: i2c0 {
  237. pins1 {
  238. pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>,
  239. <MT8173_PIN_46_SCL0__FUNC_SCL0>;
  240. bias-disable;
  241. };
  242. };
  243. i2c1_pins_a: i2c1 {
  244. pins1 {
  245. pinmux = <MT8173_PIN_125_SDA1__FUNC_SDA1>,
  246. <MT8173_PIN_126_SCL1__FUNC_SCL1>;
  247. bias-disable;
  248. };
  249. };
  250. i2c2_pins_a: i2c2 {
  251. pins1 {
  252. pinmux = <MT8173_PIN_43_SDA2__FUNC_SDA2>,
  253. <MT8173_PIN_44_SCL2__FUNC_SCL2>;
  254. bias-disable;
  255. };
  256. };
  257. i2c3_pins_a: i2c3 {
  258. pins1 {
  259. pinmux = <MT8173_PIN_106_SDA3__FUNC_SDA3>,
  260. <MT8173_PIN_107_SCL3__FUNC_SCL3>;
  261. bias-disable;
  262. };
  263. };
  264. i2c4_pins_a: i2c4 {
  265. pins1 {
  266. pinmux = <MT8173_PIN_133_SDA4__FUNC_SDA4>,
  267. <MT8173_PIN_134_SCL4__FUNC_SCL4>;
  268. bias-disable;
  269. };
  270. };
  271. i2c6_pins_a: i2c6 {
  272. pins1 {
  273. pinmux = <MT8173_PIN_100_MSDC2_DAT0__FUNC_SDA5>,
  274. <MT8173_PIN_101_MSDC2_DAT1__FUNC_SCL5>;
  275. bias-disable;
  276. };
  277. };
  278. };
  279. scpsys: scpsys@10006000 {
  280. compatible = "mediatek,mt8173-scpsys";
  281. #power-domain-cells = <1>;
  282. reg = <0 0x10006000 0 0x1000>;
  283. clocks = <&clk26m>,
  284. <&topckgen CLK_TOP_MM_SEL>,
  285. <&topckgen CLK_TOP_VENC_SEL>,
  286. <&topckgen CLK_TOP_VENC_LT_SEL>;
  287. clock-names = "mfg", "mm", "venc", "venc_lt";
  288. infracfg = <&infracfg>;
  289. };
  290. watchdog: watchdog@10007000 {
  291. compatible = "mediatek,mt8173-wdt",
  292. "mediatek,mt6589-wdt";
  293. reg = <0 0x10007000 0 0x100>;
  294. };
  295. timer: timer@10008000 {
  296. compatible = "mediatek,mt8173-timer",
  297. "mediatek,mt6577-timer";
  298. reg = <0 0x10008000 0 0x1000>;
  299. interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_LOW>;
  300. clocks = <&infracfg CLK_INFRA_CLK_13M>,
  301. <&topckgen CLK_TOP_RTC_SEL>;
  302. };
  303. pwrap: pwrap@1000d000 {
  304. compatible = "mediatek,mt8173-pwrap";
  305. reg = <0 0x1000d000 0 0x1000>;
  306. reg-names = "pwrap";
  307. interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
  308. resets = <&infracfg MT8173_INFRA_PMIC_WRAP_RST>;
  309. reset-names = "pwrap";
  310. clocks = <&infracfg CLK_INFRA_PMICSPI>, <&infracfg CLK_INFRA_PMICWRAP>;
  311. clock-names = "spi", "wrap";
  312. };
  313. cec: cec@10013000 {
  314. compatible = "mediatek,mt8173-cec";
  315. reg = <0 0x10013000 0 0xbc>;
  316. interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_LOW>;
  317. clocks = <&infracfg CLK_INFRA_CEC>;
  318. status = "disabled";
  319. };
  320. vpu: vpu@10020000 {
  321. compatible = "mediatek,mt8173-vpu";
  322. reg = <0 0x10020000 0 0x30000>,
  323. <0 0x10050000 0 0x100>;
  324. reg-names = "tcm", "cfg_reg";
  325. interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
  326. clocks = <&topckgen CLK_TOP_SCP_SEL>;
  327. clock-names = "main";
  328. memory-region = <&vpu_dma_reserved>;
  329. };
  330. sysirq: intpol-controller@10200620 {
  331. compatible = "mediatek,mt8173-sysirq",
  332. "mediatek,mt6577-sysirq";
  333. interrupt-controller;
  334. #interrupt-cells = <3>;
  335. interrupt-parent = <&gic>;
  336. reg = <0 0x10200620 0 0x20>;
  337. };
  338. iommu: iommu@10205000 {
  339. compatible = "mediatek,mt8173-m4u";
  340. reg = <0 0x10205000 0 0x1000>;
  341. interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
  342. clocks = <&infracfg CLK_INFRA_M4U>;
  343. clock-names = "bclk";
  344. mediatek,larbs = <&larb0 &larb1 &larb2
  345. &larb3 &larb4 &larb5>;
  346. #iommu-cells = <1>;
  347. };
  348. efuse: efuse@10206000 {
  349. compatible = "mediatek,mt8173-efuse";
  350. reg = <0 0x10206000 0 0x1000>;
  351. };
  352. apmixedsys: clock-controller@10209000 {
  353. compatible = "mediatek,mt8173-apmixedsys";
  354. reg = <0 0x10209000 0 0x1000>;
  355. #clock-cells = <1>;
  356. };
  357. hdmi_phy: hdmi-phy@10209100 {
  358. compatible = "mediatek,mt8173-hdmi-phy";
  359. reg = <0 0x10209100 0 0x24>;
  360. clocks = <&apmixedsys CLK_APMIXED_HDMI_REF>;
  361. clock-names = "pll_ref";
  362. clock-output-names = "hdmitx_dig_cts";
  363. mediatek,ibias = <0xa>;
  364. mediatek,ibias_up = <0x1c>;
  365. #clock-cells = <0>;
  366. #phy-cells = <0>;
  367. status = "disabled";
  368. };
  369. mipi_tx0: mipi-dphy@10215000 {
  370. compatible = "mediatek,mt8173-mipi-tx";
  371. reg = <0 0x10215000 0 0x1000>;
  372. clocks = <&clk26m>;
  373. clock-output-names = "mipi_tx0_pll";
  374. #clock-cells = <0>;
  375. #phy-cells = <0>;
  376. status = "disabled";
  377. };
  378. mipi_tx1: mipi-dphy@10216000 {
  379. compatible = "mediatek,mt8173-mipi-tx";
  380. reg = <0 0x10216000 0 0x1000>;
  381. clocks = <&clk26m>;
  382. clock-output-names = "mipi_tx1_pll";
  383. #clock-cells = <0>;
  384. #phy-cells = <0>;
  385. status = "disabled";
  386. };
  387. gic: interrupt-controller@10220000 {
  388. compatible = "arm,gic-400";
  389. #interrupt-cells = <3>;
  390. interrupt-parent = <&gic>;
  391. interrupt-controller;
  392. reg = <0 0x10221000 0 0x1000>,
  393. <0 0x10222000 0 0x2000>,
  394. <0 0x10224000 0 0x2000>,
  395. <0 0x10226000 0 0x2000>;
  396. interrupts = <GIC_PPI 9
  397. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  398. };
  399. auxadc: auxadc@11001000 {
  400. compatible = "mediatek,mt8173-auxadc";
  401. reg = <0 0x11001000 0 0x1000>;
  402. clocks = <&pericfg CLK_PERI_AUXADC>;
  403. clock-names = "main";
  404. #io-channel-cells = <1>;
  405. };
  406. uart0: serial@11002000 {
  407. compatible = "mediatek,mt8173-uart",
  408. "mediatek,mt6577-uart";
  409. reg = <0 0x11002000 0 0x400>;
  410. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
  411. clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
  412. clock-names = "baud", "bus";
  413. status = "disabled";
  414. };
  415. uart1: serial@11003000 {
  416. compatible = "mediatek,mt8173-uart",
  417. "mediatek,mt6577-uart";
  418. reg = <0 0x11003000 0 0x400>;
  419. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
  420. clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
  421. clock-names = "baud", "bus";
  422. status = "disabled";
  423. };
  424. uart2: serial@11004000 {
  425. compatible = "mediatek,mt8173-uart",
  426. "mediatek,mt6577-uart";
  427. reg = <0 0x11004000 0 0x400>;
  428. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
  429. clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
  430. clock-names = "baud", "bus";
  431. status = "disabled";
  432. };
  433. uart3: serial@11005000 {
  434. compatible = "mediatek,mt8173-uart",
  435. "mediatek,mt6577-uart";
  436. reg = <0 0x11005000 0 0x400>;
  437. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
  438. clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
  439. clock-names = "baud", "bus";
  440. status = "disabled";
  441. };
  442. i2c0: i2c@11007000 {
  443. compatible = "mediatek,mt8173-i2c";
  444. reg = <0 0x11007000 0 0x70>,
  445. <0 0x11000100 0 0x80>;
  446. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
  447. clock-div = <16>;
  448. clocks = <&pericfg CLK_PERI_I2C0>,
  449. <&pericfg CLK_PERI_AP_DMA>;
  450. clock-names = "main", "dma";
  451. pinctrl-names = "default";
  452. pinctrl-0 = <&i2c0_pins_a>;
  453. #address-cells = <1>;
  454. #size-cells = <0>;
  455. status = "disabled";
  456. };
  457. i2c1: i2c@11008000 {
  458. compatible = "mediatek,mt8173-i2c";
  459. reg = <0 0x11008000 0 0x70>,
  460. <0 0x11000180 0 0x80>;
  461. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
  462. clock-div = <16>;
  463. clocks = <&pericfg CLK_PERI_I2C1>,
  464. <&pericfg CLK_PERI_AP_DMA>;
  465. clock-names = "main", "dma";
  466. pinctrl-names = "default";
  467. pinctrl-0 = <&i2c1_pins_a>;
  468. #address-cells = <1>;
  469. #size-cells = <0>;
  470. status = "disabled";
  471. };
  472. i2c2: i2c@11009000 {
  473. compatible = "mediatek,mt8173-i2c";
  474. reg = <0 0x11009000 0 0x70>,
  475. <0 0x11000200 0 0x80>;
  476. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
  477. clock-div = <16>;
  478. clocks = <&pericfg CLK_PERI_I2C2>,
  479. <&pericfg CLK_PERI_AP_DMA>;
  480. clock-names = "main", "dma";
  481. pinctrl-names = "default";
  482. pinctrl-0 = <&i2c2_pins_a>;
  483. #address-cells = <1>;
  484. #size-cells = <0>;
  485. status = "disabled";
  486. };
  487. spi: spi@1100a000 {
  488. compatible = "mediatek,mt8173-spi";
  489. #address-cells = <1>;
  490. #size-cells = <0>;
  491. reg = <0 0x1100a000 0 0x1000>;
  492. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>;
  493. clocks = <&topckgen CLK_TOP_SYSPLL3_D2>,
  494. <&topckgen CLK_TOP_SPI_SEL>,
  495. <&pericfg CLK_PERI_SPI0>;
  496. clock-names = "parent-clk", "sel-clk", "spi-clk";
  497. status = "disabled";
  498. };
  499. thermal: thermal@1100b000 {
  500. #thermal-sensor-cells = <0>;
  501. compatible = "mediatek,mt8173-thermal";
  502. reg = <0 0x1100b000 0 0x1000>;
  503. interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>;
  504. clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>;
  505. clock-names = "therm", "auxadc";
  506. resets = <&pericfg MT8173_PERI_THERM_SW_RST>;
  507. mediatek,auxadc = <&auxadc>;
  508. mediatek,apmixedsys = <&apmixedsys>;
  509. };
  510. nor_flash: spi@1100d000 {
  511. compatible = "mediatek,mt8173-nor";
  512. reg = <0 0x1100d000 0 0xe0>;
  513. clocks = <&pericfg CLK_PERI_SPI>,
  514. <&topckgen CLK_TOP_SPINFI_IFR_SEL>;
  515. clock-names = "spi", "sf";
  516. #address-cells = <1>;
  517. #size-cells = <0>;
  518. status = "disabled";
  519. };
  520. i2c3: i2c@11010000 {
  521. compatible = "mediatek,mt8173-i2c";
  522. reg = <0 0x11010000 0 0x70>,
  523. <0 0x11000280 0 0x80>;
  524. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
  525. clock-div = <16>;
  526. clocks = <&pericfg CLK_PERI_I2C3>,
  527. <&pericfg CLK_PERI_AP_DMA>;
  528. clock-names = "main", "dma";
  529. pinctrl-names = "default";
  530. pinctrl-0 = <&i2c3_pins_a>;
  531. #address-cells = <1>;
  532. #size-cells = <0>;
  533. status = "disabled";
  534. };
  535. i2c4: i2c@11011000 {
  536. compatible = "mediatek,mt8173-i2c";
  537. reg = <0 0x11011000 0 0x70>,
  538. <0 0x11000300 0 0x80>;
  539. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
  540. clock-div = <16>;
  541. clocks = <&pericfg CLK_PERI_I2C4>,
  542. <&pericfg CLK_PERI_AP_DMA>;
  543. clock-names = "main", "dma";
  544. pinctrl-names = "default";
  545. pinctrl-0 = <&i2c4_pins_a>;
  546. #address-cells = <1>;
  547. #size-cells = <0>;
  548. status = "disabled";
  549. };
  550. hdmiddc0: i2c@11012000 {
  551. compatible = "mediatek,mt8173-hdmi-ddc";
  552. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
  553. reg = <0 0x11012000 0 0x1C>;
  554. clocks = <&pericfg CLK_PERI_I2C5>;
  555. clock-names = "ddc-i2c";
  556. };
  557. i2c6: i2c@11013000 {
  558. compatible = "mediatek,mt8173-i2c";
  559. reg = <0 0x11013000 0 0x70>,
  560. <0 0x11000080 0 0x80>;
  561. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
  562. clock-div = <16>;
  563. clocks = <&pericfg CLK_PERI_I2C6>,
  564. <&pericfg CLK_PERI_AP_DMA>;
  565. clock-names = "main", "dma";
  566. pinctrl-names = "default";
  567. pinctrl-0 = <&i2c6_pins_a>;
  568. #address-cells = <1>;
  569. #size-cells = <0>;
  570. status = "disabled";
  571. };
  572. afe: audio-controller@11220000 {
  573. compatible = "mediatek,mt8173-afe-pcm";
  574. reg = <0 0x11220000 0 0x1000>;
  575. interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_FALLING>;
  576. power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>;
  577. clocks = <&infracfg CLK_INFRA_AUDIO>,
  578. <&topckgen CLK_TOP_AUDIO_SEL>,
  579. <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
  580. <&topckgen CLK_TOP_APLL1_DIV0>,
  581. <&topckgen CLK_TOP_APLL2_DIV0>,
  582. <&topckgen CLK_TOP_I2S0_M_SEL>,
  583. <&topckgen CLK_TOP_I2S1_M_SEL>,
  584. <&topckgen CLK_TOP_I2S2_M_SEL>,
  585. <&topckgen CLK_TOP_I2S3_M_SEL>,
  586. <&topckgen CLK_TOP_I2S3_B_SEL>;
  587. clock-names = "infra_sys_audio_clk",
  588. "top_pdn_audio",
  589. "top_pdn_aud_intbus",
  590. "bck0",
  591. "bck1",
  592. "i2s0_m",
  593. "i2s1_m",
  594. "i2s2_m",
  595. "i2s3_m",
  596. "i2s3_b";
  597. assigned-clocks = <&topckgen CLK_TOP_AUD_1_SEL>,
  598. <&topckgen CLK_TOP_AUD_2_SEL>;
  599. assigned-clock-parents = <&topckgen CLK_TOP_APLL1>,
  600. <&topckgen CLK_TOP_APLL2>;
  601. };
  602. mmc0: mmc@11230000 {
  603. compatible = "mediatek,mt8173-mmc",
  604. "mediatek,mt8135-mmc";
  605. reg = <0 0x11230000 0 0x1000>;
  606. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>;
  607. clocks = <&pericfg CLK_PERI_MSDC30_0>,
  608. <&topckgen CLK_TOP_MSDC50_0_H_SEL>;
  609. clock-names = "source", "hclk";
  610. status = "disabled";
  611. };
  612. mmc1: mmc@11240000 {
  613. compatible = "mediatek,mt8173-mmc",
  614. "mediatek,mt8135-mmc";
  615. reg = <0 0x11240000 0 0x1000>;
  616. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
  617. clocks = <&pericfg CLK_PERI_MSDC30_1>,
  618. <&topckgen CLK_TOP_AXI_SEL>;
  619. clock-names = "source", "hclk";
  620. status = "disabled";
  621. };
  622. mmc2: mmc@11250000 {
  623. compatible = "mediatek,mt8173-mmc",
  624. "mediatek,mt8135-mmc";
  625. reg = <0 0x11250000 0 0x1000>;
  626. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
  627. clocks = <&pericfg CLK_PERI_MSDC30_2>,
  628. <&topckgen CLK_TOP_AXI_SEL>;
  629. clock-names = "source", "hclk";
  630. status = "disabled";
  631. };
  632. mmc3: mmc@11260000 {
  633. compatible = "mediatek,mt8173-mmc",
  634. "mediatek,mt8135-mmc";
  635. reg = <0 0x11260000 0 0x1000>;
  636. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
  637. clocks = <&pericfg CLK_PERI_MSDC30_3>,
  638. <&topckgen CLK_TOP_MSDC50_2_H_SEL>;
  639. clock-names = "source", "hclk";
  640. status = "disabled";
  641. };
  642. usb30: usb@11270000 {
  643. compatible = "mediatek,mt8173-xhci";
  644. reg = <0 0x11270000 0 0x1000>,
  645. <0 0x11280700 0 0x0100>;
  646. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>;
  647. power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>;
  648. clocks = <&topckgen CLK_TOP_USB30_SEL>,
  649. <&pericfg CLK_PERI_USB0>,
  650. <&pericfg CLK_PERI_USB1>;
  651. clock-names = "sys_ck",
  652. "wakeup_deb_p0",
  653. "wakeup_deb_p1";
  654. phys = <&phy_port0 PHY_TYPE_USB3>,
  655. <&phy_port1 PHY_TYPE_USB2>;
  656. mediatek,syscon-wakeup = <&pericfg>;
  657. status = "okay";
  658. };
  659. u3phy: usb-phy@11290000 {
  660. compatible = "mediatek,mt8173-u3phy";
  661. reg = <0 0x11290000 0 0x800>;
  662. clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>;
  663. clock-names = "u3phya_ref";
  664. #address-cells = <2>;
  665. #size-cells = <2>;
  666. ranges;
  667. status = "okay";
  668. phy_port0: port@11290800 {
  669. reg = <0 0x11290800 0 0x800>;
  670. #phy-cells = <1>;
  671. status = "okay";
  672. };
  673. phy_port1: port@11291000 {
  674. reg = <0 0x11291000 0 0x800>;
  675. #phy-cells = <1>;
  676. status = "okay";
  677. };
  678. };
  679. mmsys: clock-controller@14000000 {
  680. compatible = "mediatek,mt8173-mmsys", "syscon";
  681. reg = <0 0x14000000 0 0x1000>;
  682. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  683. #clock-cells = <1>;
  684. };
  685. ovl0: ovl@1400c000 {
  686. compatible = "mediatek,mt8173-disp-ovl";
  687. reg = <0 0x1400c000 0 0x1000>;
  688. interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>;
  689. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  690. clocks = <&mmsys CLK_MM_DISP_OVL0>;
  691. iommus = <&iommu M4U_PORT_DISP_OVL0>;
  692. mediatek,larb = <&larb0>;
  693. };
  694. ovl1: ovl@1400d000 {
  695. compatible = "mediatek,mt8173-disp-ovl";
  696. reg = <0 0x1400d000 0 0x1000>;
  697. interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_LOW>;
  698. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  699. clocks = <&mmsys CLK_MM_DISP_OVL1>;
  700. iommus = <&iommu M4U_PORT_DISP_OVL1>;
  701. mediatek,larb = <&larb4>;
  702. };
  703. rdma0: rdma@1400e000 {
  704. compatible = "mediatek,mt8173-disp-rdma";
  705. reg = <0 0x1400e000 0 0x1000>;
  706. interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>;
  707. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  708. clocks = <&mmsys CLK_MM_DISP_RDMA0>;
  709. iommus = <&iommu M4U_PORT_DISP_RDMA0>;
  710. mediatek,larb = <&larb0>;
  711. };
  712. rdma1: rdma@1400f000 {
  713. compatible = "mediatek,mt8173-disp-rdma";
  714. reg = <0 0x1400f000 0 0x1000>;
  715. interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_LOW>;
  716. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  717. clocks = <&mmsys CLK_MM_DISP_RDMA1>;
  718. iommus = <&iommu M4U_PORT_DISP_RDMA1>;
  719. mediatek,larb = <&larb4>;
  720. };
  721. rdma2: rdma@14010000 {
  722. compatible = "mediatek,mt8173-disp-rdma";
  723. reg = <0 0x14010000 0 0x1000>;
  724. interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_LOW>;
  725. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  726. clocks = <&mmsys CLK_MM_DISP_RDMA2>;
  727. iommus = <&iommu M4U_PORT_DISP_RDMA2>;
  728. mediatek,larb = <&larb4>;
  729. };
  730. wdma0: wdma@14011000 {
  731. compatible = "mediatek,mt8173-disp-wdma";
  732. reg = <0 0x14011000 0 0x1000>;
  733. interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_LOW>;
  734. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  735. clocks = <&mmsys CLK_MM_DISP_WDMA0>;
  736. iommus = <&iommu M4U_PORT_DISP_WDMA0>;
  737. mediatek,larb = <&larb0>;
  738. };
  739. wdma1: wdma@14012000 {
  740. compatible = "mediatek,mt8173-disp-wdma";
  741. reg = <0 0x14012000 0 0x1000>;
  742. interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_LOW>;
  743. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  744. clocks = <&mmsys CLK_MM_DISP_WDMA1>;
  745. iommus = <&iommu M4U_PORT_DISP_WDMA1>;
  746. mediatek,larb = <&larb4>;
  747. };
  748. color0: color@14013000 {
  749. compatible = "mediatek,mt8173-disp-color";
  750. reg = <0 0x14013000 0 0x1000>;
  751. interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_LOW>;
  752. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  753. clocks = <&mmsys CLK_MM_DISP_COLOR0>;
  754. };
  755. color1: color@14014000 {
  756. compatible = "mediatek,mt8173-disp-color";
  757. reg = <0 0x14014000 0 0x1000>;
  758. interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>;
  759. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  760. clocks = <&mmsys CLK_MM_DISP_COLOR1>;
  761. };
  762. aal@14015000 {
  763. compatible = "mediatek,mt8173-disp-aal";
  764. reg = <0 0x14015000 0 0x1000>;
  765. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>;
  766. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  767. clocks = <&mmsys CLK_MM_DISP_AAL>;
  768. };
  769. gamma@14016000 {
  770. compatible = "mediatek,mt8173-disp-gamma";
  771. reg = <0 0x14016000 0 0x1000>;
  772. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>;
  773. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  774. clocks = <&mmsys CLK_MM_DISP_GAMMA>;
  775. };
  776. merge@14017000 {
  777. compatible = "mediatek,mt8173-disp-merge";
  778. reg = <0 0x14017000 0 0x1000>;
  779. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  780. clocks = <&mmsys CLK_MM_DISP_MERGE>;
  781. };
  782. split0: split@14018000 {
  783. compatible = "mediatek,mt8173-disp-split";
  784. reg = <0 0x14018000 0 0x1000>;
  785. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  786. clocks = <&mmsys CLK_MM_DISP_SPLIT0>;
  787. };
  788. split1: split@14019000 {
  789. compatible = "mediatek,mt8173-disp-split";
  790. reg = <0 0x14019000 0 0x1000>;
  791. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  792. clocks = <&mmsys CLK_MM_DISP_SPLIT1>;
  793. };
  794. ufoe@1401a000 {
  795. compatible = "mediatek,mt8173-disp-ufoe";
  796. reg = <0 0x1401a000 0 0x1000>;
  797. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>;
  798. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  799. clocks = <&mmsys CLK_MM_DISP_UFOE>;
  800. };
  801. dsi0: dsi@1401b000 {
  802. compatible = "mediatek,mt8173-dsi";
  803. reg = <0 0x1401b000 0 0x1000>;
  804. interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_LOW>;
  805. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  806. clocks = <&mmsys CLK_MM_DSI0_ENGINE>,
  807. <&mmsys CLK_MM_DSI0_DIGITAL>,
  808. <&mipi_tx0>;
  809. clock-names = "engine", "digital", "hs";
  810. phys = <&mipi_tx0>;
  811. phy-names = "dphy";
  812. status = "disabled";
  813. };
  814. dsi1: dsi@1401c000 {
  815. compatible = "mediatek,mt8173-dsi";
  816. reg = <0 0x1401c000 0 0x1000>;
  817. interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>;
  818. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  819. clocks = <&mmsys CLK_MM_DSI1_ENGINE>,
  820. <&mmsys CLK_MM_DSI1_DIGITAL>,
  821. <&mipi_tx1>;
  822. clock-names = "engine", "digital", "hs";
  823. phy = <&mipi_tx1>;
  824. phy-names = "dphy";
  825. status = "disabled";
  826. };
  827. dpi0: dpi@1401d000 {
  828. compatible = "mediatek,mt8173-dpi";
  829. reg = <0 0x1401d000 0 0x1000>;
  830. interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
  831. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  832. clocks = <&mmsys CLK_MM_DPI_PIXEL>,
  833. <&mmsys CLK_MM_DPI_ENGINE>,
  834. <&apmixedsys CLK_APMIXED_TVDPLL>;
  835. clock-names = "pixel", "engine", "pll";
  836. status = "disabled";
  837. port {
  838. dpi0_out: endpoint {
  839. remote-endpoint = <&hdmi0_in>;
  840. };
  841. };
  842. };
  843. pwm0: pwm@1401e000 {
  844. compatible = "mediatek,mt8173-disp-pwm",
  845. "mediatek,mt6595-disp-pwm";
  846. reg = <0 0x1401e000 0 0x1000>;
  847. #pwm-cells = <2>;
  848. clocks = <&mmsys CLK_MM_DISP_PWM026M>,
  849. <&mmsys CLK_MM_DISP_PWM0MM>;
  850. clock-names = "main", "mm";
  851. status = "disabled";
  852. };
  853. pwm1: pwm@1401f000 {
  854. compatible = "mediatek,mt8173-disp-pwm",
  855. "mediatek,mt6595-disp-pwm";
  856. reg = <0 0x1401f000 0 0x1000>;
  857. #pwm-cells = <2>;
  858. clocks = <&mmsys CLK_MM_DISP_PWM126M>,
  859. <&mmsys CLK_MM_DISP_PWM1MM>;
  860. clock-names = "main", "mm";
  861. status = "disabled";
  862. };
  863. mutex: mutex@14020000 {
  864. compatible = "mediatek,mt8173-disp-mutex";
  865. reg = <0 0x14020000 0 0x1000>;
  866. interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>;
  867. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  868. clocks = <&mmsys CLK_MM_MUTEX_32K>;
  869. };
  870. larb0: larb@14021000 {
  871. compatible = "mediatek,mt8173-smi-larb";
  872. reg = <0 0x14021000 0 0x1000>;
  873. mediatek,smi = <&smi_common>;
  874. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  875. clocks = <&mmsys CLK_MM_SMI_LARB0>,
  876. <&mmsys CLK_MM_SMI_LARB0>;
  877. clock-names = "apb", "smi";
  878. };
  879. smi_common: smi@14022000 {
  880. compatible = "mediatek,mt8173-smi-common";
  881. reg = <0 0x14022000 0 0x1000>;
  882. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  883. clocks = <&mmsys CLK_MM_SMI_COMMON>,
  884. <&mmsys CLK_MM_SMI_COMMON>;
  885. clock-names = "apb", "smi";
  886. };
  887. od@14023000 {
  888. compatible = "mediatek,mt8173-disp-od";
  889. reg = <0 0x14023000 0 0x1000>;
  890. clocks = <&mmsys CLK_MM_DISP_OD>;
  891. };
  892. hdmi0: hdmi@14025000 {
  893. compatible = "mediatek,mt8173-hdmi";
  894. reg = <0 0x14025000 0 0x400>;
  895. interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_LOW>;
  896. clocks = <&mmsys CLK_MM_HDMI_PIXEL>,
  897. <&mmsys CLK_MM_HDMI_PLLCK>,
  898. <&mmsys CLK_MM_HDMI_AUDIO>,
  899. <&mmsys CLK_MM_HDMI_SPDIF>;
  900. clock-names = "pixel", "pll", "bclk", "spdif";
  901. pinctrl-names = "default";
  902. pinctrl-0 = <&hdmi_pin>;
  903. phys = <&hdmi_phy>;
  904. phy-names = "hdmi";
  905. mediatek,syscon-hdmi = <&mmsys 0x900>;
  906. assigned-clocks = <&topckgen CLK_TOP_HDMI_SEL>;
  907. assigned-clock-parents = <&hdmi_phy>;
  908. status = "disabled";
  909. ports {
  910. #address-cells = <1>;
  911. #size-cells = <0>;
  912. port@0 {
  913. reg = <0>;
  914. hdmi0_in: endpoint {
  915. remote-endpoint = <&dpi0_out>;
  916. };
  917. };
  918. };
  919. };
  920. larb4: larb@14027000 {
  921. compatible = "mediatek,mt8173-smi-larb";
  922. reg = <0 0x14027000 0 0x1000>;
  923. mediatek,smi = <&smi_common>;
  924. power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
  925. clocks = <&mmsys CLK_MM_SMI_LARB4>,
  926. <&mmsys CLK_MM_SMI_LARB4>;
  927. clock-names = "apb", "smi";
  928. };
  929. imgsys: clock-controller@15000000 {
  930. compatible = "mediatek,mt8173-imgsys", "syscon";
  931. reg = <0 0x15000000 0 0x1000>;
  932. #clock-cells = <1>;
  933. };
  934. larb2: larb@15001000 {
  935. compatible = "mediatek,mt8173-smi-larb";
  936. reg = <0 0x15001000 0 0x1000>;
  937. mediatek,smi = <&smi_common>;
  938. power-domains = <&scpsys MT8173_POWER_DOMAIN_ISP>;
  939. clocks = <&imgsys CLK_IMG_LARB2_SMI>,
  940. <&imgsys CLK_IMG_LARB2_SMI>;
  941. clock-names = "apb", "smi";
  942. };
  943. vdecsys: clock-controller@16000000 {
  944. compatible = "mediatek,mt8173-vdecsys", "syscon";
  945. reg = <0 0x16000000 0 0x1000>;
  946. #clock-cells = <1>;
  947. };
  948. larb1: larb@16010000 {
  949. compatible = "mediatek,mt8173-smi-larb";
  950. reg = <0 0x16010000 0 0x1000>;
  951. mediatek,smi = <&smi_common>;
  952. power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
  953. clocks = <&vdecsys CLK_VDEC_CKEN>,
  954. <&vdecsys CLK_VDEC_LARB_CKEN>;
  955. clock-names = "apb", "smi";
  956. };
  957. vencsys: clock-controller@18000000 {
  958. compatible = "mediatek,mt8173-vencsys", "syscon";
  959. reg = <0 0x18000000 0 0x1000>;
  960. #clock-cells = <1>;
  961. };
  962. larb3: larb@18001000 {
  963. compatible = "mediatek,mt8173-smi-larb";
  964. reg = <0 0x18001000 0 0x1000>;
  965. mediatek,smi = <&smi_common>;
  966. power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC>;
  967. clocks = <&vencsys CLK_VENC_CKE1>,
  968. <&vencsys CLK_VENC_CKE0>;
  969. clock-names = "apb", "smi";
  970. };
  971. vcodec_enc: vcodec@18002000 {
  972. compatible = "mediatek,mt8173-vcodec-enc";
  973. reg = <0 0x18002000 0 0x1000>, /* VENC_SYS */
  974. <0 0x19002000 0 0x1000>; /* VENC_LT_SYS */
  975. interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>,
  976. <GIC_SPI 202 IRQ_TYPE_LEVEL_LOW>;
  977. mediatek,larb = <&larb3>,
  978. <&larb5>;
  979. iommus = <&iommu M4U_PORT_VENC_RCPU>,
  980. <&iommu M4U_PORT_VENC_REC>,
  981. <&iommu M4U_PORT_VENC_BSDMA>,
  982. <&iommu M4U_PORT_VENC_SV_COMV>,
  983. <&iommu M4U_PORT_VENC_RD_COMV>,
  984. <&iommu M4U_PORT_VENC_CUR_LUMA>,
  985. <&iommu M4U_PORT_VENC_CUR_CHROMA>,
  986. <&iommu M4U_PORT_VENC_REF_LUMA>,
  987. <&iommu M4U_PORT_VENC_REF_CHROMA>,
  988. <&iommu M4U_PORT_VENC_NBM_RDMA>,
  989. <&iommu M4U_PORT_VENC_NBM_WDMA>,
  990. <&iommu M4U_PORT_VENC_RCPU_SET2>,
  991. <&iommu M4U_PORT_VENC_REC_FRM_SET2>,
  992. <&iommu M4U_PORT_VENC_BSDMA_SET2>,
  993. <&iommu M4U_PORT_VENC_SV_COMA_SET2>,
  994. <&iommu M4U_PORT_VENC_RD_COMA_SET2>,
  995. <&iommu M4U_PORT_VENC_CUR_LUMA_SET2>,
  996. <&iommu M4U_PORT_VENC_CUR_CHROMA_SET2>,
  997. <&iommu M4U_PORT_VENC_REF_LUMA_SET2>,
  998. <&iommu M4U_PORT_VENC_REC_CHROMA_SET2>;
  999. mediatek,vpu = <&vpu>;
  1000. clocks = <&topckgen CLK_TOP_VENCPLL_D2>,
  1001. <&topckgen CLK_TOP_VENC_SEL>,
  1002. <&topckgen CLK_TOP_UNIVPLL1_D2>,
  1003. <&topckgen CLK_TOP_VENC_LT_SEL>;
  1004. clock-names = "venc_sel_src",
  1005. "venc_sel",
  1006. "venc_lt_sel_src",
  1007. "venc_lt_sel";
  1008. };
  1009. vencltsys: clock-controller@19000000 {
  1010. compatible = "mediatek,mt8173-vencltsys", "syscon";
  1011. reg = <0 0x19000000 0 0x1000>;
  1012. #clock-cells = <1>;
  1013. };
  1014. larb5: larb@19001000 {
  1015. compatible = "mediatek,mt8173-smi-larb";
  1016. reg = <0 0x19001000 0 0x1000>;
  1017. mediatek,smi = <&smi_common>;
  1018. power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC_LT>;
  1019. clocks = <&vencltsys CLK_VENCLT_CKE1>,
  1020. <&vencltsys CLK_VENCLT_CKE0>;
  1021. clock-names = "apb", "smi";
  1022. };
  1023. };
  1024. };