Lines Matching refs:vic
3 * linux/arch/arm/common/vic.c
23 #include <linux/irqchip/arm-vic.h>
102 static void resume_one_vic(struct vic_device *vic)
104 void __iomem *base = vic->base;
106 printk(KERN_DEBUG "%s: resuming vic at %p\n", __func__, base);
111 writel(vic->int_select, base + VIC_INT_SELECT);
112 writel(vic->protect, base + VIC_PROTECT);
115 writel(vic->int_enable, base + VIC_INT_ENABLE);
116 writel(~vic->int_enable, base + VIC_INT_ENABLE_CLEAR);
120 writel(vic->soft_int, base + VIC_INT_SOFT);
121 writel(~vic->soft_int, base + VIC_INT_SOFT_CLEAR);
132 static void suspend_one_vic(struct vic_device *vic)
134 void __iomem *base = vic->base;
136 printk(KERN_DEBUG "%s: suspending vic at %p\n", __func__, base);
138 vic->int_select = readl(base + VIC_INT_SELECT);
139 vic->int_enable = readl(base + VIC_INT_ENABLE);
140 vic->soft_int = readl(base + VIC_INT_SOFT);
141 vic->protect = readl(base + VIC_PROTECT);
146 writel(vic->resume_irqs, base + VIC_INT_ENABLE);
147 writel(~vic->resume_irqs, base + VIC_INT_ENABLE_CLEAR);
204 static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
209 while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
211 handle_domain_irq(vic->domain, irq, regs);
222 struct vic_device *vic = irq_desc_get_handler_data(desc);
226 while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
228 generic_handle_irq(irq_find_mapping(vic->domain, hwirq));
513 IRQCHIP_DECLARE(arm_pl190_vic, "arm,pl190-vic", vic_of_init);
514 IRQCHIP_DECLARE(arm_pl192_vic, "arm,pl192-vic", vic_of_init);
515 IRQCHIP_DECLARE(arm_versatile_vic, "arm,versatile-vic", vic_of_init);