diff options
Diffstat (limited to 'arch/mips/alchemy/common/platform.c')
-rw-r--r-- | arch/mips/alchemy/common/platform.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c index c8e5d72a5826..95cb9113b12c 100644 --- a/arch/mips/alchemy/common/platform.c +++ b/arch/mips/alchemy/common/platform.c | |||
@@ -82,6 +82,12 @@ static struct plat_serial8250_port au1x00_uart_data[][4] __initdata = { | |||
82 | PORT(AU1000_UART0_PHYS_ADDR, AU1200_UART0_INT), | 82 | PORT(AU1000_UART0_PHYS_ADDR, AU1200_UART0_INT), |
83 | PORT(AU1000_UART1_PHYS_ADDR, AU1200_UART1_INT), | 83 | PORT(AU1000_UART1_PHYS_ADDR, AU1200_UART1_INT), |
84 | }, | 84 | }, |
85 | [ALCHEMY_CPU_AU1300] = { | ||
86 | PORT(AU1300_UART0_PHYS_ADDR, AU1300_UART0_INT), | ||
87 | PORT(AU1300_UART1_PHYS_ADDR, AU1300_UART1_INT), | ||
88 | PORT(AU1300_UART2_PHYS_ADDR, AU1300_UART2_INT), | ||
89 | PORT(AU1300_UART3_PHYS_ADDR, AU1300_UART3_INT), | ||
90 | }, | ||
85 | }; | 91 | }; |
86 | 92 | ||
87 | static struct platform_device au1xx0_uart_device = { | 93 | static struct platform_device au1xx0_uart_device = { |
@@ -122,10 +128,12 @@ static unsigned long alchemy_ohci_data[][2] __initdata = { | |||
122 | [ALCHEMY_CPU_AU1100] = { AU1000_USB_OHCI_PHYS_ADDR, AU1100_USB_HOST_INT }, | 128 | [ALCHEMY_CPU_AU1100] = { AU1000_USB_OHCI_PHYS_ADDR, AU1100_USB_HOST_INT }, |
123 | [ALCHEMY_CPU_AU1550] = { AU1550_USB_OHCI_PHYS_ADDR, AU1550_USB_HOST_INT }, | 129 | [ALCHEMY_CPU_AU1550] = { AU1550_USB_OHCI_PHYS_ADDR, AU1550_USB_HOST_INT }, |
124 | [ALCHEMY_CPU_AU1200] = { AU1200_USB_OHCI_PHYS_ADDR, AU1200_USB_INT }, | 130 | [ALCHEMY_CPU_AU1200] = { AU1200_USB_OHCI_PHYS_ADDR, AU1200_USB_INT }, |
131 | [ALCHEMY_CPU_AU1300] = { AU1300_USB_OHCI0_PHYS_ADDR, AU1300_USB_INT }, | ||
125 | }; | 132 | }; |
126 | 133 | ||
127 | static unsigned long alchemy_ehci_data[][2] __initdata = { | 134 | static unsigned long alchemy_ehci_data[][2] __initdata = { |
128 | [ALCHEMY_CPU_AU1200] = { AU1200_USB_EHCI_PHYS_ADDR, AU1200_USB_INT }, | 135 | [ALCHEMY_CPU_AU1200] = { AU1200_USB_EHCI_PHYS_ADDR, AU1200_USB_INT }, |
136 | [ALCHEMY_CPU_AU1300] = { AU1300_USB_EHCI_PHYS_ADDR, AU1300_USB_INT }, | ||
129 | }; | 137 | }; |
130 | 138 | ||
131 | static int __init _new_usbres(struct resource **r, struct platform_device **d) | 139 | static int __init _new_usbres(struct resource **r, struct platform_device **d) |
@@ -169,8 +177,8 @@ static void __init alchemy_setup_usb(int ctype) | |||
169 | printk(KERN_INFO "Alchemy USB: cannot add OHCI0\n"); | 177 | printk(KERN_INFO "Alchemy USB: cannot add OHCI0\n"); |
170 | 178 | ||
171 | 179 | ||
172 | /* setup EHCI0: Au1200 */ | 180 | /* setup EHCI0: Au1200/Au1300 */ |
173 | if (ctype == ALCHEMY_CPU_AU1200) { | 181 | if ((ctype == ALCHEMY_CPU_AU1200) || (ctype == ALCHEMY_CPU_AU1300)) { |
174 | if (_new_usbres(&res, &pdev)) | 182 | if (_new_usbres(&res, &pdev)) |
175 | return; | 183 | return; |
176 | 184 | ||
@@ -187,6 +195,25 @@ static void __init alchemy_setup_usb(int ctype) | |||
187 | if (platform_device_register(pdev)) | 195 | if (platform_device_register(pdev)) |
188 | printk(KERN_INFO "Alchemy USB: cannot add EHCI0\n"); | 196 | printk(KERN_INFO "Alchemy USB: cannot add EHCI0\n"); |
189 | } | 197 | } |
198 | |||
199 | /* Au1300: OHCI1 */ | ||
200 | if (ctype == ALCHEMY_CPU_AU1300) { | ||
201 | if (_new_usbres(&res, &pdev)) | ||
202 | return; | ||
203 | |||
204 | res[0].start = AU1300_USB_OHCI1_PHYS_ADDR; | ||
205 | res[0].end = res[0].start + 0x100 - 1; | ||
206 | res[0].flags = IORESOURCE_MEM; | ||
207 | res[1].start = AU1300_USB_INT; | ||
208 | res[1].end = res[1].start; | ||
209 | res[1].flags = IORESOURCE_IRQ; | ||
210 | pdev->name = "au1xxx-ohci"; | ||
211 | pdev->id = 1; | ||
212 | pdev->dev.dma_mask = &alchemy_ohci_dmamask; | ||
213 | |||
214 | if (platform_device_register(pdev)) | ||
215 | printk(KERN_INFO "Alchemy USB: cannot add OHCI1\n"); | ||
216 | } | ||
190 | } | 217 | } |
191 | 218 | ||
192 | /* Macro to help defining the Ethernet MAC resources */ | 219 | /* Macro to help defining the Ethernet MAC resources */ |