xref: /freebsd/sys/contrib/device-tree/src/arc/axc001.dtsi (revision 6be3386466ab79a84b48429ae66244f21526d3df)
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