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

Merge remote-tracking branch 'agust/next' into next

<<
Please pull mpc5xxx patches for v3.9. The bestcomm driver is
moved to drivers/dma (so it will be usable for ColdFire).
mpc5121 now provides common dtsi file and existing mpc5121 device
trees use it. There are some minor clock init and sparse fixes
and updates for various 5200 device tree files from Grant. Some
fixes for bugs in the mpc5121 DIU driver are also included here
(Andrew Morton suggested to push them via my mpc5xxx tree).
>>

+719 -847
+2 -4
arch/powerpc/boot/dts/a3m071.dts
··· 17 17 18 18 /include/ "mpc5200b.dtsi" 19 19 20 + &gpt0 { fsl,has-wdt; }; 21 + 20 22 / { 21 23 model = "anonymous,a3m071"; 22 24 compatible = "anonymous,a3m071"; ··· 31 29 reg = <0xf0000000 0x00000100>; 32 30 bus-frequency = <0>; /* From boot loader */ 33 31 system-frequency = <0>; /* From boot loader */ 34 - 35 - timer@600 { 36 - fsl,has-wdt; 37 - }; 38 32 39 33 spi@f00 { 40 34 status = "disabled";
+5 -22
arch/powerpc/boot/dts/a4m072.dts
··· 15 15 16 16 /include/ "mpc5200b.dtsi" 17 17 18 + &gpt0 { fsl,has-wdt; }; 19 + &gpt3 { gpio-controller; }; 20 + &gpt4 { gpio-controller; }; 21 + &gpt5 { gpio-controller; }; 22 + 18 23 / { 19 24 model = "anonymous,a4m072"; 20 25 compatible = "anonymous,a4m072"; ··· 37 32 fsl,init-ext-48mhz-en = <0x0>; 38 33 fsl,init-fd-enable = <0x01>; 39 34 fsl,init-fd-counters = <0x3333>; 40 - }; 41 - 42 - timer@600 { 43 - fsl,has-wdt; 44 - }; 45 - 46 - gpt3: timer@630 { /* General Purpose Timer in GPIO mode */ 47 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 48 - gpio-controller; 49 - #gpio-cells = <2>; 50 - }; 51 - 52 - gpt4: timer@640 { /* General Purpose Timer in GPIO mode */ 53 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 54 - gpio-controller; 55 - #gpio-cells = <2>; 56 - }; 57 - 58 - gpt5: timer@650 { /* General Purpose Timer in GPIO mode */ 59 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 60 - gpio-controller; 61 - #gpio-cells = <2>; 62 35 }; 63 36 64 37 spi@f00 {
+2 -4
arch/powerpc/boot/dts/cm5200.dts
··· 12 12 13 13 /include/ "mpc5200b.dtsi" 14 14 15 + &gpt0 { fsl,has-wdt; }; 16 + 15 17 / { 16 18 model = "schindler,cm5200"; 17 19 compatible = "schindler,cm5200"; 18 20 19 21 soc5200@f0000000 { 20 - timer@600 { // General Purpose Timer 21 - fsl,has-wdt; 22 - }; 23 - 24 22 can@900 { 25 23 status = "disabled"; 26 24 };
+3 -11
arch/powerpc/boot/dts/digsy_mtc.dts
··· 13 13 14 14 /include/ "mpc5200b.dtsi" 15 15 16 + &gpt0 { gpio-controller; fsl,has-wdt; }; 17 + &gpt1 { gpio-controller; }; 18 + 16 19 / { 17 20 model = "intercontrol,digsy-mtc"; 18 21 compatible = "intercontrol,digsy-mtc"; ··· 25 22 }; 26 23 27 24 soc5200@f0000000 { 28 - timer@600 { // General Purpose Timer 29 - #gpio-cells = <2>; 30 - fsl,has-wdt; 31 - gpio-controller; 32 - }; 33 - 34 - timer@610 { 35 - #gpio-cells = <2>; 36 - gpio-controller; 37 - }; 38 - 39 25 rtc@800 { 40 26 status = "disabled"; 41 27 };
+19 -4
arch/powerpc/boot/dts/lite5200b.dts
··· 12 12 13 13 /include/ "mpc5200b.dtsi" 14 14 15 + &gpt0 { fsl,has-wdt; }; 16 + &gpt2 { gpio-controller; }; 17 + &gpt3 { gpio-controller; }; 18 + 15 19 / { 16 20 model = "fsl,lite5200b"; 17 21 compatible = "fsl,lite5200b"; 22 + 23 + leds { 24 + compatible = "gpio-leds"; 25 + tmr2 { 26 + gpios = <&gpt2 0 1>; 27 + }; 28 + tmr3 { 29 + gpios = <&gpt3 0 1>; 30 + linux,default-trigger = "heartbeat"; 31 + }; 32 + led1 { gpios = <&gpio_wkup 2 1>; }; 33 + led2 { gpios = <&gpio_simple 3 1>; }; 34 + led3 { gpios = <&gpio_wkup 3 1>; }; 35 + led4 { gpios = <&gpio_simple 2 1>; }; 36 + }; 18 37 19 38 memory { 20 39 reg = <0x00000000 0x10000000>; // 256MB 21 40 }; 22 41 23 42 soc5200@f0000000 { 24 - timer@600 { // General Purpose Timer 25 - fsl,has-wdt; 26 - }; 27 - 28 43 psc@2000 { // PSC1 29 44 compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart"; 30 45 cell-index = <0>;
+2 -4
arch/powerpc/boot/dts/media5200.dts
··· 13 13 14 14 /include/ "mpc5200b.dtsi" 15 15 16 + &gpt0 { fsl,has-wdt; }; 17 + 16 18 / { 17 19 model = "fsl,media5200"; 18 20 compatible = "fsl,media5200"; ··· 42 40 43 41 soc5200@f0000000 { 44 42 bus-frequency = <132000000>;// 132 MHz 45 - 46 - timer@600 { // General Purpose Timer 47 - fsl,has-wdt; 48 - }; 49 43 50 44 psc@2000 { // PSC1 51 45 status = "disabled";
+11 -15
arch/powerpc/boot/dts/motionpro.dts
··· 12 12 13 13 /include/ "mpc5200b.dtsi" 14 14 15 + &gpt0 { fsl,has-wdt; }; 16 + &gpt6 { // Motion-PRO status LED 17 + compatible = "promess,motionpro-led"; 18 + label = "motionpro-statusled"; 19 + blink-delay = <100>; // 100 msec 20 + }; 21 + &gpt7 { // Motion-PRO ready LED 22 + compatible = "promess,motionpro-led"; 23 + label = "motionpro-readyled"; 24 + }; 25 + 15 26 / { 16 27 model = "promess,motionpro"; 17 28 compatible = "promess,motionpro"; 18 29 19 30 soc5200@f0000000 { 20 - timer@600 { // General Purpose Timer 21 - fsl,has-wdt; 22 - }; 23 - 24 - timer@660 { // Motion-PRO status LED 25 - compatible = "promess,motionpro-led"; 26 - label = "motionpro-statusled"; 27 - blink-delay = <100>; // 100 msec 28 - }; 29 - 30 - timer@670 { // Motion-PRO ready LED 31 - compatible = "promess,motionpro-led"; 32 - label = "motionpro-readyled"; 33 - }; 34 - 35 31 can@900 { 36 32 status = "disabled"; 37 33 };
+410
arch/powerpc/boot/dts/mpc5121.dtsi
··· 1 + /* 2 + * base MPC5121 Device Tree Source 3 + * 4 + * Copyright 2007-2008 Freescale Semiconductor Inc. 5 + * 6 + * This program is free software; you can redistribute it and/or modify it 7 + * under the terms of the GNU General Public License as published by the 8 + * Free Software Foundation; either version 2 of the License, or (at your 9 + * option) any later version. 10 + */ 11 + 12 + /dts-v1/; 13 + 14 + / { 15 + model = "mpc5121"; 16 + compatible = "fsl,mpc5121"; 17 + #address-cells = <1>; 18 + #size-cells = <1>; 19 + interrupt-parent = <&ipic>; 20 + 21 + aliases { 22 + ethernet0 = &eth0; 23 + pci = &pci; 24 + }; 25 + 26 + cpus { 27 + #address-cells = <1>; 28 + #size-cells = <0>; 29 + 30 + PowerPC,5121@0 { 31 + device_type = "cpu"; 32 + reg = <0>; 33 + d-cache-line-size = <0x20>; /* 32 bytes */ 34 + i-cache-line-size = <0x20>; /* 32 bytes */ 35 + d-cache-size = <0x8000>; /* L1, 32K */ 36 + i-cache-size = <0x8000>; /* L1, 32K */ 37 + timebase-frequency = <49500000>;/* 49.5 MHz (csb/4) */ 38 + bus-frequency = <198000000>; /* 198 MHz csb bus */ 39 + clock-frequency = <396000000>; /* 396 MHz ppc core */ 40 + }; 41 + }; 42 + 43 + memory { 44 + device_type = "memory"; 45 + reg = <0x00000000 0x10000000>; /* 256MB at 0 */ 46 + }; 47 + 48 + mbx@20000000 { 49 + compatible = "fsl,mpc5121-mbx"; 50 + reg = <0x20000000 0x4000>; 51 + interrupts = <66 0x8>; 52 + }; 53 + 54 + sram@30000000 { 55 + compatible = "fsl,mpc5121-sram"; 56 + reg = <0x30000000 0x20000>; /* 128K at 0x30000000 */ 57 + }; 58 + 59 + nfc@40000000 { 60 + compatible = "fsl,mpc5121-nfc"; 61 + reg = <0x40000000 0x100000>; /* 1M at 0x40000000 */ 62 + interrupts = <6 8>; 63 + #address-cells = <1>; 64 + #size-cells = <1>; 65 + }; 66 + 67 + localbus@80000020 { 68 + compatible = "fsl,mpc5121-localbus"; 69 + #address-cells = <2>; 70 + #size-cells = <1>; 71 + reg = <0x80000020 0x40>; 72 + interrupts = <7 0x8>; 73 + ranges = <0x0 0x0 0xfc000000 0x04000000>; 74 + }; 75 + 76 + soc@80000000 { 77 + compatible = "fsl,mpc5121-immr"; 78 + #address-cells = <1>; 79 + #size-cells = <1>; 80 + #interrupt-cells = <2>; 81 + ranges = <0x0 0x80000000 0x400000>; 82 + reg = <0x80000000 0x400000>; 83 + bus-frequency = <66000000>; /* 66 MHz ips bus */ 84 + 85 + 86 + /* 87 + * IPIC 88 + * interrupts cell = <intr #, sense> 89 + * sense values match linux IORESOURCE_IRQ_* defines: 90 + * sense == 8: Level, low assertion 91 + * sense == 2: Edge, high-to-low change 92 + */ 93 + ipic: interrupt-controller@c00 { 94 + compatible = "fsl,mpc5121-ipic", "fsl,ipic"; 95 + interrupt-controller; 96 + #address-cells = <0>; 97 + #interrupt-cells = <2>; 98 + reg = <0xc00 0x100>; 99 + }; 100 + 101 + /* Watchdog timer */ 102 + wdt@900 { 103 + compatible = "fsl,mpc5121-wdt"; 104 + reg = <0x900 0x100>; 105 + }; 106 + 107 + /* Real time clock */ 108 + rtc@a00 { 109 + compatible = "fsl,mpc5121-rtc"; 110 + reg = <0xa00 0x100>; 111 + interrupts = <79 0x8 80 0x8>; 112 + }; 113 + 114 + /* Reset module */ 115 + reset@e00 { 116 + compatible = "fsl,mpc5121-reset"; 117 + reg = <0xe00 0x100>; 118 + }; 119 + 120 + /* Clock control */ 121 + clock@f00 { 122 + compatible = "fsl,mpc5121-clock"; 123 + reg = <0xf00 0x100>; 124 + }; 125 + 126 + /* Power Management Controller */ 127 + pmc@1000{ 128 + compatible = "fsl,mpc5121-pmc"; 129 + reg = <0x1000 0x100>; 130 + interrupts = <83 0x8>; 131 + }; 132 + 133 + gpio@1100 { 134 + compatible = "fsl,mpc5121-gpio"; 135 + reg = <0x1100 0x100>; 136 + interrupts = <78 0x8>; 137 + }; 138 + 139 + can@1300 { 140 + compatible = "fsl,mpc5121-mscan"; 141 + reg = <0x1300 0x80>; 142 + interrupts = <12 0x8>; 143 + }; 144 + 145 + can@1380 { 146 + compatible = "fsl,mpc5121-mscan"; 147 + reg = <0x1380 0x80>; 148 + interrupts = <13 0x8>; 149 + }; 150 + 151 + sdhc@1500 { 152 + compatible = "fsl,mpc5121-sdhc"; 153 + reg = <0x1500 0x100>; 154 + interrupts = <8 0x8>; 155 + }; 156 + 157 + i2c@1700 { 158 + #address-cells = <1>; 159 + #size-cells = <0>; 160 + compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 161 + reg = <0x1700 0x20>; 162 + interrupts = <9 0x8>; 163 + }; 164 + 165 + i2c@1720 { 166 + #address-cells = <1>; 167 + #size-cells = <0>; 168 + compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 169 + reg = <0x1720 0x20>; 170 + interrupts = <10 0x8>; 171 + }; 172 + 173 + i2c@1740 { 174 + #address-cells = <1>; 175 + #size-cells = <0>; 176 + compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 177 + reg = <0x1740 0x20>; 178 + interrupts = <11 0x8>; 179 + }; 180 + 181 + i2ccontrol@1760 { 182 + compatible = "fsl,mpc5121-i2c-ctrl"; 183 + reg = <0x1760 0x8>; 184 + }; 185 + 186 + axe@2000 { 187 + compatible = "fsl,mpc5121-axe"; 188 + reg = <0x2000 0x100>; 189 + interrupts = <42 0x8>; 190 + }; 191 + 192 + display@2100 { 193 + compatible = "fsl,mpc5121-diu"; 194 + reg = <0x2100 0x100>; 195 + interrupts = <64 0x8>; 196 + }; 197 + 198 + can@2300 { 199 + compatible = "fsl,mpc5121-mscan"; 200 + reg = <0x2300 0x80>; 201 + interrupts = <90 0x8>; 202 + }; 203 + 204 + can@2380 { 205 + compatible = "fsl,mpc5121-mscan"; 206 + reg = <0x2380 0x80>; 207 + interrupts = <91 0x8>; 208 + }; 209 + 210 + viu@2400 { 211 + compatible = "fsl,mpc5121-viu"; 212 + reg = <0x2400 0x400>; 213 + interrupts = <67 0x8>; 214 + }; 215 + 216 + mdio@2800 { 217 + compatible = "fsl,mpc5121-fec-mdio"; 218 + reg = <0x2800 0x800>; 219 + #address-cells = <1>; 220 + #size-cells = <0>; 221 + }; 222 + 223 + eth0: ethernet@2800 { 224 + device_type = "network"; 225 + compatible = "fsl,mpc5121-fec"; 226 + reg = <0x2800 0x800>; 227 + local-mac-address = [ 00 00 00 00 00 00 ]; 228 + interrupts = <4 0x8>; 229 + }; 230 + 231 + /* USB1 using external ULPI PHY */ 232 + usb@3000 { 233 + compatible = "fsl,mpc5121-usb2-dr"; 234 + reg = <0x3000 0x600>; 235 + #address-cells = <1>; 236 + #size-cells = <0>; 237 + interrupts = <43 0x8>; 238 + dr_mode = "otg"; 239 + phy_type = "ulpi"; 240 + }; 241 + 242 + /* USB0 using internal UTMI PHY */ 243 + usb@4000 { 244 + compatible = "fsl,mpc5121-usb2-dr"; 245 + reg = <0x4000 0x600>; 246 + #address-cells = <1>; 247 + #size-cells = <0>; 248 + interrupts = <44 0x8>; 249 + dr_mode = "otg"; 250 + phy_type = "utmi_wide"; 251 + }; 252 + 253 + /* IO control */ 254 + ioctl@a000 { 255 + compatible = "fsl,mpc5121-ioctl"; 256 + reg = <0xA000 0x1000>; 257 + }; 258 + 259 + /* LocalPlus controller */ 260 + lpc@10000 { 261 + compatible = "fsl,mpc5121-lpc"; 262 + reg = <0x10000 0x200>; 263 + }; 264 + 265 + pata@10200 { 266 + compatible = "fsl,mpc5121-pata"; 267 + reg = <0x10200 0x100>; 268 + interrupts = <5 0x8>; 269 + }; 270 + 271 + /* 512x PSCs are not 52xx PSC compatible */ 272 + 273 + /* PSC0 */ 274 + psc@11000 { 275 + compatible = "fsl,mpc5121-psc"; 276 + reg = <0x11000 0x100>; 277 + interrupts = <40 0x8>; 278 + fsl,rx-fifo-size = <16>; 279 + fsl,tx-fifo-size = <16>; 280 + }; 281 + 282 + /* PSC1 */ 283 + psc@11100 { 284 + compatible = "fsl,mpc5121-psc"; 285 + reg = <0x11100 0x100>; 286 + interrupts = <40 0x8>; 287 + fsl,rx-fifo-size = <16>; 288 + fsl,tx-fifo-size = <16>; 289 + }; 290 + 291 + /* PSC2 */ 292 + psc@11200 { 293 + compatible = "fsl,mpc5121-psc"; 294 + reg = <0x11200 0x100>; 295 + interrupts = <40 0x8>; 296 + fsl,rx-fifo-size = <16>; 297 + fsl,tx-fifo-size = <16>; 298 + }; 299 + 300 + /* PSC3 */ 301 + psc@11300 { 302 + compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 303 + reg = <0x11300 0x100>; 304 + interrupts = <40 0x8>; 305 + fsl,rx-fifo-size = <16>; 306 + fsl,tx-fifo-size = <16>; 307 + }; 308 + 309 + /* PSC4 */ 310 + psc@11400 { 311 + compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 312 + reg = <0x11400 0x100>; 313 + interrupts = <40 0x8>; 314 + fsl,rx-fifo-size = <16>; 315 + fsl,tx-fifo-size = <16>; 316 + }; 317 + 318 + /* PSC5 */ 319 + psc@11500 { 320 + compatible = "fsl,mpc5121-psc"; 321 + reg = <0x11500 0x100>; 322 + interrupts = <40 0x8>; 323 + fsl,rx-fifo-size = <16>; 324 + fsl,tx-fifo-size = <16>; 325 + }; 326 + 327 + /* PSC6 */ 328 + psc@11600 { 329 + compatible = "fsl,mpc5121-psc"; 330 + reg = <0x11600 0x100>; 331 + interrupts = <40 0x8>; 332 + fsl,rx-fifo-size = <16>; 333 + fsl,tx-fifo-size = <16>; 334 + }; 335 + 336 + /* PSC7 */ 337 + psc@11700 { 338 + compatible = "fsl,mpc5121-psc"; 339 + reg = <0x11700 0x100>; 340 + interrupts = <40 0x8>; 341 + fsl,rx-fifo-size = <16>; 342 + fsl,tx-fifo-size = <16>; 343 + }; 344 + 345 + /* PSC8 */ 346 + psc@11800 { 347 + compatible = "fsl,mpc5121-psc"; 348 + reg = <0x11800 0x100>; 349 + interrupts = <40 0x8>; 350 + fsl,rx-fifo-size = <16>; 351 + fsl,tx-fifo-size = <16>; 352 + }; 353 + 354 + /* PSC9 */ 355 + psc@11900 { 356 + compatible = "fsl,mpc5121-psc"; 357 + reg = <0x11900 0x100>; 358 + interrupts = <40 0x8>; 359 + fsl,rx-fifo-size = <16>; 360 + fsl,tx-fifo-size = <16>; 361 + }; 362 + 363 + /* PSC10 */ 364 + psc@11a00 { 365 + compatible = "fsl,mpc5121-psc"; 366 + reg = <0x11a00 0x100>; 367 + interrupts = <40 0x8>; 368 + fsl,rx-fifo-size = <16>; 369 + fsl,tx-fifo-size = <16>; 370 + }; 371 + 372 + /* PSC11 */ 373 + psc@11b00 { 374 + compatible = "fsl,mpc5121-psc"; 375 + reg = <0x11b00 0x100>; 376 + interrupts = <40 0x8>; 377 + fsl,rx-fifo-size = <16>; 378 + fsl,tx-fifo-size = <16>; 379 + }; 380 + 381 + pscfifo@11f00 { 382 + compatible = "fsl,mpc5121-psc-fifo"; 383 + reg = <0x11f00 0x100>; 384 + interrupts = <40 0x8>; 385 + }; 386 + 387 + dma@14000 { 388 + compatible = "fsl,mpc5121-dma"; 389 + reg = <0x14000 0x1800>; 390 + interrupts = <65 0x8>; 391 + }; 392 + }; 393 + 394 + pci: pci@80008500 { 395 + compatible = "fsl,mpc5121-pci"; 396 + device_type = "pci"; 397 + interrupts = <1 0x8>; 398 + clock-frequency = <0>; 399 + #address-cells = <3>; 400 + #size-cells = <2>; 401 + #interrupt-cells = <1>; 402 + 403 + reg = <0x80008500 0x100 /* internal registers */ 404 + 0x80008300 0x8>; /* config space access registers */ 405 + bus-range = <0x0 0x0>; 406 + ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 407 + 0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000 408 + 0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>; 409 + }; 410 + };
+39 -280
arch/powerpc/boot/dts/mpc5121ads.dts
··· 1 1 /* 2 2 * MPC5121E ADS Device Tree Source 3 3 * 4 - * Copyright 2007,2008 Freescale Semiconductor Inc. 4 + * Copyright 2007-2008 Freescale Semiconductor Inc. 5 5 * 6 6 * This program is free software; you can redistribute it and/or modify it 7 7 * under the terms of the GNU General Public License as published by the ··· 9 9 * option) any later version. 10 10 */ 11 11 12 - /dts-v1/; 12 + /include/ "mpc5121.dtsi" 13 13 14 14 / { 15 15 model = "mpc5121ads"; 16 16 compatible = "fsl,mpc5121ads"; 17 - #address-cells = <1>; 18 - #size-cells = <1>; 19 - 20 - aliases { 21 - pci = &pci; 22 - }; 23 - 24 - cpus { 25 - #address-cells = <1>; 26 - #size-cells = <0>; 27 - 28 - PowerPC,5121@0 { 29 - device_type = "cpu"; 30 - reg = <0>; 31 - d-cache-line-size = <0x20>; // 32 bytes 32 - i-cache-line-size = <0x20>; // 32 bytes 33 - d-cache-size = <0x8000>; // L1, 32K 34 - i-cache-size = <0x8000>; // L1, 32K 35 - timebase-frequency = <49500000>;// 49.5 MHz (csb/4) 36 - bus-frequency = <198000000>; // 198 MHz csb bus 37 - clock-frequency = <396000000>; // 396 MHz ppc core 38 - }; 39 - }; 40 - 41 - memory { 42 - device_type = "memory"; 43 - reg = <0x00000000 0x10000000>; // 256MB at 0 44 - }; 45 - 46 - mbx@20000000 { 47 - compatible = "fsl,mpc5121-mbx"; 48 - reg = <0x20000000 0x4000>; 49 - interrupts = <66 0x8>; 50 - interrupt-parent = < &ipic >; 51 - }; 52 - 53 - sram@30000000 { 54 - compatible = "fsl,mpc5121-sram"; 55 - reg = <0x30000000 0x20000>; // 128K at 0x30000000 56 - }; 57 17 58 18 nfc@40000000 { 59 - compatible = "fsl,mpc5121-nfc"; 60 - reg = <0x40000000 0x100000>; // 1M at 0x40000000 61 - interrupts = <6 8>; 62 - interrupt-parent = < &ipic >; 63 - #address-cells = <1>; 64 - #size-cells = <1>; 65 - // ADS has two Hynix 512MB Nand flash chips in a single 66 - // stacked package. 19 + /* 20 + * ADS has two Hynix 512MB Nand flash chips in a single 21 + * stacked package. 22 + */ 67 23 chips = <2>; 24 + 68 25 nand@0 { 69 26 label = "nand"; 70 - reg = <0x00000000 0x40000000>; // 512MB + 512MB 27 + reg = <0x00000000 0x40000000>; /* 512MB + 512MB */ 71 28 }; 72 29 }; 73 30 74 31 localbus@80000020 { 75 - compatible = "fsl,mpc5121-localbus"; 76 - #address-cells = <2>; 77 - #size-cells = <1>; 78 - reg = <0x80000020 0x40>; 79 - 80 32 ranges = <0x0 0x0 0xfc000000 0x04000000 81 33 0x2 0x0 0x82000000 0x00008000>; 82 34 ··· 39 87 #size-cells = <1>; 40 88 bank-width = <4>; 41 89 device-width = <2>; 90 + 42 91 protected@0 { 43 92 label = "protected"; 44 93 reg = <0x00000000 0x00040000>; // first sector is protected ··· 74 121 interrupt-controller; 75 122 #interrupt-cells = <2>; 76 123 reg = <0x2 0xa 0x5>; 77 - interrupt-parent = < &ipic >; 78 - // irq routing 79 - // all irqs but touch screen are routed to irq0 (ipic 48) 80 - // touch screen is statically routed to irq1 (ipic 17) 81 - // so don't use it here 124 + /* irq routing: 125 + * all irqs but touch screen are routed to irq0 (ipic 48) 126 + * touch screen is statically routed to irq1 (ipic 17) 127 + * so don't use it here 128 + */ 82 129 interrupts = <48 0x8>; 83 130 }; 84 131 }; 85 132 86 133 soc@80000000 { 87 - compatible = "fsl,mpc5121-immr"; 88 - #address-cells = <1>; 89 - #size-cells = <1>; 90 - #interrupt-cells = <2>; 91 - ranges = <0x0 0x80000000 0x400000>; 92 - reg = <0x80000000 0x400000>; 93 - bus-frequency = <66000000>; // 66 MHz ips bus 94 - 95 - 96 - // IPIC 97 - // interrupts cell = <intr #, sense> 98 - // sense values match linux IORESOURCE_IRQ_* defines: 99 - // sense == 8: Level, low assertion 100 - // sense == 2: Edge, high-to-low change 101 - // 102 - ipic: interrupt-controller@c00 { 103 - compatible = "fsl,mpc5121-ipic", "fsl,ipic"; 104 - interrupt-controller; 105 - #address-cells = <0>; 106 - #interrupt-cells = <2>; 107 - reg = <0xc00 0x100>; 108 - }; 109 - 110 - rtc@a00 { // Real time clock 111 - compatible = "fsl,mpc5121-rtc"; 112 - reg = <0xa00 0x100>; 113 - interrupts = <79 0x8 80 0x8>; 114 - interrupt-parent = < &ipic >; 115 - }; 116 - 117 - reset@e00 { // Reset module 118 - compatible = "fsl,mpc5121-reset"; 119 - reg = <0xe00 0x100>; 120 - }; 121 - 122 - clock@f00 { // Clock control 123 - compatible = "fsl,mpc5121-clock"; 124 - reg = <0xf00 0x100>; 125 - }; 126 - 127 - pmc@1000{ //Power Management Controller 128 - compatible = "fsl,mpc5121-pmc"; 129 - reg = <0x1000 0x100>; 130 - interrupts = <83 0x2>; 131 - interrupt-parent = < &ipic >; 132 - }; 133 - 134 - gpio@1100 { 135 - compatible = "fsl,mpc5121-gpio"; 136 - reg = <0x1100 0x100>; 137 - interrupts = <78 0x8>; 138 - interrupt-parent = < &ipic >; 139 - }; 140 - 141 - can@1300 { 142 - compatible = "fsl,mpc5121-mscan"; 143 - interrupts = <12 0x8>; 144 - interrupt-parent = < &ipic >; 145 - reg = <0x1300 0x80>; 146 - }; 147 - 148 - can@1380 { 149 - compatible = "fsl,mpc5121-mscan"; 150 - interrupts = <13 0x8>; 151 - interrupt-parent = < &ipic >; 152 - reg = <0x1380 0x80>; 153 - }; 154 134 155 135 i2c@1700 { 156 - #address-cells = <1>; 157 - #size-cells = <0>; 158 - compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 159 - reg = <0x1700 0x20>; 160 - interrupts = <9 0x8>; 161 - interrupt-parent = < &ipic >; 162 136 fsl,preserve-clocking; 163 137 164 138 hwmon@4a { ··· 104 224 }; 105 225 }; 106 226 107 - i2c@1720 { 108 - #address-cells = <1>; 109 - #size-cells = <0>; 110 - compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 111 - reg = <0x1720 0x20>; 112 - interrupts = <10 0x8>; 113 - interrupt-parent = < &ipic >; 227 + eth0: ethernet@2800 { 228 + phy-handle = <&phy0>; 114 229 }; 115 230 116 - i2c@1740 { 117 - #address-cells = <1>; 118 - #size-cells = <0>; 119 - compatible = "fsl,mpc5121-i2c", "fsl-i2c"; 120 - reg = <0x1740 0x20>; 121 - interrupts = <11 0x8>; 122 - interrupt-parent = < &ipic >; 231 + can@2300 { 232 + status = "disabled"; 123 233 }; 124 234 125 - i2ccontrol@1760 { 126 - compatible = "fsl,mpc5121-i2c-ctrl"; 127 - reg = <0x1760 0x8>; 235 + can@2380 { 236 + status = "disabled"; 128 237 }; 129 238 130 - axe@2000 { 131 - compatible = "fsl,mpc5121-axe"; 132 - reg = <0x2000 0x100>; 133 - interrupts = <42 0x8>; 134 - interrupt-parent = < &ipic >; 135 - }; 136 - 137 - display@2100 { 138 - compatible = "fsl,mpc5121-diu"; 139 - reg = <0x2100 0x100>; 140 - interrupts = <64 0x8>; 141 - interrupt-parent = < &ipic >; 239 + viu@2400 { 240 + status = "disabled"; 142 241 }; 143 242 144 243 mdio@2800 { 145 - compatible = "fsl,mpc5121-fec-mdio"; 146 - reg = <0x2800 0x800>; 147 - #address-cells = <1>; 148 - #size-cells = <0>; 149 - phy: ethernet-phy@0 { 244 + phy0: ethernet-phy@0 { 150 245 reg = <1>; 151 - device_type = "ethernet-phy"; 152 246 }; 153 247 }; 154 248 155 - ethernet@2800 { 156 - device_type = "network"; 157 - compatible = "fsl,mpc5121-fec"; 158 - reg = <0x2800 0x800>; 159 - local-mac-address = [ 00 00 00 00 00 00 ]; 160 - interrupts = <4 0x8>; 161 - interrupt-parent = < &ipic >; 162 - phy-handle = < &phy >; 163 - fsl,align-tx-packets = <4>; 249 + /* mpc5121ads only uses USB0 */ 250 + usb@3000 { 251 + status = "disabled"; 164 252 }; 165 253 166 - // 5121e has two dr usb modules 167 - // mpc5121_ads only uses USB0 168 - 169 - // USB1 using external ULPI PHY 170 - //usb@3000 { 171 - // compatible = "fsl,mpc5121-usb2-dr"; 172 - // reg = <0x3000 0x1000>; 173 - // #address-cells = <1>; 174 - // #size-cells = <0>; 175 - // interrupt-parent = < &ipic >; 176 - // interrupts = <43 0x8>; 177 - // dr_mode = "otg"; 178 - // phy_type = "ulpi"; 179 - //}; 180 - 181 - // USB0 using internal UTMI PHY 254 + /* USB0 using internal UTMI PHY */ 182 255 usb@4000 { 183 - compatible = "fsl,mpc5121-usb2-dr"; 184 - reg = <0x4000 0x1000>; 185 - #address-cells = <1>; 186 - #size-cells = <0>; 187 - interrupt-parent = < &ipic >; 188 - interrupts = <44 0x8>; 189 - dr_mode = "otg"; 190 - phy_type = "utmi_wide"; 256 + dr_mode = "host"; 191 257 fsl,invert-drvvbus; 192 258 fsl,invert-pwr-fault; 193 259 }; 194 260 195 - // IO control 196 - ioctl@a000 { 197 - compatible = "fsl,mpc5121-ioctl"; 198 - reg = <0xA000 0x1000>; 199 - }; 200 - 201 - pata@10200 { 202 - compatible = "fsl,mpc5121-pata"; 203 - reg = <0x10200 0x100>; 204 - interrupts = <5 0x8>; 205 - interrupt-parent = < &ipic >; 206 - }; 207 - 208 - // 512x PSCs are not 52xx PSC compatible 209 - // PSC3 serial port A aka ttyPSC0 210 - serial@11300 { 211 - device_type = "serial"; 261 + /* PSC3 serial port A aka ttyPSC0 */ 262 + psc@11300 { 212 263 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 213 - // Logical port assignment needed until driver 214 - // learns to use aliases 215 - port-number = <0>; 216 - cell-index = <3>; 217 - reg = <0x11300 0x100>; 218 - interrupts = <40 0x8>; 219 - interrupt-parent = < &ipic >; 220 - rx-fifo-size = <16>; 221 - tx-fifo-size = <16>; 222 264 }; 223 265 224 - // PSC4 serial port B aka ttyPSC1 225 - serial@11400 { 226 - device_type = "serial"; 266 + /* PSC4 serial port B aka ttyPSC1 */ 267 + psc@11400 { 227 268 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 228 - // Logical port assignment needed until driver 229 - // learns to use aliases 230 - port-number = <1>; 231 - cell-index = <4>; 232 - reg = <0x11400 0x100>; 233 - interrupts = <40 0x8>; 234 - interrupt-parent = < &ipic >; 235 - rx-fifo-size = <16>; 236 - tx-fifo-size = <16>; 237 269 }; 238 270 239 - // PSC5 in ac97 mode 240 - ac97@11500 { 271 + /* PSC5 in ac97 mode */ 272 + ac97: psc@11500 { 241 273 compatible = "fsl,mpc5121-psc-ac97", "fsl,mpc5121-psc"; 242 - cell-index = <5>; 243 - reg = <0x11500 0x100>; 244 - interrupts = <40 0x8>; 245 - interrupt-parent = < &ipic >; 246 274 fsl,mode = "ac97-slave"; 247 - rx-fifo-size = <384>; 248 - tx-fifo-size = <384>; 275 + fsl,rx-fifo-size = <384>; 276 + fsl,tx-fifo-size = <384>; 249 277 }; 250 - 251 - pscfifo@11f00 { 252 - compatible = "fsl,mpc5121-psc-fifo"; 253 - reg = <0x11f00 0x100>; 254 - interrupts = <40 0x8>; 255 - interrupt-parent = < &ipic >; 256 - }; 257 - 258 - dma@14000 { 259 - compatible = "fsl,mpc5121-dma"; 260 - reg = <0x14000 0x1800>; 261 - interrupts = <65 0x8>; 262 - interrupt-parent = < &ipic >; 263 - }; 264 - 265 278 }; 266 279 267 280 pci: pci@80008500 { 268 281 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 269 282 interrupt-map = < 270 - // IDSEL 0x15 - Slot 1 PCI 283 + /* IDSEL 0x15 - Slot 1 PCI */ 271 284 0xa800 0x0 0x0 0x1 &cpld_pic 0x0 0x8 272 285 0xa800 0x0 0x0 0x2 &cpld_pic 0x1 0x8 273 286 0xa800 0x0 0x0 0x3 &cpld_pic 0x2 0x8 274 287 0xa800 0x0 0x0 0x4 &cpld_pic 0x3 0x8 275 288 276 - // IDSEL 0x16 - Slot 2 MiniPCI 289 + /* IDSEL 0x16 - Slot 2 MiniPCI */ 277 290 0xb000 0x0 0x0 0x1 &cpld_pic 0x4 0x8 278 291 0xb000 0x0 0x0 0x2 &cpld_pic 0x5 0x8 279 292 280 - // IDSEL 0x17 - Slot 3 MiniPCI 293 + /* IDSEL 0x17 - Slot 3 MiniPCI */ 281 294 0xb800 0x0 0x0 0x1 &cpld_pic 0x6 0x8 282 295 0xb800 0x0 0x0 0x2 &cpld_pic 0x7 0x8 283 296 >; 284 - interrupt-parent = < &ipic >; 285 - interrupts = <1 0x8>; 286 - bus-range = <0 0>; 287 - ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000 288 - 0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000 289 - 0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>; 290 - clock-frequency = <0>; 291 - #interrupt-cells = <1>; 292 - #size-cells = <2>; 293 - #address-cells = <3>; 294 - reg = <0x80008500 0x100 /* internal registers */ 295 - 0x80008300 0x8>; /* config space access registers */ 296 - compatible = "fsl,mpc5121-pci"; 297 - device_type = "pci"; 298 297 }; 299 298 };
+17 -8
arch/powerpc/boot/dts/mpc5200b.dtsi
··· 64 64 reg = <0x500 0x80>; 65 65 }; 66 66 67 - timer@600 { // General Purpose Timer 67 + gpt0: timer@600 { // General Purpose Timer 68 68 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 69 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 69 70 reg = <0x600 0x10>; 70 71 interrupts = <1 9 0>; 72 + // add 'fsl,has-wdt' to enable watchdog 71 73 }; 72 74 73 - timer@610 { // General Purpose Timer 75 + gpt1: timer@610 { // General Purpose Timer 74 76 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 77 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 75 78 reg = <0x610 0x10>; 76 79 interrupts = <1 10 0>; 77 80 }; 78 81 79 - timer@620 { // General Purpose Timer 82 + gpt2: timer@620 { // General Purpose Timer 80 83 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 84 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 81 85 reg = <0x620 0x10>; 82 86 interrupts = <1 11 0>; 83 87 }; 84 88 85 - timer@630 { // General Purpose Timer 89 + gpt3: timer@630 { // General Purpose Timer 86 90 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 91 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 87 92 reg = <0x630 0x10>; 88 93 interrupts = <1 12 0>; 89 94 }; 90 95 91 - timer@640 { // General Purpose Timer 96 + gpt4: timer@640 { // General Purpose Timer 92 97 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 98 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 93 99 reg = <0x640 0x10>; 94 100 interrupts = <1 13 0>; 95 101 }; 96 102 97 - timer@650 { // General Purpose Timer 103 + gpt5: timer@650 { // General Purpose Timer 98 104 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 105 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 99 106 reg = <0x650 0x10>; 100 107 interrupts = <1 14 0>; 101 108 }; 102 109 103 - timer@660 { // General Purpose Timer 110 + gpt6: timer@660 { // General Purpose Timer 104 111 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 112 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 105 113 reg = <0x660 0x10>; 106 114 interrupts = <1 15 0>; 107 115 }; 108 116 109 - timer@670 { // General Purpose Timer 117 + gpt7: timer@670 { // General Purpose Timer 110 118 compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 119 + #gpio-cells = <2>; // Add 'gpio-controller;' to enable gpio mode 111 120 reg = <0x670 0x10>; 112 121 interrupts = <1 16 0>; 113 122 };
+12 -36
arch/powerpc/boot/dts/mucmc52.dts
··· 13 13 14 14 /include/ "mpc5200b.dtsi" 15 15 16 + /* Timer pins that need to be in GPIO mode */ 17 + &gpt0 { gpio-controller; }; 18 + &gpt1 { gpio-controller; }; 19 + &gpt2 { gpio-controller; }; 20 + &gpt3 { gpio-controller; }; 21 + 22 + /* Disabled timers */ 23 + &gpt4 { status = "disabled"; }; 24 + &gpt5 { status = "disabled"; }; 25 + &gpt6 { status = "disabled"; }; 26 + &gpt7 { status = "disabled"; }; 27 + 16 28 / { 17 29 model = "manroland,mucmc52"; 18 30 compatible = "manroland,mucmc52"; 19 31 20 32 soc5200@f0000000 { 21 - gpt0: timer@600 { // GPT 0 in GPIO mode 22 - gpio-controller; 23 - #gpio-cells = <2>; 24 - }; 25 - 26 - gpt1: timer@610 { // General Purpose Timer in GPIO mode 27 - gpio-controller; 28 - #gpio-cells = <2>; 29 - }; 30 - 31 - gpt2: timer@620 { // General Purpose Timer in GPIO mode 32 - gpio-controller; 33 - #gpio-cells = <2>; 34 - }; 35 - 36 - gpt3: timer@630 { // General Purpose Timer in GPIO mode 37 - gpio-controller; 38 - #gpio-cells = <2>; 39 - }; 40 - 41 - timer@640 { 42 - status = "disabled"; 43 - }; 44 - 45 - timer@650 { 46 - status = "disabled"; 47 - }; 48 - 49 - timer@660 { 50 - status = "disabled"; 51 - }; 52 - 53 - timer@670 { 54 - status = "disabled"; 55 - }; 56 - 57 33 rtc@800 { 58 34 status = "disabled"; 59 35 };
+8 -19
arch/powerpc/boot/dts/o2d.dtsi
··· 12 12 13 13 /include/ "mpc5200b.dtsi" 14 14 15 + &gpt0 { 16 + gpio-controller; 17 + fsl,has-wdt; 18 + fsl,wdt-on-boot = <0>; 19 + }; 20 + &gpt1 { gpio-controller; }; 21 + 15 22 / { 16 23 model = "ifm,o2d"; 17 24 compatible = "ifm,o2d"; ··· 28 21 }; 29 22 30 23 soc5200@f0000000 { 31 - 32 - gpio_simple: gpio@b00 { 33 - }; 34 - 35 - timer@600 { // General Purpose Timer 36 - #gpio-cells = <2>; 37 - gpio-controller; 38 - fsl,has-wdt; 39 - fsl,wdt-on-boot = <0>; 40 - }; 41 - 42 - timer@610 { 43 - #gpio-cells = <2>; 44 - gpio-controller; 45 - }; 46 - 47 - timer7: timer@670 { 48 - }; 49 24 50 25 rtc@800 { 51 26 status = "disabled"; ··· 107 118 csi@3,0 { 108 119 compatible = "ifm,o2d-csi"; 109 120 reg = <3 0 0x00100000>; 110 - ifm,csi-clk-handle = <&timer7>; 121 + ifm,csi-clk-handle = <&gpt7>; 111 122 gpios = <&gpio_simple 23 0 /* imag_capture */ 112 123 &gpio_simple 26 0 /* imag_reset */ 113 124 &gpio_simple 29 0>; /* imag_master_en */
+8 -40
arch/powerpc/boot/dts/pcm030.dts
··· 14 14 15 15 /include/ "mpc5200b.dtsi" 16 16 17 + &gpt0 { fsl,has-wdt; }; 18 + &gpt2 { gpio-controller; }; 19 + &gpt3 { gpio-controller; }; 20 + &gpt4 { gpio-controller; }; 21 + &gpt5 { gpio-controller; }; 22 + &gpt6 { gpio-controller; }; 23 + &gpt7 { gpio-controller; }; 24 + 17 25 / { 18 26 model = "phytec,pcm030"; 19 27 compatible = "phytec,pcm030"; 20 28 21 29 soc5200@f0000000 { 22 - timer@600 { // General Purpose Timer 23 - fsl,has-wdt; 24 - }; 25 - 26 - gpt2: timer@620 { // General Purpose Timer in GPIO mode 27 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 28 - gpio-controller; 29 - #gpio-cells = <2>; 30 - }; 31 - 32 - gpt3: timer@630 { // General Purpose Timer in GPIO mode 33 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 34 - gpio-controller; 35 - #gpio-cells = <2>; 36 - }; 37 - 38 - gpt4: timer@640 { // General Purpose Timer in GPIO mode 39 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 40 - gpio-controller; 41 - #gpio-cells = <2>; 42 - }; 43 - 44 - gpt5: timer@650 { // General Purpose Timer in GPIO mode 45 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 46 - gpio-controller; 47 - #gpio-cells = <2>; 48 - }; 49 - 50 - gpt6: timer@660 { // General Purpose Timer in GPIO mode 51 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 52 - gpio-controller; 53 - #gpio-cells = <2>; 54 - }; 55 - 56 - gpt7: timer@670 { // General Purpose Timer in GPIO mode 57 - compatible = "fsl,mpc5200b-gpt-gpio","fsl,mpc5200-gpt-gpio"; 58 - gpio-controller; 59 - #gpio-cells = <2>; 60 - }; 61 - 62 30 audioplatform: psc@2000 { /* PSC1 in ac97 mode */ 63 31 compatible = "mpc5200b-psc-ac97","fsl,mpc5200b-psc-ac97"; 64 32 cell-index = <0>;
+8 -37
arch/powerpc/boot/dts/pcm032.dts
··· 14 14 15 15 /include/ "mpc5200b.dtsi" 16 16 17 + &gpt0 { fsl,has-wdt; }; 18 + &gpt2 { gpio-controller; }; 19 + &gpt3 { gpio-controller; }; 20 + &gpt4 { gpio-controller; }; 21 + &gpt5 { gpio-controller; }; 22 + &gpt6 { gpio-controller; }; 23 + &gpt7 { gpio-controller; }; 24 + 17 25 / { 18 26 model = "phytec,pcm032"; 19 27 compatible = "phytec,pcm032"; ··· 31 23 }; 32 24 33 25 soc5200@f0000000 { 34 - timer@600 { // General Purpose Timer 35 - fsl,has-wdt; 36 - }; 37 - 38 - gpt2: timer@620 { // General Purpose Timer in GPIO mode 39 - gpio-controller; 40 - #gpio-cells = <2>; 41 - }; 42 - 43 - gpt3: timer@630 { // General Purpose Timer in GPIO mode 44 - gpio-controller; 45 - #gpio-cells = <2>; 46 - }; 47 - 48 - gpt4: timer@640 { // General Purpose Timer in GPIO mode 49 - gpio-controller; 50 - #gpio-cells = <2>; 51 - }; 52 - 53 - gpt5: timer@650 { // General Purpose Timer in GPIO mode 54 - gpio-controller; 55 - #gpio-cells = <2>; 56 - }; 57 - 58 - gpt6: timer@660 { // General Purpose Timer in GPIO mode 59 - compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 60 - reg = <0x660 0x10>; 61 - interrupts = <1 15 0>; 62 - gpio-controller; 63 - #gpio-cells = <2>; 64 - }; 65 - 66 - gpt7: timer@670 { // General Purpose Timer in GPIO mode 67 - gpio-controller; 68 - #gpio-cells = <2>; 69 - }; 70 - 71 26 psc@2000 { /* PSC1 is ac97 */ 72 27 compatible = "fsl,mpc5200b-psc-ac97","fsl,mpc5200-psc-ac97"; 73 28 cell-index = <0>;
+34 -245
arch/powerpc/boot/dts/pdm360ng.dts
··· 13 13 * option) any later version. 14 14 */ 15 15 16 - /dts-v1/; 16 + /include/ "mpc5121.dtsi" 17 17 18 18 / { 19 19 model = "pdm360ng"; ··· 22 22 #size-cells = <1>; 23 23 interrupt-parent = <&ipic>; 24 24 25 - aliases { 26 - ethernet0 = &eth0; 27 - }; 28 - 29 - cpus { 30 - #address-cells = <1>; 31 - #size-cells = <0>; 32 - 33 - PowerPC,5121@0 { 34 - device_type = "cpu"; 35 - reg = <0>; 36 - d-cache-line-size = <0x20>; // 32 bytes 37 - i-cache-line-size = <0x20>; // 32 bytes 38 - d-cache-size = <0x8000>; // L1, 32K 39 - i-cache-size = <0x8000>; // L1, 32K 40 - timebase-frequency = <49500000>;// 49.5 MHz (csb/4) 41 - bus-frequency = <198000000>; // 198 MHz csb bus 42 - clock-frequency = <396000000>; // 396 MHz ppc core 43 - }; 44 - }; 45 - 46 25 memory { 47 26 device_type = "memory"; 48 27 reg = <0x00000000 0x20000000>; // 512MB at 0 49 28 }; 50 29 51 30 nfc@40000000 { 52 - compatible = "fsl,mpc5121-nfc"; 53 - reg = <0x40000000 0x100000>; 54 - interrupts = <0x6 0x8>; 55 - #address-cells = <0x1>; 56 - #size-cells = <0x1>; 57 31 bank-width = <0x1>; 58 32 chips = <0x1>; 59 33 ··· 37 63 }; 38 64 }; 39 65 40 - sram@50000000 { 41 - compatible = "fsl,mpc5121-sram"; 42 - reg = <0x50000000 0x20000>; // 128K at 0x50000000 43 - }; 44 - 45 66 localbus@80000020 { 46 - compatible = "fsl,mpc5121-localbus"; 47 - #address-cells = <2>; 48 - #size-cells = <1>; 49 - reg = <0x80000020 0x40>; 50 - 51 67 ranges = <0x0 0x0 0xf0000000 0x10000000 /* Flash */ 52 68 0x2 0x0 0x50040000 0x00020000>; /* CS2: MRAM */ 53 69 ··· 93 129 }; 94 130 95 131 soc@80000000 { 96 - compatible = "fsl,mpc5121-immr"; 97 - #address-cells = <1>; 98 - #size-cells = <1>; 99 - #interrupt-cells = <2>; 100 - ranges = <0x0 0x80000000 0x400000>; 101 - reg = <0x80000000 0x400000>; 102 - bus-frequency = <66000000>; // 66 MHz ips bus 103 - 104 - // IPIC 105 - // interrupts cell = <intr #, sense> 106 - // sense values match linux IORESOURCE_IRQ_* defines: 107 - // sense == 8: Level, low assertion 108 - // sense == 2: Edge, high-to-low change 109 - // 110 - ipic: interrupt-controller@c00 { 111 - compatible = "fsl,mpc5121-ipic", "fsl,ipic"; 112 - interrupt-controller; 113 - #address-cells = <0>; 114 - #interrupt-cells = <2>; 115 - reg = <0xc00 0x100>; 116 - }; 117 - 118 - rtc@a00 { // Real time clock 119 - compatible = "fsl,mpc5121-rtc"; 120 - reg = <0xa00 0x100>; 121 - interrupts = <79 0x8 80 0x8>; 122 - }; 123 - 124 - reset@e00 { // Reset module 125 - compatible = "fsl,mpc5121-reset"; 126 - reg = <0xe00 0x100>; 127 - }; 128 - 129 - clock@f00 { // Clock control 130 - compatible = "fsl,mpc5121-clock"; 131 - reg = <0xf00 0x100>; 132 - }; 133 - 134 - pmc@1000{ //Power Management Controller 135 - compatible = "fsl,mpc5121-pmc"; 136 - reg = <0x1000 0x100>; 137 - interrupts = <83 0x2>; 138 - }; 139 - 140 - gpio@1100 { 141 - compatible = "fsl,mpc5121-gpio"; 142 - reg = <0x1100 0x100>; 143 - interrupts = <78 0x8>; 144 - }; 145 - 146 - can@1300 { 147 - compatible = "fsl,mpc5121-mscan"; 148 - interrupts = <12 0x8>; 149 - reg = <0x1300 0x80>; 150 - }; 151 - 152 - can@1380 { 153 - compatible = "fsl,mpc5121-mscan"; 154 - interrupts = <13 0x8>; 155 - reg = <0x1380 0x80>; 156 - }; 157 132 158 133 i2c@1700 { 159 - #address-cells = <1>; 160 - #size-cells = <0>; 161 - compatible = "fsl,mpc5121-i2c"; 162 - reg = <0x1700 0x20>; 163 - interrupts = <0x9 0x8>; 164 134 fsl,preserve-clocking; 165 135 166 136 eeprom@50 { ··· 108 210 }; 109 211 }; 110 212 213 + i2c@1720 { 214 + status = "disabled"; 215 + }; 216 + 111 217 i2c@1740 { 112 - #address-cells = <1>; 113 - #size-cells = <0>; 114 - compatible = "fsl,mpc5121-i2c"; 115 - reg = <0x1740 0x20>; 116 - interrupts = <0xb 0x8>; 117 218 fsl,preserve-clocking; 118 219 }; 119 220 120 - i2ccontrol@1760 { 121 - compatible = "fsl,mpc5121-i2c-ctrl"; 122 - reg = <0x1760 0x8>; 123 - }; 124 - 125 - axe@2000 { 126 - compatible = "fsl,mpc5121-axe"; 127 - reg = <0x2000 0x100>; 128 - interrupts = <42 0x8>; 129 - }; 130 - 131 - display@2100 { 132 - compatible = "fsl,mpc5121-diu"; 133 - reg = <0x2100 0x100>; 134 - interrupts = <64 0x8>; 135 - }; 136 - 137 - can@2300 { 138 - compatible = "fsl,mpc5121-mscan"; 139 - interrupts = <90 0x8>; 140 - reg = <0x2300 0x80>; 141 - }; 142 - 143 - can@2380 { 144 - compatible = "fsl,mpc5121-mscan"; 145 - interrupts = <91 0x8>; 146 - reg = <0x2380 0x80>; 147 - }; 148 - 149 - viu@2400 { 150 - compatible = "fsl,mpc5121-viu"; 151 - reg = <0x2400 0x400>; 152 - interrupts = <67 0x8>; 221 + ethernet@2800 { 222 + phy-handle = <&phy0>; 153 223 }; 154 224 155 225 mdio@2800 { 156 - compatible = "fsl,mpc5121-fec-mdio"; 157 - reg = <0x2800 0x200>; 158 - #address-cells = <1>; 159 - #size-cells = <0>; 160 - phy: ethernet-phy@0 { 226 + phy0: ethernet-phy@1f { 161 227 compatible = "smsc,lan8700"; 162 228 reg = <0x1f>; 163 229 }; 164 230 }; 165 231 166 - eth0: ethernet@2800 { 167 - compatible = "fsl,mpc5121-fec"; 168 - reg = <0x2800 0x200>; 169 - local-mac-address = [ 00 00 00 00 00 00 ]; 170 - interrupts = <4 0x8>; 171 - phy-handle = < &phy >; 172 - }; 173 - 174 - // USB1 using external ULPI PHY 232 + /* USB1 using external ULPI PHY */ 175 233 usb@3000 { 176 - compatible = "fsl,mpc5121-usb2-dr"; 177 - reg = <0x3000 0x600>; 178 - #address-cells = <1>; 179 - #size-cells = <0>; 180 - interrupts = <43 0x8>; 181 234 dr_mode = "host"; 182 - phy_type = "ulpi"; 183 235 }; 184 236 185 - // USB0 using internal UTMI PHY 237 + /* USB0 using internal UTMI PHY */ 186 238 usb@4000 { 187 - compatible = "fsl,mpc5121-usb2-dr"; 188 - reg = <0x4000 0x600>; 189 - #address-cells = <1>; 190 - #size-cells = <0>; 191 - interrupts = <44 0x8>; 192 - dr_mode = "otg"; 193 - phy_type = "utmi_wide"; 194 239 fsl,invert-pwr-fault; 195 240 }; 196 241 197 - // IO control 198 - ioctl@a000 { 199 - compatible = "fsl,mpc5121-ioctl"; 200 - reg = <0xA000 0x1000>; 201 - }; 202 - 203 - // 512x PSCs are not 52xx PSCs compatible 204 - serial@11000 { 242 + psc@11000 { 205 243 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 206 - cell-index = <0>; 207 - reg = <0x11000 0x100>; 208 - interrupts = <40 0x8>; 209 - fsl,rx-fifo-size = <16>; 210 - fsl,tx-fifo-size = <16>; 211 244 }; 212 245 213 - serial@11100 { 246 + psc@11100 { 214 247 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 215 - cell-index = <1>; 216 - reg = <0x11100 0x100>; 217 - interrupts = <40 0x8>; 218 - fsl,rx-fifo-size = <16>; 219 - fsl,tx-fifo-size = <16>; 220 248 }; 221 249 222 - serial@11200 { 250 + psc@11200 { 223 251 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 224 - cell-index = <2>; 225 - reg = <0x11200 0x100>; 226 - interrupts = <40 0x8>; 227 - fsl,rx-fifo-size = <16>; 228 - fsl,tx-fifo-size = <16>; 229 252 }; 230 253 231 - serial@11300 { 254 + psc@11300 { 232 255 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 233 - cell-index = <3>; 234 - reg = <0x11300 0x100>; 235 - interrupts = <40 0x8>; 236 - fsl,rx-fifo-size = <16>; 237 - fsl,tx-fifo-size = <16>; 238 256 }; 239 257 240 - serial@11400 { 258 + psc@11400 { 241 259 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 242 - cell-index = <4>; 243 - reg = <0x11400 0x100>; 244 - interrupts = <40 0x8>; 245 - fsl,rx-fifo-size = <16>; 246 - fsl,tx-fifo-size = <16>; 247 260 }; 248 261 249 - serial@11600 { 262 + psc@11500 { 263 + status = "disabled"; 264 + }; 265 + 266 + psc@11600 { 250 267 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 251 - cell-index = <6>; 252 - reg = <0x11600 0x100>; 253 - interrupts = <40 0x8>; 254 - fsl,rx-fifo-size = <16>; 255 - fsl,tx-fifo-size = <16>; 256 268 }; 257 269 258 - serial@11800 { 270 + psc@11700 { 271 + status = "disabled"; 272 + }; 273 + 274 + psc@11800 { 259 275 compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 260 - cell-index = <8>; 261 - reg = <0x11800 0x100>; 262 - interrupts = <40 0x8>; 263 - fsl,rx-fifo-size = <16>; 264 - fsl,tx-fifo-size = <16>; 265 276 }; 266 277 267 - serial@11B00 { 268 - compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 269 - cell-index = <11>; 270 - reg = <0x11B00 0x100>; 271 - interrupts = <40 0x8>; 272 - fsl,rx-fifo-size = <16>; 273 - fsl,tx-fifo-size = <16>; 274 - }; 275 - 276 - pscfifo@11f00 { 277 - compatible = "fsl,mpc5121-psc-fifo"; 278 - reg = <0x11f00 0x100>; 279 - interrupts = <40 0x8>; 280 - }; 281 - 282 - spi@11900 { 278 + psc@11900 { 283 279 compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; 284 - cell-index = <9>; 285 280 #address-cells = <1>; 286 281 #size-cells = <0>; 287 - reg = <0x11900 0x100>; 288 - interrupts = <40 0x8>; 289 - fsl,rx-fifo-size = <16>; 290 - fsl,tx-fifo-size = <16>; 291 282 292 - // 7845 touch screen controller 283 + /* ADS7845 touch screen controller */ 293 284 ts@0 { 294 285 compatible = "ti,ads7846"; 295 286 reg = <0x0>; 296 287 spi-max-frequency = <3000000>; 297 - // pen irq is GPIO25 288 + /* pen irq is GPIO25 */ 298 289 interrupts = <78 0x8>; 299 290 }; 300 291 }; 301 292 302 - dma@14000 { 303 - compatible = "fsl,mpc5121-dma"; 304 - reg = <0x14000 0x1800>; 305 - interrupts = <65 0x8>; 293 + psc@11a00 { 294 + status = "disabled"; 295 + }; 296 + 297 + psc@11b00 { 298 + compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 306 299 }; 307 300 }; 308 301 };
+9 -43
arch/powerpc/boot/dts/uc101.dts
··· 13 13 14 14 /include/ "mpc5200b.dtsi" 15 15 16 + &gpt0 { gpio-controller; }; 17 + &gpt1 { gpio-controller; }; 18 + &gpt2 { gpio-controller; }; 19 + &gpt3 { gpio-controller; }; 20 + &gpt4 { gpio-controller; }; 21 + &gpt5 { gpio-controller; }; 22 + &gpt6 { gpio-controller; }; 23 + &gpt7 { gpio-controller; }; 24 + 16 25 / { 17 26 model = "manroland,uc101"; 18 27 compatible = "manroland,uc101"; 19 28 20 29 soc5200@f0000000 { 21 - gpt0: timer@600 { // General Purpose Timer in GPIO mode 22 - gpio-controller; 23 - #gpio-cells = <2>; 24 - }; 25 - 26 - gpt1: timer@610 { // General Purpose Timer in GPIO mode 27 - gpio-controller; 28 - #gpio-cells = <2>; 29 - }; 30 - 31 - gpt2: timer@620 { // General Purpose Timer in GPIO mode 32 - gpio-controller; 33 - #gpio-cells = <2>; 34 - }; 35 - 36 - gpt3: timer@630 { // General Purpose Timer in GPIO mode 37 - compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt"; 38 - reg = <0x630 0x10>; 39 - interrupts = <1 12 0>; 40 - gpio-controller; 41 - #gpio-cells = <2>; 42 - }; 43 - 44 - gpt4: timer@640 { // General Purpose Timer in GPIO mode 45 - gpio-controller; 46 - #gpio-cells = <2>; 47 - }; 48 - 49 - gpt5: timer@650 { // General Purpose Timer in GPIO mode 50 - gpio-controller; 51 - #gpio-cells = <2>; 52 - }; 53 - 54 - gpt6: timer@660 { // General Purpose Timer in GPIO mode 55 - gpio-controller; 56 - #gpio-cells = <2>; 57 - }; 58 - 59 - gpt7: timer@670 { // General Purpose Timer in GPIO mode 60 - gpio-controller; 61 - #gpio-cells = <2>; 62 - }; 63 - 64 30 rtc@800 { 65 31 status = "disabled"; 66 32 };
+17
arch/powerpc/include/asm/mpc5121.h
··· 53 53 u32 m4ccr; /* MSCAN4 CCR */ 54 54 u8 res[0x98]; /* Reserved */ 55 55 }; 56 + 57 + /* 58 + * LPC Module 59 + */ 60 + struct mpc512x_lpc { 61 + u32 cs_cfg[8]; /* CS config */ 62 + u32 cs_ctrl; /* CS Control Register */ 63 + u32 cs_status; /* CS Status Register */ 64 + u32 burst_ctrl; /* CS Burst Control Register */ 65 + u32 deadcycle_ctrl; /* CS Deadcycle Control Register */ 66 + u32 holdcycle_ctrl; /* CS Holdcycle Control Register */ 67 + u32 alt; /* Address Latch Timing Register */ 68 + }; 69 + 70 + int mpc512x_cs_config(unsigned int cs, u32 val); 71 + int __init mpc5121_clk_init(void); 72 + 56 73 #endif /* __ASM_POWERPC_MPC5121_H__ */
+17 -17
arch/powerpc/platforms/512x/clock.c
··· 26 26 27 27 #include <linux/of_platform.h> 28 28 #include <asm/mpc5xxx.h> 29 + #include <asm/mpc5121.h> 29 30 #include <asm/clk_interface.h> 30 31 31 32 #undef CLK_DEBUG ··· 123 122 u32 dccr; /* DIU Clk Cnfg Reg */ 124 123 }; 125 124 126 - struct mpc512x_clockctl __iomem *clockctl; 125 + static struct mpc512x_clockctl __iomem *clockctl; 127 126 128 127 static int mpc5121_clk_enable(struct clk *clk) 129 128 { ··· 185 184 36, 40, 44, 48, 186 185 52, 56, 60, 64 187 186 }; 188 - int spmf = (clockctl->spmr >> 24) & 0xf; 187 + int spmf = (in_be32(&clockctl->spmr) >> 24) & 0xf; 189 188 return spmf_to_mult[spmf]; 190 189 } 191 190 ··· 207 206 52, 56, 58, 62, 208 207 60, 64, 66, 209 208 }; 210 - int sysdiv = (clockctl->scfr2 >> 26) & 0x3f; 209 + int sysdiv = (in_be32(&clockctl->scfr2) >> 26) & 0x3f; 211 210 return sysdiv_to_div_x_2[sysdiv]; 212 211 } 213 212 ··· 231 230 232 231 static long ips_to_ref(unsigned long rate) 233 232 { 234 - int ips_div = (clockctl->scfr1 >> 23) & 0x7; 233 + int ips_div = (in_be32(&clockctl->scfr1) >> 23) & 0x7; 235 234 236 235 rate *= ips_div; /* csb_clk = ips_clk * ips_div */ 237 236 rate *= 2; /* sys_clk = csb_clk * 2 */ ··· 285 284 286 285 static void diu_clk_calc(struct clk *clk) 287 286 { 288 - int diudiv_x_2 = clockctl->scfr1 & 0xff; 287 + int diudiv_x_2 = in_be32(&clockctl->scfr1) & 0xff; 289 288 unsigned long rate; 290 289 291 290 rate = sys_clk.rate; ··· 312 311 313 312 static void generic_div_clk_calc(struct clk *clk) 314 313 { 315 - int div = (clockctl->scfr1 >> clk->div_shift) & 0x7; 314 + int div = (in_be32(&clockctl->scfr1) >> clk->div_shift) & 0x7; 316 315 317 316 clk->rate = clk->parent->rate / div; 318 317 } ··· 330 329 331 330 static void e300_clk_calc(struct clk *clk) 332 331 { 333 - int spmf = (clockctl->spmr >> 16) & 0xf; 332 + int spmf = (in_be32(&clockctl->spmr) >> 16) & 0xf; 334 333 int ratex2 = clk->parent->rate * spmf; 335 334 336 335 clk->rate = ratex2 / 2; ··· 552 551 .calc = ac97_clk_calc, 553 552 }; 554 553 555 - struct clk *rate_clks[] = { 554 + static struct clk *rate_clks[] = { 556 555 &ref_clk, 557 556 &sys_clk, 558 557 &diu_clk, ··· 608 607 * There are two clk enable registers with 32 enable bits each 609 608 * psc clocks and device clocks are all stored in dev_clks 610 609 */ 611 - struct clk dev_clks[2][32]; 610 + static struct clk dev_clks[2][32]; 612 611 613 612 /* 614 613 * Given a psc number return the dev_clk ··· 649 648 out_be32(&clockctl->pccr[pscnum], 0x00020000); 650 649 out_be32(&clockctl->pccr[pscnum], 0x00030000); 651 650 652 - if (clockctl->pccr[pscnum] & 0x80) { 651 + if (in_be32(&clockctl->pccr[pscnum]) & 0x80) { 653 652 clk->rate = spdif_rxclk.rate; 654 653 return; 655 654 } 656 655 657 - switch ((clockctl->pccr[pscnum] >> 14) & 0x3) { 656 + switch ((in_be32(&clockctl->pccr[pscnum]) >> 14) & 0x3) { 658 657 case 0: 659 658 mclk_src = sys_clk.rate; 660 659 break; ··· 669 668 break; 670 669 } 671 670 672 - mclk_div = ((clockctl->pccr[pscnum] >> 17) & 0x7fff) + 1; 671 + mclk_div = ((in_be32(&clockctl->pccr[pscnum]) >> 17) & 0x7fff) + 1; 673 672 clk->rate = mclk_src / mclk_div; 674 673 } 675 674 ··· 681 680 static void psc_clks_init(void) 682 681 { 683 682 struct device_node *np; 684 - const u32 *cell_index; 685 683 struct platform_device *ofdev; 684 + u32 reg; 686 685 687 686 for_each_compatible_node(np, NULL, "fsl,mpc5121-psc") { 688 - cell_index = of_get_property(np, "cell-index", NULL); 689 - if (cell_index) { 690 - int pscnum = *cell_index; 687 + if (!of_property_read_u32(np, "reg", &reg)) { 688 + int pscnum = (reg & 0xf00) >> 8; 691 689 struct clk *clk = psc_dev_clk(pscnum); 692 690 693 691 clk->flags = CLK_HAS_RATE | CLK_HAS_CTRL; ··· 696 696 * AC97 is special rate clock does 697 697 * not go through normal path 698 698 */ 699 - if (strcmp("ac97", np->name) == 0) 699 + if (of_device_is_compatible(np, "fsl,mpc5121-psc-ac97")) 700 700 clk->rate = ac97_clk.rate; 701 701 else 702 702 psc_calc_rate(clk, pscnum, np);
+31 -1
arch/powerpc/platforms/512x/mpc512x_shared.c
··· 426 426 427 427 void __init mpc512x_init(void) 428 428 { 429 - mpc512x_declare_of_platform_devices(); 430 429 mpc5121_clk_init(); 430 + mpc512x_declare_of_platform_devices(); 431 431 mpc512x_restart_init(); 432 432 mpc512x_psc_fifo_init(); 433 433 } 434 + 435 + /** 436 + * mpc512x_cs_config - Setup chip select configuration 437 + * @cs: chip select number 438 + * @val: chip select configuration value 439 + * 440 + * Perform chip select configuration for devices on LocalPlus Bus. 441 + * Intended to dynamically reconfigure the chip select parameters 442 + * for configurable devices on the bus. 443 + */ 444 + int mpc512x_cs_config(unsigned int cs, u32 val) 445 + { 446 + static struct mpc512x_lpc __iomem *lpc; 447 + struct device_node *np; 448 + 449 + if (cs > 7) 450 + return -EINVAL; 451 + 452 + if (!lpc) { 453 + np = of_find_compatible_node(NULL, NULL, "fsl,mpc5121-lpc"); 454 + lpc = of_iomap(np, 0); 455 + of_node_put(np); 456 + if (!lpc) 457 + return -ENOMEM; 458 + } 459 + 460 + out_be32(&lpc->cs_cfg[cs], val); 461 + return 0; 462 + } 463 + EXPORT_SYMBOL(mpc512x_cs_config);
+3 -3
arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c
··· 20 20 #include <asm/mpc52xx.h> 21 21 #include <asm/time.h> 22 22 23 - #include <sysdev/bestcomm/bestcomm.h> 24 - #include <sysdev/bestcomm/bestcomm_priv.h> 25 - #include <sysdev/bestcomm/gen_bd.h> 23 + #include <linux/fsl/bestcomm/bestcomm.h> 24 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 25 + #include <linux/fsl/bestcomm/gen_bd.h> 26 26 27 27 MODULE_AUTHOR("Grant Likely <grant.likely@secretlab.ca>"); 28 28 MODULE_DESCRIPTION("MPC5200 LocalPlus FIFO device driver");
-2
arch/powerpc/platforms/Kconfig
··· 352 352 Uses information from the OF or flattened device tree to instantiate 353 353 platform devices for direct mapped RTC chips like the DS1742 or DS1743. 354 354 355 - source "arch/powerpc/sysdev/bestcomm/Kconfig" 356 - 357 355 config SIMPLE_GPIO 358 356 bool "Support for simple, memory-mapped GPIO controllers" 359 357 depends on PPC
-1
arch/powerpc/sysdev/Makefile
··· 26 26 obj-$(CONFIG_FSL_RIO) += fsl_rio.o fsl_rmu.o 27 27 obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o 28 28 obj-$(CONFIG_QUICC_ENGINE) += qe_lib/ 29 - obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/ 30 29 mv64x60-$(CONFIG_PCI) += mv64x60_pci.o 31 30 obj-$(CONFIG_MV64X60) += $(mv64x60-y) mv64x60_pic.o mv64x60_dev.o \ 32 31 mv64x60_udbg.o
arch/powerpc/sysdev/bestcomm/Kconfig drivers/dma/bestcomm/Kconfig
arch/powerpc/sysdev/bestcomm/Makefile drivers/dma/bestcomm/Makefile
+3 -3
arch/powerpc/sysdev/bestcomm/ata.c drivers/dma/bestcomm/ata.c
··· 18 18 #include <linux/types.h> 19 19 #include <asm/io.h> 20 20 21 - #include "bestcomm.h" 22 - #include "bestcomm_priv.h" 23 - #include "ata.h" 21 + #include <linux/fsl/bestcomm/bestcomm.h> 22 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 23 + #include <linux/fsl/bestcomm/ata.h> 24 24 25 25 26 26 /* ======================================================================== */
arch/powerpc/sysdev/bestcomm/ata.h include/linux/fsl/bestcomm/ata.h
arch/powerpc/sysdev/bestcomm/bcom_ata_task.c drivers/dma/bestcomm/bcom_ata_task.c
arch/powerpc/sysdev/bestcomm/bcom_fec_rx_task.c drivers/dma/bestcomm/bcom_fec_rx_task.c
arch/powerpc/sysdev/bestcomm/bcom_fec_tx_task.c drivers/dma/bestcomm/bcom_fec_tx_task.c
arch/powerpc/sysdev/bestcomm/bcom_gen_bd_rx_task.c drivers/dma/bestcomm/bcom_gen_bd_rx_task.c
arch/powerpc/sysdev/bestcomm/bcom_gen_bd_tx_task.c drivers/dma/bestcomm/bcom_gen_bd_tx_task.c
+3 -3
arch/powerpc/sysdev/bestcomm/bestcomm.c drivers/dma/bestcomm/bestcomm.c
··· 23 23 #include <asm/irq.h> 24 24 #include <asm/mpc52xx.h> 25 25 26 - #include "sram.h" 27 - #include "bestcomm_priv.h" 28 - #include "bestcomm.h" 26 + #include <linux/fsl/bestcomm/sram.h> 27 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 28 + #include "linux/fsl/bestcomm/bestcomm.h" 29 29 30 30 #define DRIVER_NAME "bestcomm-core" 31 31
arch/powerpc/sysdev/bestcomm/bestcomm.h include/linux/fsl/bestcomm/bestcomm.h
arch/powerpc/sysdev/bestcomm/bestcomm_priv.h include/linux/fsl/bestcomm/bestcomm_priv.h
+3 -3
arch/powerpc/sysdev/bestcomm/fec.c drivers/dma/bestcomm/fec.c
··· 16 16 #include <linux/types.h> 17 17 #include <asm/io.h> 18 18 19 - #include "bestcomm.h" 20 - #include "bestcomm_priv.h" 21 - #include "fec.h" 19 + #include <linux/fsl/bestcomm/bestcomm.h> 20 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 21 + #include <linux/fsl/bestcomm/fec.h> 22 22 23 23 24 24 /* ======================================================================== */
arch/powerpc/sysdev/bestcomm/fec.h include/linux/fsl/bestcomm/fec.h
+3 -3
arch/powerpc/sysdev/bestcomm/gen_bd.c drivers/dma/bestcomm/gen_bd.c
··· 21 21 #include <asm/mpc52xx.h> 22 22 #include <asm/mpc52xx_psc.h> 23 23 24 - #include "bestcomm.h" 25 - #include "bestcomm_priv.h" 26 - #include "gen_bd.h" 24 + #include <linux/fsl/bestcomm/bestcomm.h> 25 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 26 + #include <linux/fsl/bestcomm/gen_bd.h> 27 27 28 28 29 29 /* ======================================================================== */
arch/powerpc/sysdev/bestcomm/gen_bd.h include/linux/fsl/bestcomm/gen_bd.h
+1 -1
arch/powerpc/sysdev/bestcomm/sram.c drivers/dma/bestcomm/sram.c
··· 23 23 #include <asm/io.h> 24 24 #include <asm/mmu.h> 25 25 26 - #include "sram.h" 26 + #include <linux/fsl/bestcomm/sram.h> 27 27 28 28 29 29 /* Struct keeping our 'state' */
arch/powerpc/sysdev/bestcomm/sram.h include/linux/fsl/bestcomm/sram.h
+2 -2
arch/powerpc/sysdev/mpc5xxx_clocks.c
··· 9 9 #include <linux/kernel.h> 10 10 #include <linux/of_platform.h> 11 11 #include <linux/export.h> 12 + #include <asm/mpc5xxx.h> 12 13 13 - unsigned int 14 - mpc5xxx_get_bus_frequency(struct device_node *node) 14 + unsigned long mpc5xxx_get_bus_frequency(struct device_node *node) 15 15 { 16 16 struct device_node *np; 17 17 const unsigned int *p_bus_freq = NULL;
+1 -1
drivers/Makefile
··· 29 29 obj-y += amba/ 30 30 # Many drivers will want to use DMA so this has to be made available 31 31 # really early. 32 - obj-$(CONFIG_DMA_ENGINE) += dma/ 32 + obj-$(CONFIG_DMADEVICES) += dma/ 33 33 34 34 obj-$(CONFIG_VIRTIO) += virtio/ 35 35 obj-$(CONFIG_XEN) += xen/
+3 -3
drivers/ata/pata_mpc52xx.c
··· 26 26 #include <asm/prom.h> 27 27 #include <asm/mpc52xx.h> 28 28 29 - #include <sysdev/bestcomm/bestcomm.h> 30 - #include <sysdev/bestcomm/bestcomm_priv.h> 31 - #include <sysdev/bestcomm/ata.h> 29 + #include <linux/fsl/bestcomm/bestcomm.h> 30 + #include <linux/fsl/bestcomm/bestcomm_priv.h> 31 + #include <linux/fsl/bestcomm/ata.h> 32 32 33 33 #define DRV_NAME "mpc52xx_ata" 34 34
+2
drivers/dma/Kconfig
··· 125 125 ---help--- 126 126 Enable support for the Freescale MPC512x built-in DMA engine. 127 127 128 + source "drivers/dma/bestcomm/Kconfig" 129 + 128 130 config MV_XOR 129 131 bool "Marvell XOR engine support" 130 132 depends on PLAT_ORION
+1
drivers/dma/Makefile
··· 10 10 obj-$(CONFIG_INTEL_IOP_ADMA) += iop-adma.o 11 11 obj-$(CONFIG_FSL_DMA) += fsldma.o 12 12 obj-$(CONFIG_MPC512X_DMA) += mpc512x_dma.o 13 + obj-$(CONFIG_PPC_BESTCOMM) += bestcomm/ 13 14 obj-$(CONFIG_MV_XOR) += mv_xor.o 14 15 obj-$(CONFIG_DW_DMAC) += dw_dmac.o 15 16 obj-$(CONFIG_AT_HDMAC) += at_hdmac.o
+2 -2
drivers/net/ethernet/freescale/fec_mpc52xx.c
··· 40 40 #include <asm/delay.h> 41 41 #include <asm/mpc52xx.h> 42 42 43 - #include <sysdev/bestcomm/bestcomm.h> 44 - #include <sysdev/bestcomm/fec.h> 43 + #include <linux/fsl/bestcomm/bestcomm.h> 44 + #include <linux/fsl/bestcomm/fec.h> 45 45 46 46 #include "fec_mpc52xx.h" 47 47
+36 -28
drivers/video/fsl-diu-fb.c
··· 944 944 #define PF_COMP_0_MASK 0x0000000F 945 945 #define PF_COMP_0_SHIFT 0 946 946 947 - #define MAKE_PF(alpha, red, blue, green, size, c0, c1, c2, c3) \ 947 + #define MAKE_PF(alpha, red, green, blue, size, c0, c1, c2, c3) \ 948 948 cpu_to_le32(PF_BYTE_F | (alpha << PF_ALPHA_C_SHIFT) | \ 949 949 (blue << PF_BLUE_C_SHIFT) | (green << PF_GREEN_C_SHIFT) | \ 950 950 (red << PF_RED_C_SHIFT) | (c3 << PF_COMP_3_SHIFT) | \ ··· 954 954 switch (bits_per_pixel) { 955 955 case 32: 956 956 /* 0x88883316 */ 957 - return MAKE_PF(3, 2, 0, 1, 3, 8, 8, 8, 8); 957 + return MAKE_PF(3, 2, 1, 0, 3, 8, 8, 8, 8); 958 958 case 24: 959 959 /* 0x88082219 */ 960 - return MAKE_PF(4, 0, 1, 2, 2, 0, 8, 8, 8); 960 + return MAKE_PF(4, 0, 1, 2, 2, 8, 8, 8, 0); 961 961 case 16: 962 962 /* 0x65053118 */ 963 963 return MAKE_PF(4, 2, 1, 0, 1, 5, 6, 5, 0); ··· 1232 1232 return 0; 1233 1233 } 1234 1234 1235 + static inline void fsl_diu_enable_interrupts(struct fsl_diu_data *data) 1236 + { 1237 + u32 int_mask = INT_UNDRUN; /* enable underrun detection */ 1238 + 1239 + if (IS_ENABLED(CONFIG_NOT_COHERENT_CACHE)) 1240 + int_mask |= INT_VSYNC; /* enable vertical sync */ 1241 + 1242 + clrbits32(&data->diu_reg->int_mask, int_mask); 1243 + } 1244 + 1235 1245 /* turn on fb if count == 1 1236 1246 */ 1237 1247 static int fsl_diu_open(struct fb_info *info, int user) ··· 1261 1251 if (res < 0) 1262 1252 mfbi->count--; 1263 1253 else { 1264 - struct fsl_diu_data *data = mfbi->parent; 1265 - 1266 - #ifdef CONFIG_NOT_COHERENT_CACHE 1267 - /* 1268 - * Enable underrun detection and vertical sync 1269 - * interrupts. 1270 - */ 1271 - clrbits32(&data->diu_reg->int_mask, 1272 - INT_UNDRUN | INT_VSYNC); 1273 - #else 1274 - /* Enable underrun detection */ 1275 - clrbits32(&data->diu_reg->int_mask, INT_UNDRUN); 1276 - #endif 1254 + fsl_diu_enable_interrupts(mfbi->parent); 1277 1255 fsl_diu_enable_panel(info); 1278 1256 } 1279 1257 } ··· 1281 1283 mfbi->count--; 1282 1284 if (mfbi->count == 0) { 1283 1285 struct fsl_diu_data *data = mfbi->parent; 1286 + bool disable = true; 1287 + int i; 1284 1288 1285 - /* Disable interrupts */ 1286 - out_be32(&data->diu_reg->int_mask, 0xffffffff); 1289 + /* Disable interrupts only if all AOIs are closed */ 1290 + for (i = 0; i < NUM_AOIS; i++) { 1291 + struct mfb_info *mi = data->fsl_diu_info[i].par; 1292 + 1293 + if (mi->count) 1294 + disable = false; 1295 + } 1296 + if (disable) 1297 + out_be32(&data->diu_reg->int_mask, 0xffffffff); 1287 1298 fsl_diu_disable_panel(info); 1288 1299 } 1289 1300 ··· 1621 1614 out_be32(&data->diu_reg->desc[1], data->dummy_ad.paddr); 1622 1615 out_be32(&data->diu_reg->desc[2], data->dummy_ad.paddr); 1623 1616 1624 - for (i = 0; i < NUM_AOIS; i++) { 1625 - ret = install_fb(&data->fsl_diu_info[i]); 1626 - if (ret) { 1627 - dev_err(&pdev->dev, "could not register fb %d\n", i); 1628 - goto error; 1629 - } 1630 - } 1631 - 1632 1617 /* 1633 1618 * Older versions of U-Boot leave interrupts enabled, so disable 1634 1619 * all of them and clear the status register. ··· 1629 1630 in_be32(&data->diu_reg->int_status); 1630 1631 1631 1632 ret = request_irq(data->irq, fsl_diu_isr, 0, "fsl-diu-fb", 1632 - &data->diu_reg); 1633 + data->diu_reg); 1633 1634 if (ret) { 1634 1635 dev_err(&pdev->dev, "could not claim irq\n"); 1635 1636 goto error; 1637 + } 1638 + 1639 + for (i = 0; i < NUM_AOIS; i++) { 1640 + ret = install_fb(&data->fsl_diu_info[i]); 1641 + if (ret) { 1642 + dev_err(&pdev->dev, "could not register fb %d\n", i); 1643 + free_irq(data->irq, data->diu_reg); 1644 + goto error; 1645 + } 1636 1646 } 1637 1647 1638 1648 sysfs_attr_init(&data->dev_attr.attr); ··· 1675 1667 data = dev_get_drvdata(&pdev->dev); 1676 1668 disable_lcdc(&data->fsl_diu_info[0]); 1677 1669 1678 - free_irq(data->irq, &data->diu_reg); 1670 + free_irq(data->irq, data->diu_reg); 1679 1671 1680 1672 for (i = 0; i < NUM_AOIS; i++) 1681 1673 uninstall_fb(&data->fsl_diu_info[i]);
+2 -2
sound/soc/fsl/mpc5200_dma.c
··· 14 14 15 15 #include <sound/soc.h> 16 16 17 - #include <sysdev/bestcomm/bestcomm.h> 18 - #include <sysdev/bestcomm/gen_bd.h> 17 + #include <linux/fsl/bestcomm/bestcomm.h> 18 + #include <linux/fsl/bestcomm/gen_bd.h> 19 19 #include <asm/mpc52xx_psc.h> 20 20 21 21 #include "mpc5200_dma.h"