aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/netlogic/xlp/usb-init-xlp2.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/netlogic/xlp/usb-init-xlp2.c')
-rw-r--r--arch/mips/netlogic/xlp/usb-init-xlp2.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/mips/netlogic/xlp/usb-init-xlp2.c b/arch/mips/netlogic/xlp/usb-init-xlp2.c
index 17ade1ce5dfd..2524939a5e3a 100644
--- a/arch/mips/netlogic/xlp/usb-init-xlp2.c
+++ b/arch/mips/netlogic/xlp/usb-init-xlp2.c
@@ -128,6 +128,9 @@ static void xlp9xx_usb_ack(struct irq_data *data)
128 case PIC_9XX_XHCI_1_IRQ: 128 case PIC_9XX_XHCI_1_IRQ:
129 port_addr = nlm_xlpii_get_usb_regbase(node, 2); 129 port_addr = nlm_xlpii_get_usb_regbase(node, 2);
130 break; 130 break;
131 case PIC_9XX_XHCI_2_IRQ:
132 port_addr = nlm_xlpii_get_usb_regbase(node, 3);
133 break;
131 default: 134 default:
132 pr_err("No matching USB irq %d node %d!\n", irq, node); 135 pr_err("No matching USB irq %d node %d!\n", irq, node);
133 return; 136 return;
@@ -222,14 +225,16 @@ static int __init nlm_platform_xlpii_usb_init(void)
222 } 225 }
223 226
224 /* XLP 9XX, multi-node */ 227 /* XLP 9XX, multi-node */
225 pr_info("Initializing 9XX USB Interface\n"); 228 pr_info("Initializing 9XX/5XX USB Interface\n");
226 for (node = 0; node < NLM_NR_NODES; node++) { 229 for (node = 0; node < NLM_NR_NODES; node++) {
227 if (!nlm_node_present(node)) 230 if (!nlm_node_present(node))
228 continue; 231 continue;
229 nlm_xlpii_usb_hw_reset(node, 1); 232 nlm_xlpii_usb_hw_reset(node, 1);
230 nlm_xlpii_usb_hw_reset(node, 2); 233 nlm_xlpii_usb_hw_reset(node, 2);
234 nlm_xlpii_usb_hw_reset(node, 3);
231 nlm_set_pic_extra_ack(node, PIC_9XX_XHCI_0_IRQ, xlp9xx_usb_ack); 235 nlm_set_pic_extra_ack(node, PIC_9XX_XHCI_0_IRQ, xlp9xx_usb_ack);
232 nlm_set_pic_extra_ack(node, PIC_9XX_XHCI_1_IRQ, xlp9xx_usb_ack); 236 nlm_set_pic_extra_ack(node, PIC_9XX_XHCI_1_IRQ, xlp9xx_usb_ack);
237 nlm_set_pic_extra_ack(node, PIC_9XX_XHCI_2_IRQ, xlp9xx_usb_ack);
233 } 238 }
234 return 0; 239 return 0;
235} 240}
@@ -253,6 +258,9 @@ static void nlm_xlp9xx_usb_fixup_final(struct pci_dev *dev)
253 case 0x22: 258 case 0x22:
254 dev->irq = nlm_irq_to_xirq(node, PIC_9XX_XHCI_1_IRQ); 259 dev->irq = nlm_irq_to_xirq(node, PIC_9XX_XHCI_1_IRQ);
255 break; 260 break;
261 case 0x23:
262 dev->irq = nlm_irq_to_xirq(node, PIC_9XX_XHCI_2_IRQ);
263 break;
256 } 264 }
257} 265}
258 266