1257486Sian/* 2257486Sian * Copyright (c) 2013 Ian Lepore 3257486Sian * Copyright (c) 2012 The FreeBSD Foundation 4257486Sian * All rights reserved. 5257486Sian * 6257486Sian * Redistribution and use in source and binary forms, with or without 7257486Sian * modification, are permitted provided that the following conditions 8257486Sian * are met: 9257486Sian * 1. Redistributions of source code must retain the above copyright 10257486Sian * notice, this list of conditions and the following disclaimer. 11257486Sian * 2. Redistributions in binary form must reproduce the above copyright 12257486Sian * notice, this list of conditions and the following disclaimer in the 13257486Sian * documentation and/or other materials provided with the distribution. 14257486Sian * 15257486Sian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16257486Sian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17257486Sian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18257486Sian * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19257486Sian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20257486Sian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21257486Sian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22257486Sian * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23257486Sian * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24257486Sian * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25257486Sian * SUCH DAMAGE. 26257486Sian * 27257486Sian * Freescale i.MX6 Common Device Tree Source. 28257486Sian * There are enough differences between the Solo, Dual, Quad, and *-lite 29257486Sian * flavors of this SoC that eventually we will need a finer-grained breakdown 30257486Sian * of some of this stuff. For now this file works for all of them. I think. 31257486Sian * 32257486Sian * $FreeBSD: releng/10.3/sys/boot/fdt/dts/arm/imx6.dtsi 283500 2015-05-24 18:59:45Z ian $ 33257486Sian */ 34257486Sian 35257486Sian/ { 36257486Sian cpus { 37257486Sian #address-cells = <1>; 38257486Sian #size-cells = <0>; 39257486Sian 40257486Sian cpu@0 { 41257486Sian device_type = "cpu"; 42257486Sian compatible = "ARM,MCIMX6"; 43257486Sian reg = <0x0>; 44257486Sian d-cache-line-size = <32>; 45257486Sian i-cache-line-size = <32>; 46257486Sian d-cache-size = <0x8000>; 47257486Sian i-cache-size = <0x8000>; 48257486Sian /* TODO: describe L2 cache also */ 49257486Sian timebase-frequency = <0>; 50257486Sian bus-frequency = <0>; 51257486Sian clock-frequency = <0>; 52257486Sian }; 53257486Sian }; 54257486Sian 55257486Sian aliases { 56257486Sian soc = &SOC; 57257486Sian }; 58257486Sian 59257486Sian SOC: soc@00000000 { 60257486Sian compatible = "simple-bus"; 61257486Sian #address-cells = <1>; 62257486Sian #size-cells = <1>; 63257486Sian interrupt-parent = <&gic>; 64257486Sian ranges = <0x00000000 0x00000000 0x10000000>; 65257486Sian 66257486Sian gic: generic-interrupt-controller@00a00100 { 67257486Sian compatible = "arm,gic"; 68257486Sian interrupt-controller; 69257486Sian #interrupt-cells = <1>; 70257486Sian reg = <0x00a01000 0x00001000 71257486Sian 0x00a00100 0x00000100>; 72257486Sian }; 73257486Sian 74266348Sian mp_tmr0@00a00200 { 75266348Sian compatible = "arm,mpcore-timers"; 76266348Sian reg = <0x00a00200 0x100 77266348Sian 0x00a00600 0x100>; 78266348Sian interrupts = <27 29>; 79266348Sian interrupt-parent = <&gic>; 80266348Sian }; 81266348Sian 82257486Sian l2-cache@00a02000 { 83257486Sian compatible = "arm,pl310-cache", "arm,pl310"; 84257486Sian reg = <0xa02000 0x1000>; 85257486Sian interrupts = <124>; 86257486Sian cache-level = <0x2>; 87257486Sian interrupt-parent = < &gic >; 88257486Sian }; 89257486Sian 90257486Sian aips@02000000 { /* AIPS1 */ 91257486Sian compatible = "fsl,aips-bus", "simple-bus"; 92257486Sian #address-cells = <1>; 93257486Sian #size-cells = <1>; 94257486Sian interrupt-parent = <&gic>; 95257486Sian reg = <0x02000000 0x00100000>; 96257486Sian ranges; 97257486Sian 98257486Sian /* Required by many devices, so better to stay first */ 99257486Sian clks: ccm@020c4000 { 100257486Sian compatible = "fsl,imx6q-ccm"; 101257486Sian reg = <0x020c4000 0x4000>; 102257486Sian interrupts = <119 120>; 103257486Sian }; 104257486Sian 105273661Sian /* System Reset Controller */ 106273661Sian src: src@4006E000 { 107273661Sian compatible = "fsl,imx6-src"; 108273661Sian reg = <0x020D8000 0x100>; 109273661Sian }; 110273661Sian 111273661Sian sdma: sdma@020ec000 { 112273661Sian compatible = "fsl,imx6q-sdma"; 113273661Sian reg = <0x020ec000 0x4000>; 114273661Sian interrupt-parent = <&gic>; 115273661Sian interrupts = <34>; 116273661Sian status = "disabled"; 117273661Sian }; 118273661Sian 119257486Sian anatop: anatop@020c8000 { 120257486Sian compatible = "fsl,imx6q-anatop"; 121257486Sian reg = <0x020c8000 0x1000>; 122262280Sian interrupt-parent = <&gic>; 123262280Sian interrupts = <49>; 124266251Sian }; 125257486Sian 126257486Sian gpt: timer@02098000 { 127257486Sian compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt"; 128257486Sian reg = <0x02098000 0x4000>; 129283500Sian interrupt-parent = <&gic>; 130283500Sian interrupts = <87>; 131257486Sian }; 132257486Sian 133273661Sian iomux@020e0000 { 134283500Sian compatible = "fsl,imx6q-iomuxc"; 135273661Sian reg = <0x020e0000 0x4000>; 136273661Sian interrupt-parent = <&gic>; 137273661Sian interrupts = <32>; 138273661Sian }; 139257486Sian 140261816Sian gpio1: gpio@0209c000 { 141261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 142261816Sian reg = <0x0209c000 0x4000>; 143273661Sian interrupts = < 98 99 >; 144261816Sian gpio-controller; 145261816Sian #gpio-cells = <2>; 146261816Sian interrupt-controller; 147261816Sian #interrupt-cells = <2>; 148273661Sian status = "disabled"; 149261816Sian }; 150273661Sian 151261816Sian gpio2: gpio@020a0000 { 152261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 153261816Sian reg = <0x020a0000 0x4000>; 154273661Sian interrupts = < 100 101 >; 155261816Sian gpio-controller; 156261816Sian #gpio-cells = <2>; 157261816Sian interrupt-controller; 158261816Sian #interrupt-cells = <2>; 159273661Sian status = "disabled"; 160261816Sian }; 161273661Sian 162261816Sian gpio3: gpio@020a4000 { 163261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 164261816Sian reg = <0x020a4000 0x4000>; 165273661Sian interrupts = < 102 103 >; 166261816Sian gpio-controller; 167261816Sian #gpio-cells = <2>; 168261816Sian interrupt-controller; 169261816Sian #interrupt-cells = <2>; 170273661Sian status = "disabled"; 171261816Sian }; 172273661Sian 173261816Sian gpio4: gpio@020a8000 { 174261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 175261816Sian reg = <0x020a8000 0x4000>; 176273661Sian interrupts = < 104 105 >; 177261816Sian gpio-controller; 178261816Sian #gpio-cells = <2>; 179261816Sian interrupt-controller; 180261816Sian #interrupt-cells = <2>; 181273661Sian status = "disabled"; 182261816Sian }; 183273661Sian 184261816Sian gpio5: gpio@020ac000 { 185261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 186261816Sian reg = <0x020ac000 0x4000>; 187273661Sian interrupts = < 106 107 >; 188261816Sian gpio-controller; 189261816Sian #gpio-cells = <2>; 190261816Sian interrupt-controller; 191261816Sian #interrupt-cells = <2>; 192273661Sian status = "disabled"; 193261816Sian }; 194273661Sian 195261816Sian gpio6: gpio@020b0000 { 196261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 197261816Sian reg = <0x020b0000 0x4000>; 198273661Sian interrupts = < 108 109 >; 199261816Sian gpio-controller; 200261816Sian #gpio-cells = <2>; 201261816Sian interrupt-controller; 202261816Sian #interrupt-cells = <2>; 203273661Sian status = "disabled"; 204261816Sian }; 205273661Sian 206261816Sian gpio7: gpio@020b4000 { 207261816Sian compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 208261816Sian reg = <0x020b4000 0x4000>; 209273661Sian interrupts = < 110 111 >; 210261816Sian gpio-controller; 211261816Sian #gpio-cells = <2>; 212261816Sian interrupt-controller; 213261816Sian #interrupt-cells = <2>; 214273661Sian status = "disabled"; 215261816Sian }; 216257486Sian 217257486Sian uart1: serial@02020000 { 218257486Sian compatible = "fsl,imx6q-uart"; 219257486Sian reg = <0x02020000 0x4000>; 220273661Sian interrupt-parent = <&gic>; 221257486Sian interrupts = <58>; 222257486Sian clock-frequency = <80000000>; 223257486Sian status = "disabled"; 224257486Sian }; 225257486Sian 226257486Sian uart2: serial@021e8000 { 227257486Sian compatible = "fsl,imx6q-uart"; 228257486Sian reg = <0x021e8000 0x4000>; 229273661Sian interrupt-parent = <&gic>; 230257486Sian interrupts = <59>; 231257486Sian clock-frequency = <80000000>; 232257486Sian status = "disabled"; 233257486Sian }; 234257486Sian 235257486Sian uart3: serial@021ec000 { 236257486Sian compatible = "fsl,imx6q-uart"; 237257486Sian reg = <0x021ec000 0x4000>; 238273661Sian interrupt-parent = <&gic>; 239257486Sian interrupts = <60>; 240257486Sian clock-frequency = <80000000>; 241257486Sian status = "disabled"; 242257486Sian }; 243257486Sian 244257486Sian uart4: serial@021f0000 { 245257486Sian compatible = "fsl,imx6q-uart"; 246257486Sian reg = <0x021f0000 0x4000>; 247273661Sian interrupt-parent = <&gic>; 248257486Sian interrupts = <61>; 249257486Sian clock-frequency = <80000000>; 250257486Sian status = "disabled"; 251257486Sian }; 252257486Sian 253257486Sian uart5: serial@021f4000 { 254257486Sian compatible = "fsl,imx6q-uart"; 255257486Sian reg = <0x021f4000 0x4000>; 256273661Sian interrupt-parent = <&gic>; 257257486Sian interrupts = <62>; 258257486Sian clock-frequency = <80000000>; 259257486Sian status = "disabled"; 260257486Sian }; 261257486Sian 262257486Sian usbphy1: usbphy@020c9000 { 263257486Sian compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 264257486Sian reg = <0x020c9000 0x1000>; 265257486Sian interrupts = <44>; 266257486Sian status = "disabled"; 267257486Sian }; 268273661Sian 269257486Sian usbphy2: usbphy@020ca000 { 270257486Sian compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 271257486Sian reg = <0x020ca000 0x1000>; 272257486Sian interrupts = <45>; 273257486Sian status = "disabled"; 274257486Sian }; 275273661Sian 276273661Sian ecspi1: ecspi@02008000 { 277273661Sian compatible = "fsl,imx6q-ecspi"; 278273661Sian reg = <0x02008000 0x4000>; 279273661Sian interrupts = < 63 >; 280273661Sian status = "disabled"; 281273661Sian }; 282273661Sian 283273661Sian ecspi2: ecspi@0200C000 { 284273661Sian compatible = "fsl,imx6q-ecspi"; 285273661Sian reg = <0x0200C000 0x4000>; 286273661Sian interrupts = < 64 >; 287273661Sian status = "disabled"; 288273661Sian }; 289273661Sian 290273661Sian ecspi3: ecspi@02010000 { 291273661Sian compatible = "fsl,imx6q-ecspi"; 292273661Sian reg = <0x02010000 0x4000>; 293273661Sian interrupts = < 65 >; 294273661Sian status = "disabled"; 295273661Sian }; 296273661Sian 297273661Sian ecspi4: ecspi@02014000 { 298273661Sian compatible = "fsl,imx6q-ecspi"; 299273661Sian reg = <0x02014000 0x4000>; 300273661Sian interrupts = < 66 >; 301273661Sian status = "disabled"; 302273661Sian }; 303273661Sian 304273661Sian ecspi5: ecspi@02018000 { 305273661Sian compatible = "fsl,imx6q-ecspi"; 306273661Sian reg = <0x02018000 0x4000>; 307273661Sian interrupts = < 67 >; 308273661Sian status = "disabled"; 309273661Sian }; 310273661Sian 311273661Sian ssi1: ssi@02028000 { 312273661Sian compatible = "fsl,imx6q-ssi"; 313273661Sian reg = <0x02028000 0x4000>; 314273661Sian interrupts = < 78 >; 315283500Sian dmas = <&sdma 37 1 0>, 316283500Sian <&sdma 38 1 0>; 317283500Sian dma-names = "rx", "tx"; 318273661Sian status = "disabled"; 319273661Sian }; 320273661Sian 321273661Sian ssi2: ssi@0202C000 { 322273661Sian compatible = "fsl,imx6q-ssi"; 323273661Sian reg = <0x0202C000 0x4000>; 324273661Sian interrupts = < 79 >; 325273661Sian status = "disabled"; 326273661Sian }; 327273661Sian 328273661Sian ssi3: ssi@02030000 { 329273661Sian compatible = "fsl,imx6q-ssi"; 330273661Sian reg = <0x02030000 0x4000>; 331273661Sian interrupts = < 80 >; 332273661Sian status = "disabled"; 333273661Sian }; 334257486Sian }; 335257486Sian 336257486Sian aips@02100000 { /* AIPS2 */ 337257486Sian compatible = "fsl,aips-bus", "simple-bus"; 338257486Sian #address-cells = <1>; 339257486Sian #size-cells = <1>; 340257486Sian interrupt-parent = <&gic>; 341257486Sian reg = <0x02100000 0x00100000>; 342257486Sian ranges; 343257486Sian 344273662Sian i2c1: i2c@021a0000 { 345273662Sian compatible = "fsl,imx6q-i2c"; 346273662Sian reg = <0x021a0000 0x4000>; 347273662Sian interrupts = < 68 >; 348273662Sian status = "disabled"; 349273662Sian }; 350273662Sian 351273662Sian i2c2: i2c@021a4000 { 352273662Sian compatible = "fsl,imx6q-i2c"; 353273662Sian reg = <0x021a4000 0x4000>; 354273662Sian interrupts = < 69 >; 355273662Sian status = "disabled"; 356273662Sian }; 357273662Sian 358273662Sian i2c3: i2c@021ac000 { 359273662Sian compatible = "fsl,imx6q-i2c"; 360273662Sian reg = <0x021a8000 0x4000>; 361273662Sian interrupts = < 70 >; 362273662Sian status = "disabled"; 363273662Sian }; 364273662Sian 365257486Sian fec1: ethernet@02188000 { 366257486Sian compatible = "fsl,imx6q-fec"; 367257486Sian reg = <0x02188000 0x4000>; 368257486Sian interrupts = <150 151>; 369257486Sian status = "disabled"; 370257486Sian }; 371273661Sian 372257486Sian usbotg1: usb@02184000 { 373257486Sian compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 374257486Sian reg = <0x02184000 0x200>; 375257486Sian interrupts = <75>; 376257486Sian fsl,usbphy = <&usbphy1>; 377257486Sian fsl,usbmisc = <&usbmisc 0>; 378257486Sian status = "disabled"; 379257486Sian }; 380273661Sian 381257486Sian usbh1: usb@02184200 { 382257486Sian compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 383257486Sian reg = <0x02184200 0x200>; 384257486Sian interrupts = <72>; 385257486Sian fsl,usbphy = <&usbphy2>; 386257486Sian fsl,usbmisc = <&usbmisc 1>; 387257486Sian status = "disabled"; 388257486Sian }; 389273661Sian 390257486Sian usbh2: usb@02184400 { 391257486Sian compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 392257486Sian reg = <0x02184400 0x200>; 393257486Sian interrupts = <73>; 394257486Sian fsl,usbmisc = <&usbmisc 2>; 395257486Sian status = "disabled"; 396257486Sian }; 397273661Sian 398257486Sian usbh3: usb@02184600 { 399257486Sian compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 400257486Sian reg = <0x02184600 0x200>; 401257486Sian interrupts = <74>; 402257486Sian fsl,usbmisc = <&usbmisc 3>; 403257486Sian status = "disabled"; 404257486Sian }; 405273661Sian 406257486Sian usbmisc: usbmisc@02184800 { 407257486Sian #index-cells = <1>; 408257486Sian compatible = "fsl,imx6q-usbmisc"; 409257486Sian reg = <0x02184800 0x200>; 410257486Sian // Not disabled on purpose. 411257486Sian }; 412257486Sian 413257486Sian usdhc1: usdhc@02190000 { 414257486Sian compatible = "fsl,imx6q-usdhc"; 415257486Sian reg = <0x02190000 0x4000>; 416257486Sian interrupt-parent = <&gic>; 417257486Sian interrupts = <54>; 418261816Sian cd-gpios = <&gpio1 2 0>; 419257486Sian bus-width = <0x4>; 420257486Sian status ="disabled"; 421257486Sian }; 422257486Sian 423257486Sian usdhc2: usdhc@02194000 { 424257486Sian compatible = "fsl,imx6q-usdhc"; 425257486Sian reg = <0x02194000 0x4000>; 426257486Sian interrupt-parent = <&gic>; 427257486Sian interrupts = <55>; 428261816Sian non-removable; 429257486Sian bus-width = <0x4>; 430257486Sian status ="disabled"; 431257486Sian }; 432257486Sian 433257486Sian usdhc3: usdhc@02198000 { 434257486Sian compatible = "fsl,imx6q-usdhc"; 435257486Sian reg = <0x02198000 0x4000>; 436257486Sian interrupt-parent = <&gic>; 437257486Sian interrupts = <56>; 438261816Sian cd-gpios = <&gpio3 9 0>; 439257486Sian bus-width = <0x4>; 440257486Sian status ="disabled"; 441257486Sian }; 442257486Sian 443257486Sian usdhc4: usdhc@0219c000 { 444257486Sian compatible = "fsl,imx6q-usdhc"; 445257486Sian reg = <0x0219c000 0x4000>; 446257486Sian interrupt-parent = <&gic>; 447257486Sian interrupts = <57>; 448257486Sian bus-width = <0x4>; 449257486Sian status ="disabled"; 450257486Sian }; 451261938Sian 452261938Sian ocotp0: ocotp@021bc000 { 453261938Sian compatible = "fsl,imx6q-ocotp"; 454261938Sian reg = <0x021bc000 0x4000>; 455266251Sian }; 456273661Sian 457273661Sian audmux: audmux@021d8000 { 458273661Sian compatible = "fsl,imx6q-audmux"; 459273661Sian reg = <0x021d8000 0x4000>; 460273661Sian status = "disabled"; 461273661Sian }; 462257486Sian }; 463257486Sian }; 464257486Sian}; 465