1/* 2 * Abilis Systems TB10X SOC device tree 3 * 4 * Copyright (C) Abilis Systems 2013 5 * 6 * Author: Christian Ruppert <christian.ruppert@abilis.com> 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License version 2 as 10 * published by the Free Software Foundation. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22 23/ { 24 compatible = "abilis,arc-tb10x"; 25 #address-cells = <1>; 26 #size-cells = <1>; 27 28 cpus { 29 #address-cells = <1>; 30 #size-cells = <0>; 31 cpu@0 { 32 device_type = "cpu"; 33 compatible = "snps,arc770d"; 34 reg = <0>; 35 }; 36 }; 37 38 /* TIMER0 with interrupt for clockevent */ 39 timer0 { 40 compatible = "snps,arc-timer"; 41 interrupts = <3>; 42 interrupt-parent = <&intc>; 43 clocks = <&cpu_clk>; 44 }; 45 46 /* TIMER1 for free running clocksource */ 47 timer1 { 48 compatible = "snps,arc-timer"; 49 clocks = <&cpu_clk>; 50 }; 51 52 soc100 { 53 #address-cells = <1>; 54 #size-cells = <1>; 55 device_type = "soc"; 56 ranges = <0xfe000000 0xfe000000 0x02000000 57 0x000f0000 0x000f0000 0x00010000>; 58 compatible = "abilis,tb10x", "simple-bus"; 59 60 pll0: oscillator { 61 compatible = "fixed-clock"; 62 #clock-cells = <0>; 63 clock-output-names = "pll0"; 64 }; 65 cpu_clk: clkdiv_cpu { 66 compatible = "fixed-factor-clock"; 67 #clock-cells = <0>; 68 clocks = <&pll0>; 69 clock-output-names = "cpu_clk"; 70 }; 71 ahb_clk: clkdiv_ahb { 72 compatible = "fixed-factor-clock"; 73 #clock-cells = <0>; 74 clocks = <&pll0>; 75 clock-output-names = "ahb_clk"; 76 }; 77 78 iomux: iomux@ff10601c { 79 compatible = "abilis,tb10x-iomux"; 80 #gpio-range-cells = <3>; 81 reg = <0xff10601c 0x4>; 82 }; 83 84 intc: interrupt-controller { 85 compatible = "snps,arc700-intc"; 86 interrupt-controller; 87 #interrupt-cells = <1>; 88 }; 89 tb10x_ictl: pic@fe002000 { 90 compatible = "abilis,tb10x-ictl"; 91 reg = <0xfe002000 0x20>; 92 interrupt-controller; 93 #interrupt-cells = <2>; 94 interrupt-parent = <&intc>; 95 interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 96 20 21 22 23 24 25 26 27 28 29 30 31>; 97 }; 98 99 uart@ff100000 { 100 compatible = "snps,dw-apb-uart"; 101 reg = <0xff100000 0x100>; 102 clock-frequency = <166666666>; 103 interrupts = <25 8>; 104 reg-shift = <2>; 105 reg-io-width = <4>; 106 interrupt-parent = <&tb10x_ictl>; 107 }; 108 ethernet@fe100000 { 109 compatible = "snps,dwmac-3.70a","snps,dwmac"; 110 reg = <0xfe100000 0x1058>; 111 interrupt-parent = <&tb10x_ictl>; 112 interrupts = <6 8>; 113 interrupt-names = "macirq"; 114 clocks = <&ahb_clk>; 115 clock-names = "stmmaceth"; 116 }; 117 dma@fe000000 { 118 compatible = "snps,dma-spear1340"; 119 reg = <0xfe000000 0x400>; 120 interrupt-parent = <&tb10x_ictl>; 121 interrupts = <14 8>; 122 dma-channels = <6>; 123 dma-requests = <0>; 124 dma-masters = <1>; 125 #dma-cells = <3>; 126 chan_allocation_order = <0>; 127 chan_priority = <1>; 128 block_size = <0x7ff>; 129 data-width = <4>; 130 clocks = <&ahb_clk>; 131 clock-names = "hclk"; 132 multi-block = <1 1 1 1 1 1>; 133 }; 134 135 i2c0: i2c@ff120000 { 136 #address-cells = <1>; 137 #size-cells = <0>; 138 compatible = "snps,designware-i2c"; 139 reg = <0xff120000 0x1000>; 140 interrupt-parent = <&tb10x_ictl>; 141 interrupts = <12 8>; 142 clocks = <&ahb_clk>; 143 }; 144 i2c1: i2c@ff121000 { 145 #address-cells = <1>; 146 #size-cells = <0>; 147 compatible = "snps,designware-i2c"; 148 reg = <0xff121000 0x1000>; 149 interrupt-parent = <&tb10x_ictl>; 150 interrupts = <12 8>; 151 clocks = <&ahb_clk>; 152 }; 153 i2c2: i2c@ff122000 { 154 #address-cells = <1>; 155 #size-cells = <0>; 156 compatible = "snps,designware-i2c"; 157 reg = <0xff122000 0x1000>; 158 interrupt-parent = <&tb10x_ictl>; 159 interrupts = <12 8>; 160 clocks = <&ahb_clk>; 161 }; 162 i2c3: i2c@ff123000 { 163 #address-cells = <1>; 164 #size-cells = <0>; 165 compatible = "snps,designware-i2c"; 166 reg = <0xff123000 0x1000>; 167 interrupt-parent = <&tb10x_ictl>; 168 interrupts = <12 8>; 169 clocks = <&ahb_clk>; 170 }; 171 i2c4: i2c@ff124000 { 172 #address-cells = <1>; 173 #size-cells = <0>; 174 compatible = "snps,designware-i2c"; 175 reg = <0xff124000 0x1000>; 176 interrupt-parent = <&tb10x_ictl>; 177 interrupts = <12 8>; 178 clocks = <&ahb_clk>; 179 }; 180 181 spi0: spi@fe010000 { 182 #address-cells = <1>; 183 #size-cells = <0>; 184 cell-index = <0>; 185 compatible = "abilis,tb100-spi"; 186 num-cs = <1>; 187 reg = <0xfe010000 0x20>; 188 interrupt-parent = <&tb10x_ictl>; 189 interrupts = <26 8>; 190 clocks = <&ahb_clk>; 191 }; 192 spi1: spi@fe011000 { 193 #address-cells = <1>; 194 #size-cells = <0>; 195 cell-index = <1>; 196 compatible = "abilis,tb100-spi"; 197 num-cs = <2>; 198 reg = <0xfe011000 0x20>; 199 interrupt-parent = <&tb10x_ictl>; 200 interrupts = <10 8>; 201 clocks = <&ahb_clk>; 202 }; 203 204 tb10x_tsm: tb10x-tsm@ff316000 { 205 compatible = "abilis,tb100-tsm"; 206 reg = <0xff316000 0x400>; 207 interrupt-parent = <&tb10x_ictl>; 208 interrupts = <17 8>; 209 output-clkdiv = <4>; 210 global-packet-delay = <0x21>; 211 port-packet-delay = <0>; 212 }; 213 tb10x_stream_proc: tb10x-stream-proc { 214 compatible = "abilis,tb100-streamproc"; 215 reg = <0xfff00000 0x200>, 216 <0x000f0000 0x10000>, 217 <0xfff00200 0x105>, 218 <0xff10600c 0x1>, 219 <0xfe001018 0x1>; 220 reg-names = "mbox", 221 "sp_iccm", 222 "mbox_irq", 223 "cpuctrl", 224 "a6it_int_force"; 225 interrupt-parent = <&tb10x_ictl>; 226 interrupts = <20 2>, <19 2>; 227 interrupt-names = "cmd_irq", "event_irq"; 228 }; 229 tb10x_mdsc0: tb10x-mdscr@ff300000 { 230 compatible = "abilis,tb100-mdscr"; 231 reg = <0xff300000 0x7000>; 232 tb100-mdscr-manage-tsin; 233 }; 234 tb10x_mscr0: tb10x-mdscr@ff307000 { 235 compatible = "abilis,tb100-mdscr"; 236 reg = <0xff307000 0x7000>; 237 }; 238 tb10x_scr0: tb10x-mdscr@ff30e000 { 239 compatible = "abilis,tb100-mdscr"; 240 reg = <0xff30e000 0x4000>; 241 tb100-mdscr-manage-tsin; 242 }; 243 tb10x_scr1: tb10x-mdscr@ff312000 { 244 compatible = "abilis,tb100-mdscr"; 245 reg = <0xff312000 0x4000>; 246 tb100-mdscr-manage-tsin; 247 }; 248 tb10x_wfb: tb10x-wfb@ff319000 { 249 compatible = "abilis,tb100-wfb"; 250 reg = <0xff319000 0x1000>; 251 interrupt-parent = <&tb10x_ictl>; 252 interrupts = <16 8>; 253 }; 254 }; 255}; 256