1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Copyright (C) 2013-15 Synopsys, Inc. (www.synopsys.com) 4c66ec88fSEmmanuel Vadot */ 5c66ec88fSEmmanuel Vadot 6c66ec88fSEmmanuel Vadot/* 7c66ec88fSEmmanuel Vadot * Device tree for AXC001 770D/EM6/AS221 CPU card 8c66ec88fSEmmanuel Vadot * Note that this file only supports the 770D CPU 9c66ec88fSEmmanuel Vadot */ 10c66ec88fSEmmanuel Vadot 11c66ec88fSEmmanuel Vadot/include/ "skeleton.dtsi" 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot/ { 14c66ec88fSEmmanuel Vadot compatible = "snps,arc"; 15c66ec88fSEmmanuel Vadot #address-cells = <2>; 16c66ec88fSEmmanuel Vadot #size-cells = <2>; 17c66ec88fSEmmanuel Vadot 18c66ec88fSEmmanuel Vadot cpu_card { 19c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 20c66ec88fSEmmanuel Vadot #address-cells = <1>; 21c66ec88fSEmmanuel Vadot #size-cells = <1>; 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadot ranges = <0x00000000 0x0 0xf0000000 0x10000000>; 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot core_clk: core_clk { 26c66ec88fSEmmanuel Vadot #clock-cells = <0>; 27c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 28c66ec88fSEmmanuel Vadot clock-frequency = <750000000>; 29c66ec88fSEmmanuel Vadot }; 30c66ec88fSEmmanuel Vadot 31c66ec88fSEmmanuel Vadot input_clk: input-clk { 32c66ec88fSEmmanuel Vadot #clock-cells = <0>; 33c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 34c66ec88fSEmmanuel Vadot clock-frequency = <33333333>; 35c66ec88fSEmmanuel Vadot }; 36c66ec88fSEmmanuel Vadot 37c66ec88fSEmmanuel Vadot core_intc: arc700-intc@cpu { 38c66ec88fSEmmanuel Vadot compatible = "snps,arc700-intc"; 39c66ec88fSEmmanuel Vadot interrupt-controller; 40c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 41c66ec88fSEmmanuel Vadot }; 42c66ec88fSEmmanuel Vadot 43c66ec88fSEmmanuel Vadot /* 44c66ec88fSEmmanuel Vadot * this GPIO block ORs all interrupts on CPU card (creg,..) 45c66ec88fSEmmanuel Vadot * to uplink only 1 IRQ to ARC core intc 46c66ec88fSEmmanuel Vadot */ 47c66ec88fSEmmanuel Vadot dw-apb-gpio@2000 { 48c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 49c66ec88fSEmmanuel Vadot reg = < 0x2000 0x80 >; 50c66ec88fSEmmanuel Vadot #address-cells = <1>; 51c66ec88fSEmmanuel Vadot #size-cells = <0>; 52c66ec88fSEmmanuel Vadot 53c66ec88fSEmmanuel Vadot ictl_intc: gpio-controller@0 { 54c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 55c66ec88fSEmmanuel Vadot gpio-controller; 56c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 57c66ec88fSEmmanuel Vadot snps,nr-gpios = <30>; 58c66ec88fSEmmanuel Vadot reg = <0>; 59c66ec88fSEmmanuel Vadot interrupt-controller; 60c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 61c66ec88fSEmmanuel Vadot interrupt-parent = <&core_intc>; 62c66ec88fSEmmanuel Vadot interrupts = <15>; 63c66ec88fSEmmanuel Vadot }; 64c66ec88fSEmmanuel Vadot }; 65c66ec88fSEmmanuel Vadot 66c66ec88fSEmmanuel Vadot debug_uart: dw-apb-uart@5000 { 67c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 68c66ec88fSEmmanuel Vadot reg = <0x5000 0x100>; 69c66ec88fSEmmanuel Vadot clock-frequency = <33333000>; 70c66ec88fSEmmanuel Vadot interrupt-parent = <&ictl_intc>; 71c66ec88fSEmmanuel Vadot interrupts = <19 4>; 72c66ec88fSEmmanuel Vadot baud = <115200>; 73c66ec88fSEmmanuel Vadot reg-shift = <2>; 74c66ec88fSEmmanuel Vadot reg-io-width = <4>; 75c66ec88fSEmmanuel Vadot }; 76c66ec88fSEmmanuel Vadot 77c66ec88fSEmmanuel Vadot arcpct0: pct { 78c66ec88fSEmmanuel Vadot compatible = "snps,arc700-pct"; 79c66ec88fSEmmanuel Vadot }; 80c66ec88fSEmmanuel Vadot }; 81c66ec88fSEmmanuel Vadot 82c66ec88fSEmmanuel Vadot /* 83c66ec88fSEmmanuel Vadot * This INTC is actually connected to DW APB GPIO 84c66ec88fSEmmanuel Vadot * which acts as a wire between MB INTC and CPU INTC. 85c66ec88fSEmmanuel Vadot * GPIO INTC is configured in platform init code 86c66ec88fSEmmanuel Vadot * and here we mimic direct connection from MB INTC to 87c66ec88fSEmmanuel Vadot * CPU INTC, thus we set "interrupts = <7>" instead of 88c66ec88fSEmmanuel Vadot * "interrupts = <12>" 89c66ec88fSEmmanuel Vadot * 90c66ec88fSEmmanuel Vadot * This intc actually resides on MB, but we move it here to 91c66ec88fSEmmanuel Vadot * avoid duplicating the MB dtsi file given that IRQ from 92c66ec88fSEmmanuel Vadot * this intc to cpu intc are different for axs101 and axs103 93c66ec88fSEmmanuel Vadot */ 94*6be33864SEmmanuel Vadot mb_intc: interrupt-controller@e0012000 { 95c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 96c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-ictl"; 97c66ec88fSEmmanuel Vadot reg = < 0x0 0xe0012000 0x0 0x200 >; 98c66ec88fSEmmanuel Vadot interrupt-controller; 99c66ec88fSEmmanuel Vadot interrupt-parent = <&core_intc>; 100c66ec88fSEmmanuel Vadot interrupts = < 7 >; 101c66ec88fSEmmanuel Vadot }; 102c66ec88fSEmmanuel Vadot 103c66ec88fSEmmanuel Vadot memory { 104c66ec88fSEmmanuel Vadot device_type = "memory"; 105c66ec88fSEmmanuel Vadot /* CONFIG_LINUX_RAM_BASE needs to match low mem start */ 106c66ec88fSEmmanuel Vadot reg = <0x0 0x80000000 0x0 0x1b000000>; /* (512 - 32) MiB */ 107c66ec88fSEmmanuel Vadot }; 108c66ec88fSEmmanuel Vadot 109c66ec88fSEmmanuel Vadot reserved-memory { 110c66ec88fSEmmanuel Vadot #address-cells = <2>; 111c66ec88fSEmmanuel Vadot #size-cells = <2>; 112c66ec88fSEmmanuel Vadot ranges; 113c66ec88fSEmmanuel Vadot /* 114c66ec88fSEmmanuel Vadot * We just move frame buffer area to the very end of 115c66ec88fSEmmanuel Vadot * available DDR. And even though in case of ARC770 there's 116c66ec88fSEmmanuel Vadot * no strict requirement for a frame-buffer to be in any 117c66ec88fSEmmanuel Vadot * particular location it allows us to use the same 118c66ec88fSEmmanuel Vadot * base board's DT node for ARC PGU as for ARc HS38. 119c66ec88fSEmmanuel Vadot */ 120c66ec88fSEmmanuel Vadot frame_buffer: frame_buffer@9e000000 { 121c66ec88fSEmmanuel Vadot compatible = "shared-dma-pool"; 122c66ec88fSEmmanuel Vadot reg = <0x0 0x9e000000 0x0 0x2000000>; 123c66ec88fSEmmanuel Vadot no-map; 124c66ec88fSEmmanuel Vadot }; 125c66ec88fSEmmanuel Vadot }; 126c66ec88fSEmmanuel Vadot}; 127