blob: e7fc6f9348baa2e6bc06f881ced25aec7fb40b46 [file] [log] [blame]
Kevin Cernekeed666cd02014-10-20 21:28:05 -07001/*
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU General Public License version 2 as published
4 * by the Free Software Foundation.
5 *
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -08006 * Copyright (C) 2014 Broadcom Corporation
7 * Author: Kevin Cernekee <cernekee@gmail.com>
Kevin Cernekeed666cd02014-10-20 21:28:05 -07008 */
9
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080010#include <linux/of.h>
11#include <linux/irqchip.h>
Kevin Cernekeed666cd02014-10-20 21:28:05 -070012
13#include <asm/bmips.h>
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080014#include <asm/irq.h>
Kevin Cernekeed666cd02014-10-20 21:28:05 -070015#include <asm/irq_cpu.h>
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080016#include <asm/time.h>
Kevin Cernekeed666cd02014-10-20 21:28:05 -070017
18unsigned int get_c0_compare_int(void)
19{
20 return CP0_LEGACY_COMPARE_IRQ;
21}
22
Kevin Cernekeed666cd02014-10-20 21:28:05 -070023void __init arch_init_irq(void)
24{
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080025 struct device_node *dn;
26
27 /* Only the STB (bcm7038) controller supports SMP IRQ affinity */
28 dn = of_find_compatible_node(NULL, NULL, "brcm,bcm7038-l1-intc");
29 if (dn)
30 of_node_put(dn);
31 else
32 bmips_tp1_irqs = 0;
33
34 irqchip_init();
Kevin Cernekeed666cd02014-10-20 21:28:05 -070035}
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080036
Joel Porquet0a271c22015-07-07 17:17:33 -040037IRQCHIP_DECLARE(mips_cpu_intc, "mti,cpu-interrupt-controller",
Kevin Cernekeee5a6fcc2014-12-25 09:49:15 -080038 mips_cpu_irq_of_init);