Lines Matching refs:irq_domain
1 irq_domain interrupt number mapping library
30 The irq_domain library adds mapping between hwirq and IRQ numbers on
31 top of the irq_alloc_desc*() API. An irq_domain to manage mapping is
35 irq_domain also implements translation from an abstract irq_fwspec
39 === irq_domain usage ===
40 An interrupt controller driver creates and registers an irq_domain by
43 will return a pointer to the irq_domain on success. The caller must
46 In most cases, the irq_domain will begin empty without any mappings
47 between hwirq and IRQ numbers. Mappings are added to the irq_domain
48 by calling irq_create_mapping() which accepts the irq_domain and a
65 === Types of irq_domain mappings ===
89 The irq_domain maintains a radix tree map from hwirq numbers to Linux
167 hardware architecture, an irq_domain data structure is built for each
169 When building irq_domain hierarchy, the irq_domain near to the device is
170 child and the irq_domain near to CPU is parent. So a hierarchy structure
172 CPU Vector irq_domain (root irq_domain to manage CPU vectors)
175 Interrupt Remapping irq_domain (manage irq_remapping entries)
178 IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
180 There are four major interfaces to use hierarchy irq_domain:
190 Following changes are needed to support hierarchy irq_domain.
191 1) a new field 'parent' is added to struct irq_domain; it's used to
192 maintain irq_domain hierarchy information.
195 is used to store irq_domain pointer and hardware irq number.
197 irq_domain operations.
199 With support of hierarchy irq_domain and hierarchy irq_data ready, an
200 irq_domain structure is built for each interrupt controller, and an
201 irq_data structure is allocated for each irq_domain associated with an
212 For an interrupt controller driver to support hierarchy irq_domain, it
220 they are unused with hierarchy irq_domain.
222 Hierarchy irq_domain may also be used to support other architectures,