1 /* 1 /* 2 * Device Tree Source for ACube Sam440ep base 2 * Device Tree Source for ACube Sam440ep based off bamboo.dts code 3 * original copyrights below 3 * original copyrights below 4 * 4 * 5 * Copyright (c) 2006, 2007 IBM Corp. 5 * Copyright (c) 2006, 2007 IBM Corp. 6 * Josh Boyer <jwboyer@linux.vnet.ibm.com> 6 * Josh Boyer <jwboyer@linux.vnet.ibm.com> 7 * 7 * 8 * Modified from bamboo.dts for sam440ep: 8 * Modified from bamboo.dts for sam440ep: 9 * Copyright 2008 Giuseppe Coviello <gicoviello 9 * Copyright 2008 Giuseppe Coviello <gicoviello@gmail.com> 10 * 10 * 11 * This file is licensed under the terms of th 11 * This file is licensed under the terms of the GNU General Public 12 * License version 2. This program is license 12 * License version 2. This program is licensed "as is" without 13 * any warranty of any kind, whether express o 13 * any warranty of any kind, whether express or implied. 14 */ 14 */ 15 15 16 /dts-v1/; 16 /dts-v1/; 17 17 18 / { 18 / { 19 #address-cells = <2>; 19 #address-cells = <2>; 20 #size-cells = <1>; 20 #size-cells = <1>; 21 model = "acube,sam440ep"; 21 model = "acube,sam440ep"; 22 compatible = "acube,sam440ep"; 22 compatible = "acube,sam440ep"; 23 23 24 aliases { 24 aliases { 25 ethernet0 = &EMAC0; 25 ethernet0 = &EMAC0; 26 ethernet1 = &EMAC1; 26 ethernet1 = &EMAC1; 27 serial0 = &UART0; 27 serial0 = &UART0; 28 serial1 = &UART1; 28 serial1 = &UART1; 29 serial2 = &UART2; 29 serial2 = &UART2; 30 serial3 = &UART3; 30 serial3 = &UART3; 31 }; 31 }; 32 32 33 cpus { 33 cpus { 34 #address-cells = <1>; 34 #address-cells = <1>; 35 #size-cells = <0>; 35 #size-cells = <0>; 36 36 37 cpu@0 { 37 cpu@0 { 38 device_type = "cpu"; 38 device_type = "cpu"; 39 model = "PowerPC,440EP 39 model = "PowerPC,440EP"; 40 reg = <0>; 40 reg = <0>; 41 clock-frequency = <0>; 41 clock-frequency = <0>; /* Filled in by zImage */ 42 timebase-frequency = < 42 timebase-frequency = <0>; /* Filled in by zImage */ 43 i-cache-line-size = <3 43 i-cache-line-size = <32>; 44 d-cache-line-size = <3 44 d-cache-line-size = <32>; 45 i-cache-size = <32768> 45 i-cache-size = <32768>; 46 d-cache-size = <32768> 46 d-cache-size = <32768>; 47 dcr-controller; 47 dcr-controller; 48 dcr-access-method = "n 48 dcr-access-method = "native"; 49 }; 49 }; 50 }; 50 }; 51 51 52 memory { 52 memory { 53 device_type = "memory"; 53 device_type = "memory"; 54 reg = <0 0 0>; /* Filled in by 54 reg = <0 0 0>; /* Filled in by zImage */ 55 }; 55 }; 56 56 57 UIC0: interrupt-controller0 { 57 UIC0: interrupt-controller0 { 58 compatible = "ibm,uic-440ep"," 58 compatible = "ibm,uic-440ep","ibm,uic"; 59 interrupt-controller; 59 interrupt-controller; 60 cell-index = <0>; 60 cell-index = <0>; 61 dcr-reg = <0x0c0 9>; 61 dcr-reg = <0x0c0 9>; 62 #address-cells = <0>; 62 #address-cells = <0>; 63 #size-cells = <0>; 63 #size-cells = <0>; 64 #interrupt-cells = <2>; 64 #interrupt-cells = <2>; 65 }; 65 }; 66 66 67 UIC1: interrupt-controller1 { 67 UIC1: interrupt-controller1 { 68 compatible = "ibm,uic-440ep"," 68 compatible = "ibm,uic-440ep","ibm,uic"; 69 interrupt-controller; 69 interrupt-controller; 70 cell-index = <1>; 70 cell-index = <1>; 71 dcr-reg = <0x0d0 9>; 71 dcr-reg = <0x0d0 9>; 72 #address-cells = <0>; 72 #address-cells = <0>; 73 #size-cells = <0>; 73 #size-cells = <0>; 74 #interrupt-cells = <2>; 74 #interrupt-cells = <2>; 75 interrupts = <0x1e 4 0x1f 4>; 75 interrupts = <0x1e 4 0x1f 4>; /* cascade */ 76 interrupt-parent = <&UIC0>; 76 interrupt-parent = <&UIC0>; 77 }; 77 }; 78 78 79 SDR0: sdr { 79 SDR0: sdr { 80 compatible = "ibm,sdr-440ep"; 80 compatible = "ibm,sdr-440ep"; 81 dcr-reg = <0x00e 2>; 81 dcr-reg = <0x00e 2>; 82 }; 82 }; 83 83 84 CPR0: cpr { 84 CPR0: cpr { 85 compatible = "ibm,cpr-440ep"; 85 compatible = "ibm,cpr-440ep"; 86 dcr-reg = <0x00c 2>; 86 dcr-reg = <0x00c 2>; 87 }; 87 }; 88 88 89 plb { 89 plb { 90 compatible = "ibm,plb-440ep", 90 compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4"; 91 #address-cells = <2>; 91 #address-cells = <2>; 92 #size-cells = <1>; 92 #size-cells = <1>; 93 ranges; 93 ranges; 94 clock-frequency = <0>; /* Fill 94 clock-frequency = <0>; /* Filled in by zImage */ 95 95 96 SDRAM0: sdram { 96 SDRAM0: sdram { 97 compatible = "ibm,sdra 97 compatible = "ibm,sdram-440ep", "ibm,sdram-405gp"; 98 dcr-reg = <0x010 2>; 98 dcr-reg = <0x010 2>; 99 }; 99 }; 100 100 101 DMA0: dma { 101 DMA0: dma { 102 compatible = "ibm,dma- 102 compatible = "ibm,dma-440ep", "ibm,dma-440gp"; 103 dcr-reg = <0x100 0x027 103 dcr-reg = <0x100 0x027>; 104 }; 104 }; 105 105 106 MAL0: mcmal { 106 MAL0: mcmal { 107 compatible = "ibm,mcma 107 compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal"; 108 dcr-reg = <0x180 0x062 108 dcr-reg = <0x180 0x062>; 109 num-tx-chans = <4>; 109 num-tx-chans = <4>; 110 num-rx-chans = <2>; 110 num-rx-chans = <2>; 111 interrupt-parent = <&M 111 interrupt-parent = <&MAL0>; 112 interrupts = <0 1 2 3 112 interrupts = <0 1 2 3 4>; 113 #interrupt-cells = <1> 113 #interrupt-cells = <1>; 114 #address-cells = <0>; 114 #address-cells = <0>; 115 #size-cells = <0>; 115 #size-cells = <0>; 116 interrupt-map = </*TXE 116 interrupt-map = </*TXEOB*/ 0 &UIC0 10 4 117 /*RXEO 117 /*RXEOB*/ 1 &UIC0 11 4 118 /*SERR 118 /*SERR*/ 2 &UIC1 0 4 119 /*TXDE 119 /*TXDE*/ 3 &UIC1 1 4 120 /*RXDE 120 /*RXDE*/ 4 &UIC1 2 4>; 121 }; 121 }; 122 122 123 POB0: opb { 123 POB0: opb { 124 compatible = "ibm,opb- 124 compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb"; 125 #address-cells = <1>; 125 #address-cells = <1>; 126 #size-cells = <1>; 126 #size-cells = <1>; 127 /* Bamboo is oddball i 127 /* Bamboo is oddball in the 44x world and doesn't use the ERPN 128 * bits. 128 * bits. 129 */ 129 */ 130 ranges = <0x00000000 0 130 ranges = <0x00000000 0 0x00000000 0x80000000 131 0x80000000 0 131 0x80000000 0 0x80000000 0x80000000>; 132 interrupt-parent = <&U 132 interrupt-parent = <&UIC1>; 133 interrupts = <7 4>; 133 interrupts = <7 4>; 134 clock-frequency = <0>; 134 clock-frequency = <0>; /* Filled in by zImage */ 135 135 136 EBC0: ebc { 136 EBC0: ebc { 137 compatible = " 137 compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc"; 138 dcr-reg = <0x0 138 dcr-reg = <0x012 2>; 139 #address-cells 139 #address-cells = <2>; 140 #size-cells = 140 #size-cells = <1>; 141 clock-frequenc 141 clock-frequency = <0>; /* Filled in by zImage */ 142 interrupts = < 142 interrupts = <5 1>; 143 interrupt-pare 143 interrupt-parent = <&UIC1>; 144 }; 144 }; 145 145 146 UART0: serial@ef600300 146 UART0: serial@ef600300 { 147 device_type = 147 device_type = "serial"; 148 compatible = " 148 compatible = "ns16550"; 149 reg = <0xef600 149 reg = <0xef600300 8>; 150 virtual-reg = 150 virtual-reg = <0xef600300>; 151 clock-frequenc 151 clock-frequency = <0>; /* Filled in by zImage */ 152 current-speed 152 current-speed = <0x1c200>; 153 interrupt-pare 153 interrupt-parent = <&UIC0>; 154 interrupts = < 154 interrupts = <0 4>; 155 }; 155 }; 156 156 157 UART1: serial@ef600400 157 UART1: serial@ef600400 { 158 device_type = 158 device_type = "serial"; 159 compatible = " 159 compatible = "ns16550"; 160 reg = <0xef600 160 reg = <0xef600400 8>; 161 virtual-reg = 161 virtual-reg = <0xef600400>; 162 clock-frequenc 162 clock-frequency = <0>; 163 current-speed 163 current-speed = <0>; 164 interrupt-pare 164 interrupt-parent = <&UIC0>; 165 interrupts = < 165 interrupts = <1 4>; 166 }; 166 }; 167 167 168 UART2: serial@ef600500 168 UART2: serial@ef600500 { 169 device_type = 169 device_type = "serial"; 170 compatible = " 170 compatible = "ns16550"; 171 reg = <0xef600 171 reg = <0xef600500 8>; 172 virtual-reg = 172 virtual-reg = <0xef600500>; 173 clock-frequenc 173 clock-frequency = <0>; 174 current-speed 174 current-speed = <0>; 175 interrupt-pare 175 interrupt-parent = <&UIC0>; 176 interrupts = < 176 interrupts = <3 4>; 177 }; 177 }; 178 178 179 UART3: serial@ef600600 179 UART3: serial@ef600600 { 180 device_type = 180 device_type = "serial"; 181 compatible = " 181 compatible = "ns16550"; 182 reg = <0xef600 182 reg = <0xef600600 8>; 183 virtual-reg = 183 virtual-reg = <0xef600600>; 184 clock-frequenc 184 clock-frequency = <0>; 185 current-speed 185 current-speed = <0>; 186 interrupt-pare 186 interrupt-parent = <&UIC0>; 187 interrupts = < 187 interrupts = <4 4>; 188 }; 188 }; 189 189 190 IIC0: i2c@ef600700 { 190 IIC0: i2c@ef600700 { 191 #address-cells 191 #address-cells = <1>; 192 #size-cells = 192 #size-cells = <0>; 193 compatible = " 193 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 194 index = <0>; 194 index = <0>; 195 reg = <0xef600 195 reg = <0xef600700 0x14>; 196 interrupt-pare 196 interrupt-parent = <&UIC0>; 197 interrupts = < 197 interrupts = <2 4>; 198 rtc@68 { 198 rtc@68 { 199 compat 199 compatible = "st,m41t80"; 200 reg = 200 reg = <0x68>; 201 }; 201 }; 202 }; 202 }; 203 203 204 IIC1: i2c@ef600800 { 204 IIC1: i2c@ef600800 { 205 compatible = " 205 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic"; 206 index = <5>; 206 index = <5>; 207 reg = <0xef600 207 reg = <0xef600800 0x14>; 208 interrupt-pare 208 interrupt-parent = <&UIC0>; 209 interrupts = < 209 interrupts = <7 4>; 210 }; 210 }; 211 211 212 ZMII0: emac-zmii@ef600 212 ZMII0: emac-zmii@ef600d00 { 213 compatible = " 213 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii"; 214 reg = <0xef600 214 reg = <0xef600d00 0xc>; 215 }; 215 }; 216 216 217 EMAC0: ethernet@ef600e 217 EMAC0: ethernet@ef600e00 { 218 linux,network- 218 linux,network-index = <0>; 219 device_type = 219 device_type = "network"; 220 compatible = " 220 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 221 interrupt-pare 221 interrupt-parent = <&UIC1>; 222 interrupts = < 222 interrupts = <0x1c 4 0x1d 4>; 223 reg = <0xef600 223 reg = <0xef600e00 0x70>; 224 local-mac-addr 224 local-mac-address = [000000000000]; 225 mal-device = < 225 mal-device = <&MAL0>; 226 mal-tx-channel 226 mal-tx-channel = <0 1>; 227 mal-rx-channel 227 mal-rx-channel = <0>; 228 cell-index = < 228 cell-index = <0>; 229 max-frame-size 229 max-frame-size = <0x5dc>; 230 rx-fifo-size = 230 rx-fifo-size = <0x1000>; 231 tx-fifo-size = 231 tx-fifo-size = <0x800>; 232 phy-mode = "rm 232 phy-mode = "rmii"; 233 phy-map = <000 233 phy-map = <00000000>; 234 zmii-device = 234 zmii-device = <&ZMII0>; 235 zmii-channel = 235 zmii-channel = <0>; 236 }; 236 }; 237 237 238 EMAC1: ethernet@ef600f 238 EMAC1: ethernet@ef600f00 { 239 linux,network- 239 linux,network-index = <1>; 240 device_type = 240 device_type = "network"; 241 compatible = " 241 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac"; 242 interrupt-pare 242 interrupt-parent = <&UIC1>; 243 interrupts = < 243 interrupts = <0x1e 4 0x1f 4>; 244 reg = <0xef600 244 reg = <0xef600f00 0x70>; 245 local-mac-addr 245 local-mac-address = [000000000000]; 246 mal-device = < 246 mal-device = <&MAL0>; 247 mal-tx-channel 247 mal-tx-channel = <2 3>; 248 mal-rx-channel 248 mal-rx-channel = <1>; 249 cell-index = < 249 cell-index = <1>; 250 max-frame-size 250 max-frame-size = <0x5dc>; 251 rx-fifo-size = 251 rx-fifo-size = <0x1000>; 252 tx-fifo-size = 252 tx-fifo-size = <0x800>; 253 phy-mode = "rm 253 phy-mode = "rmii"; 254 phy-map = <000 254 phy-map = <00000000>; 255 zmii-device = 255 zmii-device = <&ZMII0>; 256 zmii-channel = 256 zmii-channel = <1>; 257 }; 257 }; 258 usb@ef601000 { 258 usb@ef601000 { 259 compatible = " 259 compatible = "ohci-be"; 260 reg = <0xef601 260 reg = <0xef601000 0x80>; 261 interrupts = < 261 interrupts = <8 4 9 4>; 262 interrupt-pare 262 interrupt-parent = <&UIC1>; 263 }; 263 }; 264 }; 264 }; 265 265 266 PCI0: pci@ec000000 { 266 PCI0: pci@ec000000 { 267 device_type = "pci"; 267 device_type = "pci"; 268 #interrupt-cells = <1> 268 #interrupt-cells = <1>; 269 #size-cells = <2>; 269 #size-cells = <2>; 270 #address-cells = <3>; 270 #address-cells = <3>; 271 compatible = "ibm,plb4 271 compatible = "ibm,plb440ep-pci", "ibm,plb-pci"; 272 primary; 272 primary; 273 reg = <0 0xeec00000 8 273 reg = <0 0xeec00000 8 /* Config space access */ 274 0 0xeed00000 4 274 0 0xeed00000 4 /* IACK */ 275 0 0xeed00000 4 275 0 0xeed00000 4 /* Special cycle */ 276 0 0xef400000 0x 276 0 0xef400000 0x40>; /* Internal registers */ 277 277 278 /* Outbound ranges, on 278 /* Outbound ranges, one memory and one IO, 279 * later cannot be cha 279 * later cannot be changed. Chip supports a second 280 * IO range but we don 280 * IO range but we don't use it for now 281 */ 281 */ 282 ranges = <0x02000000 0 282 ranges = <0x02000000 0 0xa0000000 0 0xa0000000 0 0x20000000 283 0x01000000 0 283 0x01000000 0 0x00000000 0 0xe8000000 0 0x00010000>; 284 284 285 /* Inbound 2GB range s 285 /* Inbound 2GB range starting at 0 */ 286 dma-ranges = <0x420000 286 dma-ranges = <0x42000000 0 0 0 0 0 0x80000000>; 287 }; 287 }; 288 }; 288 }; 289 289 290 chosen { 290 chosen { 291 stdout-path = "/plb/opb/serial 291 stdout-path = "/plb/opb/serial@ef600300"; 292 }; 292 }; 293 }; 293 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.