diff options
| author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2009-08-18 19:28:21 -0400 |
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2009-08-25 10:44:10 -0400 |
| commit | 9b9d401b8d11796f4c4bcbcabecfec9f5d85ea25 (patch) | |
| tree | 426787ff4fc1fa3ece504e40a2c1284d636729d6 | |
| parent | 818fcac554397a04987d49e2bd2dfc2d394b265c (diff) | |
powerpc/85xx: Add QE USB support for MPC8569E-MDS boards
- Add gpio-controller node for BCSR17, it is used to control USB
speed and VBUS;
- Add timer node for QE GTM, needed for USB host;
- Add usb node itself;
- Add some probing code for BCSR GPIOs.
NOTE: QE USB doesn't work on prototype boards, but should work on
pilot boards if specs and schematics are correct, though we
don't have the pilot boards to actually test it.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| -rw-r--r-- | arch/powerpc/boot/dts/mpc8569mds.dts | 45 | ||||
| -rw-r--r-- | arch/powerpc/platforms/85xx/mpc85xx_mds.c | 4 |
2 files changed, 49 insertions, 0 deletions
diff --git a/arch/powerpc/boot/dts/mpc8569mds.dts b/arch/powerpc/boot/dts/mpc8569mds.dts index 9e4ce99e1613..06332d61830a 100644 --- a/arch/powerpc/boot/dts/mpc8569mds.dts +++ b/arch/powerpc/boot/dts/mpc8569mds.dts | |||
| @@ -99,8 +99,18 @@ | |||
| 99 | }; | 99 | }; |
| 100 | 100 | ||
| 101 | bcsr@1,0 { | 101 | bcsr@1,0 { |
| 102 | #address-cells = <1>; | ||
| 103 | #size-cells = <1>; | ||
| 102 | compatible = "fsl,mpc8569mds-bcsr"; | 104 | compatible = "fsl,mpc8569mds-bcsr"; |
| 103 | reg = <1 0 0x8000>; | 105 | reg = <1 0 0x8000>; |
| 106 | ranges = <0 1 0 0x8000>; | ||
| 107 | |||
| 108 | bcsr17: gpio-controller@11 { | ||
| 109 | #gpio-cells = <2>; | ||
| 110 | compatible = "fsl,mpc8569mds-bcsr-gpio"; | ||
| 111 | reg = <0x11 0x1>; | ||
| 112 | gpio-controller; | ||
| 113 | }; | ||
| 104 | }; | 114 | }; |
| 105 | 115 | ||
| 106 | nand@3,0 { | 116 | nand@3,0 { |
| @@ -315,6 +325,14 @@ | |||
| 315 | gpio-controller; | 325 | gpio-controller; |
| 316 | }; | 326 | }; |
| 317 | 327 | ||
| 328 | qe_pio_f: gpio-controller@a0 { | ||
| 329 | #gpio-cells = <2>; | ||
| 330 | compatible = "fsl,mpc8569-qe-pario-bank", | ||
| 331 | "fsl,mpc8323-qe-pario-bank"; | ||
| 332 | reg = <0xa0 0x18>; | ||
| 333 | gpio-controller; | ||
| 334 | }; | ||
| 335 | |||
| 318 | pio1: ucc_pin@01 { | 336 | pio1: ucc_pin@01 { |
| 319 | pio-map = < | 337 | pio-map = < |
| 320 | /* port pin dir open_drain assignment has_irq */ | 338 | /* port pin dir open_drain assignment has_irq */ |
| @@ -419,6 +437,16 @@ | |||
| 419 | interrupt-parent = <&mpic>; | 437 | interrupt-parent = <&mpic>; |
| 420 | }; | 438 | }; |
| 421 | 439 | ||
| 440 | timer@440 { | ||
| 441 | compatible = "fsl,mpc8569-qe-gtm", | ||
| 442 | "fsl,qe-gtm", "fsl,gtm"; | ||
| 443 | reg = <0x440 0x40>; | ||
| 444 | interrupts = <12 13 14 15>; | ||
| 445 | interrupt-parent = <&qeic>; | ||
| 446 | /* Filled in by U-Boot */ | ||
| 447 | clock-frequency = <0>; | ||
| 448 | }; | ||
| 449 | |||
| 422 | spi@4c0 { | 450 | spi@4c0 { |
| 423 | #address-cells = <1>; | 451 | #address-cells = <1>; |
| 424 | #size-cells = <0>; | 452 | #size-cells = <0>; |
| @@ -446,6 +474,23 @@ | |||
| 446 | mode = "cpu"; | 474 | mode = "cpu"; |
| 447 | }; | 475 | }; |
| 448 | 476 | ||
| 477 | usb@6c0 { | ||
| 478 | compatible = "fsl,mpc8569-qe-usb", | ||
| 479 | "fsl,mpc8323-qe-usb"; | ||
| 480 | reg = <0x6c0 0x40 0x8b00 0x100>; | ||
| 481 | interrupts = <11>; | ||
| 482 | interrupt-parent = <&qeic>; | ||
| 483 | fsl,fullspeed-clock = "clk5"; | ||
| 484 | fsl,lowspeed-clock = "brg10"; | ||
| 485 | gpios = <&qe_pio_f 3 0 /* USBOE */ | ||
| 486 | &qe_pio_f 4 0 /* USBTP */ | ||
| 487 | &qe_pio_f 5 0 /* USBTN */ | ||
| 488 | &qe_pio_f 6 0 /* USBRP */ | ||
| 489 | &qe_pio_f 8 0 /* USBRN */ | ||
| 490 | &bcsr17 6 0 /* SPEED */ | ||
| 491 | &bcsr17 5 1>; /* POWER */ | ||
| 492 | }; | ||
| 493 | |||
| 449 | enet0: ucc@2000 { | 494 | enet0: ucc@2000 { |
| 450 | device_type = "network"; | 495 | device_type = "network"; |
| 451 | compatible = "ucc_geth"; | 496 | compatible = "ucc_geth"; |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c index bfb32834ab0c..20a61d0af33b 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c | |||
| @@ -47,6 +47,7 @@ | |||
| 47 | #include <asm/udbg.h> | 47 | #include <asm/udbg.h> |
| 48 | #include <sysdev/fsl_soc.h> | 48 | #include <sysdev/fsl_soc.h> |
| 49 | #include <sysdev/fsl_pci.h> | 49 | #include <sysdev/fsl_pci.h> |
| 50 | #include <sysdev/simple_gpio.h> | ||
| 50 | #include <asm/qe.h> | 51 | #include <asm/qe.h> |
| 51 | #include <asm/qe_ic.h> | 52 | #include <asm/qe_ic.h> |
| 52 | #include <asm/mpic.h> | 53 | #include <asm/mpic.h> |
| @@ -304,6 +305,9 @@ static struct of_device_id mpc85xx_ids[] = { | |||
| 304 | 305 | ||
| 305 | static int __init mpc85xx_publish_devices(void) | 306 | static int __init mpc85xx_publish_devices(void) |
| 306 | { | 307 | { |
| 308 | if (machine_is(mpc8569_mds)) | ||
| 309 | simple_gpiochip_init("fsl,mpc8569mds-bcsr-gpio"); | ||
| 310 | |||
| 307 | /* Publish the QE devices */ | 311 | /* Publish the QE devices */ |
| 308 | of_platform_bus_probe(NULL, mpc85xx_ids, NULL); | 312 | of_platform_bus_probe(NULL, mpc85xx_ids, NULL); |
| 309 | 313 | ||
