Lines Matching refs:fpga
40 struct cplds *fpga = d; in cplds_irq_handler() local
44 pending = readl(fpga->base + FPGA_IRQ_SET_CLR) & fpga->irq_mask; in cplds_irq_handler()
46 generic_handle_irq(irq_find_mapping(fpga->irqdomain, bit)); in cplds_irq_handler()
53 struct cplds *fpga = irq_data_get_irq_chip_data(d); in cplds_irq_mask_ack() local
57 fpga->irq_mask &= ~bit; in cplds_irq_mask_ack()
58 writel(fpga->irq_mask, fpga->base + FPGA_IRQ_MASK_EN); in cplds_irq_mask_ack()
59 set = readl(fpga->base + FPGA_IRQ_SET_CLR); in cplds_irq_mask_ack()
60 writel(set & ~bit, fpga->base + FPGA_IRQ_SET_CLR); in cplds_irq_mask_ack()
65 struct cplds *fpga = irq_data_get_irq_chip_data(d); in cplds_irq_unmask() local
69 fpga->irq_mask |= bit; in cplds_irq_unmask()
70 writel(fpga->irq_mask, fpga->base + FPGA_IRQ_MASK_EN); in cplds_irq_unmask()
83 struct cplds *fpga = d->host_data; in cplds_irq_domain_map() local
86 irq_set_chip_data(irq, fpga); in cplds_irq_domain_map()
98 struct cplds *fpga = platform_get_drvdata(pdev); in cplds_resume() local
100 writel(fpga->irq_mask, fpga->base + FPGA_IRQ_MASK_EN); in cplds_resume()
108 struct cplds *fpga; in cplds_probe() local
113 fpga = devm_kzalloc(&pdev->dev, sizeof(*fpga), GFP_KERNEL); in cplds_probe()
114 if (!fpga) in cplds_probe()
119 fpga->irq = (unsigned int)res->start; in cplds_probe()
122 if (!fpga->irq) in cplds_probe()
130 fpga->base = devm_ioremap_resource(&pdev->dev, res); in cplds_probe()
131 if (IS_ERR(fpga->base)) in cplds_probe()
132 return PTR_ERR(fpga->base); in cplds_probe()
134 platform_set_drvdata(pdev, fpga); in cplds_probe()
136 writel(fpga->irq_mask, fpga->base + FPGA_IRQ_MASK_EN); in cplds_probe()
137 writel(0, fpga->base + FPGA_IRQ_SET_CLR); in cplds_probe()
139 ret = devm_request_irq(&pdev->dev, fpga->irq, cplds_irq_handler, in cplds_probe()
140 irqflags, dev_name(&pdev->dev), fpga); in cplds_probe()
146 fpga->irq, ret); in cplds_probe()
150 irq_set_irq_wake(fpga->irq, 1); in cplds_probe()
151 fpga->irqdomain = irq_domain_add_linear(pdev->dev.of_node, in cplds_probe()
153 &cplds_irq_domain_ops, fpga); in cplds_probe()
154 if (!fpga->irqdomain) in cplds_probe()
158 ret = irq_create_strict_mappings(fpga->irqdomain, base_irq, 0, in cplds_probe()
172 struct cplds *fpga = platform_get_drvdata(pdev); in cplds_remove() local
174 irq_set_chip_and_handler(fpga->irq, NULL, NULL); in cplds_remove()