18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2013-15 Synopsys, Inc. (www.synopsys.com)
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci/*
78c2ecf20Sopenharmony_ci * Device tree for AXC001 770D/EM6/AS221 CPU card
88c2ecf20Sopenharmony_ci * Note that this file only supports the 770D CPU
98c2ecf20Sopenharmony_ci */
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/include/ "skeleton.dtsi"
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/ {
148c2ecf20Sopenharmony_ci	compatible = "snps,arc";
158c2ecf20Sopenharmony_ci	#address-cells = <2>;
168c2ecf20Sopenharmony_ci	#size-cells = <2>;
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	cpu_card {
198c2ecf20Sopenharmony_ci		compatible = "simple-bus";
208c2ecf20Sopenharmony_ci		#address-cells = <1>;
218c2ecf20Sopenharmony_ci		#size-cells = <1>;
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci		ranges = <0x00000000 0x0 0xf0000000 0x10000000>;
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci		core_clk: core_clk {
268c2ecf20Sopenharmony_ci			#clock-cells = <0>;
278c2ecf20Sopenharmony_ci			compatible = "fixed-clock";
288c2ecf20Sopenharmony_ci			clock-frequency = <750000000>;
298c2ecf20Sopenharmony_ci		};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci		input_clk: input-clk {
328c2ecf20Sopenharmony_ci			#clock-cells = <0>;
338c2ecf20Sopenharmony_ci			compatible = "fixed-clock";
348c2ecf20Sopenharmony_ci			clock-frequency = <33333333>;
358c2ecf20Sopenharmony_ci		};
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci		core_intc: arc700-intc@cpu {
388c2ecf20Sopenharmony_ci			compatible = "snps,arc700-intc";
398c2ecf20Sopenharmony_ci			interrupt-controller;
408c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
418c2ecf20Sopenharmony_ci		};
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci		/*
448c2ecf20Sopenharmony_ci		 * this GPIO block ORs all interrupts on CPU card (creg,..)
458c2ecf20Sopenharmony_ci		 * to uplink only 1 IRQ to ARC core intc
468c2ecf20Sopenharmony_ci		 */
478c2ecf20Sopenharmony_ci		dw-apb-gpio@2000 {
488c2ecf20Sopenharmony_ci			compatible = "snps,dw-apb-gpio";
498c2ecf20Sopenharmony_ci			reg = < 0x2000 0x80 >;
508c2ecf20Sopenharmony_ci			#address-cells = <1>;
518c2ecf20Sopenharmony_ci			#size-cells = <0>;
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci			ictl_intc: gpio-controller@0 {
548c2ecf20Sopenharmony_ci				compatible = "snps,dw-apb-gpio-port";
558c2ecf20Sopenharmony_ci				gpio-controller;
568c2ecf20Sopenharmony_ci				#gpio-cells = <2>;
578c2ecf20Sopenharmony_ci				snps,nr-gpios = <30>;
588c2ecf20Sopenharmony_ci				reg = <0>;
598c2ecf20Sopenharmony_ci				interrupt-controller;
608c2ecf20Sopenharmony_ci				#interrupt-cells = <2>;
618c2ecf20Sopenharmony_ci				interrupt-parent = <&core_intc>;
628c2ecf20Sopenharmony_ci				interrupts = <15>;
638c2ecf20Sopenharmony_ci			};
648c2ecf20Sopenharmony_ci		};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci		debug_uart: dw-apb-uart@5000 {
678c2ecf20Sopenharmony_ci			compatible = "snps,dw-apb-uart";
688c2ecf20Sopenharmony_ci			reg = <0x5000 0x100>;
698c2ecf20Sopenharmony_ci			clock-frequency = <33333000>;
708c2ecf20Sopenharmony_ci			interrupt-parent = <&ictl_intc>;
718c2ecf20Sopenharmony_ci			interrupts = <19 4>;
728c2ecf20Sopenharmony_ci			baud = <115200>;
738c2ecf20Sopenharmony_ci			reg-shift = <2>;
748c2ecf20Sopenharmony_ci			reg-io-width = <4>;
758c2ecf20Sopenharmony_ci		};
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci		arcpct0: pct {
788c2ecf20Sopenharmony_ci			compatible = "snps,arc700-pct";
798c2ecf20Sopenharmony_ci		};
808c2ecf20Sopenharmony_ci	};
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ci	/*
838c2ecf20Sopenharmony_ci	 * This INTC is actually connected to DW APB GPIO
848c2ecf20Sopenharmony_ci	 * which acts as a wire between MB INTC and CPU INTC.
858c2ecf20Sopenharmony_ci	 * GPIO INTC is configured in platform init code
868c2ecf20Sopenharmony_ci	 * and here we mimic direct connection from MB INTC to
878c2ecf20Sopenharmony_ci	 * CPU INTC, thus we set "interrupts = <7>" instead of
888c2ecf20Sopenharmony_ci	 * "interrupts = <12>"
898c2ecf20Sopenharmony_ci	 *
908c2ecf20Sopenharmony_ci	 * This intc actually resides on MB, but we move it here to
918c2ecf20Sopenharmony_ci	 * avoid duplicating the MB dtsi file given that IRQ from
928c2ecf20Sopenharmony_ci	 * this intc to cpu intc are different for axs101 and axs103
938c2ecf20Sopenharmony_ci	 */
948c2ecf20Sopenharmony_ci	mb_intc: interrupt-controller@e0012000 {
958c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
968c2ecf20Sopenharmony_ci		compatible = "snps,dw-apb-ictl";
978c2ecf20Sopenharmony_ci		reg = < 0x0 0xe0012000 0x0 0x200 >;
988c2ecf20Sopenharmony_ci		interrupt-controller;
998c2ecf20Sopenharmony_ci		interrupt-parent = <&core_intc>;
1008c2ecf20Sopenharmony_ci		interrupts = < 7 >;
1018c2ecf20Sopenharmony_ci	};
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci	memory {
1048c2ecf20Sopenharmony_ci		device_type = "memory";
1058c2ecf20Sopenharmony_ci		/* CONFIG_LINUX_RAM_BASE needs to match low mem start */
1068c2ecf20Sopenharmony_ci		reg = <0x0 0x80000000 0x0 0x1b000000>;	/* (512 - 32) MiB */
1078c2ecf20Sopenharmony_ci	};
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	reserved-memory {
1108c2ecf20Sopenharmony_ci		#address-cells = <2>;
1118c2ecf20Sopenharmony_ci		#size-cells = <2>;
1128c2ecf20Sopenharmony_ci		ranges;
1138c2ecf20Sopenharmony_ci		/*
1148c2ecf20Sopenharmony_ci		 * We just move frame buffer area to the very end of
1158c2ecf20Sopenharmony_ci		 * available DDR. And even though in case of ARC770 there's
1168c2ecf20Sopenharmony_ci		 * no strict requirement for a frame-buffer to be in any
1178c2ecf20Sopenharmony_ci		 * particular location it allows us to use the same
1188c2ecf20Sopenharmony_ci		 * base board's DT node for ARC PGU as for ARc HS38.
1198c2ecf20Sopenharmony_ci		 */
1208c2ecf20Sopenharmony_ci		frame_buffer: frame_buffer@9e000000 {
1218c2ecf20Sopenharmony_ci			compatible = "shared-dma-pool";
1228c2ecf20Sopenharmony_ci			reg = <0x0 0x9e000000 0x0 0x2000000>;
1238c2ecf20Sopenharmony_ci			no-map;
1248c2ecf20Sopenharmony_ci		};
1258c2ecf20Sopenharmony_ci	};
1268c2ecf20Sopenharmony_ci};
127