Lines Matching refs:fwspec
382 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec, in irq_find_matching_fwspec() argument
386 struct fwnode_handle *fwnode = fwspec->fwnode; in irq_find_matching_fwspec()
400 if (h->ops->select && fwspec->param_count) in irq_find_matching_fwspec()
401 rc = h->ops->select(h, fwspec, bus_token); in irq_find_matching_fwspec()
715 struct irq_fwspec *fwspec, in irq_domain_translate() argument
720 return d->ops->translate(d, fwspec, hwirq, type); in irq_domain_translate()
723 return d->ops->xlate(d, to_of_node(fwspec->fwnode), in irq_domain_translate()
724 fwspec->param, fwspec->param_count, in irq_domain_translate()
728 *hwirq = fwspec->param[0]; in irq_domain_translate()
733 struct irq_fwspec *fwspec) in of_phandle_args_to_fwspec() argument
737 fwspec->fwnode = irq_data->np ? &irq_data->np->fwnode : NULL; in of_phandle_args_to_fwspec()
738 fwspec->param_count = irq_data->args_count; in of_phandle_args_to_fwspec()
741 fwspec->param[i] = irq_data->args[i]; in of_phandle_args_to_fwspec()
744 unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec) in irq_create_fwspec_mapping() argument
752 if (fwspec->fwnode) { in irq_create_fwspec_mapping()
753 domain = irq_find_matching_fwspec(fwspec, DOMAIN_BUS_WIRED); in irq_create_fwspec_mapping()
755 domain = irq_find_matching_fwspec(fwspec, DOMAIN_BUS_ANY); in irq_create_fwspec_mapping()
762 of_node_full_name(to_of_node(fwspec->fwnode))); in irq_create_fwspec_mapping()
766 if (irq_domain_translate(domain, fwspec, &hwirq, &type)) in irq_create_fwspec_mapping()
804 hwirq, of_node_full_name(to_of_node(fwspec->fwnode))); in irq_create_fwspec_mapping()
809 virq = irq_domain_alloc_irqs(domain, 1, NUMA_NO_NODE, fwspec); in irq_create_fwspec_mapping()
837 struct irq_fwspec fwspec; in irq_create_of_mapping() local
839 of_phandle_args_to_fwspec(irq_data, &fwspec); in irq_create_of_mapping()
840 return irq_create_fwspec_mapping(&fwspec); in irq_create_of_mapping()