Lines Matching +full:fpga +full:- +full:based

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Support for 'media5200-platform' compatible boards.
11 * Notable characteristic of the Media5200 is the presence of an FPGA
29 { .compatible = "fsl,mpc5200-gpio", },
30 { .compatible = "mpc5200-gpio", },
34 /* FPGA register set */
38 #define MEDIA5200_IRQ_SHIFT (32 - MEDIA5200_NUM_IRQS)
72 .name = "Media5200 FPGA",
85 raw_spin_lock(&desc->lock); in media5200_irq_cascade()
86 chip->irq_mask(&desc->irq_data); in media5200_irq_cascade()
87 raw_spin_unlock(&desc->lock); in media5200_irq_cascade()
89 /* Ask the FPGA for IRQ status. If 'val' is 0, then no irqs in media5200_irq_cascade()
90 * are pending. 'ffs()' is 1 based */ in media5200_irq_cascade()
95 generic_handle_domain_irq(media5200_irq.irqhost, val - 1); in media5200_irq_cascade()
97 * __func__, virq, status, enable, val - 1); in media5200_irq_cascade()
102 raw_spin_lock(&desc->lock); in media5200_irq_cascade()
103 chip->irq_ack(&desc->irq_data); in media5200_irq_cascade()
104 if (!irqd_irq_disabled(&desc->irq_data)) in media5200_irq_cascade()
105 chip->irq_unmask(&desc->irq_data); in media5200_irq_cascade()
106 raw_spin_unlock(&desc->lock); in media5200_irq_cascade()
125 return -1; in media5200_irq_xlate()
149 /* Now find the FPGA IRQ */ in media5200_init_irq()
150 fpga_np = of_find_compatible_node(NULL, NULL, "fsl,media5200-fpga"); in media5200_init_irq()
153 pr_debug("%s: found fpga node: %pOF\n", __func__, fpga_np); in media5200_init_irq()
165 /* Disable all FPGA IRQs */ in media5200_init_irq()
182 pr_err("Could not find Media5200 FPGA; PCI interrupts will not work\n"); in media5200_init_irq()
214 port_config = in_be32(&gpio->port_config); in media5200_setup_arch()
219 out_be32(&gpio->port_config, port_config); in media5200_setup_arch()
233 * Called very early, MMU is off, device-tree isn't unflattened
241 .name = "media5200-platform", in define_machine()