diff options
Diffstat (limited to 'arch/ppc/platforms/4xx/ibmstb4.c')
-rw-r--r-- | arch/ppc/platforms/4xx/ibmstb4.c | 52 |
1 files changed, 46 insertions, 6 deletions
diff --git a/arch/ppc/platforms/4xx/ibmstb4.c b/arch/ppc/platforms/4xx/ibmstb4.c index 874d16bab73c..d90627b68faa 100644 --- a/arch/ppc/platforms/4xx/ibmstb4.c +++ b/arch/ppc/platforms/4xx/ibmstb4.c | |||
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <asm/ocp.h> | 13 | #include <asm/ocp.h> |
14 | #include <asm/ppc4xx_pic.h> | ||
14 | #include <platforms/4xx/ibmstb4.h> | 15 | #include <platforms/4xx/ibmstb4.h> |
15 | 16 | ||
16 | static struct ocp_func_iic_data ibmstb4_iic0_def = { | 17 | static struct ocp_func_iic_data ibmstb4_iic0_def = { |
@@ -72,12 +73,51 @@ struct ocp_def core_ocp[] __initdata = { | |||
72 | .irq = IDE0_IRQ, | 73 | .irq = IDE0_IRQ, |
73 | .pm = OCP_CPM_NA, | 74 | .pm = OCP_CPM_NA, |
74 | }, | 75 | }, |
75 | { .vendor = OCP_VENDOR_IBM, | ||
76 | .function = OCP_FUNC_USB, | ||
77 | .paddr = USB0_BASE, | ||
78 | .irq = USB0_IRQ, | ||
79 | .pm = OCP_CPM_NA, | ||
80 | }, | ||
81 | { .vendor = OCP_VENDOR_INVALID, | 76 | { .vendor = OCP_VENDOR_INVALID, |
82 | } | 77 | } |
83 | }; | 78 | }; |
79 | |||
80 | /* Polarity and triggering settings for internal interrupt sources */ | ||
81 | struct ppc4xx_uic_settings ppc4xx_core_uic_cfg[] __initdata = { | ||
82 | { .polarity = 0x7fffff01, | ||
83 | .triggering = 0x00000000, | ||
84 | .ext_irq_mask = 0x0000007e, /* IRQ0 - IRQ5 */ | ||
85 | } | ||
86 | }; | ||
87 | |||
88 | static struct resource ohci_usb_resources[] = { | ||
89 | [0] = { | ||
90 | .start = USB0_BASE, | ||
91 | .end = USB0_BASE + USB0_SIZE - 1, | ||
92 | .flags = IORESOURCE_MEM, | ||
93 | }, | ||
94 | [1] = { | ||
95 | .start = USB0_IRQ, | ||
96 | .end = USB0_IRQ, | ||
97 | .flags = IORESOURCE_IRQ, | ||
98 | }, | ||
99 | }; | ||
100 | |||
101 | static u64 dma_mask = 0xffffffffULL; | ||
102 | |||
103 | static struct platform_device ohci_usb_device = { | ||
104 | .name = "ppc-soc-ohci", | ||
105 | .id = 0, | ||
106 | .num_resources = ARRAY_SIZE(ohci_usb_resources), | ||
107 | .resource = ohci_usb_resources, | ||
108 | .dev = { | ||
109 | .dma_mask = &dma_mask, | ||
110 | .coherent_dma_mask = 0xffffffffULL, | ||
111 | } | ||
112 | }; | ||
113 | |||
114 | static struct platform_device *ibmstb4_devs[] __initdata = { | ||
115 | &ohci_usb_device, | ||
116 | }; | ||
117 | |||
118 | static int __init | ||
119 | ibmstb4_platform_add_devices(void) | ||
120 | { | ||
121 | return platform_add_devices(ibmstb4_devs, ARRAY_SIZE(ibmstb4_devs)); | ||
122 | } | ||
123 | arch_initcall(ibmstb4_platform_add_devices); | ||