Lines Matching refs:intr

62 	struct ti_sci_intr_irq_domain *intr = domain->host_data;
68 *type = intr->type;
75 * @intr: IRQ domain corresponding to Interrupt Router
80 static int ti_sci_intr_xlate_irq(struct ti_sci_intr_irq_domain *intr, u32 irq)
82 struct device_node *np = dev_of_node(intr->dev);
111 struct ti_sci_intr_irq_domain *intr = domain->host_data;
118 intr->sci->ops.rm_irq_ops.free_irq(intr->sci,
119 intr->ti_sci_id, data->hwirq,
120 intr->ti_sci_id, out_irq);
121 ti_sci_release_resource(intr->out_irqs, out_irq);
132 * Returns intr output irq if all went well else appropriate error pointer.
137 struct ti_sci_intr_irq_domain *intr = domain->host_data;
143 out_irq = ti_sci_get_free_resource(intr->out_irqs);
147 p_hwirq = ti_sci_intr_xlate_irq(intr, out_irq);
151 parent_node = of_irq_find_parent(dev_of_node(intr->dev));
159 fwspec.param[2] = intr->type;
170 err = intr->sci->ops.rm_irq_ops.set_irq(intr->sci,
171 intr->ti_sci_id, hwirq,
172 intr->ti_sci_id, out_irq);
181 ti_sci_release_resource(intr->out_irqs, out_irq);
227 struct ti_sci_intr_irq_domain *intr;
245 intr = devm_kzalloc(dev, sizeof(*intr), GFP_KERNEL);
246 if (!intr)
249 intr->dev = dev;
250 ret = of_property_read_u32(dev_of_node(dev), "ti,intr-trigger-type",
251 &intr->type);
253 dev_err(dev, "missing ti,intr-trigger-type property\n");
257 intr->sci = devm_ti_sci_get_by_phandle(dev, "ti,sci");
258 if (IS_ERR(intr->sci))
259 return dev_err_probe(dev, PTR_ERR(intr->sci),
263 &intr->ti_sci_id);
269 intr->out_irqs = devm_ti_sci_get_resource(intr->sci, dev,
270 intr->ti_sci_id,
272 if (IS_ERR(intr->out_irqs)) {
274 return PTR_ERR(intr->out_irqs);
278 &ti_sci_intr_irq_domain_ops, intr);
284 dev_info(dev, "Interrupt Router %d domain created\n", intr->ti_sci_id);
290 { .compatible = "ti,sci-intr", },
298 .name = "ti-sci-intr",