Lines Matching +full:mmp2 +full:- +full:mux +full:- +full:intc
2 * linux/arch/arm/mach-mmp/irq.c
5 * Copyright (C) 2008 - 2012 Marvell Technology Group Ltd.
68 struct irq_domain *domain = d->domain; in icu_mask_ack_irq()
69 struct icu_chip_data *data = (struct icu_chip_data *)domain->host_data; in icu_mask_ack_irq()
73 hwirq = d->irq - data->virq_base; in icu_mask_ack_irq()
76 r &= ~data->conf_mask; in icu_mask_ack_irq()
77 r |= data->conf_disable; in icu_mask_ack_irq()
81 if ((data->virq_base == data->clr_mfp_irq_base) in icu_mask_ack_irq()
82 && (hwirq == data->clr_mfp_hwirq)) in icu_mask_ack_irq()
85 r = readl_relaxed(data->reg_mask) | (1 << hwirq); in icu_mask_ack_irq()
86 writel_relaxed(r, data->reg_mask); in icu_mask_ack_irq()
92 struct irq_domain *domain = d->domain; in icu_mask_irq()
93 struct icu_chip_data *data = (struct icu_chip_data *)domain->host_data; in icu_mask_irq()
97 hwirq = d->irq - data->virq_base; in icu_mask_irq()
100 r &= ~data->conf_mask; in icu_mask_irq()
101 r |= data->conf_disable; in icu_mask_irq()
104 r = readl_relaxed(data->reg_mask) | (1 << hwirq); in icu_mask_irq()
105 writel_relaxed(r, data->reg_mask); in icu_mask_irq()
111 struct irq_domain *domain = d->domain; in icu_unmask_irq()
112 struct icu_chip_data *data = (struct icu_chip_data *)domain->host_data; in icu_unmask_irq()
116 hwirq = d->irq - data->virq_base; in icu_unmask_irq()
119 r &= ~data->conf_mask; in icu_unmask_irq()
120 r |= data->conf_enable; in icu_unmask_irq()
123 r = readl_relaxed(data->reg_mask) & ~(1 << hwirq); in icu_unmask_irq()
124 writel_relaxed(r, data->reg_mask); in icu_unmask_irq()
146 data = (struct icu_chip_data *)domain->host_data; in icu_mux_irq_demux()
151 pr_err("Spurious irq %d in MMP INTC\n", irq); in icu_mux_irq_demux()
155 mask = readl_relaxed(data->reg_mask); in icu_mux_irq_demux()
157 status = readl_relaxed(data->reg_status) & ~mask; in icu_mux_irq_demux()
245 /* MMP2 (ARMv7) */
352 ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", &nr_irqs); in mmp_init_bases()
354 pr_err("Not found mrvl,intc-nr-irqs property\n"); in mmp_init_bases()
361 return -ENOMEM; in mmp_init_bases()
386 return -EINVAL; in mmp_init_bases()
406 IRQCHIP_DECLARE(mmp_intc, "mrvl,mmp-intc", mmp_of_init);
425 IRQCHIP_DECLARE(mmp2_intc, "mrvl,mmp2-intc", mmp2_of_init);
435 return -ENODEV; in mmp2_mux_of_init()
438 ret = of_property_read_u32(node, "mrvl,intc-nr-irqs", in mmp2_mux_of_init()
441 pr_err("Not found mrvl,intc-nr-irqs property\n"); in mmp2_mux_of_init()
442 return -EINVAL; in mmp2_mux_of_init()
447 return -EINVAL; in mmp2_mux_of_init()
453 return -EINVAL; in mmp2_mux_of_init()
458 return -EINVAL; in mmp2_mux_of_init()
474 if (!of_property_read_u32(node, "mrvl,clr-mfp-irq", in mmp2_mux_of_init()
489 return -EINVAL; in mmp2_mux_of_init()
491 IRQCHIP_DECLARE(mmp2_mux_intc, "mrvl,mmp2-mux-intc", mmp2_mux_of_init);