imx6.dtsi revision 261816
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: head/sys/boot/fdt/dts/imx6.dtsi 261816 2014-02-13 03:41:00Z 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 } 101 102 gpt: timer@02098000 { 103 compatible = "fsl,imx6q-gpt", "fsl,imx51-gpt"; 104 reg = <0x02098000 0x4000>; 105 interrupt-parent = <&gic>; interrupts = <87>; 106 }; 107 108// iomux@73fa8000 { 109// compatible = "fsl,imx51-iomux"; 110// reg = <0x73fa8000 0x4000>; 111// interrupt-parent = <&gic>; interrupts = <7>; 112// status = "disabled"; 113// }; 114 115 gpio1: gpio@0209c000 { 116 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 117 reg = <0x0209c000 0x4000>; 118 interrupts = <0 66 0x04 0 67 0x04>; 119 gpio-controller; 120 #gpio-cells = <2>; 121 interrupt-controller; 122 #interrupt-cells = <2>; 123 }; 124 125 gpio2: gpio@020a0000 { 126 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 127 reg = <0x020a0000 0x4000>; 128 interrupts = <0 68 0x04 0 69 0x04>; 129 gpio-controller; 130 #gpio-cells = <2>; 131 interrupt-controller; 132 #interrupt-cells = <2>; 133 }; 134 135 gpio3: gpio@020a4000 { 136 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 137 reg = <0x020a4000 0x4000>; 138 interrupts = <0 70 0x04 0 71 0x04>; 139 gpio-controller; 140 #gpio-cells = <2>; 141 interrupt-controller; 142 #interrupt-cells = <2>; 143 }; 144 145 gpio4: gpio@020a8000 { 146 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 147 reg = <0x020a8000 0x4000>; 148 interrupts = <0 72 0x04 0 73 0x04>; 149 gpio-controller; 150 #gpio-cells = <2>; 151 interrupt-controller; 152 #interrupt-cells = <2>; 153 }; 154 155 gpio5: gpio@020ac000 { 156 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 157 reg = <0x020ac000 0x4000>; 158 interrupts = <0 74 0x04 0 75 0x04>; 159 gpio-controller; 160 #gpio-cells = <2>; 161 interrupt-controller; 162 #interrupt-cells = <2>; 163 }; 164 165 gpio6: gpio@020b0000 { 166 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 167 reg = <0x020b0000 0x4000>; 168 interrupts = <0 76 0x04 0 77 0x04>; 169 gpio-controller; 170 #gpio-cells = <2>; 171 interrupt-controller; 172 #interrupt-cells = <2>; 173 }; 174 175 gpio7: gpio@020b4000 { 176 compatible = "fsl,imx6q-gpio", "fsl,imx35-gpio"; 177 reg = <0x020b4000 0x4000>; 178 interrupts = <0 78 0x04 0 79 0x04>; 179 gpio-controller; 180 #gpio-cells = <2>; 181 interrupt-controller; 182 #interrupt-cells = <2>; 183 }; 184 185 uart1: serial@02020000 { 186 compatible = "fsl,imx6q-uart"; 187 reg = <0x02020000 0x4000>; 188 interrupt-parent = <&gic>; 189 interrupts = <58>; 190 clock-frequency = <80000000>; 191 status = "disabled"; 192 }; 193 194 uart2: serial@021e8000 { 195 compatible = "fsl,imx6q-uart"; 196 reg = <0x021e8000 0x4000>; 197 interrupt-parent = <&gic>; 198 interrupts = <59>; 199 clock-frequency = <80000000>; 200 status = "disabled"; 201 }; 202 203 uart3: serial@021ec000 { 204 compatible = "fsl,imx6q-uart"; 205 reg = <0x021ec000 0x4000>; 206 interrupt-parent = <&gic>; 207 interrupts = <60>; 208 clock-frequency = <80000000>; 209 status = "disabled"; 210 }; 211 212 uart4: serial@021f0000 { 213 compatible = "fsl,imx6q-uart"; 214 reg = <0x021f0000 0x4000>; 215 interrupt-parent = <&gic>; 216 interrupts = <61>; 217 clock-frequency = <80000000>; 218 status = "disabled"; 219 }; 220 221 uart5: serial@021f4000 { 222 compatible = "fsl,imx6q-uart"; 223 reg = <0x021f4000 0x4000>; 224 interrupt-parent = <&gic>; 225 interrupts = <62>; 226 clock-frequency = <80000000>; 227 status = "disabled"; 228 }; 229 230 usbphy1: usbphy@020c9000 { 231 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 232 reg = <0x020c9000 0x1000>; 233 interrupts = <44>; 234 status = "disabled"; 235 }; 236 237 usbphy2: usbphy@020ca000 { 238 compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy"; 239 reg = <0x020ca000 0x1000>; 240 interrupts = <45>; 241 status = "disabled"; 242 }; 243 244 }; 245 246 aips@02100000 { /* AIPS2 */ 247 compatible = "fsl,aips-bus", "simple-bus"; 248 #address-cells = <1>; 249 #size-cells = <1>; 250 interrupt-parent = <&gic>; 251 reg = <0x02100000 0x00100000>; 252 ranges; 253 254 fec1: ethernet@02188000 { 255 compatible = "fsl,imx6q-fec"; 256 reg = <0x02188000 0x4000>; 257 interrupts = <150 151>; 258 status = "disabled"; 259 }; 260 261 usbotg1: usb@02184000 { 262 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 263 reg = <0x02184000 0x200>; 264 interrupts = <75>; 265 fsl,usbphy = <&usbphy1>; 266 fsl,usbmisc = <&usbmisc 0>; 267 status = "disabled"; 268 }; 269 270 usbh1: usb@02184200 { 271 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 272 reg = <0x02184200 0x200>; 273 interrupts = <72>; 274 fsl,usbphy = <&usbphy2>; 275 fsl,usbmisc = <&usbmisc 1>; 276 status = "disabled"; 277 }; 278 279 usbh2: usb@02184400 { 280 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 281 reg = <0x02184400 0x200>; 282 interrupts = <73>; 283 fsl,usbmisc = <&usbmisc 2>; 284 status = "disabled"; 285 }; 286 287 usbh3: usb@02184600 { 288 compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; 289 reg = <0x02184600 0x200>; 290 interrupts = <74>; 291 fsl,usbmisc = <&usbmisc 3>; 292 status = "disabled"; 293 }; 294 295 usbmisc: usbmisc@02184800 { 296 #index-cells = <1>; 297 compatible = "fsl,imx6q-usbmisc"; 298 reg = <0x02184800 0x200>; 299 // Not disabled on purpose. 300 }; 301 302 usdhc1: usdhc@02190000 { 303 compatible = "fsl,imx6q-usdhc"; 304 reg = <0x02190000 0x4000>; 305 interrupt-parent = <&gic>; 306 interrupts = <54>; 307 cd-gpios = <&gpio1 2 0>; 308 bus-width = <0x4>; 309 status ="disabled"; 310 }; 311 312 usdhc2: usdhc@02194000 { 313 compatible = "fsl,imx6q-usdhc"; 314 reg = <0x02194000 0x4000>; 315 interrupt-parent = <&gic>; 316 interrupts = <55>; 317 non-removable; 318 bus-width = <0x4>; 319 status ="disabled"; 320 }; 321 322 usdhc3: usdhc@02198000 { 323 compatible = "fsl,imx6q-usdhc"; 324 reg = <0x02198000 0x4000>; 325 interrupt-parent = <&gic>; 326 interrupts = <56>; 327 cd-gpios = <&gpio3 9 0>; 328 bus-width = <0x4>; 329 status ="disabled"; 330 }; 331 332 usdhc4: usdhc@0219c000 { 333 compatible = "fsl,imx6q-usdhc"; 334 reg = <0x0219c000 0x4000>; 335 interrupt-parent = <&gic>; 336 interrupts = <57>; 337 bus-width = <0x4>; 338 status ="disabled"; 339 }; 340 }; 341 }; 342}; 343