imx6qdl.dtsi 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388
  1. // SPDX-License-Identifier: GPL-2.0+
  2. //
  3. // Copyright 2011 Freescale Semiconductor, Inc.
  4. // Copyright 2011 Linaro Ltd.
  5. #include <dt-bindings/clock/imx6qdl-clock.h>
  6. #include <dt-bindings/input/input.h>
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. / {
  9. #address-cells = <1>;
  10. #size-cells = <1>;
  11. /*
  12. * The decompressor and also some bootloaders rely on a
  13. * pre-existing /chosen node to be available to insert the
  14. * command line and merge other ATAGS info.
  15. */
  16. chosen {};
  17. aliases {
  18. ethernet0 = &fec;
  19. can0 = &can1;
  20. can1 = &can2;
  21. gpio0 = &gpio1;
  22. gpio1 = &gpio2;
  23. gpio2 = &gpio3;
  24. gpio3 = &gpio4;
  25. gpio4 = &gpio5;
  26. gpio5 = &gpio6;
  27. gpio6 = &gpio7;
  28. i2c0 = &i2c1;
  29. i2c1 = &i2c2;
  30. i2c2 = &i2c3;
  31. ipu0 = &ipu1;
  32. mmc0 = &usdhc1;
  33. mmc1 = &usdhc2;
  34. mmc2 = &usdhc3;
  35. mmc3 = &usdhc4;
  36. serial0 = &uart1;
  37. serial1 = &uart2;
  38. serial2 = &uart3;
  39. serial3 = &uart4;
  40. serial4 = &uart5;
  41. spi0 = &ecspi1;
  42. spi1 = &ecspi2;
  43. spi2 = &ecspi3;
  44. spi3 = &ecspi4;
  45. usb0 = &usbotg;
  46. usb1 = &usbh1;
  47. usb2 = &usbh2;
  48. usb3 = &usbh3;
  49. usbphy0 = &usbphy1;
  50. usbphy1 = &usbphy2;
  51. };
  52. clocks {
  53. ckil {
  54. compatible = "fixed-clock";
  55. #clock-cells = <0>;
  56. clock-frequency = <32768>;
  57. };
  58. ckih1 {
  59. compatible = "fixed-clock";
  60. #clock-cells = <0>;
  61. clock-frequency = <0>;
  62. };
  63. osc {
  64. compatible = "fixed-clock";
  65. #clock-cells = <0>;
  66. clock-frequency = <24000000>;
  67. };
  68. };
  69. ldb: ldb {
  70. #address-cells = <1>;
  71. #size-cells = <0>;
  72. compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
  73. gpr = <&gpr>;
  74. status = "disabled";
  75. lvds-channel@0 {
  76. #address-cells = <1>;
  77. #size-cells = <0>;
  78. reg = <0>;
  79. status = "disabled";
  80. port@0 {
  81. reg = <0>;
  82. lvds0_mux_0: endpoint {
  83. remote-endpoint = <&ipu1_di0_lvds0>;
  84. };
  85. };
  86. port@1 {
  87. reg = <1>;
  88. lvds0_mux_1: endpoint {
  89. remote-endpoint = <&ipu1_di1_lvds0>;
  90. };
  91. };
  92. };
  93. lvds-channel@1 {
  94. #address-cells = <1>;
  95. #size-cells = <0>;
  96. reg = <1>;
  97. status = "disabled";
  98. port@0 {
  99. reg = <0>;
  100. lvds1_mux_0: endpoint {
  101. remote-endpoint = <&ipu1_di0_lvds1>;
  102. };
  103. };
  104. port@1 {
  105. reg = <1>;
  106. lvds1_mux_1: endpoint {
  107. remote-endpoint = <&ipu1_di1_lvds1>;
  108. };
  109. };
  110. };
  111. };
  112. pmu: pmu {
  113. compatible = "arm,cortex-a9-pmu";
  114. interrupt-parent = <&gpc>;
  115. interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
  116. };
  117. usbphynop1: usbphynop1 {
  118. compatible = "usb-nop-xceiv";
  119. #phy-cells = <0>;
  120. };
  121. usbphynop2: usbphynop2 {
  122. compatible = "usb-nop-xceiv";
  123. #phy-cells = <0>;
  124. };
  125. soc: soc {
  126. #address-cells = <1>;
  127. #size-cells = <1>;
  128. compatible = "simple-bus";
  129. interrupt-parent = <&gpc>;
  130. ranges;
  131. dma_apbh: dma-apbh@110000 {
  132. compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
  133. reg = <0x00110000 0x2000>;
  134. interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
  135. <0 13 IRQ_TYPE_LEVEL_HIGH>,
  136. <0 13 IRQ_TYPE_LEVEL_HIGH>,
  137. <0 13 IRQ_TYPE_LEVEL_HIGH>;
  138. interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
  139. #dma-cells = <1>;
  140. dma-channels = <4>;
  141. clocks = <&clks IMX6QDL_CLK_APBH_DMA>;
  142. };
  143. gpmi: nand-controller@112000 {
  144. compatible = "fsl,imx6q-gpmi-nand";
  145. reg = <0x00112000 0x2000>, <0x00114000 0x2000>;
  146. reg-names = "gpmi-nand", "bch";
  147. interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
  148. interrupt-names = "bch";
  149. clocks = <&clks IMX6QDL_CLK_GPMI_IO>,
  150. <&clks IMX6QDL_CLK_GPMI_APB>,
  151. <&clks IMX6QDL_CLK_GPMI_BCH>,
  152. <&clks IMX6QDL_CLK_GPMI_BCH_APB>,
  153. <&clks IMX6QDL_CLK_PER1_BCH>;
  154. clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
  155. "gpmi_bch_apb", "per1_bch";
  156. dmas = <&dma_apbh 0>;
  157. dma-names = "rx-tx";
  158. status = "disabled";
  159. };
  160. hdmi: hdmi@120000 {
  161. reg = <0x00120000 0x9000>;
  162. interrupts = <0 115 0x04>;
  163. gpr = <&gpr>;
  164. clocks = <&clks IMX6QDL_CLK_HDMI_IAHB>,
  165. <&clks IMX6QDL_CLK_HDMI_ISFR>;
  166. clock-names = "iahb", "isfr";
  167. status = "disabled";
  168. ports {
  169. #address-cells = <1>;
  170. #size-cells = <0>;
  171. port@0 {
  172. reg = <0>;
  173. hdmi_mux_0: endpoint {
  174. remote-endpoint = <&ipu1_di0_hdmi>;
  175. };
  176. };
  177. port@1 {
  178. reg = <1>;
  179. hdmi_mux_1: endpoint {
  180. remote-endpoint = <&ipu1_di1_hdmi>;
  181. };
  182. };
  183. };
  184. };
  185. gpu_3d: gpu@130000 {
  186. compatible = "vivante,gc";
  187. reg = <0x00130000 0x4000>;
  188. interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>;
  189. clocks = <&clks IMX6QDL_CLK_GPU3D_AXI>,
  190. <&clks IMX6QDL_CLK_GPU3D_CORE>,
  191. <&clks IMX6QDL_CLK_GPU3D_SHADER>;
  192. clock-names = "bus", "core", "shader";
  193. power-domains = <&pd_pu>;
  194. #cooling-cells = <2>;
  195. };
  196. gpu_2d: gpu@134000 {
  197. compatible = "vivante,gc";
  198. reg = <0x00134000 0x4000>;
  199. interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
  200. clocks = <&clks IMX6QDL_CLK_GPU2D_AXI>,
  201. <&clks IMX6QDL_CLK_GPU2D_CORE>;
  202. clock-names = "bus", "core";
  203. power-domains = <&pd_pu>;
  204. #cooling-cells = <2>;
  205. };
  206. timer@a00600 {
  207. compatible = "arm,cortex-a9-twd-timer";
  208. reg = <0x00a00600 0x20>;
  209. interrupts = <1 13 0xf01>;
  210. interrupt-parent = <&intc>;
  211. clocks = <&clks IMX6QDL_CLK_TWD>;
  212. };
  213. intc: interrupt-controller@a01000 {
  214. compatible = "arm,cortex-a9-gic";
  215. #interrupt-cells = <3>;
  216. interrupt-controller;
  217. reg = <0x00a01000 0x1000>,
  218. <0x00a00100 0x100>;
  219. interrupt-parent = <&intc>;
  220. };
  221. L2: cache-controller@a02000 {
  222. compatible = "arm,pl310-cache";
  223. reg = <0x00a02000 0x1000>;
  224. interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
  225. cache-unified;
  226. cache-level = <2>;
  227. arm,tag-latency = <4 2 3>;
  228. arm,data-latency = <4 2 3>;
  229. arm,shared-override;
  230. };
  231. pcie: pcie@1ffc000 {
  232. compatible = "fsl,imx6q-pcie";
  233. reg = <0x01ffc000 0x04000>,
  234. <0x01f00000 0x80000>;
  235. reg-names = "dbi", "config";
  236. #address-cells = <3>;
  237. #size-cells = <2>;
  238. device_type = "pci";
  239. bus-range = <0x00 0xff>;
  240. ranges = <0x81000000 0 0 0x01f80000 0 0x00010000>, /* downstream I/O */
  241. <0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
  242. num-lanes = <1>;
  243. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  244. interrupt-names = "msi";
  245. #interrupt-cells = <1>;
  246. interrupt-map-mask = <0 0 0 0x7>;
  247. interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  248. <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
  249. <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  250. <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  251. clocks = <&clks IMX6QDL_CLK_PCIE_AXI>,
  252. <&clks IMX6QDL_CLK_LVDS1_GATE>,
  253. <&clks IMX6QDL_CLK_PCIE_REF_125M>;
  254. clock-names = "pcie", "pcie_bus", "pcie_phy";
  255. status = "disabled";
  256. };
  257. aips1: bus@2000000 { /* AIPS1 */
  258. compatible = "fsl,aips-bus", "simple-bus";
  259. #address-cells = <1>;
  260. #size-cells = <1>;
  261. reg = <0x02000000 0x100000>;
  262. ranges;
  263. spba-bus@2000000 {
  264. compatible = "fsl,spba-bus", "simple-bus";
  265. #address-cells = <1>;
  266. #size-cells = <1>;
  267. reg = <0x02000000 0x40000>;
  268. ranges;
  269. spdif: spdif@2004000 {
  270. compatible = "fsl,imx35-spdif";
  271. reg = <0x02004000 0x4000>;
  272. interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
  273. dmas = <&sdma 14 18 0>,
  274. <&sdma 15 18 0>;
  275. dma-names = "rx", "tx";
  276. clocks = <&clks IMX6QDL_CLK_SPDIF_GCLK>, <&clks IMX6QDL_CLK_OSC>,
  277. <&clks IMX6QDL_CLK_SPDIF>, <&clks IMX6QDL_CLK_ASRC>,
  278. <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_ESAI_EXTAL>,
  279. <&clks IMX6QDL_CLK_IPG>, <&clks IMX6QDL_CLK_DUMMY>,
  280. <&clks IMX6QDL_CLK_DUMMY>, <&clks IMX6QDL_CLK_SPBA>;
  281. clock-names = "core", "rxtx0",
  282. "rxtx1", "rxtx2",
  283. "rxtx3", "rxtx4",
  284. "rxtx5", "rxtx6",
  285. "rxtx7", "spba";
  286. status = "disabled";
  287. };
  288. ecspi1: spi@2008000 {
  289. #address-cells = <1>;
  290. #size-cells = <0>;
  291. compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
  292. reg = <0x02008000 0x4000>;
  293. interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
  294. clocks = <&clks IMX6QDL_CLK_ECSPI1>,
  295. <&clks IMX6QDL_CLK_ECSPI1>;
  296. clock-names = "ipg", "per";
  297. dmas = <&sdma 3 7 1>, <&sdma 4 7 2>;
  298. dma-names = "rx", "tx";
  299. status = "disabled";
  300. };
  301. ecspi2: spi@200c000 {
  302. #address-cells = <1>;
  303. #size-cells = <0>;
  304. compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
  305. reg = <0x0200c000 0x4000>;
  306. interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
  307. clocks = <&clks IMX6QDL_CLK_ECSPI2>,
  308. <&clks IMX6QDL_CLK_ECSPI2>;
  309. clock-names = "ipg", "per";
  310. dmas = <&sdma 5 7 1>, <&sdma 6 7 2>;
  311. dma-names = "rx", "tx";
  312. status = "disabled";
  313. };
  314. ecspi3: spi@2010000 {
  315. #address-cells = <1>;
  316. #size-cells = <0>;
  317. compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
  318. reg = <0x02010000 0x4000>;
  319. interrupts = <0 33 IRQ_TYPE_LEVEL_HIGH>;
  320. clocks = <&clks IMX6QDL_CLK_ECSPI3>,
  321. <&clks IMX6QDL_CLK_ECSPI3>;
  322. clock-names = "ipg", "per";
  323. dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
  324. dma-names = "rx", "tx";
  325. status = "disabled";
  326. };
  327. ecspi4: spi@2014000 {
  328. #address-cells = <1>;
  329. #size-cells = <0>;
  330. compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
  331. reg = <0x02014000 0x4000>;
  332. interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
  333. clocks = <&clks IMX6QDL_CLK_ECSPI4>,
  334. <&clks IMX6QDL_CLK_ECSPI4>;
  335. clock-names = "ipg", "per";
  336. dmas = <&sdma 9 7 1>, <&sdma 10 7 2>;
  337. dma-names = "rx", "tx";
  338. status = "disabled";
  339. };
  340. uart1: serial@2020000 {
  341. compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
  342. reg = <0x02020000 0x4000>;
  343. interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
  344. clocks = <&clks IMX6QDL_CLK_UART_IPG>,
  345. <&clks IMX6QDL_CLK_UART_SERIAL>;
  346. clock-names = "ipg", "per";
  347. dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
  348. dma-names = "rx", "tx";
  349. status = "disabled";
  350. };
  351. esai: esai@2024000 {
  352. #sound-dai-cells = <0>;
  353. compatible = "fsl,imx35-esai";
  354. reg = <0x02024000 0x4000>;
  355. interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
  356. clocks = <&clks IMX6QDL_CLK_ESAI_IPG>,
  357. <&clks IMX6QDL_CLK_ESAI_MEM>,
  358. <&clks IMX6QDL_CLK_ESAI_EXTAL>,
  359. <&clks IMX6QDL_CLK_ESAI_IPG>,
  360. <&clks IMX6QDL_CLK_SPBA>;
  361. clock-names = "core", "mem", "extal", "fsys", "spba";
  362. dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
  363. dma-names = "rx", "tx";
  364. status = "disabled";
  365. };
  366. ssi1: ssi@2028000 {
  367. #sound-dai-cells = <0>;
  368. compatible = "fsl,imx6q-ssi",
  369. "fsl,imx51-ssi";
  370. reg = <0x02028000 0x4000>;
  371. interrupts = <0 46 IRQ_TYPE_LEVEL_HIGH>;
  372. clocks = <&clks IMX6QDL_CLK_SSI1_IPG>,
  373. <&clks IMX6QDL_CLK_SSI1>;
  374. clock-names = "ipg", "baud";
  375. dmas = <&sdma 37 1 0>,
  376. <&sdma 38 1 0>;
  377. dma-names = "rx", "tx";
  378. fsl,fifo-depth = <15>;
  379. status = "disabled";
  380. };
  381. ssi2: ssi@202c000 {
  382. #sound-dai-cells = <0>;
  383. compatible = "fsl,imx6q-ssi",
  384. "fsl,imx51-ssi";
  385. reg = <0x0202c000 0x4000>;
  386. interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
  387. clocks = <&clks IMX6QDL_CLK_SSI2_IPG>,
  388. <&clks IMX6QDL_CLK_SSI2>;
  389. clock-names = "ipg", "baud";
  390. dmas = <&sdma 41 1 0>,
  391. <&sdma 42 1 0>;
  392. dma-names = "rx", "tx";
  393. fsl,fifo-depth = <15>;
  394. status = "disabled";
  395. };
  396. ssi3: ssi@2030000 {
  397. #sound-dai-cells = <0>;
  398. compatible = "fsl,imx6q-ssi",
  399. "fsl,imx51-ssi";
  400. reg = <0x02030000 0x4000>;
  401. interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
  402. clocks = <&clks IMX6QDL_CLK_SSI3_IPG>,
  403. <&clks IMX6QDL_CLK_SSI3>;
  404. clock-names = "ipg", "baud";
  405. dmas = <&sdma 45 1 0>,
  406. <&sdma 46 1 0>;
  407. dma-names = "rx", "tx";
  408. fsl,fifo-depth = <15>;
  409. status = "disabled";
  410. };
  411. asrc: asrc@2034000 {
  412. compatible = "fsl,imx53-asrc";
  413. reg = <0x02034000 0x4000>;
  414. interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
  415. clocks = <&clks IMX6QDL_CLK_ASRC_IPG>,
  416. <&clks IMX6QDL_CLK_ASRC_MEM>, <&clks 0>,
  417. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  418. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  419. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  420. <&clks IMX6QDL_CLK_ASRC>, <&clks 0>, <&clks 0>,
  421. <&clks IMX6QDL_CLK_SPBA>;
  422. clock-names = "mem", "ipg", "asrck_0",
  423. "asrck_1", "asrck_2", "asrck_3", "asrck_4",
  424. "asrck_5", "asrck_6", "asrck_7", "asrck_8",
  425. "asrck_9", "asrck_a", "asrck_b", "asrck_c",
  426. "asrck_d", "asrck_e", "asrck_f", "spba";
  427. dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
  428. <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
  429. dma-names = "rxa", "rxb", "rxc",
  430. "txa", "txb", "txc";
  431. fsl,asrc-rate = <48000>;
  432. fsl,asrc-width = <16>;
  433. status = "okay";
  434. };
  435. spba-bus@203c000 {
  436. reg = <0x0203c000 0x4000>;
  437. };
  438. };
  439. vpu: vpu@2040000 {
  440. compatible = "cnm,coda960";
  441. reg = <0x02040000 0x3c000>;
  442. interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>,
  443. <0 3 IRQ_TYPE_LEVEL_HIGH>;
  444. interrupt-names = "bit", "jpeg";
  445. clocks = <&clks IMX6QDL_CLK_VPU_AXI>,
  446. <&clks IMX6QDL_CLK_MMDC_CH0_AXI>;
  447. clock-names = "per", "ahb";
  448. power-domains = <&pd_pu>;
  449. resets = <&src 1>;
  450. iram = <&ocram>;
  451. };
  452. aipstz@207c000 { /* AIPSTZ1 */
  453. reg = <0x0207c000 0x4000>;
  454. };
  455. pwm1: pwm@2080000 {
  456. #pwm-cells = <3>;
  457. compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
  458. reg = <0x02080000 0x4000>;
  459. interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
  460. clocks = <&clks IMX6QDL_CLK_IPG>,
  461. <&clks IMX6QDL_CLK_PWM1>;
  462. clock-names = "ipg", "per";
  463. status = "disabled";
  464. };
  465. pwm2: pwm@2084000 {
  466. #pwm-cells = <3>;
  467. compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
  468. reg = <0x02084000 0x4000>;
  469. interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
  470. clocks = <&clks IMX6QDL_CLK_IPG>,
  471. <&clks IMX6QDL_CLK_PWM2>;
  472. clock-names = "ipg", "per";
  473. status = "disabled";
  474. };
  475. pwm3: pwm@2088000 {
  476. #pwm-cells = <3>;
  477. compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
  478. reg = <0x02088000 0x4000>;
  479. interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
  480. clocks = <&clks IMX6QDL_CLK_IPG>,
  481. <&clks IMX6QDL_CLK_PWM3>;
  482. clock-names = "ipg", "per";
  483. status = "disabled";
  484. };
  485. pwm4: pwm@208c000 {
  486. #pwm-cells = <3>;
  487. compatible = "fsl,imx6q-pwm", "fsl,imx27-pwm";
  488. reg = <0x0208c000 0x4000>;
  489. interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
  490. clocks = <&clks IMX6QDL_CLK_IPG>,
  491. <&clks IMX6QDL_CLK_PWM4>;
  492. clock-names = "ipg", "per";
  493. status = "disabled";
  494. };
  495. can1: can@2090000 {
  496. compatible = "fsl,imx6q-flexcan";
  497. reg = <0x02090000 0x4000>;
  498. interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
  499. clocks = <&clks IMX6QDL_CLK_CAN1_IPG>,
  500. <&clks IMX6QDL_CLK_CAN1_SERIAL>;
  501. clock-names = "ipg", "per";
  502. fsl,stop-mode = <&gpr 0x34 28>;
  503. status = "disabled";
  504. };
  505. can2: can@2094000 {
  506. compatible = "fsl,imx6q-flexcan";
  507. reg = <0x02094000 0x4000>;
  508. interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
  509. clocks = <&clks IMX6QDL_CLK_CAN2_IPG>,
  510. <&clks IMX6QDL_CLK_CAN2_SERIAL>;
  511. clock-names = "ipg", "per";
  512. fsl,stop-mode = <&gpr 0x34 29>;
  513. status = "disabled";
  514. };
  515. gpt: timer@2098000 {
  516. compatible = "fsl,imx6q-gpt", "fsl,imx31-gpt";
  517. reg = <0x02098000 0x4000>;
  518. interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
  519. clocks = <&clks IMX6QDL_CLK_GPT_IPG>,
  520. <&clks IMX6QDL_CLK_GPT_IPG_PER>,
  521. <&clks IMX6QDL_CLK_GPT_3M>;
  522. clock-names = "ipg", "per", "osc_per";
  523. };
  524. gpio1: gpio@209c000 {
  525. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  526. reg = <0x0209c000 0x4000>;
  527. interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>,
  528. <0 67 IRQ_TYPE_LEVEL_HIGH>;
  529. gpio-controller;
  530. #gpio-cells = <2>;
  531. interrupt-controller;
  532. #interrupt-cells = <2>;
  533. };
  534. gpio2: gpio@20a0000 {
  535. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  536. reg = <0x020a0000 0x4000>;
  537. interrupts = <0 68 IRQ_TYPE_LEVEL_HIGH>,
  538. <0 69 IRQ_TYPE_LEVEL_HIGH>;
  539. gpio-controller;
  540. #gpio-cells = <2>;
  541. interrupt-controller;
  542. #interrupt-cells = <2>;
  543. };
  544. gpio3: gpio@20a4000 {
  545. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  546. reg = <0x020a4000 0x4000>;
  547. interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>,
  548. <0 71 IRQ_TYPE_LEVEL_HIGH>;
  549. gpio-controller;
  550. #gpio-cells = <2>;
  551. interrupt-controller;
  552. #interrupt-cells = <2>;
  553. };
  554. gpio4: gpio@20a8000 {
  555. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  556. reg = <0x020a8000 0x4000>;
  557. interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>,
  558. <0 73 IRQ_TYPE_LEVEL_HIGH>;
  559. gpio-controller;
  560. #gpio-cells = <2>;
  561. interrupt-controller;
  562. #interrupt-cells = <2>;
  563. };
  564. gpio5: gpio@20ac000 {
  565. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  566. reg = <0x020ac000 0x4000>;
  567. interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>,
  568. <0 75 IRQ_TYPE_LEVEL_HIGH>;
  569. gpio-controller;
  570. #gpio-cells = <2>;
  571. interrupt-controller;
  572. #interrupt-cells = <2>;
  573. };
  574. gpio6: gpio@20b0000 {
  575. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  576. reg = <0x020b0000 0x4000>;
  577. interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>,
  578. <0 77 IRQ_TYPE_LEVEL_HIGH>;
  579. gpio-controller;
  580. #gpio-cells = <2>;
  581. interrupt-controller;
  582. #interrupt-cells = <2>;
  583. };
  584. gpio7: gpio@20b4000 {
  585. compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio";
  586. reg = <0x020b4000 0x4000>;
  587. interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>,
  588. <0 79 IRQ_TYPE_LEVEL_HIGH>;
  589. gpio-controller;
  590. #gpio-cells = <2>;
  591. interrupt-controller;
  592. #interrupt-cells = <2>;
  593. };
  594. kpp: keypad@20b8000 {
  595. compatible = "fsl,imx6q-kpp", "fsl,imx21-kpp";
  596. reg = <0x020b8000 0x4000>;
  597. interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
  598. clocks = <&clks IMX6QDL_CLK_IPG>;
  599. status = "disabled";
  600. };
  601. wdog1: watchdog@20bc000 {
  602. compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
  603. reg = <0x020bc000 0x4000>;
  604. interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
  605. clocks = <&clks IMX6QDL_CLK_IPG>;
  606. };
  607. wdog2: watchdog@20c0000 {
  608. compatible = "fsl,imx6q-wdt", "fsl,imx21-wdt";
  609. reg = <0x020c0000 0x4000>;
  610. interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
  611. clocks = <&clks IMX6QDL_CLK_IPG>;
  612. status = "disabled";
  613. };
  614. clks: clock-controller@20c4000 {
  615. compatible = "fsl,imx6q-ccm";
  616. reg = <0x020c4000 0x4000>;
  617. interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>,
  618. <0 88 IRQ_TYPE_LEVEL_HIGH>;
  619. #clock-cells = <1>;
  620. };
  621. anatop: anatop@20c8000 {
  622. compatible = "fsl,imx6q-anatop", "syscon", "simple-mfd";
  623. reg = <0x020c8000 0x1000>;
  624. interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>,
  625. <0 54 IRQ_TYPE_LEVEL_HIGH>,
  626. <0 127 IRQ_TYPE_LEVEL_HIGH>;
  627. reg_vdd1p1: regulator-1p1 {
  628. compatible = "fsl,anatop-regulator";
  629. regulator-name = "vdd1p1";
  630. regulator-min-microvolt = <1000000>;
  631. regulator-max-microvolt = <1200000>;
  632. regulator-always-on;
  633. anatop-reg-offset = <0x110>;
  634. anatop-vol-bit-shift = <8>;
  635. anatop-vol-bit-width = <5>;
  636. anatop-min-bit-val = <4>;
  637. anatop-min-voltage = <800000>;
  638. anatop-max-voltage = <1375000>;
  639. anatop-enable-bit = <0>;
  640. };
  641. reg_vdd3p0: regulator-3p0 {
  642. compatible = "fsl,anatop-regulator";
  643. regulator-name = "vdd3p0";
  644. regulator-min-microvolt = <2800000>;
  645. regulator-max-microvolt = <3150000>;
  646. regulator-always-on;
  647. anatop-reg-offset = <0x120>;
  648. anatop-vol-bit-shift = <8>;
  649. anatop-vol-bit-width = <5>;
  650. anatop-min-bit-val = <0>;
  651. anatop-min-voltage = <2625000>;
  652. anatop-max-voltage = <3400000>;
  653. anatop-enable-bit = <0>;
  654. };
  655. reg_vdd2p5: regulator-2p5 {
  656. compatible = "fsl,anatop-regulator";
  657. regulator-name = "vdd2p5";
  658. regulator-min-microvolt = <2250000>;
  659. regulator-max-microvolt = <2750000>;
  660. regulator-always-on;
  661. anatop-reg-offset = <0x130>;
  662. anatop-vol-bit-shift = <8>;
  663. anatop-vol-bit-width = <5>;
  664. anatop-min-bit-val = <0>;
  665. anatop-min-voltage = <2100000>;
  666. anatop-max-voltage = <2875000>;
  667. anatop-enable-bit = <0>;
  668. };
  669. reg_arm: regulator-vddcore {
  670. compatible = "fsl,anatop-regulator";
  671. regulator-name = "vddarm";
  672. regulator-min-microvolt = <725000>;
  673. regulator-max-microvolt = <1450000>;
  674. regulator-always-on;
  675. anatop-reg-offset = <0x140>;
  676. anatop-vol-bit-shift = <0>;
  677. anatop-vol-bit-width = <5>;
  678. anatop-delay-reg-offset = <0x170>;
  679. anatop-delay-bit-shift = <24>;
  680. anatop-delay-bit-width = <2>;
  681. anatop-min-bit-val = <1>;
  682. anatop-min-voltage = <725000>;
  683. anatop-max-voltage = <1450000>;
  684. };
  685. reg_pu: regulator-vddpu {
  686. compatible = "fsl,anatop-regulator";
  687. regulator-name = "vddpu";
  688. regulator-min-microvolt = <725000>;
  689. regulator-max-microvolt = <1450000>;
  690. regulator-enable-ramp-delay = <380>;
  691. anatop-reg-offset = <0x140>;
  692. anatop-vol-bit-shift = <9>;
  693. anatop-vol-bit-width = <5>;
  694. anatop-delay-reg-offset = <0x170>;
  695. anatop-delay-bit-shift = <26>;
  696. anatop-delay-bit-width = <2>;
  697. anatop-min-bit-val = <1>;
  698. anatop-min-voltage = <725000>;
  699. anatop-max-voltage = <1450000>;
  700. };
  701. reg_soc: regulator-vddsoc {
  702. compatible = "fsl,anatop-regulator";
  703. regulator-name = "vddsoc";
  704. regulator-min-microvolt = <725000>;
  705. regulator-max-microvolt = <1450000>;
  706. regulator-always-on;
  707. anatop-reg-offset = <0x140>;
  708. anatop-vol-bit-shift = <18>;
  709. anatop-vol-bit-width = <5>;
  710. anatop-delay-reg-offset = <0x170>;
  711. anatop-delay-bit-shift = <28>;
  712. anatop-delay-bit-width = <2>;
  713. anatop-min-bit-val = <1>;
  714. anatop-min-voltage = <725000>;
  715. anatop-max-voltage = <1450000>;
  716. };
  717. tempmon: tempmon {
  718. compatible = "fsl,imx6q-tempmon";
  719. interrupt-parent = <&gpc>;
  720. interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
  721. fsl,tempmon = <&anatop>;
  722. nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
  723. nvmem-cell-names = "calib", "temp_grade";
  724. clocks = <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
  725. #thermal-sensor-cells = <0>;
  726. };
  727. };
  728. usbphy1: usbphy@20c9000 {
  729. compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
  730. reg = <0x020c9000 0x1000>;
  731. interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
  732. clocks = <&clks IMX6QDL_CLK_USBPHY1>;
  733. fsl,anatop = <&anatop>;
  734. };
  735. usbphy2: usbphy@20ca000 {
  736. compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
  737. reg = <0x020ca000 0x1000>;
  738. interrupts = <0 45 IRQ_TYPE_LEVEL_HIGH>;
  739. clocks = <&clks IMX6QDL_CLK_USBPHY2>;
  740. fsl,anatop = <&anatop>;
  741. };
  742. snvs: snvs@20cc000 {
  743. compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
  744. reg = <0x020cc000 0x4000>;
  745. snvs_rtc: snvs-rtc-lp {
  746. compatible = "fsl,sec-v4.0-mon-rtc-lp";
  747. regmap = <&snvs>;
  748. offset = <0x34>;
  749. interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
  750. <0 20 IRQ_TYPE_LEVEL_HIGH>;
  751. };
  752. snvs_poweroff: snvs-poweroff {
  753. compatible = "syscon-poweroff";
  754. regmap = <&snvs>;
  755. offset = <0x38>;
  756. value = <0x60>;
  757. mask = <0x60>;
  758. status = "disabled";
  759. };
  760. snvs_pwrkey: snvs-powerkey {
  761. compatible = "fsl,sec-v4.0-pwrkey";
  762. regmap = <&snvs>;
  763. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  764. linux,keycode = <KEY_POWER>;
  765. wakeup-source;
  766. status = "disabled";
  767. };
  768. snvs_lpgpr: snvs-lpgpr {
  769. compatible = "fsl,imx6q-snvs-lpgpr";
  770. };
  771. };
  772. epit1: epit@20d0000 { /* EPIT1 */
  773. reg = <0x020d0000 0x4000>;
  774. interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
  775. };
  776. epit2: epit@20d4000 { /* EPIT2 */
  777. reg = <0x020d4000 0x4000>;
  778. interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
  779. };
  780. src: reset-controller@20d8000 {
  781. compatible = "fsl,imx6q-src", "fsl,imx51-src";
  782. reg = <0x020d8000 0x4000>;
  783. interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>,
  784. <0 96 IRQ_TYPE_LEVEL_HIGH>;
  785. #reset-cells = <1>;
  786. };
  787. gpc: gpc@20dc000 {
  788. compatible = "fsl,imx6q-gpc";
  789. reg = <0x020dc000 0x4000>;
  790. interrupt-controller;
  791. #interrupt-cells = <3>;
  792. interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
  793. interrupt-parent = <&intc>;
  794. clocks = <&clks IMX6QDL_CLK_IPG>;
  795. clock-names = "ipg";
  796. pgc {
  797. #address-cells = <1>;
  798. #size-cells = <0>;
  799. power-domain@0 {
  800. reg = <0>;
  801. #power-domain-cells = <0>;
  802. };
  803. pd_pu: power-domain@1 {
  804. reg = <1>;
  805. #power-domain-cells = <0>;
  806. power-supply = <&reg_pu>;
  807. clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
  808. <&clks IMX6QDL_CLK_GPU3D_SHADER>,
  809. <&clks IMX6QDL_CLK_GPU2D_CORE>,
  810. <&clks IMX6QDL_CLK_GPU2D_AXI>,
  811. <&clks IMX6QDL_CLK_OPENVG_AXI>,
  812. <&clks IMX6QDL_CLK_VPU_AXI>;
  813. };
  814. };
  815. };
  816. gpr: iomuxc-gpr@20e0000 {
  817. compatible = "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
  818. reg = <0x20e0000 0x38>;
  819. mux: mux-controller {
  820. compatible = "mmio-mux";
  821. #mux-control-cells = <1>;
  822. };
  823. };
  824. iomuxc: pinctrl@20e0000 {
  825. compatible = "fsl,imx6dl-iomuxc", "fsl,imx6q-iomuxc";
  826. reg = <0x20e0000 0x4000>;
  827. };
  828. dcic1: dcic@20e4000 {
  829. reg = <0x020e4000 0x4000>;
  830. interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
  831. };
  832. dcic2: dcic@20e8000 {
  833. reg = <0x020e8000 0x4000>;
  834. interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
  835. };
  836. sdma: dma-controller@20ec000 {
  837. compatible = "fsl,imx6q-sdma", "fsl,imx35-sdma";
  838. reg = <0x020ec000 0x4000>;
  839. interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>;
  840. clocks = <&clks IMX6QDL_CLK_IPG>,
  841. <&clks IMX6QDL_CLK_SDMA>;
  842. clock-names = "ipg", "ahb";
  843. #dma-cells = <3>;
  844. fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
  845. };
  846. };
  847. aips2: bus@2100000 { /* AIPS2 */
  848. compatible = "fsl,aips-bus", "simple-bus";
  849. #address-cells = <1>;
  850. #size-cells = <1>;
  851. reg = <0x02100000 0x100000>;
  852. ranges;
  853. crypto: crypto@2100000 {
  854. compatible = "fsl,sec-v4.0";
  855. #address-cells = <1>;
  856. #size-cells = <1>;
  857. reg = <0x2100000 0x10000>;
  858. ranges = <0 0x2100000 0x10000>;
  859. clocks = <&clks IMX6QDL_CLK_CAAM_MEM>,
  860. <&clks IMX6QDL_CLK_CAAM_ACLK>,
  861. <&clks IMX6QDL_CLK_CAAM_IPG>,
  862. <&clks IMX6QDL_CLK_EIM_SLOW>;
  863. clock-names = "mem", "aclk", "ipg", "emi_slow";
  864. sec_jr0: jr@1000 {
  865. compatible = "fsl,sec-v4.0-job-ring";
  866. reg = <0x1000 0x1000>;
  867. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  868. };
  869. sec_jr1: jr@2000 {
  870. compatible = "fsl,sec-v4.0-job-ring";
  871. reg = <0x2000 0x1000>;
  872. interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
  873. };
  874. };
  875. aipstz@217c000 { /* AIPSTZ2 */
  876. reg = <0x0217c000 0x4000>;
  877. };
  878. usbotg: usb@2184000 {
  879. compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
  880. reg = <0x02184000 0x200>;
  881. interrupts = <0 43 IRQ_TYPE_LEVEL_HIGH>;
  882. clocks = <&clks IMX6QDL_CLK_USBOH3>;
  883. fsl,usbphy = <&usbphy1>;
  884. fsl,usbmisc = <&usbmisc 0>;
  885. ahb-burst-config = <0x0>;
  886. tx-burst-size-dword = <0x10>;
  887. rx-burst-size-dword = <0x10>;
  888. status = "disabled";
  889. };
  890. usbh1: usb@2184200 {
  891. compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
  892. reg = <0x02184200 0x200>;
  893. interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
  894. clocks = <&clks IMX6QDL_CLK_USBOH3>;
  895. fsl,usbphy = <&usbphy2>;
  896. fsl,usbmisc = <&usbmisc 1>;
  897. dr_mode = "host";
  898. ahb-burst-config = <0x0>;
  899. tx-burst-size-dword = <0x10>;
  900. rx-burst-size-dword = <0x10>;
  901. status = "disabled";
  902. };
  903. usbh2: usb@2184400 {
  904. compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
  905. reg = <0x02184400 0x200>;
  906. interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
  907. clocks = <&clks IMX6QDL_CLK_USBOH3>;
  908. fsl,usbphy = <&usbphynop1>;
  909. phy_type = "hsic";
  910. fsl,usbmisc = <&usbmisc 2>;
  911. dr_mode = "host";
  912. ahb-burst-config = <0x0>;
  913. tx-burst-size-dword = <0x10>;
  914. rx-burst-size-dword = <0x10>;
  915. status = "disabled";
  916. };
  917. usbh3: usb@2184600 {
  918. compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
  919. reg = <0x02184600 0x200>;
  920. interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>;
  921. clocks = <&clks IMX6QDL_CLK_USBOH3>;
  922. fsl,usbphy = <&usbphynop2>;
  923. phy_type = "hsic";
  924. fsl,usbmisc = <&usbmisc 3>;
  925. dr_mode = "host";
  926. ahb-burst-config = <0x0>;
  927. tx-burst-size-dword = <0x10>;
  928. rx-burst-size-dword = <0x10>;
  929. status = "disabled";
  930. };
  931. usbmisc: usbmisc@2184800 {
  932. #index-cells = <1>;
  933. compatible = "fsl,imx6q-usbmisc";
  934. reg = <0x02184800 0x200>;
  935. clocks = <&clks IMX6QDL_CLK_USBOH3>;
  936. };
  937. fec: ethernet@2188000 {
  938. compatible = "fsl,imx6q-fec";
  939. reg = <0x02188000 0x4000>;
  940. interrupt-names = "int0", "pps";
  941. interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>,
  942. <0 119 IRQ_TYPE_LEVEL_HIGH>;
  943. clocks = <&clks IMX6QDL_CLK_ENET>,
  944. <&clks IMX6QDL_CLK_ENET>,
  945. <&clks IMX6QDL_CLK_ENET_REF>,
  946. <&clks IMX6QDL_CLK_ENET_REF>;
  947. clock-names = "ipg", "ahb", "ptp", "enet_out";
  948. fsl,stop-mode = <&gpr 0x34 27>;
  949. status = "disabled";
  950. };
  951. mlb@218c000 {
  952. reg = <0x0218c000 0x4000>;
  953. interrupts = <0 53 IRQ_TYPE_LEVEL_HIGH>,
  954. <0 117 IRQ_TYPE_LEVEL_HIGH>,
  955. <0 126 IRQ_TYPE_LEVEL_HIGH>;
  956. };
  957. usdhc1: mmc@2190000 {
  958. compatible = "fsl,imx6q-usdhc";
  959. reg = <0x02190000 0x4000>;
  960. interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
  961. clocks = <&clks IMX6QDL_CLK_USDHC1>,
  962. <&clks IMX6QDL_CLK_USDHC1>,
  963. <&clks IMX6QDL_CLK_USDHC1>;
  964. clock-names = "ipg", "ahb", "per";
  965. bus-width = <4>;
  966. status = "disabled";
  967. };
  968. usdhc2: mmc@2194000 {
  969. compatible = "fsl,imx6q-usdhc";
  970. reg = <0x02194000 0x4000>;
  971. interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
  972. clocks = <&clks IMX6QDL_CLK_USDHC2>,
  973. <&clks IMX6QDL_CLK_USDHC2>,
  974. <&clks IMX6QDL_CLK_USDHC2>;
  975. clock-names = "ipg", "ahb", "per";
  976. bus-width = <4>;
  977. status = "disabled";
  978. };
  979. usdhc3: mmc@2198000 {
  980. compatible = "fsl,imx6q-usdhc";
  981. reg = <0x02198000 0x4000>;
  982. interrupts = <0 24 IRQ_TYPE_LEVEL_HIGH>;
  983. clocks = <&clks IMX6QDL_CLK_USDHC3>,
  984. <&clks IMX6QDL_CLK_USDHC3>,
  985. <&clks IMX6QDL_CLK_USDHC3>;
  986. clock-names = "ipg", "ahb", "per";
  987. bus-width = <4>;
  988. status = "disabled";
  989. };
  990. usdhc4: mmc@219c000 {
  991. compatible = "fsl,imx6q-usdhc";
  992. reg = <0x0219c000 0x4000>;
  993. interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
  994. clocks = <&clks IMX6QDL_CLK_USDHC4>,
  995. <&clks IMX6QDL_CLK_USDHC4>,
  996. <&clks IMX6QDL_CLK_USDHC4>;
  997. clock-names = "ipg", "ahb", "per";
  998. bus-width = <4>;
  999. status = "disabled";
  1000. };
  1001. i2c1: i2c@21a0000 {
  1002. #address-cells = <1>;
  1003. #size-cells = <0>;
  1004. compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
  1005. reg = <0x021a0000 0x4000>;
  1006. interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
  1007. clocks = <&clks IMX6QDL_CLK_I2C1>;
  1008. status = "disabled";
  1009. };
  1010. i2c2: i2c@21a4000 {
  1011. #address-cells = <1>;
  1012. #size-cells = <0>;
  1013. compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
  1014. reg = <0x021a4000 0x4000>;
  1015. interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
  1016. clocks = <&clks IMX6QDL_CLK_I2C2>;
  1017. status = "disabled";
  1018. };
  1019. i2c3: i2c@21a8000 {
  1020. #address-cells = <1>;
  1021. #size-cells = <0>;
  1022. compatible = "fsl,imx6q-i2c", "fsl,imx21-i2c";
  1023. reg = <0x021a8000 0x4000>;
  1024. interrupts = <0 38 IRQ_TYPE_LEVEL_HIGH>;
  1025. clocks = <&clks IMX6QDL_CLK_I2C3>;
  1026. status = "disabled";
  1027. };
  1028. romcp@21ac000 {
  1029. reg = <0x021ac000 0x4000>;
  1030. };
  1031. mmdc0: memory-controller@21b0000 { /* MMDC0 */
  1032. compatible = "fsl,imx6q-mmdc";
  1033. reg = <0x021b0000 0x4000>;
  1034. clocks = <&clks IMX6QDL_CLK_MMDC_P0_IPG>;
  1035. };
  1036. mmdc1: memory-controller@21b4000 { /* MMDC1 */
  1037. compatible = "fsl,imx6q-mmdc";
  1038. reg = <0x021b4000 0x4000>;
  1039. status = "disabled";
  1040. };
  1041. weim: weim@21b8000 {
  1042. #address-cells = <2>;
  1043. #size-cells = <1>;
  1044. compatible = "fsl,imx6q-weim";
  1045. reg = <0x021b8000 0x4000>;
  1046. interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
  1047. clocks = <&clks IMX6QDL_CLK_EIM_SLOW>;
  1048. fsl,weim-cs-gpr = <&gpr>;
  1049. status = "disabled";
  1050. };
  1051. ocotp: efuse@21bc000 {
  1052. compatible = "fsl,imx6q-ocotp", "syscon";
  1053. reg = <0x021bc000 0x4000>;
  1054. clocks = <&clks IMX6QDL_CLK_IIM>;
  1055. #address-cells = <1>;
  1056. #size-cells = <1>;
  1057. cpu_speed_grade: speed-grade@10 {
  1058. reg = <0x10 4>;
  1059. };
  1060. tempmon_calib: calib@38 {
  1061. reg = <0x38 4>;
  1062. };
  1063. tempmon_temp_grade: temp-grade@20 {
  1064. reg = <0x20 4>;
  1065. };
  1066. };
  1067. tzasc@21d0000 { /* TZASC1 */
  1068. reg = <0x021d0000 0x4000>;
  1069. interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
  1070. };
  1071. tzasc@21d4000 { /* TZASC2 */
  1072. reg = <0x021d4000 0x4000>;
  1073. interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
  1074. };
  1075. audmux: audmux@21d8000 {
  1076. compatible = "fsl,imx6q-audmux", "fsl,imx31-audmux";
  1077. reg = <0x021d8000 0x4000>;
  1078. status = "disabled";
  1079. };
  1080. mipi_csi: mipi@21dc000 {
  1081. compatible = "fsl,imx6-mipi-csi2";
  1082. reg = <0x021dc000 0x4000>;
  1083. #address-cells = <1>;
  1084. #size-cells = <0>;
  1085. interrupts = <0 100 0x04>, <0 101 0x04>;
  1086. clocks = <&clks IMX6QDL_CLK_HSI_TX>,
  1087. <&clks IMX6QDL_CLK_VIDEO_27M>,
  1088. <&clks IMX6QDL_CLK_EIM_PODF>;
  1089. clock-names = "dphy", "ref", "pix";
  1090. status = "disabled";
  1091. };
  1092. mipi_dsi: mipi@21e0000 {
  1093. reg = <0x021e0000 0x4000>;
  1094. status = "disabled";
  1095. ports {
  1096. #address-cells = <1>;
  1097. #size-cells = <0>;
  1098. port@0 {
  1099. reg = <0>;
  1100. mipi_mux_0: endpoint {
  1101. remote-endpoint = <&ipu1_di0_mipi>;
  1102. };
  1103. };
  1104. port@1 {
  1105. reg = <1>;
  1106. mipi_mux_1: endpoint {
  1107. remote-endpoint = <&ipu1_di1_mipi>;
  1108. };
  1109. };
  1110. };
  1111. };
  1112. vdoa@21e4000 {
  1113. compatible = "fsl,imx6q-vdoa";
  1114. reg = <0x021e4000 0x4000>;
  1115. interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
  1116. clocks = <&clks IMX6QDL_CLK_VDOA>;
  1117. };
  1118. uart2: serial@21e8000 {
  1119. compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
  1120. reg = <0x021e8000 0x4000>;
  1121. interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>;
  1122. clocks = <&clks IMX6QDL_CLK_UART_IPG>,
  1123. <&clks IMX6QDL_CLK_UART_SERIAL>;
  1124. clock-names = "ipg", "per";
  1125. dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
  1126. dma-names = "rx", "tx";
  1127. status = "disabled";
  1128. };
  1129. uart3: serial@21ec000 {
  1130. compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
  1131. reg = <0x021ec000 0x4000>;
  1132. interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>;
  1133. clocks = <&clks IMX6QDL_CLK_UART_IPG>,
  1134. <&clks IMX6QDL_CLK_UART_SERIAL>;
  1135. clock-names = "ipg", "per";
  1136. dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
  1137. dma-names = "rx", "tx";
  1138. status = "disabled";
  1139. };
  1140. uart4: serial@21f0000 {
  1141. compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
  1142. reg = <0x021f0000 0x4000>;
  1143. interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>;
  1144. clocks = <&clks IMX6QDL_CLK_UART_IPG>,
  1145. <&clks IMX6QDL_CLK_UART_SERIAL>;
  1146. clock-names = "ipg", "per";
  1147. dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
  1148. dma-names = "rx", "tx";
  1149. status = "disabled";
  1150. };
  1151. uart5: serial@21f4000 {
  1152. compatible = "fsl,imx6q-uart", "fsl,imx21-uart";
  1153. reg = <0x021f4000 0x4000>;
  1154. interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>;
  1155. clocks = <&clks IMX6QDL_CLK_UART_IPG>,
  1156. <&clks IMX6QDL_CLK_UART_SERIAL>;
  1157. clock-names = "ipg", "per";
  1158. dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
  1159. dma-names = "rx", "tx";
  1160. status = "disabled";
  1161. };
  1162. };
  1163. ipu1: ipu@2400000 {
  1164. #address-cells = <1>;
  1165. #size-cells = <0>;
  1166. compatible = "fsl,imx6q-ipu";
  1167. reg = <0x02400000 0x400000>;
  1168. interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>,
  1169. <0 5 IRQ_TYPE_LEVEL_HIGH>;
  1170. clocks = <&clks IMX6QDL_CLK_IPU1>,
  1171. <&clks IMX6QDL_CLK_IPU1_DI0>,
  1172. <&clks IMX6QDL_CLK_IPU1_DI1>;
  1173. clock-names = "bus", "di0", "di1";
  1174. resets = <&src 2>;
  1175. ipu1_csi0: port@0 {
  1176. reg = <0>;
  1177. ipu1_csi0_from_ipu1_csi0_mux: endpoint {
  1178. remote-endpoint = <&ipu1_csi0_mux_to_ipu1_csi0>;
  1179. };
  1180. };
  1181. ipu1_csi1: port@1 {
  1182. reg = <1>;
  1183. };
  1184. ipu1_di0: port@2 {
  1185. #address-cells = <1>;
  1186. #size-cells = <0>;
  1187. reg = <2>;
  1188. ipu1_di0_disp0: endpoint@0 {
  1189. reg = <0>;
  1190. };
  1191. ipu1_di0_hdmi: endpoint@1 {
  1192. reg = <1>;
  1193. remote-endpoint = <&hdmi_mux_0>;
  1194. };
  1195. ipu1_di0_mipi: endpoint@2 {
  1196. reg = <2>;
  1197. remote-endpoint = <&mipi_mux_0>;
  1198. };
  1199. ipu1_di0_lvds0: endpoint@3 {
  1200. reg = <3>;
  1201. remote-endpoint = <&lvds0_mux_0>;
  1202. };
  1203. ipu1_di0_lvds1: endpoint@4 {
  1204. reg = <4>;
  1205. remote-endpoint = <&lvds1_mux_0>;
  1206. };
  1207. };
  1208. ipu1_di1: port@3 {
  1209. #address-cells = <1>;
  1210. #size-cells = <0>;
  1211. reg = <3>;
  1212. ipu1_di1_disp1: endpoint@0 {
  1213. reg = <0>;
  1214. };
  1215. ipu1_di1_hdmi: endpoint@1 {
  1216. reg = <1>;
  1217. remote-endpoint = <&hdmi_mux_1>;
  1218. };
  1219. ipu1_di1_mipi: endpoint@2 {
  1220. reg = <2>;
  1221. remote-endpoint = <&mipi_mux_1>;
  1222. };
  1223. ipu1_di1_lvds0: endpoint@3 {
  1224. reg = <3>;
  1225. remote-endpoint = <&lvds0_mux_1>;
  1226. };
  1227. ipu1_di1_lvds1: endpoint@4 {
  1228. reg = <4>;
  1229. remote-endpoint = <&lvds1_mux_1>;
  1230. };
  1231. };
  1232. };
  1233. };
  1234. };