15fa2daaaSVineet Gupta/* 25fa2daaaSVineet Gupta * Copyright (C) 2014, 2015 Synopsys, Inc. (www.synopsys.com) 35fa2daaaSVineet Gupta * 45fa2daaaSVineet Gupta * This program is free software; you can redistribute it and/or modify 55fa2daaaSVineet Gupta * it under the terms of the GNU General Public License version 2 as 65fa2daaaSVineet Gupta * published by the Free Software Foundation. 75fa2daaaSVineet Gupta */ 85fa2daaaSVineet Gupta 95fa2daaaSVineet Gupta/* 105fa2daaaSVineet Gupta * Device tree for AXC003 CPU card: HS38x2 (Dual Core) with IDU intc 115fa2daaaSVineet Gupta */ 125fa2daaaSVineet Gupta 132e8cd938SVineet Gupta/include/ "skeleton_hs_idu.dtsi" 142e8cd938SVineet Gupta 155fa2daaaSVineet Gupta/ { 165fa2daaaSVineet Gupta compatible = "snps,arc"; 17*f862b315SEugeniy Paltsev #address-cells = <2>; 18*f862b315SEugeniy Paltsev #size-cells = <2>; 195fa2daaaSVineet Gupta 205fa2daaaSVineet Gupta cpu_card { 215fa2daaaSVineet Gupta compatible = "simple-bus"; 225fa2daaaSVineet Gupta #address-cells = <1>; 235fa2daaaSVineet Gupta #size-cells = <1>; 245fa2daaaSVineet Gupta 25*f862b315SEugeniy Paltsev ranges = <0x00000000 0x0 0xf0000000 0x10000000>; 265fa2daaaSVineet Gupta 27b3d6aba8SVineet Gupta core_clk: core_clk { 28b3d6aba8SVineet Gupta #clock-cells = <0>; 29b3d6aba8SVineet Gupta compatible = "fixed-clock"; 30776d7f16SAlexey Brodkin clock-frequency = <100000000>; 31b3d6aba8SVineet Gupta }; 32b3d6aba8SVineet Gupta 339ba7648cSVineet Gupta core_intc: archs-intc@cpu { 345fa2daaaSVineet Gupta compatible = "snps,archs-intc"; 355fa2daaaSVineet Gupta interrupt-controller; 365fa2daaaSVineet Gupta #interrupt-cells = <1>; 375fa2daaaSVineet Gupta }; 385fa2daaaSVineet Gupta 395fa2daaaSVineet Gupta idu_intc: idu-interrupt-controller { 405fa2daaaSVineet Gupta compatible = "snps,archs-idu-intc"; 415fa2daaaSVineet Gupta interrupt-controller; 429ba7648cSVineet Gupta interrupt-parent = <&core_intc>; 43ec69b269SYuriy Kolerov #interrupt-cells = <1>; 445fa2daaaSVineet Gupta }; 455fa2daaaSVineet Gupta 465fa2daaaSVineet Gupta /* 475fa2daaaSVineet Gupta * this GPIO block ORs all interrupts on CPU card (creg,..) 485fa2daaaSVineet Gupta * to uplink only 1 IRQ to ARC core intc 495fa2daaaSVineet Gupta */ 505fa2daaaSVineet Gupta dw-apb-gpio@0x2000 { 515fa2daaaSVineet Gupta compatible = "snps,dw-apb-gpio"; 525fa2daaaSVineet Gupta reg = < 0x2000 0x80 >; 535fa2daaaSVineet Gupta #address-cells = <1>; 545fa2daaaSVineet Gupta #size-cells = <0>; 555fa2daaaSVineet Gupta 565fa2daaaSVineet Gupta ictl_intc: gpio-controller@0 { 575fa2daaaSVineet Gupta compatible = "snps,dw-apb-gpio-port"; 585fa2daaaSVineet Gupta gpio-controller; 595fa2daaaSVineet Gupta #gpio-cells = <2>; 605fa2daaaSVineet Gupta snps,nr-gpios = <30>; 615fa2daaaSVineet Gupta reg = <0>; 625fa2daaaSVineet Gupta interrupt-controller; 635fa2daaaSVineet Gupta #interrupt-cells = <2>; 645fa2daaaSVineet Gupta interrupt-parent = <&idu_intc>; 65ec69b269SYuriy Kolerov interrupts = <1>; 665fa2daaaSVineet Gupta }; 675fa2daaaSVineet Gupta }; 685fa2daaaSVineet Gupta 695fa2daaaSVineet Gupta debug_uart: dw-apb-uart@0x5000 { 705fa2daaaSVineet Gupta compatible = "snps,dw-apb-uart"; 715fa2daaaSVineet Gupta reg = <0x5000 0x100>; 725fa2daaaSVineet Gupta clock-frequency = <33333000>; 735fa2daaaSVineet Gupta interrupt-parent = <&ictl_intc>; 745fa2daaaSVineet Gupta interrupts = <2 4>; 755fa2daaaSVineet Gupta baud = <115200>; 765fa2daaaSVineet Gupta reg-shift = <2>; 775fa2daaaSVineet Gupta reg-io-width = <4>; 785fa2daaaSVineet Gupta }; 795fa2daaaSVineet Gupta 805fa2daaaSVineet Gupta arcpct0: pct { 815fa2daaaSVineet Gupta compatible = "snps,archs-pct"; 825fa2daaaSVineet Gupta #interrupt-cells = <1>; 839ba7648cSVineet Gupta interrupt-parent = <&core_intc>; 845fa2daaaSVineet Gupta interrupts = <20>; 855fa2daaaSVineet Gupta }; 865fa2daaaSVineet Gupta }; 875fa2daaaSVineet Gupta 885fa2daaaSVineet Gupta /* 895fa2daaaSVineet Gupta * This INTC is actually connected to DW APB GPIO 905fa2daaaSVineet Gupta * which acts as a wire between MB INTC and CPU INTC. 915fa2daaaSVineet Gupta * GPIO INTC is configured in platform init code 925fa2daaaSVineet Gupta * and here we mimic direct connection from MB INTC to 935fa2daaaSVineet Gupta * CPU INTC, thus we set "interrupts = <0 1>" instead of 945fa2daaaSVineet Gupta * "interrupts = <12>" 955fa2daaaSVineet Gupta * 965fa2daaaSVineet Gupta * This intc actually resides on MB, but we move it here to 975fa2daaaSVineet Gupta * avoid duplicating the MB dtsi file given that IRQ from 985fa2daaaSVineet Gupta * this intc to cpu intc are different for axs101 and axs103 995fa2daaaSVineet Gupta */ 1005fa2daaaSVineet Gupta mb_intc: dw-apb-ictl@0xe0012000 { 1015fa2daaaSVineet Gupta #interrupt-cells = <1>; 1025fa2daaaSVineet Gupta compatible = "snps,dw-apb-ictl"; 103*f862b315SEugeniy Paltsev reg = < 0x0 0xe0012000 0x0 0x200 >; 1045fa2daaaSVineet Gupta interrupt-controller; 1055fa2daaaSVineet Gupta interrupt-parent = <&idu_intc>; 106ec69b269SYuriy Kolerov interrupts = <0>; 1075fa2daaaSVineet Gupta }; 1085fa2daaaSVineet Gupta 1095fa2daaaSVineet Gupta memory { 1105fa2daaaSVineet Gupta device_type = "memory"; 111*f862b315SEugeniy Paltsev /* CONFIG_KERNEL_RAM_BASE_ADDRESS needs to match low mem start */ 112*f862b315SEugeniy Paltsev reg = <0x0 0x80000000 0x0 0x20000000 /* 512 MiB low mem */ 113*f862b315SEugeniy Paltsev 0x1 0xc0000000 0x0 0x40000000>; /* 1 GiB highmem */ 1145fa2daaaSVineet Gupta }; 115cb2ad5e5SAlexey Brodkin 116cb2ad5e5SAlexey Brodkin reserved-memory { 117*f862b315SEugeniy Paltsev #address-cells = <2>; 118*f862b315SEugeniy Paltsev #size-cells = <2>; 119cb2ad5e5SAlexey Brodkin ranges; 120cb2ad5e5SAlexey Brodkin /* 121cb2ad5e5SAlexey Brodkin * Move frame buffer out of IOC aperture (0x8z-0xAz). 122cb2ad5e5SAlexey Brodkin */ 123cb2ad5e5SAlexey Brodkin frame_buffer: frame_buffer@be000000 { 124cb2ad5e5SAlexey Brodkin compatible = "shared-dma-pool"; 125*f862b315SEugeniy Paltsev reg = <0x0 0xbe000000 0x0 0x2000000>; 126cb2ad5e5SAlexey Brodkin no-map; 127cb2ad5e5SAlexey Brodkin }; 128cb2ad5e5SAlexey Brodkin }; 1295fa2daaaSVineet Gupta}; 130