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
30 { .compatible = "fsl,mpc5200-gpio", },
31 { .compatible = "mpc5200-gpio", },
35 /* FPGA register set */
39 #define MEDIA5200_IRQ_SHIFT (32 - MEDIA5200_NUM_IRQS)
73 .name = "Media5200 FPGA",
86 raw_spin_lock(&desc->lock); in media5200_irq_cascade()
87 chip->irq_mask(&desc->irq_data); in media5200_irq_cascade()
88 raw_spin_unlock(&desc->lock); in media5200_irq_cascade()
90 /* Ask the FPGA for IRQ status. If 'val' is 0, then no irqs in media5200_irq_cascade()
91 * are pending. 'ffs()' is 1 based */ in media5200_irq_cascade()
96 generic_handle_domain_irq(media5200_irq.irqhost, val - 1); in media5200_irq_cascade()
98 * __func__, virq, status, enable, val - 1); in media5200_irq_cascade()
103 raw_spin_lock(&desc->lock); in media5200_irq_cascade()
104 chip->irq_ack(&desc->irq_data); in media5200_irq_cascade()
105 if (!irqd_irq_disabled(&desc->irq_data)) in media5200_irq_cascade()
106 chip->irq_unmask(&desc->irq_data); in media5200_irq_cascade()
107 raw_spin_unlock(&desc->lock); in media5200_irq_cascade()
126 return -1; in media5200_irq_xlate()
150 /* Now find the FPGA IRQ */ in media5200_init_irq()
151 fpga_np = of_find_compatible_node(NULL, NULL, "fsl,media5200-fpga"); in media5200_init_irq()
154 pr_debug("%s: found fpga node: %pOF\n", __func__, fpga_np); in media5200_init_irq()
166 /* Disable all FPGA IRQs */ in media5200_init_irq()
185 pr_err("Could not find Media5200 FPGA; PCI interrupts will not work\n"); in media5200_init_irq()
218 port_config = in_be32(&gpio->port_config); in media5200_setup_arch()
223 out_be32(&gpio->port_config, port_config); in media5200_setup_arch()
231 .name = "media5200-platform", in define_machine()