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 /arch | |
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>
Diffstat (limited to 'arch')
-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 | ||