MIPS: Netlogic: Add support for USB on XLP2xx
Add USB intialization code to handle the new XLP2XX USB 3.0 block. This adds xlp/usb-init-xlp2.c to initialize the XLP2XX USB glue-logic for XHCI and EHCI. Interrupt and IO offset code in xlp-hal/iomap.h and xlp/nlm_hal.c is also updated for the new USB block. Signed-off-by: Ganesan Ramalingam <ganesanr@broadcom.com> Signed-off-by: Jayachandran C <jchandra@broadcom.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/5744/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:

committed by
Ralf Baechle

parent
e5be1fd007
commit
9eac3591e7
@@ -65,6 +65,7 @@ int nlm_irq_to_irt(int irq)
|
||||
uint64_t pcibase;
|
||||
int devoff, irt;
|
||||
|
||||
devoff = 0;
|
||||
switch (irq) {
|
||||
case PIC_UART_0_IRQ:
|
||||
devoff = XLP_IO_UART0_OFFSET(0);
|
||||
@@ -72,24 +73,6 @@ int nlm_irq_to_irt(int irq)
|
||||
case PIC_UART_1_IRQ:
|
||||
devoff = XLP_IO_UART1_OFFSET(0);
|
||||
break;
|
||||
case PIC_EHCI_0_IRQ:
|
||||
devoff = XLP_IO_USB_EHCI0_OFFSET(0);
|
||||
break;
|
||||
case PIC_EHCI_1_IRQ:
|
||||
devoff = XLP_IO_USB_EHCI1_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_0_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI0_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_1_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI1_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_2_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI2_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_3_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI3_OFFSET(0);
|
||||
break;
|
||||
case PIC_MMC_IRQ:
|
||||
devoff = XLP_IO_SD_OFFSET(0);
|
||||
break;
|
||||
@@ -103,8 +86,41 @@ int nlm_irq_to_irt(int irq)
|
||||
devoff = XLP_IO_I2C0_OFFSET(0);
|
||||
break;
|
||||
default:
|
||||
devoff = 0;
|
||||
break;
|
||||
if (cpu_is_xlpii()) {
|
||||
switch (irq) {
|
||||
/* XLP2XX has three XHCI USB controller */
|
||||
case PIC_2XX_XHCI_0_IRQ:
|
||||
devoff = XLP2XX_IO_USB_XHCI0_OFFSET(0);
|
||||
break;
|
||||
case PIC_2XX_XHCI_1_IRQ:
|
||||
devoff = XLP2XX_IO_USB_XHCI1_OFFSET(0);
|
||||
break;
|
||||
case PIC_2XX_XHCI_2_IRQ:
|
||||
devoff = XLP2XX_IO_USB_XHCI2_OFFSET(0);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch (irq) {
|
||||
case PIC_EHCI_0_IRQ:
|
||||
devoff = XLP_IO_USB_EHCI0_OFFSET(0);
|
||||
break;
|
||||
case PIC_EHCI_1_IRQ:
|
||||
devoff = XLP_IO_USB_EHCI1_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_0_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI0_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_1_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI1_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_2_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI2_OFFSET(0);
|
||||
break;
|
||||
case PIC_OHCI_3_IRQ:
|
||||
devoff = XLP_IO_USB_OHCI3_OFFSET(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (devoff != 0) {
|
||||
|
Reference in New Issue
Block a user