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 c8e5d72a582..95cb9113b12 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 = {  		PORT(AU1000_UART0_PHYS_ADDR, AU1200_UART0_INT),  		PORT(AU1000_UART1_PHYS_ADDR, AU1200_UART1_INT),  	}, +	[ALCHEMY_CPU_AU1300] = { +		PORT(AU1300_UART0_PHYS_ADDR, AU1300_UART0_INT), +		PORT(AU1300_UART1_PHYS_ADDR, AU1300_UART1_INT), +		PORT(AU1300_UART2_PHYS_ADDR, AU1300_UART2_INT), +		PORT(AU1300_UART3_PHYS_ADDR, AU1300_UART3_INT), +	},  };  static struct platform_device au1xx0_uart_device = { @@ -122,10 +128,12 @@ static unsigned long alchemy_ohci_data[][2] __initdata = {  	[ALCHEMY_CPU_AU1100] = { AU1000_USB_OHCI_PHYS_ADDR, AU1100_USB_HOST_INT },  	[ALCHEMY_CPU_AU1550] = { AU1550_USB_OHCI_PHYS_ADDR, AU1550_USB_HOST_INT },  	[ALCHEMY_CPU_AU1200] = { AU1200_USB_OHCI_PHYS_ADDR, AU1200_USB_INT }, +	[ALCHEMY_CPU_AU1300] = { AU1300_USB_OHCI0_PHYS_ADDR, AU1300_USB_INT },  };  static unsigned long alchemy_ehci_data[][2] __initdata = {  	[ALCHEMY_CPU_AU1200] = { AU1200_USB_EHCI_PHYS_ADDR, AU1200_USB_INT }, +	[ALCHEMY_CPU_AU1300] = { AU1300_USB_EHCI_PHYS_ADDR, AU1300_USB_INT },  };  static int __init _new_usbres(struct resource **r, struct platform_device **d) @@ -169,8 +177,8 @@ static void __init alchemy_setup_usb(int ctype)  		printk(KERN_INFO "Alchemy USB: cannot add OHCI0\n"); -	/* setup EHCI0: Au1200 */ -	if (ctype == ALCHEMY_CPU_AU1200) { +	/* setup EHCI0: Au1200/Au1300 */ +	if ((ctype == ALCHEMY_CPU_AU1200) || (ctype == ALCHEMY_CPU_AU1300)) {  		if (_new_usbres(&res, &pdev))  			return; @@ -187,6 +195,25 @@ static void __init alchemy_setup_usb(int ctype)  		if (platform_device_register(pdev))  			printk(KERN_INFO "Alchemy USB: cannot add EHCI0\n");  	} + +	/* Au1300: OHCI1 */ +	if (ctype == ALCHEMY_CPU_AU1300) { +		if (_new_usbres(&res, &pdev)) +			return; + +		res[0].start = AU1300_USB_OHCI1_PHYS_ADDR; +		res[0].end = res[0].start + 0x100 - 1; +		res[0].flags = IORESOURCE_MEM; +		res[1].start = AU1300_USB_INT; +		res[1].end = res[1].start; +		res[1].flags = IORESOURCE_IRQ; +		pdev->name = "au1xxx-ohci"; +		pdev->id = 1; +		pdev->dev.dma_mask = &alchemy_ohci_dmamask; + +		if (platform_device_register(pdev)) +			printk(KERN_INFO "Alchemy USB: cannot add OHCI1\n"); +	}  }  /* Macro to help defining the Ethernet MAC resources */  |