Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mpc5200: support for the MAN mpc5200 based board mucmc52

- serial Console on PSC1
- 64MB SDRAM
- MTD CFI Flash
- Ethernet FEC
- IDE support

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

authored by

Heiko Schocher and committed by
Grant Likely
830cb6fa 371bc96b

+334 -1
+332
arch/powerpc/boot/dts/mucmc52.dts
··· 1 + /* 2 + * Manroland mucmc52 board Device Tree Source 3 + * 4 + * Copyright (C) 2009 DENX Software Engineering GmbH 5 + * Heiko Schocher <hs@denx.de> 6 + * Copyright 2006-2007 Secret Lab Technologies Ltd. 7 + * 8 + * This program is free software; you can redistribute it and/or modify it 9 + * under the terms of the GNU General Public License as published by the 10 + * Free Software Foundation; either version 2 of the License, or (at your 11 + * option) any later version. 12 + */ 13 + 14 + /dts-v1/; 15 + 16 + / { 17 + model = "manroland,mucmc52"; 18 + compatible = "manroland,mucmc52"; 19 + #address-cells = <1>; 20 + #size-cells = <1>; 21 + interrupt-parent = <&mpc5200_pic>; 22 + 23 + cpus { 24 + #address-cells = <1>; 25 + #size-cells = <0>; 26 + 27 + PowerPC,5200@0 { 28 + device_type = "cpu"; 29 + reg = <0>; 30 + d-cache-line-size = <32>; 31 + i-cache-line-size = <32>; 32 + d-cache-size = <0x4000>; // L1, 16K 33 + i-cache-size = <0x4000>; // L1, 16K 34 + timebase-frequency = <0>; // from bootloader 35 + bus-frequency = <0>; // from bootloader 36 + clock-frequency = <0>; // from bootloader 37 + }; 38 + }; 39 + 40 + memory { 41 + device_type = "memory"; 42 + reg = <0x00000000 0x04000000>; // 64MB 43 + }; 44 + 45 + soc5200@f0000000 { 46 + #address-cells = <1>; 47 + #size-cells = <1>; 48 + compatible = "fsl,mpc5200b-immr"; 49 + ranges = <0 0xf0000000 0x0000c000>; 50 + reg = <0xf0000000 0x00000100>; 51 + bus-frequency = <0>; // from bootloader 52 + system-frequency = <0>; // from bootloader 53 + 54 + cdm@200 { 55 + compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm"; 56 + reg = <0x200 0x38>; 57 + }; 58 + 59 + mpc5200_pic: interrupt-controller@500 { 60 + // 5200 interrupts are encoded into two levels; 61 + interrupt-controller; 62 + #interrupt-cells = <3>; 63 + compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic"; 64 + reg = <0x500 0x80>; 65 + }; 66 + 67 + gpt0: timer@600 { // GPT 0 in GPIO mode 68 + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 69 + reg = <0x600 0x10>; 70 + interrupts = <1 9 0>; 71 + gpio-controller; 72 + #gpio-cells = <2>; 73 + }; 74 + 75 + gpt1: timer@610 { // General Purpose Timer in GPIO mode 76 + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 77 + reg = <0x610 0x10>; 78 + interrupts = <1 10 0>; 79 + gpio-controller; 80 + #gpio-cells = <2>; 81 + }; 82 + 83 + gpt2: timer@620 { // General Purpose Timer in GPIO mode 84 + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 85 + reg = <0x620 0x10>; 86 + interrupts = <1 11 0>; 87 + gpio-controller; 88 + #gpio-cells = <2>; 89 + }; 90 + 91 + gpt3: timer@630 { // General Purpose Timer in GPIO mode 92 + compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 93 + reg = <0x630 0x10>; 94 + interrupts = <1 12 0>; 95 + gpio-controller; 96 + #gpio-cells = <2>; 97 + }; 98 + 99 + gpio_simple: gpio@b00 { 100 + compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio"; 101 + reg = <0xb00 0x40>; 102 + interrupts = <1 7 0>; 103 + gpio-controller; 104 + #gpio-cells = <2>; 105 + }; 106 + 107 + gpio_wkup: gpio@c00 { 108 + compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup"; 109 + reg = <0xc00 0x40>; 110 + interrupts = <1 8 0 0 3 0>; 111 + gpio-controller; 112 + #gpio-cells = <2>; 113 + }; 114 + 115 + dma-controller@1200 { 116 + compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm"; 117 + reg = <0x1200 0x80>; 118 + interrupts = <3 0 0 3 1 0 3 2 0 3 3 0 119 + 3 4 0 3 5 0 3 6 0 3 7 0 120 + 3 8 0 3 9 0 3 10 0 3 11 0 121 + 3 12 0 3 13 0 3 14 0 3 15 0>; 122 + }; 123 + 124 + xlb@1f00 { 125 + compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb"; 126 + reg = <0x1f00 0x100>; 127 + }; 128 + 129 + serial@2000 { /* PSC1 in UART mode */ 130 + compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 131 + reg = <0x2000 0x100>; 132 + interrupts = <2 1 0>; 133 + }; 134 + 135 + serial@2200 { /* PSC2 in UART mode */ 136 + compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 137 + reg = <0x2200 0x100>; 138 + interrupts = <2 2 0>; 139 + }; 140 + 141 + serial@2c00 { /* PSC6 in UART mode */ 142 + compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 143 + reg = <0x2c00 0x100>; 144 + interrupts = <2 4 0>; 145 + }; 146 + 147 + ethernet@3000 { 148 + compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec"; 149 + reg = <0x3000 0x400>; 150 + local-mac-address = [ 00 00 00 00 00 00 ]; 151 + interrupts = <2 5 0>; 152 + phy-handle = <&phy0>; 153 + }; 154 + 155 + mdio@3000 { 156 + #address-cells = <1>; 157 + #size-cells = <0>; 158 + compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio"; 159 + reg = <0x3000 0x400>; // fec range, since we need to setup fec interrupts 160 + interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co. 161 + 162 + phy0: ethernet-phy@0 { 163 + compatible = "intel,lxt971"; 164 + reg = <0>; 165 + }; 166 + }; 167 + 168 + ata@3a00 { 169 + compatible = "fsl,mpc5200b-ata","fsl,mpc5200-ata"; 170 + reg = <0x3a00 0x100>; 171 + interrupts = <2 7 0>; 172 + }; 173 + 174 + i2c@3d40 { 175 + #address-cells = <1>; 176 + #size-cells = <0>; 177 + compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c"; 178 + reg = <0x3d40 0x40>; 179 + interrupts = <2 16 0>; 180 + hwmon@2c { 181 + compatible = "ad,adm9240"; 182 + reg = <0x2c>; 183 + }; 184 + rtc@51 { 185 + compatible = "nxp,pcf8563"; 186 + reg = <0x51>; 187 + }; 188 + }; 189 + 190 + sram@8000 { 191 + compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram"; 192 + reg = <0x8000 0x4000>; 193 + }; 194 + }; 195 + 196 + pci@f0000d00 { 197 + #interrupt-cells = <1>; 198 + #size-cells = <2>; 199 + #address-cells = <3>; 200 + device_type = "pci"; 201 + compatible = "fsl,mpc5200b-pci","fsl,mpc5200-pci"; 202 + reg = <0xf0000d00 0x100>; 203 + interrupt-map-mask = <0xf800 0 0 7>; 204 + interrupt-map = < 205 + /* IDSEL 0x10 */ 206 + 0x8000 0 0 1 &mpc5200_pic 0 3 3 207 + 0x8000 0 0 2 &mpc5200_pic 0 3 3 208 + 0x8000 0 0 3 &mpc5200_pic 0 2 3 209 + 0x8000 0 0 4 &mpc5200_pic 0 1 3 210 + >; 211 + clock-frequency = <0>; // From boot loader 212 + interrupts = <2 8 0 2 9 0 2 10 0>; 213 + bus-range = <0 0>; 214 + ranges = <0x42000000 0 0x60000000 0x60000000 0 0x10000000 215 + 0x02000000 0 0x90000000 0x90000000 0 0x10000000 216 + 0x01000000 0 0x00000000 0xa0000000 0 0x01000000>; 217 + }; 218 + 219 + localbus { 220 + compatible = "fsl,mpc5200b-lpb","fsl,mpc5200-lpb","simple-bus"; 221 + 222 + #address-cells = <2>; 223 + #size-cells = <1>; 224 + 225 + ranges = <0 0 0xff800000 0x00800000 226 + 1 0 0x80000000 0x00800000 227 + 3 0 0x80000000 0x00800000>; 228 + 229 + flash@0,0 { 230 + compatible = "cfi-flash"; 231 + reg = <0 0 0x00800000>; 232 + bank-width = <4>; 233 + device-width = <2>; 234 + #size-cells = <1>; 235 + #address-cells = <1>; 236 + partition@0 { 237 + label = "DTS"; 238 + reg = <0x0 0x00100000>; 239 + }; 240 + partition@100000 { 241 + label = "Kernel"; 242 + reg = <0x100000 0x00200000>; 243 + }; 244 + partition@300000 { 245 + label = "RootFS"; 246 + reg = <0x00300000 0x00200000>; 247 + }; 248 + partition@500000 { 249 + label = "user"; 250 + reg = <0x00500000 0x00200000>; 251 + }; 252 + partition@700000 { 253 + label = "U-Boot"; 254 + reg = <0x00700000 0x00040000>; 255 + }; 256 + partition@740000 { 257 + label = "Env"; 258 + reg = <0x00740000 0x00020000>; 259 + }; 260 + partition@760000 { 261 + label = "red. Env"; 262 + reg = <0x00760000 0x00020000>; 263 + }; 264 + partition@780000 { 265 + label = "reserve"; 266 + reg = <0x00780000 0x00080000>; 267 + }; 268 + }; 269 + 270 + simple100: gpio-controller-100@3,600100 { 271 + compatible = "manroland,mucmc52-aux-gpio"; 272 + reg = <3 0x00600100 0x1>; 273 + gpio-controller; 274 + #gpio-cells = <2>; 275 + }; 276 + simple104: gpio-controller-104@3,600104 { 277 + compatible = "manroland,mucmc52-aux-gpio"; 278 + reg = <3 0x00600104 0x1>; 279 + gpio-controller; 280 + #gpio-cells = <2>; 281 + }; 282 + simple200: gpio-controller-200@3,600200 { 283 + compatible = "manroland,mucmc52-aux-gpio"; 284 + reg = <3 0x00600200 0x1>; 285 + gpio-controller; 286 + #gpio-cells = <2>; 287 + }; 288 + simple201: gpio-controller-201@3,600201 { 289 + compatible = "manroland,mucmc52-aux-gpio"; 290 + reg = <3 0x00600201 0x1>; 291 + gpio-controller; 292 + #gpio-cells = <2>; 293 + }; 294 + simple202: gpio-controller-202@3,600202 { 295 + compatible = "manroland,mucmc52-aux-gpio"; 296 + reg = <3 0x00600202 0x1>; 297 + gpio-controller; 298 + #gpio-cells = <2>; 299 + }; 300 + simple203: gpio-controller-203@3,600203 { 301 + compatible = "manroland,mucmc52-aux-gpio"; 302 + reg = <3 0x00600203 0x1>; 303 + gpio-controller; 304 + #gpio-cells = <2>; 305 + }; 306 + simple204: gpio-controller-204@3,600204 { 307 + compatible = "manroland,mucmc52-aux-gpio"; 308 + reg = <3 0x00600204 0x1>; 309 + gpio-controller; 310 + #gpio-cells = <2>; 311 + }; 312 + simple206: gpio-controller-206@3,600206 { 313 + compatible = "manroland,mucmc52-aux-gpio"; 314 + reg = <3 0x00600206 0x1>; 315 + gpio-controller; 316 + #gpio-cells = <2>; 317 + }; 318 + simple207: gpio-controller-207@3,600207 { 319 + compatible = "manroland,mucmc52-aux-gpio"; 320 + reg = <3 0x00600207 0x1>; 321 + gpio-controller; 322 + #gpio-cells = <2>; 323 + }; 324 + simple20f: gpio-controller-20f@3,60020f { 325 + compatible = "manroland,mucmc52-aux-gpio"; 326 + reg = <3 0x0060020f 0x1>; 327 + gpio-controller; 328 + #gpio-cells = <2>; 329 + }; 330 + 331 + }; 332 + };
+1 -1
arch/powerpc/configs/mpc5200_defconfig
··· 205 205 CONFIG_PPC_BESTCOMM=y 206 206 CONFIG_PPC_BESTCOMM_ATA=y 207 207 CONFIG_PPC_BESTCOMM_FEC=y 208 - # CONFIG_SIMPLE_GPIO is not set 208 + CONFIG_SIMPLE_GPIO=y 209 209 210 210 # 211 211 # Kernel options
+1
arch/powerpc/platforms/52xx/mpc5200_simple.c
··· 51 51 /* list of the supported boards */ 52 52 static char *board[] __initdata = { 53 53 "intercontrol,digsy-mtc", 54 + "manroland,mucmc52", 54 55 "manroland,uc101", 55 56 "phytec,pcm030", 56 57 "phytec,pcm032",