imx6.dtsi revision 266251
1/* 2 * Copyright (c) 2013 Ian Lepore 3 * Copyright (c) 2012 The FreeBSD Foundation 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * 27 * Freescale i.MX6 Common Device Tree Source. 28 * There are enough differences between the Solo, Dual, Quad, and *-lite 29 * flavors of this SoC that eventually we will need a finer-grained breakdown 30 * of some of this stuff. For now this file works for all of them. I think. 31 * 32 * $FreeBSD: stable/10/sys/boot/fdt/dts/arm/imx6.dtsi 266251 2014-05-16 15:56:34Z ian $ 33 */ 34 35/ { 36 cpus { 37 #address-cells = <1>; 38 #size-cells = <0>; 39 40 cpu@0 { 41 device_type = "cpu"; 42 compatible = "ARM,MCIMX6"; 43 reg = <0x0>; 44 d-cache-line-size = <32>; 45 i-cache-line-size = <32>; 46 d-cache-size = <0x8000>; 47 i-cache-size = <0x8000>; 48 /* TODO: describe L2 cache also */ 49 timebase-frequency = <0>; 50 bus-frequency = <0>; 51 clock-frequency = <0>; 52 }; 53 }; 54 55 aliases { 56 soc = &SOC; 57 }; 58 59 SOC: soc@00000000 { 60 compatible = "simple-bus"; 61 #address-cells = <1>; 62 #size-cells = <1>; 63 interrupt-parent = <&gic>; 64 ranges = <0x00000000 0x00000000 0x10000000>; 65 66 gic: generic-interrupt-controller@00a00100 { 67 compatible = "arm,gic"; 68 interrupt-controller; 69 #interrupt-cells = <1>; 70 reg = <0x00a01000 0x00001000 71 0x00a00100 0x00000100>; 72 }; 73 74 l2-cache@00a02000 { 75 compatible = "arm,pl310-cache", "arm,pl310"; 76 reg = <0xa02000 0x1000>; 77 interrupts = <124>; 78 cache-level = <0x2>; 79 interrupt-parent = < &gic >; 80 }; 81 82 aips@02000000 { /* AIPS1 */ 83 compatible = "fsl,aips-bus", "simple-bus"; 84 #address-cells = <1>; 85 #size-cells = <1>; 86 interrupt-parent = <&gic>; 87 reg = <0x02000000 0x00100000>; 88 ranges; 89 90 /* Required by many devices, so better to stay first */ 91 clks: ccm@020c4000 { 92 compatible = "fsl,imx6q-ccm"; 93 reg = <0x020c4000 0x4000>; 94 interrupts = <119 120>; 95 }; 96 97 anatop: anatop@020c8000 { 98 compatible = "fsl,imx6q-anatop"; 99 reg = <0x020c8000 0x1000>; 100 interrupt-parent = <&gic>; 101 interrupts = <49>; 102 }; 103 104 gpt: timer@02098000 { 105 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt"; 106 reg = <0x02098000 0x4000>; 107 interrupt-parent = <&gic>; interrupts = <87>; 108 }; 109 110// iomux@73fa8000 { 111// compatible = "fsl,imx51-iomux"; 112// reg = <0x73fa8000 0x4000>; 113// interrupt-parent = <&gic>; interrupts = <7>; 114// status = "disabled"; 115// }; 116 117 gpio1: gpio@0209c000 { 118 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 119 reg = <0x0209c000 0x4000>; 120 interrupts = <0 66 0x04 0 67 0x04>; 121 gpio-controller; 122 #gpio-cells = <2>; 123 interrupt-controller; 124 #interrupt-cells = <2>; 125 }; 126 127 gpio2: gpio@020a0000 { 128 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 129 reg = <0x020a0000 0x4000>; 130 interrupts = <0 68 0x04 0 69 0x04>; 131 gpio-controller; 132 #gpio-cells = <2>; 133 interrupt-controller; 134 #interrupt-cells = <2>; 135 }; 136 137 gpio3: gpio@020a4000 { 138 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 139 reg = <0x020a4000 0x4000>; 140 interrupts = <0 70 0x04 0 71 0x04>; 141 gpio-controller; 142 #gpio-cells = <2>; 143 interrupt-controller; 144 #interrupt-cells = <2>; 145 }; 146 147 gpio4: gpio@020a8000 { 148 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 149 reg = <0x020a8000 0x4000>; 150 interrupts = <0 72 0x04 0 73 0x04>; 151 gpio-controller; 152 #gpio-cells = <2>; 153 interrupt-controller; 154 #interrupt-cells = <2>; 155 }; 156 157 gpio5: gpio@020ac000 { 158 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 159 reg = <0x020ac000 0x4000>; 160 interrupts = <0 74 0x04 0 75 0x04>; 161 gpio-controller; 162 #gpio-cells = <2>; 163 interrupt-controller; 164 #interrupt-cells = <2>; 165 }; 166 167 gpio6: gpio@020b0000 { 168 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 169 reg = <0x020b0000 0x4000>; 170 interrupts = <0 76 0x04 0 77 0x04>; 171 gpio-controller; 172 #gpio-cells = <2>; 173 interrupt-controller; 174 #interrupt-cells = <2>; 175 }; 176 177 gpio7: gpio@020b4000 { 178 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 179 reg = <0x020b4000 0x4000>; 180 interrupts = <0 78 0x04 0 79 0x04>; 181 gpio-controller; 182 #gpio-cells = <2>; 183 interrupt-controller; 184 #interrupt-cells = <2>; 185 }; 186 187 uart1: serial@02020000 { 188 compatible = "fsl,imx6q-uart"; 189 reg = <0x02020000 0x4000>; 190 interrupt-parent = <&gic>; 191 interrupts = <58>; 192 clock-frequency = <80000000>; 193 status = "disabled"; 194 }; 195 196 uart2: serial@021e8000 { 197 compatible = "fsl,imx6q-uart"; 198 reg = <0x021e8000 0x4000>; 199 interrupt-parent = <&gic>; 200 interrupts = <59>; 201 clock-frequency = <80000000>; 202 status = "disabled"; 203 }; 204 205 uart3: serial@021ec000 { 206 compatible = "fsl,imx6q-uart"; 207 reg = <0x021ec000 0x4000>; 208 interrupt-parent = <&gic>; 209 interrupts = <60>; 210 clock-frequency = <80000000>; 211 status = "disabled"; 212 }; 213 214 uart4: serial@021f0000 { 215 compatible = "fsl,imx6q-uart"; 216 reg = <0x021f0000 0x4000>; 217 interrupt-parent = <&gic>; 218 interrupts = <61>; 219 clock-frequency = <80000000>; 220 status = "disabled"; 221 }; 222 223 uart5: serial@021f4000 { 224 compatible = "fsl,imx6q-uart"; 225 reg = <0x021f4000 0x4000>; 226 interrupt-parent = <&gic>; 227 interrupts = <62>; 228 clock-frequency = <80000000>; 229 status = "disabled"; 230 }; 231 232 usbphy1: usbphy@020c9000 { 233 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 234 reg = <0x020c9000 0x1000>; 235 interrupts = <44>; 236 status = "disabled"; 237 }; 238 239 usbphy2: usbphy@020ca000 { 240 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 241 reg = <0x020ca000 0x1000>; 242 interrupts = <45>; 243 status = "disabled"; 244 }; 245 246 }; 247 248 aips@02100000 { /* AIPS2 */ 249 compatible = "fsl,aips-bus", "simple-bus"; 250 #address-cells = <1>; 251 #size-cells = <1>; 252 interrupt-parent = <&gic>; 253 reg = <0x02100000 0x00100000>; 254 ranges; 255 256 fec1: ethernet@02188000 { 257 compatible = "fsl,imx6q-fec"; 258 reg = <0x02188000 0x4000>; 259 interrupts = <150 151>; 260 status = "disabled"; 261 }; 262 263 usbotg1: usb@02184000 { 264 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 265 reg = <0x02184000 0x200>; 266 interrupts = <75>; 267 fsl,usbphy = <&usbphy1>; 268 fsl,usbmisc = <&usbmisc 0>; 269 status = "disabled"; 270 }; 271 272 usbh1: usb@02184200 { 273 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 274 reg = <0x02184200 0x200>; 275 interrupts = <72>; 276 fsl,usbphy = <&usbphy2>; 277 fsl,usbmisc = <&usbmisc 1>; 278 status = "disabled"; 279 }; 280 281 usbh2: usb@02184400 { 282 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 283 reg = <0x02184400 0x200>; 284 interrupts = <73>; 285 fsl,usbmisc = <&usbmisc 2>; 286 status = "disabled"; 287 }; 288 289 usbh3: usb@02184600 { 290 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 291 reg = <0x02184600 0x200>; 292 interrupts = <74>; 293 fsl,usbmisc = <&usbmisc 3>; 294 status = "disabled"; 295 }; 296 297 usbmisc: usbmisc@02184800 { 298 #index-cells = <1>; 299 compatible = "fsl,imx6q-usbmisc"; 300 reg = <0x02184800 0x200>; 301 // Not disabled on purpose. 302 }; 303 304 usdhc1: usdhc@02190000 { 305 compatible = "fsl,imx6q-usdhc"; 306 reg = <0x02190000 0x4000>; 307 interrupt-parent = <&gic>; 308 interrupts = <54>; 309 cd-gpios = <&gpio1 2 0>; 310 bus-width = <0x4>; 311 status ="disabled"; 312 }; 313 314 usdhc2: usdhc@02194000 { 315 compatible = "fsl,imx6q-usdhc"; 316 reg = <0x02194000 0x4000>; 317 interrupt-parent = <&gic>; 318 interrupts = <55>; 319 non-removable; 320 bus-width = <0x4>; 321 status ="disabled"; 322 }; 323 324 usdhc3: usdhc@02198000 { 325 compatible = "fsl,imx6q-usdhc"; 326 reg = <0x02198000 0x4000>; 327 interrupt-parent = <&gic>; 328 interrupts = <56>; 329 cd-gpios = <&gpio3 9 0>; 330 bus-width = <0x4>; 331 status ="disabled"; 332 }; 333 334 usdhc4: usdhc@0219c000 { 335 compatible = "fsl,imx6q-usdhc"; 336 reg = <0x0219c000 0x4000>; 337 interrupt-parent = <&gic>; 338 interrupts = <57>; 339 bus-width = <0x4>; 340 status ="disabled"; 341 }; 342 343 ocotp0: ocotp@021bc000 { 344 compatible = "fsl,imx6q-ocotp"; 345 reg = <0x021bc000 0x4000>; 346 }; 347 }; 348 }; 349}; 350