diff options
Diffstat (limited to 'arch/mips/netlogic/xlp/usb-init-xlp2.c')
-rw-r--r-- | arch/mips/netlogic/xlp/usb-init-xlp2.c | 10 |
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 | ||