[PATCH 4/6] irqchip: add irqchip driver for nuc900
From: arnd@arndb.de (Arnd Bergmann)
Date: 2016-06-29 15:26:05
Also in:
linux-devicetree, lkml
On Saturday, June 25, 2016 6:37:20 PM CEST Wan Zongshun wrote:
+#define IRQ_WDT W90X900_IRQ(1) +#define IRQ_WWDT W90X900_IRQ(2) +#define IRQ_LVD W90X900_IRQ(3) +#define IRQ_EXT0 W90X900_IRQ(4) +#define IRQ_EXT1 W90X900_IRQ(5) +#define IRQ_EXT2 W90X900_IRQ(6) +#define IRQ_EXT3 W90X900_IRQ(7) +#define IRQ_EXT4 W90X900_IRQ(8) +#define IRQ_EXT5 W90X900_IRQ(9) +#define IRQ_EXT6 W90X900_IRQ(10)
I'd suggest dropping the list, the contents are now in the dts.
quoted hunk ↗ jump to hunk
diff --git a/arch/arm/mach-w90x900/include/mach/nuc970-regs-aic.h b/arch/arm/mach-w90x900/include/mach/nuc970-regs-aic.h new file mode 100644 index 0000000..7a77016 --- /dev/null +++ b/arch/arm/mach-w90x900/include/mach/nuc970-regs-aic.h@@ -0,0 +1,53 @@ +#ifndef __ASM_ARCH_REGS_AIC_H +#define __ASM_ARCH_REGS_AIC_H + +/*NUC970 AIC regs*/ + +#define REG_AIC_SCR1 0x00 +#define REG_AIC_SCR2 0x04 +#define REG_AIC_SCR3 0x08 +#define REG_AIC_SCR4 0x0C +#define REG_AIC_SCR5 0x10
And like the clk driver, these should all be in the irqchip driver instead of a separate header.
+ +static void __iomem *aic_base; +static struct irq_domain *aic_domain; +#define MAKE_HWIRQ(irqnum) (irqnum)
The macro appears to be unused.
+static void nuc970_irq_mask(struct irq_data *d)
+{
+ if (d->irq < 32)
+ __raw_writel(1 << (d->irq), aic_base + REG_AIC_MDCR);
+ else
+ __raw_writel(1 << (d->irq - 32), aic_base + REG_AIC_MDCRH);
+}writel() Arnd