Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  *
0004  * Copyright (C) 2014 Broadcom Corporation
0005  * Author: Kevin Cernekee <cernekee@gmail.com>
0006  */
0007 
0008 #include <linux/of.h>
0009 #include <linux/irqchip.h>
0010 
0011 #include <asm/bmips.h>
0012 #include <asm/irq.h>
0013 #include <asm/irq_cpu.h>
0014 #include <asm/time.h>
0015 
0016 static const struct of_device_id smp_intc_dt_match[] = {
0017     { .compatible = "brcm,bcm7038-l1-intc" },
0018     { .compatible = "brcm,bcm6345-l1-intc" },
0019     {}
0020 };
0021 
0022 unsigned int get_c0_compare_int(void)
0023 {
0024     return CP0_LEGACY_COMPARE_IRQ;
0025 }
0026 
0027 void __init arch_init_irq(void)
0028 {
0029     struct device_node *dn;
0030 
0031     /* Only these controllers support SMP IRQ affinity */
0032     dn = of_find_matching_node(NULL, smp_intc_dt_match);
0033     if (dn)
0034         of_node_put(dn);
0035     else
0036         bmips_tp1_irqs = 0;
0037 
0038     irqchip_init();
0039 }
0040 
0041 IRQCHIP_DECLARE(mips_cpu_intc, "mti,cpu-interrupt-controller",
0042          mips_cpu_irq_of_init);