Lines Matching defs:ipcc
14 #include <dt-bindings/mailbox/qcom-ipcc.h>
74 struct qcom_ipcc *ipcc = data;
79 hwirq = readl(ipcc->base + IPCC_REG_RECV_ID);
83 virq = irq_find_mapping(ipcc->irq_domain, hwirq);
84 writel(hwirq, ipcc->base + IPCC_REG_RECV_SIGNAL_CLEAR);
93 struct qcom_ipcc *ipcc = irq_data_get_irq_chip_data(irqd);
96 writel(hwirq, ipcc->base + IPCC_REG_RECV_SIGNAL_DISABLE);
101 struct qcom_ipcc *ipcc = irq_data_get_irq_chip_data(irqd);
104 writel(hwirq, ipcc->base + IPCC_REG_RECV_SIGNAL_ENABLE);
108 .name = "ipcc",
117 struct qcom_ipcc *ipcc = d->host_data;
120 irq_set_chip_data(irq, ipcc);
148 struct qcom_ipcc *ipcc = to_qcom_ipcc(chan->mbox);
153 writel(hwirq, ipcc->base + IPCC_REG_SEND_ID);
166 struct qcom_ipcc *ipcc = to_qcom_ipcc(mbox);
175 chan = &ipcc->chan[i];
177 mchan = &ipcc->mchan[i];
195 static int qcom_ipcc_setup_mbox(struct qcom_ipcc *ipcc)
198 struct device *dev = ipcc->dev;
200 mbox = &ipcc->mbox;
203 mbox->chans = ipcc->chan;
214 struct qcom_ipcc *ipcc;
217 ipcc = devm_kzalloc(&pdev->dev, sizeof(*ipcc), GFP_KERNEL);
218 if (!ipcc)
221 ipcc->dev = &pdev->dev;
223 ipcc->base = devm_platform_ioremap_resource(pdev, 0);
224 if (IS_ERR(ipcc->base))
225 return PTR_ERR(ipcc->base);
227 ipcc->irq = platform_get_irq(pdev, 0);
228 if (ipcc->irq < 0)
229 return ipcc->irq;
231 ipcc->irq_domain = irq_domain_add_tree(pdev->dev.of_node,
232 &qcom_ipcc_irq_ops, ipcc);
233 if (!ipcc->irq_domain)
236 ret = qcom_ipcc_setup_mbox(ipcc);
240 ret = devm_request_irq(&pdev->dev, ipcc->irq, qcom_ipcc_irq_fn,
241 IRQF_TRIGGER_HIGH, "ipcc", ipcc);
247 enable_irq_wake(ipcc->irq);
248 platform_set_drvdata(pdev, ipcc);
253 irq_domain_remove(ipcc->irq_domain);
260 struct qcom_ipcc *ipcc = platform_get_drvdata(pdev);
262 disable_irq_wake(ipcc->irq);
263 irq_domain_remove(ipcc->irq_domain);
269 { .compatible = "qcom,ipcc"},
278 .name = "qcom-ipcc",