imx6sx.dtsi 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438
  1. // SPDX-License-Identifier: GPL-2.0
  2. //
  3. // Copyright 2014 Freescale Semiconductor, Inc.
  4. #include <dt-bindings/clock/imx6sx-clock.h>
  5. #include <dt-bindings/gpio/gpio.h>
  6. #include <dt-bindings/input/input.h>
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #include "imx6sx-pinfunc.h"
  9. / {
  10. #address-cells = <1>;
  11. #size-cells = <1>;
  12. /*
  13. * The decompressor and also some bootloaders rely on a
  14. * pre-existing /chosen node to be available to insert the
  15. * command line and merge other ATAGS info.
  16. */
  17. chosen {};
  18. aliases {
  19. can0 = &flexcan1;
  20. can1 = &flexcan2;
  21. ethernet0 = &fec1;
  22. ethernet1 = &fec2;
  23. gpio0 = &gpio1;
  24. gpio1 = &gpio2;
  25. gpio2 = &gpio3;
  26. gpio3 = &gpio4;
  27. gpio4 = &gpio5;
  28. gpio5 = &gpio6;
  29. gpio6 = &gpio7;
  30. i2c0 = &i2c1;
  31. i2c1 = &i2c2;
  32. i2c2 = &i2c3;
  33. i2c3 = &i2c4;
  34. mmc0 = &usdhc1;
  35. mmc1 = &usdhc2;
  36. mmc2 = &usdhc3;
  37. mmc3 = &usdhc4;
  38. serial0 = &uart1;
  39. serial1 = &uart2;
  40. serial2 = &uart3;
  41. serial3 = &uart4;
  42. serial4 = &uart5;
  43. serial5 = &uart6;
  44. spi0 = &ecspi1;
  45. spi1 = &ecspi2;
  46. spi2 = &ecspi3;
  47. spi3 = &ecspi4;
  48. spi4 = &ecspi5;
  49. usb0 = &usbotg1;
  50. usb1 = &usbotg2;
  51. usb2 = &usbh;
  52. usbphy0 = &usbphy1;
  53. usbphy1 = &usbphy2;
  54. };
  55. cpus {
  56. #address-cells = <1>;
  57. #size-cells = <0>;
  58. cpu0: cpu@0 {
  59. compatible = "arm,cortex-a9";
  60. device_type = "cpu";
  61. reg = <0>;
  62. next-level-cache = <&L2>;
  63. operating-points = <
  64. /* kHz uV */
  65. 996000 1250000
  66. 792000 1175000
  67. 396000 1075000
  68. 198000 975000
  69. >;
  70. fsl,soc-operating-points = <
  71. /* ARM kHz SOC uV */
  72. 996000 1175000
  73. 792000 1175000
  74. 396000 1175000
  75. 198000 1175000
  76. >;
  77. clock-latency = <61036>; /* two CLK32 periods */
  78. #cooling-cells = <2>;
  79. clocks = <&clks IMX6SX_CLK_ARM>,
  80. <&clks IMX6SX_CLK_PLL2_PFD2>,
  81. <&clks IMX6SX_CLK_STEP>,
  82. <&clks IMX6SX_CLK_PLL1_SW>,
  83. <&clks IMX6SX_CLK_PLL1_SYS>;
  84. clock-names = "arm", "pll2_pfd2_396m", "step",
  85. "pll1_sw", "pll1_sys";
  86. arm-supply = <&reg_arm>;
  87. soc-supply = <&reg_soc>;
  88. nvmem-cells = <&cpu_speed_grade>;
  89. nvmem-cell-names = "speed_grade";
  90. };
  91. };
  92. ckil: clock-ckil {
  93. compatible = "fixed-clock";
  94. #clock-cells = <0>;
  95. clock-frequency = <32768>;
  96. clock-output-names = "ckil";
  97. };
  98. osc: clock-osc {
  99. compatible = "fixed-clock";
  100. #clock-cells = <0>;
  101. clock-frequency = <24000000>;
  102. clock-output-names = "osc";
  103. };
  104. ipp_di0: clock-ipp-di0 {
  105. compatible = "fixed-clock";
  106. #clock-cells = <0>;
  107. clock-frequency = <0>;
  108. clock-output-names = "ipp_di0";
  109. };
  110. ipp_di1: clock-ipp-di1 {
  111. compatible = "fixed-clock";
  112. #clock-cells = <0>;
  113. clock-frequency = <0>;
  114. clock-output-names = "ipp_di1";
  115. };
  116. anaclk1: clock-anaclk1 {
  117. compatible = "fixed-clock";
  118. #clock-cells = <0>;
  119. clock-frequency = <0>;
  120. clock-output-names = "anaclk1";
  121. };
  122. anaclk2: clock-anaclk2 {
  123. compatible = "fixed-clock";
  124. #clock-cells = <0>;
  125. clock-frequency = <0>;
  126. clock-output-names = "anaclk2";
  127. };
  128. mqs: mqs {
  129. compatible = "fsl,imx6sx-mqs";
  130. gpr = <&gpr>;
  131. status = "disabled";
  132. };
  133. pmu {
  134. compatible = "arm,cortex-a9-pmu";
  135. interrupt-parent = <&gpc>;
  136. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  137. };
  138. usbphynop1: usbphynop1 {
  139. compatible = "usb-nop-xceiv";
  140. #phy-cells = <0>;
  141. };
  142. soc: soc {
  143. #address-cells = <1>;
  144. #size-cells = <1>;
  145. compatible = "simple-bus";
  146. interrupt-parent = <&gpc>;
  147. ranges;
  148. ocram_s: sram@8f8000 {
  149. compatible = "mmio-sram";
  150. reg = <0x008f8000 0x4000>;
  151. ranges = <0 0x008f8000 0x4000>;
  152. #address-cells = <1>;
  153. #size-cells = <1>;
  154. clocks = <&clks IMX6SX_CLK_OCRAM_S>;
  155. };
  156. ocram: sram@900000 {
  157. compatible = "mmio-sram";
  158. reg = <0x00900000 0x20000>;
  159. ranges = <0 0x00900000 0x20000>;
  160. #address-cells = <1>;
  161. #size-cells = <1>;
  162. clocks = <&clks IMX6SX_CLK_OCRAM>;
  163. };
  164. intc: interrupt-controller@a01000 {
  165. compatible = "arm,cortex-a9-gic";
  166. #interrupt-cells = <3>;
  167. interrupt-controller;
  168. reg = <0x00a01000 0x1000>,
  169. <0x00a00100 0x100>;
  170. interrupt-parent = <&intc>;
  171. };
  172. L2: cache-controller@a02000 {
  173. compatible = "arm,pl310-cache";
  174. reg = <0x00a02000 0x1000>;
  175. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  176. cache-unified;
  177. cache-level = <2>;
  178. arm,tag-latency = <4 2 3>;
  179. arm,data-latency = <4 2 3>;
  180. };
  181. gpu: gpu@1800000 {
  182. compatible = "vivante,gc";
  183. reg = <0x01800000 0x4000>;
  184. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  185. clocks = <&clks IMX6SX_CLK_GPU>,
  186. <&clks IMX6SX_CLK_GPU>,
  187. <&clks IMX6SX_CLK_GPU>;
  188. clock-names = "bus", "core", "shader";
  189. power-domains = <&pd_pu>;
  190. };
  191. dma_apbh: dma-apbh@1804000 {
  192. compatible = "fsl,imx6sx-dma-apbh", "fsl,imx28-dma-apbh";
  193. reg = <0x01804000 0x2000>;
  194. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  195. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  196. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  197. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  198. interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
  199. #dma-cells = <1>;
  200. dma-channels = <4>;
  201. clocks = <&clks IMX6SX_CLK_APBH_DMA>;
  202. };
  203. gpmi: nand-controller@1806000{
  204. compatible = "fsl,imx6sx-gpmi-nand";
  205. #address-cells = <1>;
  206. #size-cells = <1>;
  207. reg = <0x01806000 0x2000>, <0x01808000 0x4000>;
  208. reg-names = "gpmi-nand", "bch";
  209. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  210. interrupt-names = "bch";
  211. clocks = <&clks IMX6SX_CLK_GPMI_IO>,
  212. <&clks IMX6SX_CLK_GPMI_APB>,
  213. <&clks IMX6SX_CLK_GPMI_BCH>,
  214. <&clks IMX6SX_CLK_GPMI_BCH_APB>,
  215. <&clks IMX6SX_CLK_PER1_BCH>;
  216. clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
  217. "gpmi_bch_apb", "per1_bch";
  218. dmas = <&dma_apbh 0>;
  219. dma-names = "rx-tx";
  220. status = "disabled";
  221. };
  222. aips1: bus@2000000 {
  223. compatible = "fsl,aips-bus", "simple-bus";
  224. #address-cells = <1>;
  225. #size-cells = <1>;
  226. reg = <0x02000000 0x100000>;
  227. ranges;
  228. spba-bus@2000000 {
  229. compatible = "fsl,spba-bus", "simple-bus";
  230. #address-cells = <1>;
  231. #size-cells = <1>;
  232. reg = <0x02000000 0x40000>;
  233. ranges;
  234. spdif: spdif@2004000 {
  235. compatible = "fsl,imx6sx-spdif", "fsl,imx35-spdif";
  236. reg = <0x02004000 0x4000>;
  237. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  238. dmas = <&sdma 14 18 0>,
  239. <&sdma 15 18 0>;
  240. dma-names = "rx", "tx";
  241. clocks = <&clks IMX6SX_CLK_SPDIF_GCLK>,
  242. <&clks IMX6SX_CLK_OSC>,
  243. <&clks IMX6SX_CLK_SPDIF>,
  244. <&clks 0>, <&clks 0>, <&clks 0>,
  245. <&clks IMX6SX_CLK_IPG>,
  246. <&clks 0>, <&clks 0>,
  247. <&clks IMX6SX_CLK_SPBA>;
  248. clock-names = "core", "rxtx0",
  249. "rxtx1", "rxtx2",
  250. "rxtx3", "rxtx4",
  251. "rxtx5", "rxtx6",
  252. "rxtx7", "spba";
  253. status = "disabled";
  254. };
  255. ecspi1: spi@2008000 {
  256. #address-cells = <1>;
  257. #size-cells = <0>;
  258. compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
  259. reg = <0x02008000 0x4000>;
  260. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  261. clocks = <&clks IMX6SX_CLK_ECSPI1>,
  262. <&clks IMX6SX_CLK_ECSPI1>;
  263. clock-names = "ipg", "per";
  264. status = "disabled";
  265. };
  266. ecspi2: spi@200c000 {
  267. #address-cells = <1>;
  268. #size-cells = <0>;
  269. compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
  270. reg = <0x0200c000 0x4000>;
  271. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  272. clocks = <&clks IMX6SX_CLK_ECSPI2>,
  273. <&clks IMX6SX_CLK_ECSPI2>;
  274. clock-names = "ipg", "per";
  275. status = "disabled";
  276. };
  277. ecspi3: spi@2010000 {
  278. #address-cells = <1>;
  279. #size-cells = <0>;
  280. compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
  281. reg = <0x02010000 0x4000>;
  282. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  283. clocks = <&clks IMX6SX_CLK_ECSPI3>,
  284. <&clks IMX6SX_CLK_ECSPI3>;
  285. clock-names = "ipg", "per";
  286. status = "disabled";
  287. };
  288. ecspi4: spi@2014000 {
  289. #address-cells = <1>;
  290. #size-cells = <0>;
  291. compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
  292. reg = <0x02014000 0x4000>;
  293. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  294. clocks = <&clks IMX6SX_CLK_ECSPI4>,
  295. <&clks IMX6SX_CLK_ECSPI4>;
  296. clock-names = "ipg", "per";
  297. status = "disabled";
  298. };
  299. uart1: serial@2020000 {
  300. compatible = "fsl,imx6sx-uart",
  301. "fsl,imx6q-uart", "fsl,imx21-uart";
  302. reg = <0x02020000 0x4000>;
  303. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  304. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  305. <&clks IMX6SX_CLK_UART_SERIAL>;
  306. clock-names = "ipg", "per";
  307. dmas = <&sdma 25 4 0>, <&sdma 26 4 0>;
  308. dma-names = "rx", "tx";
  309. status = "disabled";
  310. };
  311. esai: esai@2024000 {
  312. compatible = "fsl,imx6sx-esai", "fsl,imx35-esai";
  313. reg = <0x02024000 0x4000>;
  314. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  315. clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
  316. <&clks IMX6SX_CLK_ESAI_MEM>,
  317. <&clks IMX6SX_CLK_ESAI_EXTAL>,
  318. <&clks IMX6SX_CLK_ESAI_IPG>,
  319. <&clks IMX6SX_CLK_SPBA>;
  320. clock-names = "core", "mem", "extal",
  321. "fsys", "spba";
  322. dmas = <&sdma 23 21 0>,
  323. <&sdma 24 21 0>;
  324. dma-names = "rx", "tx";
  325. status = "disabled";
  326. };
  327. ssi1: ssi@2028000 {
  328. #sound-dai-cells = <0>;
  329. compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
  330. reg = <0x02028000 0x4000>;
  331. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  332. clocks = <&clks IMX6SX_CLK_SSI1_IPG>,
  333. <&clks IMX6SX_CLK_SSI1>;
  334. clock-names = "ipg", "baud";
  335. dmas = <&sdma 37 1 0>, <&sdma 38 1 0>;
  336. dma-names = "rx", "tx";
  337. fsl,fifo-depth = <15>;
  338. status = "disabled";
  339. };
  340. ssi2: ssi@202c000 {
  341. #sound-dai-cells = <0>;
  342. compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
  343. reg = <0x0202c000 0x4000>;
  344. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  345. clocks = <&clks IMX6SX_CLK_SSI2_IPG>,
  346. <&clks IMX6SX_CLK_SSI2>;
  347. clock-names = "ipg", "baud";
  348. dmas = <&sdma 41 1 0>, <&sdma 42 1 0>;
  349. dma-names = "rx", "tx";
  350. fsl,fifo-depth = <15>;
  351. status = "disabled";
  352. };
  353. ssi3: ssi@2030000 {
  354. #sound-dai-cells = <0>;
  355. compatible = "fsl,imx6sx-ssi", "fsl,imx51-ssi";
  356. reg = <0x02030000 0x4000>;
  357. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  358. clocks = <&clks IMX6SX_CLK_SSI3_IPG>,
  359. <&clks IMX6SX_CLK_SSI3>;
  360. clock-names = "ipg", "baud";
  361. dmas = <&sdma 45 1 0>, <&sdma 46 1 0>;
  362. dma-names = "rx", "tx";
  363. fsl,fifo-depth = <15>;
  364. status = "disabled";
  365. };
  366. asrc: asrc@2034000 {
  367. compatible = "fsl,imx6sx-asrc", "fsl,imx53-asrc";
  368. reg = <0x02034000 0x4000>;
  369. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  370. clocks = <&clks IMX6SX_CLK_ASRC_IPG>,
  371. <&clks IMX6SX_CLK_ASRC_MEM>, <&clks 0>,
  372. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  373. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  374. <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
  375. <&clks IMX6SX_CLK_SPDIF>, <&clks 0>, <&clks 0>,
  376. <&clks IMX6SX_CLK_SPBA>;
  377. clock-names = "mem", "ipg", "asrck_0",
  378. "asrck_1", "asrck_2", "asrck_3", "asrck_4",
  379. "asrck_5", "asrck_6", "asrck_7", "asrck_8",
  380. "asrck_9", "asrck_a", "asrck_b", "asrck_c",
  381. "asrck_d", "asrck_e", "asrck_f", "spba";
  382. dmas = <&sdma 17 23 1>, <&sdma 18 23 1>,
  383. <&sdma 19 23 1>, <&sdma 20 23 1>,
  384. <&sdma 21 23 1>, <&sdma 22 23 1>;
  385. dma-names = "rxa", "rxb", "rxc",
  386. "txa", "txb", "txc";
  387. fsl,asrc-rate = <48000>;
  388. fsl,asrc-width = <16>;
  389. status = "okay";
  390. };
  391. };
  392. pwm1: pwm@2080000 {
  393. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  394. reg = <0x02080000 0x4000>;
  395. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  396. clocks = <&clks IMX6SX_CLK_PWM1>,
  397. <&clks IMX6SX_CLK_PWM1>;
  398. clock-names = "ipg", "per";
  399. #pwm-cells = <3>;
  400. };
  401. pwm2: pwm@2084000 {
  402. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  403. reg = <0x02084000 0x4000>;
  404. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  405. clocks = <&clks IMX6SX_CLK_PWM2>,
  406. <&clks IMX6SX_CLK_PWM2>;
  407. clock-names = "ipg", "per";
  408. #pwm-cells = <3>;
  409. };
  410. pwm3: pwm@2088000 {
  411. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  412. reg = <0x02088000 0x4000>;
  413. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  414. clocks = <&clks IMX6SX_CLK_PWM3>,
  415. <&clks IMX6SX_CLK_PWM3>;
  416. clock-names = "ipg", "per";
  417. #pwm-cells = <3>;
  418. };
  419. pwm4: pwm@208c000 {
  420. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  421. reg = <0x0208c000 0x4000>;
  422. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  423. clocks = <&clks IMX6SX_CLK_PWM4>,
  424. <&clks IMX6SX_CLK_PWM4>;
  425. clock-names = "ipg", "per";
  426. #pwm-cells = <3>;
  427. };
  428. flexcan1: can@2090000 {
  429. compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
  430. reg = <0x02090000 0x4000>;
  431. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  432. clocks = <&clks IMX6SX_CLK_CAN1_IPG>,
  433. <&clks IMX6SX_CLK_CAN1_SERIAL>;
  434. clock-names = "ipg", "per";
  435. fsl,stop-mode = <&gpr 0x10 1>;
  436. status = "disabled";
  437. };
  438. flexcan2: can@2094000 {
  439. compatible = "fsl,imx6sx-flexcan", "fsl,imx6q-flexcan";
  440. reg = <0x02094000 0x4000>;
  441. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  442. clocks = <&clks IMX6SX_CLK_CAN2_IPG>,
  443. <&clks IMX6SX_CLK_CAN2_SERIAL>;
  444. clock-names = "ipg", "per";
  445. fsl,stop-mode = <&gpr 0x10 2>;
  446. status = "disabled";
  447. };
  448. gpt: timer@2098000 {
  449. compatible = "fsl,imx6sx-gpt", "fsl,imx6dl-gpt";
  450. reg = <0x02098000 0x4000>;
  451. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  452. clocks = <&clks IMX6SX_CLK_GPT_BUS>,
  453. <&clks IMX6SX_CLK_GPT_3M>;
  454. clock-names = "ipg", "per";
  455. };
  456. gpio1: gpio@209c000 {
  457. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  458. reg = <0x0209c000 0x4000>;
  459. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
  460. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  461. gpio-controller;
  462. #gpio-cells = <2>;
  463. interrupt-controller;
  464. #interrupt-cells = <2>;
  465. gpio-ranges = <&iomuxc 0 5 26>;
  466. };
  467. gpio2: gpio@20a0000 {
  468. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  469. reg = <0x020a0000 0x4000>;
  470. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
  471. <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  472. gpio-controller;
  473. #gpio-cells = <2>;
  474. interrupt-controller;
  475. #interrupt-cells = <2>;
  476. gpio-ranges = <&iomuxc 0 31 20>;
  477. };
  478. gpio3: gpio@20a4000 {
  479. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  480. reg = <0x020a4000 0x4000>;
  481. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
  482. <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  483. gpio-controller;
  484. #gpio-cells = <2>;
  485. interrupt-controller;
  486. #interrupt-cells = <2>;
  487. gpio-ranges = <&iomuxc 0 51 29>;
  488. };
  489. gpio4: gpio@20a8000 {
  490. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  491. reg = <0x020a8000 0x4000>;
  492. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  493. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  494. gpio-controller;
  495. #gpio-cells = <2>;
  496. interrupt-controller;
  497. #interrupt-cells = <2>;
  498. gpio-ranges = <&iomuxc 0 80 32>;
  499. };
  500. gpio5: gpio@20ac000 {
  501. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  502. reg = <0x020ac000 0x4000>;
  503. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
  504. <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  505. gpio-controller;
  506. #gpio-cells = <2>;
  507. interrupt-controller;
  508. #interrupt-cells = <2>;
  509. gpio-ranges = <&iomuxc 0 112 24>;
  510. };
  511. gpio6: gpio@20b0000 {
  512. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  513. reg = <0x020b0000 0x4000>;
  514. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
  515. <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  516. gpio-controller;
  517. #gpio-cells = <2>;
  518. interrupt-controller;
  519. #interrupt-cells = <2>;
  520. gpio-ranges = <&iomuxc 0 136 12>, <&iomuxc 12 158 11>;
  521. };
  522. gpio7: gpio@20b4000 {
  523. compatible = "fsl,imx6sx-gpio", "fsl,imx35-gpio";
  524. reg = <0x020b4000 0x4000>;
  525. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
  526. <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  527. gpio-controller;
  528. #gpio-cells = <2>;
  529. interrupt-controller;
  530. #interrupt-cells = <2>;
  531. gpio-ranges = <&iomuxc 0 148 10>, <&iomuxc 10 169 2>;
  532. };
  533. kpp: keypad@20b8000 {
  534. compatible = "fsl,imx6sx-kpp", "fsl,imx21-kpp";
  535. reg = <0x020b8000 0x4000>;
  536. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  537. clocks = <&clks IMX6SX_CLK_IPG>;
  538. status = "disabled";
  539. };
  540. wdog1: watchdog@20bc000 {
  541. compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
  542. reg = <0x020bc000 0x4000>;
  543. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  544. clocks = <&clks IMX6SX_CLK_IPG>;
  545. };
  546. wdog2: watchdog@20c0000 {
  547. compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
  548. reg = <0x020c0000 0x4000>;
  549. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  550. clocks = <&clks IMX6SX_CLK_IPG>;
  551. status = "disabled";
  552. };
  553. clks: clock-controller@20c4000 {
  554. compatible = "fsl,imx6sx-ccm";
  555. reg = <0x020c4000 0x4000>;
  556. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  557. <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  558. #clock-cells = <1>;
  559. clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>, <&anaclk1>, <&anaclk2>;
  560. clock-names = "ckil", "osc", "ipp_di0", "ipp_di1", "anaclk1", "anaclk2";
  561. };
  562. anatop: anatop@20c8000 {
  563. compatible = "fsl,imx6sx-anatop", "fsl,imx6q-anatop",
  564. "syscon", "simple-mfd";
  565. reg = <0x020c8000 0x1000>;
  566. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
  567. <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
  568. <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
  569. reg_vdd1p1: regulator-1p1 {
  570. compatible = "fsl,anatop-regulator";
  571. regulator-name = "vdd1p1";
  572. regulator-min-microvolt = <1000000>;
  573. regulator-max-microvolt = <1200000>;
  574. regulator-always-on;
  575. anatop-reg-offset = <0x110>;
  576. anatop-vol-bit-shift = <8>;
  577. anatop-vol-bit-width = <5>;
  578. anatop-min-bit-val = <4>;
  579. anatop-min-voltage = <800000>;
  580. anatop-max-voltage = <1375000>;
  581. anatop-enable-bit = <0>;
  582. };
  583. reg_vdd3p0: regulator-3p0 {
  584. compatible = "fsl,anatop-regulator";
  585. regulator-name = "vdd3p0";
  586. regulator-min-microvolt = <2800000>;
  587. regulator-max-microvolt = <3150000>;
  588. regulator-always-on;
  589. anatop-reg-offset = <0x120>;
  590. anatop-vol-bit-shift = <8>;
  591. anatop-vol-bit-width = <5>;
  592. anatop-min-bit-val = <0>;
  593. anatop-min-voltage = <2625000>;
  594. anatop-max-voltage = <3400000>;
  595. anatop-enable-bit = <0>;
  596. };
  597. reg_vdd2p5: regulator-2p5 {
  598. compatible = "fsl,anatop-regulator";
  599. regulator-name = "vdd2p5";
  600. regulator-min-microvolt = <2250000>;
  601. regulator-max-microvolt = <2750000>;
  602. regulator-always-on;
  603. anatop-reg-offset = <0x130>;
  604. anatop-vol-bit-shift = <8>;
  605. anatop-vol-bit-width = <5>;
  606. anatop-min-bit-val = <0>;
  607. anatop-min-voltage = <2100000>;
  608. anatop-max-voltage = <2875000>;
  609. anatop-enable-bit = <0>;
  610. };
  611. reg_arm: regulator-vddcore {
  612. compatible = "fsl,anatop-regulator";
  613. regulator-name = "vddarm";
  614. regulator-min-microvolt = <725000>;
  615. regulator-max-microvolt = <1450000>;
  616. regulator-always-on;
  617. anatop-reg-offset = <0x140>;
  618. anatop-vol-bit-shift = <0>;
  619. anatop-vol-bit-width = <5>;
  620. anatop-delay-reg-offset = <0x170>;
  621. anatop-delay-bit-shift = <24>;
  622. anatop-delay-bit-width = <2>;
  623. anatop-min-bit-val = <1>;
  624. anatop-min-voltage = <725000>;
  625. anatop-max-voltage = <1450000>;
  626. };
  627. reg_pcie: regulator-vddpcie {
  628. compatible = "fsl,anatop-regulator";
  629. regulator-name = "vddpcie";
  630. regulator-min-microvolt = <725000>;
  631. regulator-max-microvolt = <1450000>;
  632. anatop-reg-offset = <0x140>;
  633. anatop-vol-bit-shift = <9>;
  634. anatop-vol-bit-width = <5>;
  635. anatop-delay-reg-offset = <0x170>;
  636. anatop-delay-bit-shift = <26>;
  637. anatop-delay-bit-width = <2>;
  638. anatop-min-bit-val = <1>;
  639. anatop-min-voltage = <725000>;
  640. anatop-max-voltage = <1450000>;
  641. };
  642. reg_soc: regulator-vddsoc {
  643. compatible = "fsl,anatop-regulator";
  644. regulator-name = "vddsoc";
  645. regulator-min-microvolt = <725000>;
  646. regulator-max-microvolt = <1450000>;
  647. regulator-always-on;
  648. anatop-reg-offset = <0x140>;
  649. anatop-vol-bit-shift = <18>;
  650. anatop-vol-bit-width = <5>;
  651. anatop-delay-reg-offset = <0x170>;
  652. anatop-delay-bit-shift = <28>;
  653. anatop-delay-bit-width = <2>;
  654. anatop-min-bit-val = <1>;
  655. anatop-min-voltage = <725000>;
  656. anatop-max-voltage = <1450000>;
  657. };
  658. tempmon: tempmon {
  659. compatible = "fsl,imx6sx-tempmon", "fsl,imx6q-tempmon";
  660. interrupt-parent = <&gpc>;
  661. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  662. fsl,tempmon = <&anatop>;
  663. nvmem-cells = <&tempmon_calib>, <&tempmon_temp_grade>;
  664. nvmem-cell-names = "calib", "temp_grade";
  665. clocks = <&clks IMX6SX_CLK_PLL3_USB_OTG>;
  666. };
  667. };
  668. usbphy1: usbphy@20c9000 {
  669. compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
  670. reg = <0x020c9000 0x1000>;
  671. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  672. clocks = <&clks IMX6SX_CLK_USBPHY1>;
  673. fsl,anatop = <&anatop>;
  674. };
  675. usbphy2: usbphy@20ca000 {
  676. compatible = "fsl,imx6sx-usbphy", "fsl,imx23-usbphy";
  677. reg = <0x020ca000 0x1000>;
  678. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  679. clocks = <&clks IMX6SX_CLK_USBPHY2>;
  680. fsl,anatop = <&anatop>;
  681. };
  682. snvs: snvs@20cc000 {
  683. compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
  684. reg = <0x020cc000 0x4000>;
  685. snvs_rtc: snvs-rtc-lp {
  686. compatible = "fsl,sec-v4.0-mon-rtc-lp";
  687. regmap = <&snvs>;
  688. offset = <0x34>;
  689. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  690. };
  691. snvs_poweroff: snvs-poweroff {
  692. compatible = "syscon-poweroff";
  693. regmap = <&snvs>;
  694. offset = <0x38>;
  695. value = <0x60>;
  696. mask = <0x60>;
  697. status = "disabled";
  698. };
  699. snvs_pwrkey: snvs-powerkey {
  700. compatible = "fsl,sec-v4.0-pwrkey";
  701. regmap = <&snvs>;
  702. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  703. linux,keycode = <KEY_POWER>;
  704. wakeup-source;
  705. status = "disabled";
  706. };
  707. };
  708. epit1: epit@20d0000 {
  709. reg = <0x020d0000 0x4000>;
  710. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  711. };
  712. epit2: epit@20d4000 {
  713. reg = <0x020d4000 0x4000>;
  714. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  715. };
  716. src: reset-controller@20d8000 {
  717. compatible = "fsl,imx6sx-src", "fsl,imx51-src";
  718. reg = <0x020d8000 0x4000>;
  719. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
  720. <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  721. #reset-cells = <1>;
  722. };
  723. gpc: gpc@20dc000 {
  724. compatible = "fsl,imx6sx-gpc", "fsl,imx6q-gpc";
  725. reg = <0x020dc000 0x4000>;
  726. interrupt-controller;
  727. #interrupt-cells = <3>;
  728. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  729. interrupt-parent = <&intc>;
  730. clocks = <&clks IMX6SX_CLK_IPG>;
  731. clock-names = "ipg";
  732. pgc {
  733. #address-cells = <1>;
  734. #size-cells = <0>;
  735. power-domain@0 {
  736. reg = <0>;
  737. #power-domain-cells = <0>;
  738. };
  739. pd_pu: power-domain@1 {
  740. reg = <1>;
  741. #power-domain-cells = <0>;
  742. power-supply = <&reg_soc>;
  743. clocks = <&clks IMX6SX_CLK_GPU>;
  744. };
  745. pd_disp: power-domain@2 {
  746. reg = <2>;
  747. #power-domain-cells = <0>;
  748. clocks = <&clks IMX6SX_CLK_PXP_AXI>,
  749. <&clks IMX6SX_CLK_DISPLAY_AXI>,
  750. <&clks IMX6SX_CLK_LCDIF1_PIX>,
  751. <&clks IMX6SX_CLK_LCDIF_APB>,
  752. <&clks IMX6SX_CLK_LCDIF2_PIX>,
  753. <&clks IMX6SX_CLK_CSI>,
  754. <&clks IMX6SX_CLK_VADC>;
  755. };
  756. pd_pci: power-domain@3 {
  757. reg = <3>;
  758. #power-domain-cells = <0>;
  759. power-supply = <&reg_pcie>;
  760. };
  761. };
  762. };
  763. iomuxc: pinctrl@20e0000 {
  764. compatible = "fsl,imx6sx-iomuxc";
  765. reg = <0x020e0000 0x4000>;
  766. };
  767. gpr: iomuxc-gpr@20e4000 {
  768. compatible = "fsl,imx6sx-iomuxc-gpr",
  769. "fsl,imx6q-iomuxc-gpr", "syscon";
  770. reg = <0x020e4000 0x4000>;
  771. };
  772. sdma: dma-controller@20ec000 {
  773. compatible = "fsl,imx6sx-sdma", "fsl,imx6q-sdma";
  774. reg = <0x020ec000 0x4000>;
  775. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  776. clocks = <&clks IMX6SX_CLK_IPG>,
  777. <&clks IMX6SX_CLK_SDMA>;
  778. clock-names = "ipg", "ahb";
  779. #dma-cells = <3>;
  780. /* imx6sx reuses imx6q sdma firmware */
  781. fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
  782. };
  783. };
  784. aips2: bus@2100000 {
  785. compatible = "fsl,aips-bus", "simple-bus";
  786. #address-cells = <1>;
  787. #size-cells = <1>;
  788. reg = <0x02100000 0x100000>;
  789. ranges;
  790. crypto: crypto@2100000 {
  791. compatible = "fsl,sec-v4.0";
  792. #address-cells = <1>;
  793. #size-cells = <1>;
  794. reg = <0x2100000 0x10000>;
  795. ranges = <0 0x2100000 0x10000>;
  796. interrupt-parent = <&intc>;
  797. clocks = <&clks IMX6SX_CLK_CAAM_MEM>,
  798. <&clks IMX6SX_CLK_CAAM_ACLK>,
  799. <&clks IMX6SX_CLK_CAAM_IPG>,
  800. <&clks IMX6SX_CLK_EIM_SLOW>;
  801. clock-names = "mem", "aclk", "ipg", "emi_slow";
  802. sec_jr0: jr@1000 {
  803. compatible = "fsl,sec-v4.0-job-ring";
  804. reg = <0x1000 0x1000>;
  805. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  806. };
  807. sec_jr1: jr@2000 {
  808. compatible = "fsl,sec-v4.0-job-ring";
  809. reg = <0x2000 0x1000>;
  810. interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
  811. };
  812. };
  813. usbotg1: usb@2184000 {
  814. compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
  815. reg = <0x02184000 0x200>;
  816. interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
  817. clocks = <&clks IMX6SX_CLK_USBOH3>;
  818. fsl,usbphy = <&usbphy1>;
  819. fsl,usbmisc = <&usbmisc 0>;
  820. fsl,anatop = <&anatop>;
  821. ahb-burst-config = <0x0>;
  822. tx-burst-size-dword = <0x10>;
  823. rx-burst-size-dword = <0x10>;
  824. status = "disabled";
  825. };
  826. usbotg2: usb@2184200 {
  827. compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
  828. reg = <0x02184200 0x200>;
  829. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  830. clocks = <&clks IMX6SX_CLK_USBOH3>;
  831. fsl,usbphy = <&usbphy2>;
  832. fsl,usbmisc = <&usbmisc 1>;
  833. ahb-burst-config = <0x0>;
  834. tx-burst-size-dword = <0x10>;
  835. rx-burst-size-dword = <0x10>;
  836. status = "disabled";
  837. };
  838. usbh: usb@2184400 {
  839. compatible = "fsl,imx6sx-usb", "fsl,imx27-usb";
  840. reg = <0x02184400 0x200>;
  841. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
  842. clocks = <&clks IMX6SX_CLK_USBOH3>;
  843. fsl,usbphy = <&usbphynop1>;
  844. fsl,usbmisc = <&usbmisc 2>;
  845. phy_type = "hsic";
  846. fsl,anatop = <&anatop>;
  847. dr_mode = "host";
  848. ahb-burst-config = <0x0>;
  849. tx-burst-size-dword = <0x10>;
  850. rx-burst-size-dword = <0x10>;
  851. status = "disabled";
  852. };
  853. usbmisc: usbmisc@2184800 {
  854. #index-cells = <1>;
  855. compatible = "fsl,imx6sx-usbmisc", "fsl,imx6q-usbmisc";
  856. reg = <0x02184800 0x200>;
  857. clocks = <&clks IMX6SX_CLK_USBOH3>;
  858. };
  859. fec1: ethernet@2188000 {
  860. compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
  861. reg = <0x02188000 0x4000>;
  862. interrupt-names = "int0", "pps";
  863. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  864. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  865. clocks = <&clks IMX6SX_CLK_ENET>,
  866. <&clks IMX6SX_CLK_ENET_AHB>,
  867. <&clks IMX6SX_CLK_ENET_PTP>,
  868. <&clks IMX6SX_CLK_ENET_REF>,
  869. <&clks IMX6SX_CLK_ENET_PTP>;
  870. clock-names = "ipg", "ahb", "ptp",
  871. "enet_clk_ref", "enet_out";
  872. fsl,num-tx-queues = <3>;
  873. fsl,num-rx-queues = <3>;
  874. fsl,stop-mode = <&gpr 0x10 3>;
  875. status = "disabled";
  876. };
  877. mlb: mlb@218c000 {
  878. reg = <0x0218c000 0x4000>;
  879. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  880. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  881. <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
  882. clocks = <&clks IMX6SX_CLK_MLB>;
  883. status = "disabled";
  884. };
  885. usdhc1: mmc@2190000 {
  886. compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
  887. reg = <0x02190000 0x4000>;
  888. interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  889. clocks = <&clks IMX6SX_CLK_USDHC1>,
  890. <&clks IMX6SX_CLK_USDHC1>,
  891. <&clks IMX6SX_CLK_USDHC1>;
  892. clock-names = "ipg", "ahb", "per";
  893. bus-width = <4>;
  894. fsl,tuning-start-tap = <20>;
  895. fsl,tuning-step= <2>;
  896. status = "disabled";
  897. };
  898. usdhc2: mmc@2194000 {
  899. compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
  900. reg = <0x02194000 0x4000>;
  901. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  902. clocks = <&clks IMX6SX_CLK_USDHC2>,
  903. <&clks IMX6SX_CLK_USDHC2>,
  904. <&clks IMX6SX_CLK_USDHC2>;
  905. clock-names = "ipg", "ahb", "per";
  906. bus-width = <4>;
  907. fsl,tuning-start-tap = <20>;
  908. fsl,tuning-step= <2>;
  909. status = "disabled";
  910. };
  911. usdhc3: mmc@2198000 {
  912. compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
  913. reg = <0x02198000 0x4000>;
  914. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  915. clocks = <&clks IMX6SX_CLK_USDHC3>,
  916. <&clks IMX6SX_CLK_USDHC3>,
  917. <&clks IMX6SX_CLK_USDHC3>;
  918. clock-names = "ipg", "ahb", "per";
  919. bus-width = <4>;
  920. fsl,tuning-start-tap = <20>;
  921. fsl,tuning-step= <2>;
  922. status = "disabled";
  923. };
  924. usdhc4: mmc@219c000 {
  925. compatible = "fsl,imx6sx-usdhc", "fsl,imx6sl-usdhc";
  926. reg = <0x0219c000 0x4000>;
  927. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  928. clocks = <&clks IMX6SX_CLK_USDHC4>,
  929. <&clks IMX6SX_CLK_USDHC4>,
  930. <&clks IMX6SX_CLK_USDHC4>;
  931. clock-names = "ipg", "ahb", "per";
  932. bus-width = <4>;
  933. status = "disabled";
  934. };
  935. i2c1: i2c@21a0000 {
  936. #address-cells = <1>;
  937. #size-cells = <0>;
  938. compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
  939. reg = <0x021a0000 0x4000>;
  940. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  941. clocks = <&clks IMX6SX_CLK_I2C1>;
  942. status = "disabled";
  943. };
  944. i2c2: i2c@21a4000 {
  945. #address-cells = <1>;
  946. #size-cells = <0>;
  947. compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
  948. reg = <0x021a4000 0x4000>;
  949. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  950. clocks = <&clks IMX6SX_CLK_I2C2>;
  951. status = "disabled";
  952. };
  953. i2c3: i2c@21a8000 {
  954. #address-cells = <1>;
  955. #size-cells = <0>;
  956. compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
  957. reg = <0x021a8000 0x4000>;
  958. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  959. clocks = <&clks IMX6SX_CLK_I2C3>;
  960. status = "disabled";
  961. };
  962. memory-controller@21b0000 {
  963. compatible = "fsl,imx6sx-mmdc", "fsl,imx6q-mmdc";
  964. reg = <0x021b0000 0x4000>;
  965. clocks = <&clks IMX6SX_CLK_MMDC_P0_IPG>;
  966. };
  967. fec2: ethernet@21b4000 {
  968. compatible = "fsl,imx6sx-fec", "fsl,imx6q-fec";
  969. reg = <0x021b4000 0x4000>;
  970. interrupt-names = "int0", "pps";
  971. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
  972. <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  973. clocks = <&clks IMX6SX_CLK_ENET>,
  974. <&clks IMX6SX_CLK_ENET_AHB>,
  975. <&clks IMX6SX_CLK_ENET_PTP>,
  976. <&clks IMX6SX_CLK_ENET2_REF_125M>,
  977. <&clks IMX6SX_CLK_ENET_PTP>;
  978. clock-names = "ipg", "ahb", "ptp",
  979. "enet_clk_ref", "enet_out";
  980. fsl,stop-mode = <&gpr 0x10 4>;
  981. status = "disabled";
  982. };
  983. weim: weim@21b8000 {
  984. #address-cells = <2>;
  985. #size-cells = <1>;
  986. compatible = "fsl,imx6sx-weim", "fsl,imx6q-weim";
  987. reg = <0x021b8000 0x4000>;
  988. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  989. clocks = <&clks IMX6SX_CLK_EIM_SLOW>;
  990. fsl,weim-cs-gpr = <&gpr>;
  991. status = "disabled";
  992. };
  993. ocotp: efuse@21bc000 {
  994. #address-cells = <1>;
  995. #size-cells = <1>;
  996. compatible = "fsl,imx6sx-ocotp", "syscon";
  997. reg = <0x021bc000 0x4000>;
  998. clocks = <&clks IMX6SX_CLK_OCOTP>;
  999. cpu_speed_grade: speed-grade@10 {
  1000. reg = <0x10 4>;
  1001. };
  1002. tempmon_calib: calib@38 {
  1003. reg = <0x38 4>;
  1004. };
  1005. tempmon_temp_grade: temp-grade@20 {
  1006. reg = <0x20 4>;
  1007. };
  1008. };
  1009. sai1: sai@21d4000 {
  1010. compatible = "fsl,imx6sx-sai";
  1011. reg = <0x021d4000 0x4000>;
  1012. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1013. clocks = <&clks IMX6SX_CLK_SAI1_IPG>,
  1014. <&clks IMX6SX_CLK_SAI1>,
  1015. <&clks 0>, <&clks 0>;
  1016. clock-names = "bus", "mclk1", "mclk2", "mclk3";
  1017. dma-names = "rx", "tx";
  1018. dmas = <&sdma 31 24 0>, <&sdma 32 24 0>;
  1019. status = "disabled";
  1020. };
  1021. audmux: audmux@21d8000 {
  1022. compatible = "fsl,imx6sx-audmux", "fsl,imx31-audmux";
  1023. reg = <0x021d8000 0x4000>;
  1024. status = "disabled";
  1025. };
  1026. sai2: sai@21dc000 {
  1027. compatible = "fsl,imx6sx-sai";
  1028. reg = <0x021dc000 0x4000>;
  1029. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  1030. clocks = <&clks IMX6SX_CLK_SAI2_IPG>,
  1031. <&clks IMX6SX_CLK_SAI2>,
  1032. <&clks 0>, <&clks 0>;
  1033. clock-names = "bus", "mclk1", "mclk2", "mclk3";
  1034. dma-names = "rx", "tx";
  1035. dmas = <&sdma 33 24 0>, <&sdma 34 24 0>;
  1036. status = "disabled";
  1037. };
  1038. qspi1: spi@21e0000 {
  1039. #address-cells = <1>;
  1040. #size-cells = <0>;
  1041. compatible = "fsl,imx6sx-qspi";
  1042. reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
  1043. reg-names = "QuadSPI", "QuadSPI-memory";
  1044. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  1045. clocks = <&clks IMX6SX_CLK_QSPI1>,
  1046. <&clks IMX6SX_CLK_QSPI1>;
  1047. clock-names = "qspi_en", "qspi";
  1048. status = "disabled";
  1049. };
  1050. qspi2: spi@21e4000 {
  1051. #address-cells = <1>;
  1052. #size-cells = <0>;
  1053. compatible = "fsl,imx6sx-qspi";
  1054. reg = <0x021e4000 0x4000>, <0x70000000 0x10000000>;
  1055. reg-names = "QuadSPI", "QuadSPI-memory";
  1056. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
  1057. clocks = <&clks IMX6SX_CLK_QSPI2>,
  1058. <&clks IMX6SX_CLK_QSPI2>;
  1059. clock-names = "qspi_en", "qspi";
  1060. status = "disabled";
  1061. };
  1062. uart2: serial@21e8000 {
  1063. compatible = "fsl,imx6sx-uart",
  1064. "fsl,imx6q-uart", "fsl,imx21-uart";
  1065. reg = <0x021e8000 0x4000>;
  1066. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  1067. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  1068. <&clks IMX6SX_CLK_UART_SERIAL>;
  1069. clock-names = "ipg", "per";
  1070. dmas = <&sdma 27 4 0>, <&sdma 28 4 0>;
  1071. dma-names = "rx", "tx";
  1072. status = "disabled";
  1073. };
  1074. uart3: serial@21ec000 {
  1075. compatible = "fsl,imx6sx-uart",
  1076. "fsl,imx6q-uart", "fsl,imx21-uart";
  1077. reg = <0x021ec000 0x4000>;
  1078. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  1079. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  1080. <&clks IMX6SX_CLK_UART_SERIAL>;
  1081. clock-names = "ipg", "per";
  1082. dmas = <&sdma 29 4 0>, <&sdma 30 4 0>;
  1083. dma-names = "rx", "tx";
  1084. status = "disabled";
  1085. };
  1086. uart4: serial@21f0000 {
  1087. compatible = "fsl,imx6sx-uart",
  1088. "fsl,imx6q-uart", "fsl,imx21-uart";
  1089. reg = <0x021f0000 0x4000>;
  1090. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  1091. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  1092. <&clks IMX6SX_CLK_UART_SERIAL>;
  1093. clock-names = "ipg", "per";
  1094. dmas = <&sdma 31 4 0>, <&sdma 32 4 0>;
  1095. dma-names = "rx", "tx";
  1096. status = "disabled";
  1097. };
  1098. uart5: serial@21f4000 {
  1099. compatible = "fsl,imx6sx-uart",
  1100. "fsl,imx6q-uart", "fsl,imx21-uart";
  1101. reg = <0x021f4000 0x4000>;
  1102. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  1103. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  1104. <&clks IMX6SX_CLK_UART_SERIAL>;
  1105. clock-names = "ipg", "per";
  1106. dmas = <&sdma 33 4 0>, <&sdma 34 4 0>;
  1107. dma-names = "rx", "tx";
  1108. status = "disabled";
  1109. };
  1110. i2c4: i2c@21f8000 {
  1111. #address-cells = <1>;
  1112. #size-cells = <0>;
  1113. compatible = "fsl,imx6sx-i2c", "fsl,imx21-i2c";
  1114. reg = <0x021f8000 0x4000>;
  1115. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  1116. clocks = <&clks IMX6SX_CLK_I2C4>;
  1117. status = "disabled";
  1118. };
  1119. };
  1120. aips3: bus@2200000 {
  1121. compatible = "fsl,aips-bus", "simple-bus";
  1122. #address-cells = <1>;
  1123. #size-cells = <1>;
  1124. reg = <0x02200000 0x100000>;
  1125. ranges;
  1126. spba-bus@2240000 {
  1127. compatible = "fsl,spba-bus", "simple-bus";
  1128. #address-cells = <1>;
  1129. #size-cells = <1>;
  1130. reg = <0x02240000 0x40000>;
  1131. ranges;
  1132. csi1: csi@2214000 {
  1133. reg = <0x02214000 0x4000>;
  1134. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  1135. clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
  1136. <&clks IMX6SX_CLK_CSI>,
  1137. <&clks IMX6SX_CLK_DCIC1>;
  1138. clock-names = "disp-axi", "csi_mclk", "dcic";
  1139. status = "disabled";
  1140. };
  1141. pxp: pxp@2218000 {
  1142. compatible = "fsl,imx6sx-pxp", "fsl,imx6ull-pxp";
  1143. reg = <0x02218000 0x4000>;
  1144. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  1145. clocks = <&clks IMX6SX_CLK_PXP_AXI>;
  1146. clock-names = "axi";
  1147. power-domains = <&pd_disp>;
  1148. status = "disabled";
  1149. };
  1150. csi2: csi@221c000 {
  1151. reg = <0x0221c000 0x4000>;
  1152. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  1153. clocks = <&clks IMX6SX_CLK_DISPLAY_AXI>,
  1154. <&clks IMX6SX_CLK_CSI>,
  1155. <&clks IMX6SX_CLK_DCIC2>;
  1156. clock-names = "disp-axi", "csi_mclk", "dcic";
  1157. status = "disabled";
  1158. };
  1159. lcdif1: lcdif@2220000 {
  1160. compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
  1161. reg = <0x02220000 0x4000>;
  1162. interrupts = <GIC_SPI 5 IRQ_TYPE_EDGE_RISING>;
  1163. clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
  1164. <&clks IMX6SX_CLK_LCDIF_APB>,
  1165. <&clks IMX6SX_CLK_DISPLAY_AXI>;
  1166. clock-names = "pix", "axi", "disp_axi";
  1167. power-domains = <&pd_disp>;
  1168. status = "disabled";
  1169. };
  1170. lcdif2: lcdif@2224000 {
  1171. compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
  1172. reg = <0x02224000 0x4000>;
  1173. interrupts = <GIC_SPI 6 IRQ_TYPE_EDGE_RISING>;
  1174. clocks = <&clks IMX6SX_CLK_LCDIF2_PIX>,
  1175. <&clks IMX6SX_CLK_LCDIF_APB>,
  1176. <&clks IMX6SX_CLK_DISPLAY_AXI>;
  1177. clock-names = "pix", "axi", "disp_axi";
  1178. power-domains = <&pd_disp>;
  1179. status = "disabled";
  1180. };
  1181. vadc: vadc@2228000 {
  1182. reg = <0x02228000 0x4000>, <0x0222c000 0x4000>;
  1183. reg-names = "vadc-vafe", "vadc-vdec";
  1184. clocks = <&clks IMX6SX_CLK_VADC>,
  1185. <&clks IMX6SX_CLK_CSI>;
  1186. clock-names = "vadc", "csi";
  1187. power-domains = <&pd_disp>;
  1188. status = "disabled";
  1189. };
  1190. };
  1191. adc1: adc@2280000 {
  1192. compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
  1193. reg = <0x02280000 0x4000>;
  1194. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  1195. clocks = <&clks IMX6SX_CLK_IPG>;
  1196. clock-names = "adc";
  1197. fsl,adck-max-frequency = <30000000>, <40000000>,
  1198. <20000000>;
  1199. status = "disabled";
  1200. };
  1201. adc2: adc@2284000 {
  1202. compatible = "fsl,imx6sx-adc", "fsl,vf610-adc";
  1203. reg = <0x02284000 0x4000>;
  1204. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  1205. clocks = <&clks IMX6SX_CLK_IPG>;
  1206. clock-names = "adc";
  1207. fsl,adck-max-frequency = <30000000>, <40000000>,
  1208. <20000000>;
  1209. status = "disabled";
  1210. };
  1211. wdog3: watchdog@2288000 {
  1212. compatible = "fsl,imx6sx-wdt", "fsl,imx21-wdt";
  1213. reg = <0x02288000 0x4000>;
  1214. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  1215. clocks = <&clks IMX6SX_CLK_IPG>;
  1216. status = "disabled";
  1217. };
  1218. ecspi5: spi@228c000 {
  1219. #address-cells = <1>;
  1220. #size-cells = <0>;
  1221. compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
  1222. reg = <0x0228c000 0x4000>;
  1223. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  1224. clocks = <&clks IMX6SX_CLK_ECSPI5>,
  1225. <&clks IMX6SX_CLK_ECSPI5>;
  1226. clock-names = "ipg", "per";
  1227. status = "disabled";
  1228. };
  1229. uart6: serial@22a0000 {
  1230. compatible = "fsl,imx6sx-uart",
  1231. "fsl,imx6q-uart", "fsl,imx21-uart";
  1232. reg = <0x022a0000 0x4000>;
  1233. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  1234. clocks = <&clks IMX6SX_CLK_UART_IPG>,
  1235. <&clks IMX6SX_CLK_UART_SERIAL>;
  1236. clock-names = "ipg", "per";
  1237. dmas = <&sdma 0 4 0>, <&sdma 47 4 0>;
  1238. dma-names = "rx", "tx";
  1239. status = "disabled";
  1240. };
  1241. pwm5: pwm@22a4000 {
  1242. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  1243. reg = <0x022a4000 0x4000>;
  1244. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  1245. clocks = <&clks IMX6SX_CLK_PWM5>,
  1246. <&clks IMX6SX_CLK_PWM5>;
  1247. clock-names = "ipg", "per";
  1248. #pwm-cells = <3>;
  1249. };
  1250. pwm6: pwm@22a8000 {
  1251. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  1252. reg = <0x022a8000 0x4000>;
  1253. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  1254. clocks = <&clks IMX6SX_CLK_PWM6>,
  1255. <&clks IMX6SX_CLK_PWM6>;
  1256. clock-names = "ipg", "per";
  1257. #pwm-cells = <3>;
  1258. };
  1259. pwm7: pwm@22ac000 {
  1260. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  1261. reg = <0x022ac000 0x4000>;
  1262. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  1263. clocks = <&clks IMX6SX_CLK_PWM7>,
  1264. <&clks IMX6SX_CLK_PWM7>;
  1265. clock-names = "ipg", "per";
  1266. #pwm-cells = <3>;
  1267. };
  1268. pwm8: pwm@22b0000 {
  1269. compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
  1270. reg = <0x0022b0000 0x4000>;
  1271. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  1272. clocks = <&clks IMX6SX_CLK_PWM8>,
  1273. <&clks IMX6SX_CLK_PWM8>;
  1274. clock-names = "ipg", "per";
  1275. #pwm-cells = <3>;
  1276. };
  1277. };
  1278. pcie: pcie@8ffc000 {
  1279. compatible = "fsl,imx6sx-pcie";
  1280. reg = <0x08ffc000 0x04000>, <0x08f00000 0x80000>;
  1281. reg-names = "dbi", "config";
  1282. #address-cells = <3>;
  1283. #size-cells = <2>;
  1284. device_type = "pci";
  1285. bus-range = <0x00 0xff>;
  1286. ranges = <0x81000000 0 0 0x08f80000 0 0x00010000>, /* downstream I/O */
  1287. <0x82000000 0 0x08000000 0x08000000 0 0x00f00000>; /* non-prefetchable memory */
  1288. num-lanes = <1>;
  1289. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  1290. interrupt-names = "msi";
  1291. #interrupt-cells = <1>;
  1292. interrupt-map-mask = <0 0 0 0x7>;
  1293. interrupt-map = <0 0 0 1 &gpc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
  1294. <0 0 0 2 &gpc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
  1295. <0 0 0 3 &gpc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  1296. <0 0 0 4 &gpc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  1297. clocks = <&clks IMX6SX_CLK_PCIE_AXI>,
  1298. <&clks IMX6SX_CLK_LVDS1_OUT>,
  1299. <&clks IMX6SX_CLK_PCIE_REF_125M>,
  1300. <&clks IMX6SX_CLK_DISPLAY_AXI>;
  1301. clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_inbound_axi";
  1302. power-domains = <&pd_disp>, <&pd_pci>;
  1303. power-domain-names = "pcie", "pcie_phy";
  1304. status = "disabled";
  1305. };
  1306. };
  1307. };