Lines Matching +full:interrupt +full:- +full:controller
18 #include <linux/radix-tree.h>
26 * These interrupt vectors are prioritized with IRQ 4 having the highest
31 * feed into one of the 12 general interrupt vectors. The remaining 8 vectors
32 * can each route a single SoC interrupt directly.
41 /* This number is used when no interrupt has been assigned */
44 /* This type is the placeholder for a hardware interrupt number. It has to
50 /* Interrupt controller "host" data structure. This could be defined as a
51 * irq domain controller. That is, it handles the mapping between hardware
52 * and virtual interrupt numbers for a given interrupt domain. The host
59 * we use an open firmware device-tree. We do have references to struct
61 * a given interrupt controller node, and of course as an argument to its
62 * counterpart host->ops->match() callback. However, those are treated as
63 * generic pointers by the core and the fact that it's actually a device-node
66 * by some sort of arch-specific void * "token" used to identify interrupt
79 /* Match an interrupt controller device node to a host, returns
92 /* Translate device-tree interrupt specifier from raw format coming
93 * from the firmware to a irq_hw_number_t (interrupt line number) and
98 * interrupt controller has for that line)
135 * irq_alloc_host - Allocate a new irq_host data structure
136 * @of_node: optional device-tree node of the interrupt controller
145 * a legacy controller). For a IRQ_HOST_MAP_LINEAR, the map is allocated by
158 * irq_find_host - Locates a host for a given device node
159 * @node: device-tree node of the interrupt controller
165 * irq_set_default_host - Set a "default" host
170 * platforms that want to manipulate a few hard coded interrupt numbers that
171 * aren't properly represented in the device-tree.
177 * irq_set_virq_count - Set the maximum number of virt irqs
181 * the virtual irq number in the controller to avoid the reverse mapping
187 * irq_create_mapping - Map a hardware interrupt into linux virq space
188 * @host: host owning this hardware interrupt or NULL for default host
191 * Only one mapping per hardware interrupt is permitted. Returns a linux
201 * irq_dispose_mapping - Unmap an interrupt
202 * @virq: linux virq number of the interrupt to unmap
207 * irq_find_mapping - Find a linux virq from an hw irq number.
208 * @host: host owning this hardware interrupt
212 * irq controller implementation directly calls the appropriate low level
219 * irq_create_direct_mapping - Allocate a virq for direct mapping
223 * interrupt numbers they generate. In such a case it's simplest to use
224 * the linux virq as the hardware interrupt number.
229 * irq_radix_revmap_insert - Insert a hw irq to linux virq number mapping.
230 * @host: host owning this hardware interrupt
241 * irq_radix_revmap_lookup - Find a linux virq from a hw irq number.
242 * @host: host owning this hardware interrupt
245 * This is a fast path, for use by irq controller code that uses radix tree
252 * irq_linear_revmap - Find a linux virq from a hw irq number.
253 * @host: host owning this hardware interrupt
256 * This is a fast path, for use by irq controller code that uses linear
267 * irq_alloc_virt - Allocate virtual irq numbers
281 * irq_free_virt - Free virtual irq numbers
282 * @virq: virtual irq number of the first interrupt to free
286 * maps, this should be done previously by unmap'ing the interrupt. In fact,