mirror of
https://github.com/torvalds/linux.git
synced 2024-12-19 17:41:29 +00:00
bd2c6636cc
Several versions of DW DMAC have multi block transfers hardware support. Hardware support of multi block transfers is disabled by default if we use DT to configure DMAC and software emulation of multi block transfers used instead. Add multi-block property, so it is possible to enable hardware multi block transfers (if present) via DT. Switch from per device is_nollp variable to multi_block array to be able enable/disable multi block transfers separately per channel. Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
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>;
|
|
};
|
|
};
|
|
};
|