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