• Home
  • Raw
  • Download

Lines Matching full:cd

33 	struct gpcv2_irqchip_data *cd;  in gpcv2_wakeup_source_save()  local
37 cd = imx_gpcv2_instance; in gpcv2_wakeup_source_save()
38 if (!cd) in gpcv2_wakeup_source_save()
42 reg = cd->gpc_base + cd->cpu2wakeup + i * 4; in gpcv2_wakeup_source_save()
43 cd->saved_irq_mask[i] = readl_relaxed(reg); in gpcv2_wakeup_source_save()
44 writel_relaxed(cd->wakeup_sources[i], reg); in gpcv2_wakeup_source_save()
52 struct gpcv2_irqchip_data *cd; in gpcv2_wakeup_source_restore() local
56 cd = imx_gpcv2_instance; in gpcv2_wakeup_source_restore()
57 if (!cd) in gpcv2_wakeup_source_restore()
61 reg = cd->gpc_base + cd->cpu2wakeup + i * 4; in gpcv2_wakeup_source_restore()
62 writel_relaxed(cd->saved_irq_mask[i], reg); in gpcv2_wakeup_source_restore()
73 struct gpcv2_irqchip_data *cd = d->chip_data; in imx_gpcv2_irq_set_wake() local
79 raw_spin_lock_irqsave(&cd->rlock, flags); in imx_gpcv2_irq_set_wake()
80 reg = cd->gpc_base + cd->cpu2wakeup + idx * 4; in imx_gpcv2_irq_set_wake()
82 val = cd->wakeup_sources[idx]; in imx_gpcv2_irq_set_wake()
84 cd->wakeup_sources[idx] = on ? (val & ~mask) : (val | mask); in imx_gpcv2_irq_set_wake()
85 raw_spin_unlock_irqrestore(&cd->rlock, flags); in imx_gpcv2_irq_set_wake()
97 struct gpcv2_irqchip_data *cd = d->chip_data; in imx_gpcv2_irq_unmask() local
101 raw_spin_lock(&cd->rlock); in imx_gpcv2_irq_unmask()
102 reg = cd->gpc_base + cd->cpu2wakeup + d->hwirq / 32 * 4; in imx_gpcv2_irq_unmask()
106 raw_spin_unlock(&cd->rlock); in imx_gpcv2_irq_unmask()
113 struct gpcv2_irqchip_data *cd = d->chip_data; in imx_gpcv2_irq_mask() local
117 raw_spin_lock(&cd->rlock); in imx_gpcv2_irq_mask()
118 reg = cd->gpc_base + cd->cpu2wakeup + d->hwirq / 32 * 4; in imx_gpcv2_irq_mask()
122 raw_spin_unlock(&cd->rlock); in imx_gpcv2_irq_mask()
200 struct gpcv2_irqchip_data *cd; in imx_gpcv2_irqchip_init() local
214 cd = kzalloc(sizeof(struct gpcv2_irqchip_data), GFP_KERNEL); in imx_gpcv2_irqchip_init()
215 if (!cd) { in imx_gpcv2_irqchip_init()
220 raw_spin_lock_init(&cd->rlock); in imx_gpcv2_irqchip_init()
222 cd->gpc_base = of_iomap(node, 0); in imx_gpcv2_irqchip_init()
223 if (!cd->gpc_base) { in imx_gpcv2_irqchip_init()
225 kfree(cd); in imx_gpcv2_irqchip_init()
230 node, &gpcv2_irqchip_data_domain_ops, cd); in imx_gpcv2_irqchip_init()
232 iounmap(cd->gpc_base); in imx_gpcv2_irqchip_init()
233 kfree(cd); in imx_gpcv2_irqchip_init()
240 writel_relaxed(~0, cd->gpc_base + GPC_IMR1_CORE0 + i * 4); in imx_gpcv2_irqchip_init()
241 writel_relaxed(~0, cd->gpc_base + GPC_IMR1_CORE1 + i * 4); in imx_gpcv2_irqchip_init()
242 cd->wakeup_sources[i] = ~0; in imx_gpcv2_irqchip_init()
246 cd->cpu2wakeup = GPC_IMR1_CORE0; in imx_gpcv2_irqchip_init()
253 writel_relaxed(~0x1, cd->gpc_base + cd->cpu2wakeup); in imx_gpcv2_irqchip_init()
255 imx_gpcv2_instance = cd; in imx_gpcv2_irqchip_init()