18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Abilis Systems TB10X SOC device tree
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) Abilis Systems 2013
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Author: Christian Ruppert <christian.ruppert@abilis.com>
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/ {
128c2ecf20Sopenharmony_ci	compatible		= "abilis,arc-tb10x";
138c2ecf20Sopenharmony_ci	#address-cells		= <1>;
148c2ecf20Sopenharmony_ci	#size-cells		= <1>;
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	cpus {
178c2ecf20Sopenharmony_ci		#address-cells = <1>;
188c2ecf20Sopenharmony_ci		#size-cells = <0>;
198c2ecf20Sopenharmony_ci		cpu@0 {
208c2ecf20Sopenharmony_ci			device_type = "cpu";
218c2ecf20Sopenharmony_ci			compatible = "snps,arc770d";
228c2ecf20Sopenharmony_ci			reg = <0>;
238c2ecf20Sopenharmony_ci		};
248c2ecf20Sopenharmony_ci	};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	/* TIMER0 with interrupt for clockevent */
278c2ecf20Sopenharmony_ci	timer0 {
288c2ecf20Sopenharmony_ci		compatible = "snps,arc-timer";
298c2ecf20Sopenharmony_ci		interrupts = <3>;
308c2ecf20Sopenharmony_ci		interrupt-parent = <&intc>;
318c2ecf20Sopenharmony_ci		clocks = <&cpu_clk>;
328c2ecf20Sopenharmony_ci	};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	/* TIMER1 for free running clocksource */
358c2ecf20Sopenharmony_ci	timer1 {
368c2ecf20Sopenharmony_ci		compatible = "snps,arc-timer";
378c2ecf20Sopenharmony_ci		clocks = <&cpu_clk>;
388c2ecf20Sopenharmony_ci	};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	soc100 {
418c2ecf20Sopenharmony_ci		#address-cells	= <1>;
428c2ecf20Sopenharmony_ci		#size-cells	= <1>;
438c2ecf20Sopenharmony_ci		device_type	= "soc";
448c2ecf20Sopenharmony_ci		ranges		= <0xfe000000 0xfe000000 0x02000000
458c2ecf20Sopenharmony_ci				0x000f0000 0x000f0000 0x00010000>;
468c2ecf20Sopenharmony_ci		compatible	= "abilis,tb10x", "simple-bus";
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci		pll0: oscillator {
498c2ecf20Sopenharmony_ci			compatible = "fixed-clock";
508c2ecf20Sopenharmony_ci			#clock-cells = <0>;
518c2ecf20Sopenharmony_ci			clock-output-names = "pll0";
528c2ecf20Sopenharmony_ci		};
538c2ecf20Sopenharmony_ci		cpu_clk: clkdiv_cpu {
548c2ecf20Sopenharmony_ci			compatible = "fixed-factor-clock";
558c2ecf20Sopenharmony_ci			#clock-cells = <0>;
568c2ecf20Sopenharmony_ci			clocks = <&pll0>;
578c2ecf20Sopenharmony_ci			clock-output-names = "cpu_clk";
588c2ecf20Sopenharmony_ci		};
598c2ecf20Sopenharmony_ci		ahb_clk: clkdiv_ahb {
608c2ecf20Sopenharmony_ci			compatible = "fixed-factor-clock";
618c2ecf20Sopenharmony_ci			#clock-cells = <0>;
628c2ecf20Sopenharmony_ci			clocks = <&pll0>;
638c2ecf20Sopenharmony_ci			clock-output-names = "ahb_clk";
648c2ecf20Sopenharmony_ci		};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci		iomux: iomux@ff10601c {
678c2ecf20Sopenharmony_ci			compatible = "abilis,tb10x-iomux";
688c2ecf20Sopenharmony_ci			#gpio-range-cells = <3>;
698c2ecf20Sopenharmony_ci			reg = <0xff10601c 0x4>;
708c2ecf20Sopenharmony_ci		};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci		intc: interrupt-controller {
738c2ecf20Sopenharmony_ci			compatible = "snps,arc700-intc";
748c2ecf20Sopenharmony_ci			interrupt-controller;
758c2ecf20Sopenharmony_ci			#interrupt-cells = <1>;
768c2ecf20Sopenharmony_ci		};
778c2ecf20Sopenharmony_ci		tb10x_ictl: pic@fe002000 {
788c2ecf20Sopenharmony_ci			compatible = "abilis,tb10x-ictl";
798c2ecf20Sopenharmony_ci			reg = <0xfe002000 0x20>;
808c2ecf20Sopenharmony_ci			interrupt-controller;
818c2ecf20Sopenharmony_ci			#interrupt-cells = <2>;
828c2ecf20Sopenharmony_ci			interrupt-parent = <&intc>;
838c2ecf20Sopenharmony_ci			interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
848c2ecf20Sopenharmony_ci					20 21 22 23 24 25 26 27 28 29 30 31>;
858c2ecf20Sopenharmony_ci		};
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci		uart@ff100000 {
888c2ecf20Sopenharmony_ci			compatible = "snps,dw-apb-uart";
898c2ecf20Sopenharmony_ci			reg = <0xff100000 0x100>;
908c2ecf20Sopenharmony_ci			clock-frequency = <166666666>;
918c2ecf20Sopenharmony_ci			interrupts = <25 8>;
928c2ecf20Sopenharmony_ci			reg-shift = <2>;
938c2ecf20Sopenharmony_ci			reg-io-width = <4>;
948c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
958c2ecf20Sopenharmony_ci		};
968c2ecf20Sopenharmony_ci		ethernet@fe100000 {
978c2ecf20Sopenharmony_ci			compatible = "snps,dwmac-3.70a","snps,dwmac";
988c2ecf20Sopenharmony_ci			reg = <0xfe100000 0x1058>;
998c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1008c2ecf20Sopenharmony_ci			interrupts = <6 8>;
1018c2ecf20Sopenharmony_ci			interrupt-names = "macirq";
1028c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1038c2ecf20Sopenharmony_ci			clock-names = "stmmaceth";
1048c2ecf20Sopenharmony_ci		};
1058c2ecf20Sopenharmony_ci		dma@fe000000 {
1068c2ecf20Sopenharmony_ci			compatible = "snps,dma-spear1340";
1078c2ecf20Sopenharmony_ci			reg = <0xfe000000 0x400>;
1088c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1098c2ecf20Sopenharmony_ci			interrupts = <14 8>;
1108c2ecf20Sopenharmony_ci			dma-channels = <6>;
1118c2ecf20Sopenharmony_ci			dma-requests = <0>;
1128c2ecf20Sopenharmony_ci			dma-masters = <1>;
1138c2ecf20Sopenharmony_ci			#dma-cells = <3>;
1148c2ecf20Sopenharmony_ci			chan_allocation_order = <0>;
1158c2ecf20Sopenharmony_ci			chan_priority = <1>;
1168c2ecf20Sopenharmony_ci			block_size = <0x7ff>;
1178c2ecf20Sopenharmony_ci			data-width = <4>;
1188c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1198c2ecf20Sopenharmony_ci			clock-names = "hclk";
1208c2ecf20Sopenharmony_ci			multi-block = <1 1 1 1 1 1>;
1218c2ecf20Sopenharmony_ci		};
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci		i2c0: i2c@ff120000 {
1248c2ecf20Sopenharmony_ci			#address-cells = <1>;
1258c2ecf20Sopenharmony_ci			#size-cells = <0>;
1268c2ecf20Sopenharmony_ci			compatible = "snps,designware-i2c";
1278c2ecf20Sopenharmony_ci			reg = <0xff120000 0x1000>;
1288c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1298c2ecf20Sopenharmony_ci			interrupts = <12 8>;
1308c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1318c2ecf20Sopenharmony_ci		};
1328c2ecf20Sopenharmony_ci		i2c1: i2c@ff121000 {
1338c2ecf20Sopenharmony_ci			#address-cells = <1>;
1348c2ecf20Sopenharmony_ci			#size-cells = <0>;
1358c2ecf20Sopenharmony_ci			compatible = "snps,designware-i2c";
1368c2ecf20Sopenharmony_ci			reg = <0xff121000 0x1000>;
1378c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1388c2ecf20Sopenharmony_ci			interrupts = <12 8>;
1398c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1408c2ecf20Sopenharmony_ci		};
1418c2ecf20Sopenharmony_ci		i2c2: i2c@ff122000 {
1428c2ecf20Sopenharmony_ci			#address-cells = <1>;
1438c2ecf20Sopenharmony_ci			#size-cells = <0>;
1448c2ecf20Sopenharmony_ci			compatible = "snps,designware-i2c";
1458c2ecf20Sopenharmony_ci			reg = <0xff122000 0x1000>;
1468c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1478c2ecf20Sopenharmony_ci			interrupts = <12 8>;
1488c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1498c2ecf20Sopenharmony_ci		};
1508c2ecf20Sopenharmony_ci		i2c3: i2c@ff123000 {
1518c2ecf20Sopenharmony_ci			#address-cells = <1>;
1528c2ecf20Sopenharmony_ci			#size-cells = <0>;
1538c2ecf20Sopenharmony_ci			compatible = "snps,designware-i2c";
1548c2ecf20Sopenharmony_ci			reg = <0xff123000 0x1000>;
1558c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1568c2ecf20Sopenharmony_ci			interrupts = <12 8>;
1578c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1588c2ecf20Sopenharmony_ci		};
1598c2ecf20Sopenharmony_ci		i2c4: i2c@ff124000 {
1608c2ecf20Sopenharmony_ci			#address-cells = <1>;
1618c2ecf20Sopenharmony_ci			#size-cells = <0>;
1628c2ecf20Sopenharmony_ci			compatible = "snps,designware-i2c";
1638c2ecf20Sopenharmony_ci			reg = <0xff124000 0x1000>;
1648c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1658c2ecf20Sopenharmony_ci			interrupts = <12 8>;
1668c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1678c2ecf20Sopenharmony_ci		};
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci		spi0: spi@fe010000 {
1708c2ecf20Sopenharmony_ci			#address-cells = <1>;
1718c2ecf20Sopenharmony_ci			#size-cells = <0>;
1728c2ecf20Sopenharmony_ci			cell-index = <0>;
1738c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-spi";
1748c2ecf20Sopenharmony_ci			num-cs = <1>;
1758c2ecf20Sopenharmony_ci			reg = <0xfe010000 0x20>;
1768c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1778c2ecf20Sopenharmony_ci			interrupts = <26 8>;
1788c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1798c2ecf20Sopenharmony_ci		};
1808c2ecf20Sopenharmony_ci		spi1: spi@fe011000 {
1818c2ecf20Sopenharmony_ci			#address-cells = <1>;
1828c2ecf20Sopenharmony_ci			#size-cells = <0>;
1838c2ecf20Sopenharmony_ci			cell-index = <1>;
1848c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-spi";
1858c2ecf20Sopenharmony_ci			num-cs = <2>;
1868c2ecf20Sopenharmony_ci			reg = <0xfe011000 0x20>;
1878c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1888c2ecf20Sopenharmony_ci			interrupts = <10 8>;
1898c2ecf20Sopenharmony_ci			clocks = <&ahb_clk>;
1908c2ecf20Sopenharmony_ci		};
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci		tb10x_tsm: tb10x-tsm@ff316000 {
1938c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-tsm";
1948c2ecf20Sopenharmony_ci			reg = <0xff316000 0x400>;
1958c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
1968c2ecf20Sopenharmony_ci			interrupts = <17 8>;
1978c2ecf20Sopenharmony_ci			output-clkdiv = <4>;
1988c2ecf20Sopenharmony_ci			global-packet-delay = <0x21>;
1998c2ecf20Sopenharmony_ci			port-packet-delay = <0>;
2008c2ecf20Sopenharmony_ci		};
2018c2ecf20Sopenharmony_ci		tb10x_stream_proc: tb10x-stream-proc {
2028c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-streamproc";
2038c2ecf20Sopenharmony_ci			reg =   <0xfff00000 0x200>,
2048c2ecf20Sopenharmony_ci				<0x000f0000 0x10000>,
2058c2ecf20Sopenharmony_ci				<0xfff00200 0x105>,
2068c2ecf20Sopenharmony_ci				<0xff10600c 0x1>,
2078c2ecf20Sopenharmony_ci				<0xfe001018 0x1>;
2088c2ecf20Sopenharmony_ci			reg-names =     "mbox",
2098c2ecf20Sopenharmony_ci					"sp_iccm",
2108c2ecf20Sopenharmony_ci					"mbox_irq",
2118c2ecf20Sopenharmony_ci					"cpuctrl",
2128c2ecf20Sopenharmony_ci					"a6it_int_force";
2138c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
2148c2ecf20Sopenharmony_ci			interrupts = <20 2>, <19 2>;
2158c2ecf20Sopenharmony_ci			interrupt-names = "cmd_irq", "event_irq";
2168c2ecf20Sopenharmony_ci		};
2178c2ecf20Sopenharmony_ci		tb10x_mdsc0: tb10x-mdscr@ff300000 {
2188c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-mdscr";
2198c2ecf20Sopenharmony_ci			reg = <0xff300000 0x7000>;
2208c2ecf20Sopenharmony_ci			tb100-mdscr-manage-tsin;
2218c2ecf20Sopenharmony_ci		};
2228c2ecf20Sopenharmony_ci		tb10x_mscr0: tb10x-mdscr@ff307000 {
2238c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-mdscr";
2248c2ecf20Sopenharmony_ci			reg = <0xff307000 0x7000>;
2258c2ecf20Sopenharmony_ci		};
2268c2ecf20Sopenharmony_ci		tb10x_scr0: tb10x-mdscr@ff30e000 {
2278c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-mdscr";
2288c2ecf20Sopenharmony_ci			reg = <0xff30e000 0x4000>;
2298c2ecf20Sopenharmony_ci			tb100-mdscr-manage-tsin;
2308c2ecf20Sopenharmony_ci		};
2318c2ecf20Sopenharmony_ci		tb10x_scr1: tb10x-mdscr@ff312000 {
2328c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-mdscr";
2338c2ecf20Sopenharmony_ci			reg = <0xff312000 0x4000>;
2348c2ecf20Sopenharmony_ci			tb100-mdscr-manage-tsin;
2358c2ecf20Sopenharmony_ci		};
2368c2ecf20Sopenharmony_ci		tb10x_wfb: tb10x-wfb@ff319000 {
2378c2ecf20Sopenharmony_ci			compatible = "abilis,tb100-wfb";
2388c2ecf20Sopenharmony_ci			reg = <0xff319000 0x1000>;
2398c2ecf20Sopenharmony_ci			interrupt-parent = <&tb10x_ictl>;
2408c2ecf20Sopenharmony_ci			interrupts = <16 8>;
2418c2ecf20Sopenharmony_ci		};
2428c2ecf20Sopenharmony_ci	};
2438c2ecf20Sopenharmony_ci};
244