Lines Matching refs:p

58 	struct irqc_priv *p;  member
75 dev_dbg(&i->p->pdev->dev, "%s (%d:%d:%d)\n", in irqc_dbg()
81 struct irqc_priv *p = irq_data_get_irq_chip_data(d); in irqc_irq_enable() local
84 irqc_dbg(&p->irq[hw_irq], "enable"); in irqc_irq_enable()
85 iowrite32(BIT(hw_irq), p->cpu_int_base + IRQC_EN_SET); in irqc_irq_enable()
90 struct irqc_priv *p = irq_data_get_irq_chip_data(d); in irqc_irq_disable() local
93 irqc_dbg(&p->irq[hw_irq], "disable"); in irqc_irq_disable()
94 iowrite32(BIT(hw_irq), p->cpu_int_base + IRQC_EN_STS); in irqc_irq_disable()
107 struct irqc_priv *p = irq_data_get_irq_chip_data(d); in irqc_irq_set_type() local
112 irqc_dbg(&p->irq[hw_irq], "sense"); in irqc_irq_set_type()
117 tmp = ioread32(p->iomem + IRQC_CONFIG(hw_irq)); in irqc_irq_set_type()
120 iowrite32(tmp, p->iomem + IRQC_CONFIG(hw_irq)); in irqc_irq_set_type()
126 struct irqc_priv *p = irq_data_get_irq_chip_data(d); in irqc_irq_set_wake() local
128 if (!p->clk) in irqc_irq_set_wake()
132 clk_enable(p->clk); in irqc_irq_set_wake()
134 clk_disable(p->clk); in irqc_irq_set_wake()
142 struct irqc_priv *p = i->p; in irqc_irq_handler() local
147 if (ioread32(p->iomem + DETECT_STATUS) & bit) { in irqc_irq_handler()
148 iowrite32(bit, p->iomem + DETECT_STATUS); in irqc_irq_handler()
159 struct irqc_priv *p = h->host_data; in irqc_irq_domain_map() local
161 p->irq[hw].domain_irq = virq; in irqc_irq_domain_map()
162 p->irq[hw].hw_irq = hw; in irqc_irq_domain_map()
164 irqc_dbg(&p->irq[hw], "map"); in irqc_irq_domain_map()
166 irq_set_chip_and_handler(virq, &p->irq_chip, handle_level_irq); in irqc_irq_domain_map()
179 struct irqc_priv *p; in irqc_probe() local
187 p = kzalloc(sizeof(*p), GFP_KERNEL); in irqc_probe()
188 if (!p) { in irqc_probe()
196 memcpy(&p->config, pdata, sizeof(*pdata)); in irqc_probe()
198 p->pdev = pdev; in irqc_probe()
199 platform_set_drvdata(pdev, p); in irqc_probe()
201 p->clk = devm_clk_get(&pdev->dev, NULL); in irqc_probe()
202 if (IS_ERR(p->clk)) { in irqc_probe()
204 p->clk = NULL; in irqc_probe()
224 p->irq[k].p = p; in irqc_probe()
225 p->irq[k].requested_irq = irq->start; in irqc_probe()
228 p->number_of_irqs = k; in irqc_probe()
229 if (p->number_of_irqs < 1) { in irqc_probe()
236 p->iomem = ioremap_nocache(io->start, resource_size(io)); in irqc_probe()
237 if (!p->iomem) { in irqc_probe()
243 p->cpu_int_base = p->iomem + IRQC_INT_CPU_BASE(0); /* SYS-SPI */ in irqc_probe()
245 irq_chip = &p->irq_chip; in irqc_probe()
253 p->irq_domain = irq_domain_add_simple(pdev->dev.of_node, in irqc_probe()
254 p->number_of_irqs, in irqc_probe()
255 p->config.irq_base, in irqc_probe()
256 &irqc_irq_domain_ops, p); in irqc_probe()
257 if (!p->irq_domain) { in irqc_probe()
264 for (k = 0; k < p->number_of_irqs; k++) { in irqc_probe()
265 if (request_irq(p->irq[k].requested_irq, irqc_irq_handler, in irqc_probe()
266 0, name, &p->irq[k])) { in irqc_probe()
273 dev_info(&pdev->dev, "driving %d irqs\n", p->number_of_irqs); in irqc_probe()
276 if (p->config.irq_base) { in irqc_probe()
277 if (p->config.irq_base != p->irq[0].domain_irq) in irqc_probe()
279 p->config.irq_base, p->irq[0].domain_irq); in irqc_probe()
285 free_irq(p->irq[k].requested_irq, &p->irq[k]); in irqc_probe()
287 irq_domain_remove(p->irq_domain); in irqc_probe()
289 iounmap(p->iomem); in irqc_probe()
293 kfree(p); in irqc_probe()
300 struct irqc_priv *p = platform_get_drvdata(pdev); in irqc_remove() local
303 for (k = 0; k < p->number_of_irqs; k++) in irqc_remove()
304 free_irq(p->irq[k].requested_irq, &p->irq[k]); in irqc_remove()
306 irq_domain_remove(p->irq_domain); in irqc_remove()
307 iounmap(p->iomem); in irqc_remove()
310 kfree(p); in irqc_remove()