aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/netlogic
diff options
context:
space:
mode:
authorGanesan Ramalingam <ganesanr@broadcom.com>2015-01-07 06:28:36 -0500
committerRalf Baechle <ralf@linux-mips.org>2015-04-01 11:21:53 -0400
commitc982232a3c3627d5735fbc1be0ed9a77bf8e3de1 (patch)
tree841b8f1633bee385103dd291affccfa4c5b34196 /arch/mips/netlogic
parent94e2b96ecea3ee2a3cbd5147fa380e05a6c4b4bc (diff)
MIPS: Netlogic: Add irq mapping and setup for XHCI port 3
Add support for third XHCI port in XLPII processors. 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/8895/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/netlogic')
-rw-r--r--arch/mips/netlogic/xlp/nlm_hal.c2
-rw-r--r--arch/mips/netlogic/xlp/usb-init-xlp2.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/arch/mips/netlogic/xlp/nlm_hal.c b/arch/mips/netlogic/xlp/nlm_hal.c
index c6c31e3c0949..8d743d08fd73 100644
--- a/arch/mips/netlogic/xlp/nlm_hal.c
+++ b/arch/mips/netlogic/xlp/nlm_hal.c
@@ -75,6 +75,8 @@ static int xlp9xx_irq_to_irt(int irq)
75 return 114; 75 return 114;
76 case PIC_9XX_XHCI_1_IRQ: 76 case PIC_9XX_XHCI_1_IRQ:
77 return 115; 77 return 115;
78 case PIC_9XX_XHCI_2_IRQ:
79 return 116;
78 case PIC_UART_0_IRQ: 80 case PIC_UART_0_IRQ:
79 return 133; 81 return 133;
80 case PIC_UART_1_IRQ: 82 case PIC_UART_1_IRQ:
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