Lines Matching refs:fwspec

402 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec,  in irq_find_matching_fwspec()  argument
406 struct fwnode_handle *fwnode = fwspec->fwnode; in irq_find_matching_fwspec()
420 if (h->ops->select && fwspec->param_count) in irq_find_matching_fwspec()
421 rc = h->ops->select(h, fwspec, bus_token); in irq_find_matching_fwspec()
730 struct irq_fwspec *fwspec, in irq_domain_translate() argument
735 return d->ops->translate(d, fwspec, hwirq, type); in irq_domain_translate()
738 return d->ops->xlate(d, to_of_node(fwspec->fwnode), in irq_domain_translate()
739 fwspec->param, fwspec->param_count, in irq_domain_translate()
743 *hwirq = fwspec->param[0]; in irq_domain_translate()
748 unsigned int count, struct irq_fwspec *fwspec) in of_phandle_args_to_fwspec() argument
752 fwspec->fwnode = of_node_to_fwnode(np); in of_phandle_args_to_fwspec()
753 fwspec->param_count = count; in of_phandle_args_to_fwspec()
756 fwspec->param[i] = args[i]; in of_phandle_args_to_fwspec()
760 unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec) in irq_create_fwspec_mapping() argument
768 if (fwspec->fwnode) { in irq_create_fwspec_mapping()
769 domain = irq_find_matching_fwspec(fwspec, DOMAIN_BUS_WIRED); in irq_create_fwspec_mapping()
771 domain = irq_find_matching_fwspec(fwspec, DOMAIN_BUS_ANY); in irq_create_fwspec_mapping()
778 of_node_full_name(to_of_node(fwspec->fwnode))); in irq_create_fwspec_mapping()
782 if (irq_domain_translate(domain, fwspec, &hwirq, &type)) in irq_create_fwspec_mapping()
820 hwirq, of_node_full_name(to_of_node(fwspec->fwnode))); in irq_create_fwspec_mapping()
825 virq = irq_domain_alloc_irqs(domain, 1, NUMA_NO_NODE, fwspec); in irq_create_fwspec_mapping()
853 struct irq_fwspec fwspec; in irq_create_of_mapping() local
856 irq_data->args_count, &fwspec); in irq_create_of_mapping()
858 return irq_create_fwspec_mapping(&fwspec); in irq_create_of_mapping()
965 struct irq_fwspec fwspec; in irq_domain_xlate_twocell() local
967 of_phandle_args_to_fwspec(ctrlr, intspec, intsize, &fwspec); in irq_domain_xlate_twocell()
968 return irq_domain_translate_twocell(d, &fwspec, out_hwirq, out_type); in irq_domain_xlate_twocell()
1009 struct irq_fwspec *fwspec, in irq_domain_translate_onecell() argument
1013 if (WARN_ON(fwspec->param_count < 1)) in irq_domain_translate_onecell()
1015 *out_hwirq = fwspec->param[0]; in irq_domain_translate_onecell()
1030 struct irq_fwspec *fwspec, in irq_domain_translate_twocell() argument
1034 if (WARN_ON(fwspec->param_count < 2)) in irq_domain_translate_twocell()
1036 *out_hwirq = fwspec->param[0]; in irq_domain_translate_twocell()
1037 *out_type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in irq_domain_translate_twocell()