| /* |
| * Copyright (c) 2012 The FreeBSD Foundation |
| * All rights reserved. |
| * |
| * This software was developed by Semihalf under sponsorship from |
| * the FreeBSD Foundation. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
| * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
| * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| * SUCH DAMAGE. |
| * |
| * Freescale i.MX515 Device Tree Source. |
| * |
| * $FreeBSD$ |
| */ |
| |
| / { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| aliases { |
| soc = &SOC; |
| }; |
| |
| |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu@0 { |
| device_type = "cpu"; |
| compatible = "ARM,MCIMX515"; |
| reg = <0x0>; |
| d-cache-line-size = <32>; |
| i-cache-line-size = <32>; |
| d-cache-size = <0x8000>; |
| i-cache-size = <0x8000>; |
| /* TODO: describe L2 cache also */ |
| timebase-frequency = <0>; |
| bus-frequency = <0>; |
| clock-frequency = <0>; |
| }; |
| }; |
| |
| localbus@e0000000 { |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| /* This reflects CPU decode windows setup. */ |
| ranges; |
| |
| tzic: tz-interrupt-controller@e0000000 { |
| compatible = "fsl,imx51-tzic", "fsl,tzic"; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| reg = <0xe0000000 0x00004000>; |
| }; |
| /* |
| * 60000000 60000FFF 4K Debug ROM |
| * 60001000 60001FFF 4K ETB |
| * 60002000 60002FFF 4K ETM |
| * 60003000 60003FFF 4K TPIU |
| * 60004000 60004FFF 4K CTI0 |
| * 60005000 60005FFF 4K CTI1 |
| * 60006000 60006FFF 4K CTI2 |
| * 60007000 60007FFF 4K CTI3 |
| * 60008000 60008FFF 4K Cortex Debug Unit |
| * |
| * E0000000 E0003FFF 0x4000 TZIC |
| */ |
| }; |
| |
| SOC: soc@70000000 { |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| interrupt-parent = <&tzic>; |
| ranges = <0x70000000 0x70000000 0x14000000>; |
| |
| aips@70000000 { /* AIPS1 */ |
| compatible = "fsl,aips-bus", "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| interrupt-parent = <&tzic>; |
| ranges; |
| |
| /* Required by many devices, so better to stay first */ |
| /* 73FD4000 0x4000 CCM */ |
| clock@73fd4000 { |
| compatible = "fsl,imx51-ccm"; |
| /* 83F80000 0x4000 DPLLIP1 */ |
| /* 83F84000 0x4000 DPLLIP2 */ |
| /* 83F88000 0x4000 DPLLIP3 */ |
| reg = <0x73fd4000 0x4000 |
| 0x83F80000 0x4000 |
| 0x83F84000 0x4000 |
| 0x83F88000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <71 72>; |
| status = "disabled"; |
| }; |
| |
| /* |
| * GPIO modules moved up - to have it attached for |
| * drivers which rely on GPIO |
| */ |
| /* 73F84000 0x4000 GPIO1 */ |
| gpio1: gpio@73f84000 { |
| compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; |
| reg = <0x73f84000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <50 51 42 43 44 45 46 47 48 49>; |
| /* TODO: use <> also */ |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| }; |
| |
| /* 73F88000 0x4000 GPIO2 */ |
| gpio2: gpio@73f88000 { |
| compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; |
| reg = <0x73f88000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <52 53>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| }; |
| |
| /* 73F8C000 0x4000 GPIO3 */ |
| gpio3: gpio@73f8c000 { |
| compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; |
| reg = <0x73f8c000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <54 55>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| }; |
| |
| /* 73F90000 0x4000 GPIO4 */ |
| gpio4: gpio@73f90000 { |
| compatible = "fsl,imx51-gpio", "fsl,imx31-gpio"; |
| reg = <0x73f90000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <56 57>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| }; |
| |
| spba@70000000 { |
| compatible = "fsl,spba-bus", "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| interrupt-parent = <&tzic>; |
| ranges; |
| |
| /* 70004000 0x4000 ESDHC 1 */ |
| esdhc@70004000 { |
| compatible = "fsl,imx51-esdhc"; |
| reg = <0x70004000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <1>; |
| status = "disabled"; |
| }; |
| |
| /* 70008000 0x4000 ESDHC 2 */ |
| esdhc@70008000 { |
| compatible = "fsl,imx51-esdhc"; |
| reg = <0x70008000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <2>; |
| status = "disabled"; |
| }; |
| |
| /* 7000C000 0x4000 UART 3 */ |
| uart3: serial@7000c000 { |
| compatible = "fsl,imx51-uart", "fsl,imx-uart"; |
| reg = <0x7000c000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <33>; |
| status = "disabled"; |
| }; |
| |
| /* 70010000 0x4000 eCSPI1 */ |
| ecspi@70010000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,imx51-ecspi"; |
| reg = <0x70010000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <36>; |
| status = "disabled"; |
| }; |
| |
| /* 70014000 0x4000 SSI2 irq30 */ |
| SSI2: ssi@70014000 { |
| compatible = "fsl,imx51-ssi"; |
| reg = <0x70014000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <30>; |
| status = "disabled"; |
| }; |
| |
| /* 70020000 0x4000 ESDHC 3 */ |
| esdhc@70020000 { |
| compatible = "fsl,imx51-esdhc"; |
| reg = <0x70020000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <3>; |
| status = "disabled"; |
| }; |
| |
| /* 70024000 0x4000 ESDHC 4 */ |
| esdhc@70024000 { |
| compatible = "fsl,imx51-esdhc"; |
| reg = <0x70024000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <4>; |
| status = "disabled"; |
| }; |
| |
| /* 70028000 0x4000 SPDIF */ |
| /* 91 SPDIF */ |
| |
| /* 70030000 0x4000 PATA (PORT UDMA) irq70 */ |
| |
| /* 70034000 0x4000 SLM */ |
| /* 70038000 0x4000 HSI2C */ /* 64 HS-I2C */ |
| /* 7003C000 0x4000 SPBA */ |
| }; |
| |
| usbphy0: usbphy@0 { |
| compatible = "usb-nop-xceiv"; |
| status = "okay"; |
| }; |
| |
| usbotg: usb@73f80000 { |
| compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
| reg = <0x73f80000 0x0200>; |
| interrupts = <18>; |
| fsl,usbmisc = <&usbmisc 0>; |
| fsl,usbphy = <&usbphy0>; |
| status = "disabled"; |
| }; |
| |
| usbh1: usb@73f80200 { |
| compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
| reg = <0x73f80200 0x0200>; |
| interrupts = <14>; |
| fsl,usbmisc = <&usbmisc 1>; |
| status = "disabled"; |
| }; |
| |
| usbh2: usb@73f80400 { |
| compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
| reg = <0x73f80400 0x0200>; |
| interrupts = <16>; |
| fsl,usbmisc = <&usbmisc 2>; |
| status = "disabled"; |
| }; |
| |
| usbh3: usb@73f80600 { |
| compatible = "fsl,imx51-usb", "fsl,imx27-usb"; |
| reg = <0x73f80600 0x0200>; |
| interrupts = <17>; |
| fsl,usbmisc = <&usbmisc 3>; |
| status = "disabled"; |
| }; |
| |
| usbmisc: usbmisc@73f80800 { |
| #index-cells = <1>; |
| compatible = "fsl,imx51-usbmisc"; |
| reg = <0x73f80800 0x200>; |
| }; |
| |
| /* 73F98000 0x4000 WDOG1 */ |
| wdog@73f98000 { |
| compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; |
| reg = <0x73f98000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <58>; |
| status = "disabled"; |
| }; |
| |
| /* 73F9C000 0x4000 WDOG2 (TZ) */ |
| wdog@73f9c000 { |
| compatible = "fsl,imx51-wdt", "fsl,imx21-wdt"; |
| reg = <0x73f9c000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <59>; |
| status = "disabled"; |
| }; |
| |
| /* 73F94000 0x4000 KPP */ |
| keyboard@73f94000 { |
| compatible = "fsl,imx51-kpp"; |
| reg = <0x73f94000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <60>; |
| status = "disabled"; |
| }; |
| |
| /* 73FA0000 0x4000 GPT */ |
| timer@73fa0000 { |
| compatible = "fsl,imx51-gpt"; |
| reg = <0x73fa0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <39>; |
| status = "disabled"; |
| }; |
| |
| /* 73FA4000 0x4000 SRTC */ |
| |
| rtc@73fa4000 { |
| compatible = "fsl,imx51-srtc"; |
| reg = <0x73fa4000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <24 25>; |
| status = "disabled"; |
| }; |
| |
| /* 73FA8000 0x4000 IOMUXC */ |
| iomux@73fa8000 { |
| compatible = "fsl,imx51-iomux"; |
| reg = <0x73fa8000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <7>; |
| }; |
| |
| /* 73FAC000 0x4000 EPIT1 */ |
| epit1: timer@73fac000 { |
| compatible = "fsl,imx51-epit"; |
| reg = <0x73fac000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <40>; |
| status = "disabled"; |
| }; |
| |
| /* 73FB0000 0x4000 EPIT2 */ |
| epit2: timer@73fb0000 { |
| compatible = "fsl,imx51-epit"; |
| reg = <0x73fb0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <41>; |
| status = "disabled"; |
| }; |
| |
| /* 73FB4000 0x4000 PWM1 */ |
| pwm@73fb4000 { |
| compatible = "fsl,imx51-pwm"; |
| reg = <0x73fb4000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <61>; |
| status = "disabled"; |
| }; |
| |
| /* 73FB8000 0x4000 PWM2 */ |
| pwm@73fb8000 { |
| compatible = "fsl,imx51-pwm"; |
| reg = <0x73fb8000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <94>; |
| status = "disabled"; |
| }; |
| |
| /* 73FBC000 0x4000 UART 1 */ |
| uart1: serial@73fbc000 { |
| compatible = "fsl,imx51-uart", "fsl,imx-uart"; |
| reg = <0x73fbc000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <31>; |
| status = "disabled"; |
| }; |
| |
| /* 73FC0000 0x4000 UART 2 */ |
| uart2: serial@73fc0000 { |
| compatible = "fsl,imx51-uart", "fsl,imx-uart"; |
| reg = <0x73fc0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <32>; |
| status = "disabled"; |
| }; |
| |
| /* 73FC4000 0x4000 USBOH3 */ |
| /* NOTYET |
| usb@73fc4000 { |
| compatible = "fsl,imx51-otg"; |
| reg = <0x73fc4000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <>; |
| status = "disabled"; |
| }; |
| */ |
| /* 73FD0000 0x4000 SRC */ |
| reset@73fd0000 { |
| compatible = "fsl,imx51-src"; |
| reg = <0x73fd0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <75>; |
| status = "disabled"; |
| }; |
| /* 73FD8000 0x4000 GPC */ |
| power@73fd8000 { |
| compatible = "fsl,imx51-gpc"; |
| reg = <0x73fd8000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <73 74>; |
| status = "disabled"; |
| }; |
| |
| }; |
| |
| aips@80000000 { /* AIPS2 */ |
| compatible = "fsl,aips-bus", "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| interrupt-parent = <&tzic>; |
| ranges; |
| |
| /* 83F94000 0x4000 AHBMAX */ |
| /* 83F98000 0x4000 IIM */ |
| /* |
| * 69 IIM Interrupt request to the processor. |
| * Indicates to the processor that program or |
| * explicit. |
| */ |
| /* 83F9C000 0x4000 CSU */ |
| /* |
| * 27 CSU Interrupt Request 1. Indicates to the |
| * processor that one or more alarm inputs were. |
| */ |
| |
| /* 83FA0000 0x4000 TIGERP_PLATFORM_NE_32K_256K */ |
| /* irq76 Neon Monitor Interrupt */ |
| /* irq77 Performance Unit Interrupt */ |
| /* irq78 CTI IRQ */ |
| /* irq79 Debug Interrupt, Cross-Trigger Interface 1 */ |
| /* irq80 Debug Interrupt, Cross-Trigger Interface 1 */ |
| /* irq89 Debug Interrupt, Cross-Trigger Interface 2 */ |
| /* irq98 Debug Interrupt, Cross-Trigger Interface 3 */ |
| |
| /* 83FA4000 0x4000 OWIRE irq88 */ |
| /* 83FA8000 0x4000 FIRI irq93 */ |
| /* 83FAC000 0x4000 eCSPI2 */ |
| ecspi@83fac000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,imx51-ecspi"; |
| reg = <0x83fac000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <37>; |
| status = "disabled"; |
| }; |
| |
| /* 83FB0000 0x4000 SDMA */ |
| sdma@83fb0000 { |
| compatible = "fsl,imx51-sdma", "fsl,imx35-sdma"; |
| reg = <0x83fb0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <6>; |
| }; |
| |
| /* 83FB4000 0x4000 SCC */ |
| /* 21 SCC Security Monitor High Priority Interrupt. */ |
| /* 22 SCC Secure (TrustZone) Interrupt. */ |
| /* 23 SCC Regular (Non-Secure) Interrupt. */ |
| |
| /* 83FB8000 0x4000 ROMCP */ |
| /* 83FBC000 0x4000 RTIC */ |
| /* |
| * 26 RTIC RTIC (Trust Zone) Interrupt Request. |
| * Indicates that the RTIC has completed hashing the |
| */ |
| |
| /* 83FC0000 0x4000 CSPI */ |
| cspi@83fc0000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,imx51-cspi", "fsl,imx35-cspi"; |
| reg = <0x83fc0000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <38>; |
| status = "disabled"; |
| }; |
| |
| /* 83FC4000 0x4000 I2C2 */ |
| i2c@83fc4000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,imx51-i2c", "fsl,imx1-i2c", "fsl,imx-i2c"; |
| reg = <0x83fc4000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <63>; |
| status = "disabled"; |
| }; |
| |
| /* 83FC8000 0x4000 I2C1 */ |
| i2c@83fc8000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "fsl,imx51-i2c", "fsl,imx1-i2c", "fsl,imx-i2c"; |
| reg = <0x83fc8000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <62>; |
| status = "disabled"; |
| }; |
| |
| /* 83FCC000 0x4000 SSI1 */ |
| /* 29 SSI1 SSI-1 Interrupt Request */ |
| SSI1: ssi@83fcc000 { |
| compatible = "fsl,imx51-ssi"; |
| reg = <0x83fcc000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <29>; |
| status = "disabled"; |
| }; |
| |
| /* 83FD0000 0x4000 AUDMUX */ |
| audmux@83fd4000 { |
| compatible = "fsl,imx51-audmux"; |
| reg = <0x83fd4000 0x4000>; |
| status = "disabled"; |
| }; |
| |
| /* 83FD8000 0x4000 EMI1 */ |
| /* 8 EMI (NFC) */ |
| /* 15 EMI */ |
| /* 97 EMI Boot sequence completed interrupt */ |
| /* |
| * 101 EMI Indicates all pages have been transferred |
| * to NFC during an auto program operation. |
| */ |
| |
| /* 83FE0000 0x4000 PATA (PORT PIO) */ |
| /* 70 PATA Parallel ATA host controller interrupt */ |
| ide@83fe0000 { |
| compatible = "fsl,imx51-ata"; |
| reg = <0x83fe0000 0x4000>; |
| interrupt-parent = <&tzic>; |
| interrupts = <70>; |
| status = "disabled"; |
| }; |
| |
| /* 83FE4000 0x4000 SIM */ |
| /* 67 SIM intr composed of oef, xte, sdi1, and sdi0 */ |
| /* 68 SIM intr composed of tc, etc, tfe, and rdrf */ |
| |
| /* 83FE8000 0x4000 SSI3 */ |
| /* 96 SSI3 SSI-3 Interrupt Request */ |
| SSI3: ssi@83fe8000 { |
| compatible = "fsl,imx51-ssi"; |
| reg = <0x83fe8000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <96>; |
| status = "disabled"; |
| }; |
| |
| /* 83FEC000 0x4000 FEC */ |
| ethernet@83fec000 { |
| compatible = "fsl,imx51-fec"; |
| reg = <0x83fec000 0x4000>; |
| interrupt-parent = <&tzic>; interrupts = <87>; |
| status = "disabled"; |
| }; |
| |
| /* 83FF0000 0x4000 TVE */ |
| /* 92 TVE */ |
| /* 83FF4000 0x4000 VPU */ |
| /* 9 VPU */ |
| /* 100 VPU Idle interrupt from VPU */ |
| |
| /* 83FF8000 0x4000 SAHARA Lite */ |
| /* 19 SAHARA SAHARA host 0 (TrustZone) Intr Lite */ |
| /* 20 SAHARA SAHARA host 1 (non-TrustZone) Intr Lite */ |
| }; |
| }; |
| |
| localbus@5e000000 { |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| |
| ranges; |
| |
| vga: ipu3@5e000000 { |
| compatible = "fsl,ipu3"; |
| reg = < |
| 0x5e000000 0x08000 /* CM */ |
| 0x5e008000 0x08000 /* IDMAC */ |
| 0x5e018000 0x08000 /* DP */ |
| 0x5e020000 0x08000 /* IC */ |
| 0x5e028000 0x08000 /* IRT */ |
| 0x5e030000 0x08000 /* CSI0 */ |
| 0x5e038000 0x08000 /* CSI1 */ |
| 0x5e040000 0x08000 /* DI0 */ |
| 0x5e048000 0x08000 /* DI1 */ |
| 0x5e050000 0x08000 /* SMFC */ |
| 0x5e058000 0x08000 /* DC */ |
| 0x5e060000 0x08000 /* DMFC */ |
| 0x5e068000 0x08000 /* VDI */ |
| 0x5f000000 0x20000 /* CPMEM */ |
| 0x5f020000 0x20000 /* LUT */ |
| 0x5f040000 0x20000 /* SRM */ |
| 0x5f060000 0x20000 /* TPM */ |
| 0x5f080000 0x20000 /* DCTMPL */ |
| >; |
| interrupt-parent = <&tzic>; |
| interrupts = < |
| 10 /* IPUEX Error */ |
| 11 /* IPUEX Sync */ |
| >; |
| status = "disabled"; |
| }; |
| }; |
| }; |
| |
| /* |
| |
| TODO: Not mapped interrupts |
| |
| 5 DAP |
| 84 GPU2D (OpenVG) general interrupt |
| 85 GPU2D (OpenVG) busy signal (for S/W power gating feasibility) |
| 12 GPU3D |
| 102 GPU3D Idle interrupt from GPU3D (for S/W power gating) |
| 90 SJC |
| */ |