256 lines
6.3 KiB
Plaintext
256 lines
6.3 KiB
Plaintext
|
/*
|
||
|
* Abilis Systems TB10X SOC device tree
|
||
|
*
|
||
|
* Copyright (C) Abilis Systems 2013
|
||
|
*
|
||
|
* Author: Christian Ruppert <christian.ruppert@abilis.com>
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with this program; if not, write to the Free Software
|
||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
*/
|
||
|
|
||
|
|
||
|
/ {
|
||
|
compatible = "abilis,arc-tb10x";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
|
||
|
cpus {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
cpu@0 {
|
||
|
device_type = "cpu";
|
||
|
compatible = "snps,arc770d";
|
||
|
reg = <0>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* TIMER0 with interrupt for clockevent */
|
||
|
timer0 {
|
||
|
compatible = "snps,arc-timer";
|
||
|
interrupts = <3>;
|
||
|
interrupt-parent = <&intc>;
|
||
|
clocks = <&cpu_clk>;
|
||
|
};
|
||
|
|
||
|
/* TIMER1 for free running clocksource */
|
||
|
timer1 {
|
||
|
compatible = "snps,arc-timer";
|
||
|
clocks = <&cpu_clk>;
|
||
|
};
|
||
|
|
||
|
soc100 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
device_type = "soc";
|
||
|
ranges = <0xfe000000 0xfe000000 0x02000000
|
||
|
0x000F0000 0x000F0000 0x00010000>;
|
||
|
compatible = "abilis,tb10x", "simple-bus";
|
||
|
|
||
|
pll0: oscillator {
|
||
|
compatible = "fixed-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clock-output-names = "pll0";
|
||
|
};
|
||
|
cpu_clk: clkdiv_cpu {
|
||
|
compatible = "fixed-factor-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clocks = <&pll0>;
|
||
|
clock-output-names = "cpu_clk";
|
||
|
};
|
||
|
ahb_clk: clkdiv_ahb {
|
||
|
compatible = "fixed-factor-clock";
|
||
|
#clock-cells = <0>;
|
||
|
clocks = <&pll0>;
|
||
|
clock-output-names = "ahb_clk";
|
||
|
};
|
||
|
|
||
|
iomux: iomux@FF10601c {
|
||
|
compatible = "abilis,tb10x-iomux";
|
||
|
#gpio-range-cells = <3>;
|
||
|
reg = <0xFF10601c 0x4>;
|
||
|
};
|
||
|
|
||
|
intc: interrupt-controller {
|
||
|
compatible = "snps,arc700-intc";
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <1>;
|
||
|
};
|
||
|
tb10x_ictl: pic@fe002000 {
|
||
|
compatible = "abilis,tb10x-ictl";
|
||
|
reg = <0xFE002000 0x20>;
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
interrupt-parent = <&intc>;
|
||
|
interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
||
|
20 21 22 23 24 25 26 27 28 29 30 31>;
|
||
|
};
|
||
|
|
||
|
uart@FF100000 {
|
||
|
compatible = "snps,dw-apb-uart";
|
||
|
reg = <0xFF100000 0x100>;
|
||
|
clock-frequency = <166666666>;
|
||
|
interrupts = <25 8>;
|
||
|
reg-shift = <2>;
|
||
|
reg-io-width = <4>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
};
|
||
|
ethernet@FE100000 {
|
||
|
compatible = "snps,dwmac-3.70a","snps,dwmac";
|
||
|
reg = <0xFE100000 0x1058>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <6 8>;
|
||
|
interrupt-names = "macirq";
|
||
|
clocks = <&ahb_clk>;
|
||
|
clock-names = "stmmaceth";
|
||
|
};
|
||
|
dma@FE000000 {
|
||
|
compatible = "snps,dma-spear1340";
|
||
|
reg = <0xFE000000 0x400>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <14 8>;
|
||
|
dma-channels = <6>;
|
||
|
dma-requests = <0>;
|
||
|
dma-masters = <1>;
|
||
|
#dma-cells = <3>;
|
||
|
chan_allocation_order = <0>;
|
||
|
chan_priority = <1>;
|
||
|
block_size = <0x7ff>;
|
||
|
data-width = <4>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
clock-names = "hclk";
|
||
|
multi-block = <1 1 1 1 1 1>;
|
||
|
};
|
||
|
|
||
|
i2c0: i2c@FF120000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
compatible = "snps,designware-i2c";
|
||
|
reg = <0xFF120000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <12 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
i2c1: i2c@FF121000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
compatible = "snps,designware-i2c";
|
||
|
reg = <0xFF121000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <12 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
i2c2: i2c@FF122000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
compatible = "snps,designware-i2c";
|
||
|
reg = <0xFF122000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <12 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
i2c3: i2c@FF123000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
compatible = "snps,designware-i2c";
|
||
|
reg = <0xFF123000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <12 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
i2c4: i2c@FF124000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
compatible = "snps,designware-i2c";
|
||
|
reg = <0xFF124000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <12 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
|
||
|
spi0: spi@0xFE010000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
cell-index = <0>;
|
||
|
compatible = "abilis,tb100-spi";
|
||
|
num-cs = <1>;
|
||
|
reg = <0xFE010000 0x20>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <26 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
spi1: spi@0xFE011000 {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
cell-index = <1>;
|
||
|
compatible = "abilis,tb100-spi";
|
||
|
num-cs = <2>;
|
||
|
reg = <0xFE011000 0x20>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <10 8>;
|
||
|
clocks = <&ahb_clk>;
|
||
|
};
|
||
|
|
||
|
tb10x_tsm: tb10x-tsm@ff316000 {
|
||
|
compatible = "abilis,tb100-tsm";
|
||
|
reg = <0xff316000 0x400>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <17 8>;
|
||
|
output-clkdiv = <4>;
|
||
|
global-packet-delay = <0x21>;
|
||
|
port-packet-delay = <0>;
|
||
|
};
|
||
|
tb10x_stream_proc: tb10x-stream-proc {
|
||
|
compatible = "abilis,tb100-streamproc";
|
||
|
reg = <0xfff00000 0x200>,
|
||
|
<0x000f0000 0x10000>,
|
||
|
<0xfff00200 0x105>,
|
||
|
<0xff10600c 0x1>,
|
||
|
<0xfe001018 0x1>;
|
||
|
reg-names = "mbox",
|
||
|
"sp_iccm",
|
||
|
"mbox_irq",
|
||
|
"cpuctrl",
|
||
|
"a6it_int_force";
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <20 2>, <19 2>;
|
||
|
interrupt-names = "cmd_irq", "event_irq";
|
||
|
};
|
||
|
tb10x_mdsc0: tb10x-mdscr@FF300000 {
|
||
|
compatible = "abilis,tb100-mdscr";
|
||
|
reg = <0xFF300000 0x7000>;
|
||
|
tb100-mdscr-manage-tsin;
|
||
|
};
|
||
|
tb10x_mscr0: tb10x-mdscr@FF307000 {
|
||
|
compatible = "abilis,tb100-mdscr";
|
||
|
reg = <0xFF307000 0x7000>;
|
||
|
};
|
||
|
tb10x_scr0: tb10x-mdscr@ff30e000 {
|
||
|
compatible = "abilis,tb100-mdscr";
|
||
|
reg = <0xFF30e000 0x4000>;
|
||
|
tb100-mdscr-manage-tsin;
|
||
|
};
|
||
|
tb10x_scr1: tb10x-mdscr@ff312000 {
|
||
|
compatible = "abilis,tb100-mdscr";
|
||
|
reg = <0xFF312000 0x4000>;
|
||
|
tb100-mdscr-manage-tsin;
|
||
|
};
|
||
|
tb10x_wfb: tb10x-wfb@ff319000 {
|
||
|
compatible = "abilis,tb100-wfb";
|
||
|
reg = <0xff319000 0x1000>;
|
||
|
interrupt-parent = <&tb10x_ictl>;
|
||
|
interrupts = <16 8>;
|
||
|
};
|
||
|
};
|
||
|
};
|