Lines Matching refs:ipi_mbox

121 static void zynqmp_ipi_fw_call(struct zynqmp_ipi_mbox *ipi_mbox,  in zynqmp_ipi_fw_call()  argument
125 struct zynqmp_ipi_pdata *pdata = ipi_mbox->pdata; in zynqmp_ipi_fw_call()
129 a2 = ipi_mbox->remote_id; in zynqmp_ipi_fw_call()
150 struct zynqmp_ipi_mbox *ipi_mbox; in zynqmp_ipi_interrupt() local
161 ipi_mbox = &pdata->ipi_mboxes[i]; in zynqmp_ipi_interrupt()
162 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX]; in zynqmp_ipi_interrupt()
163 chan = &ipi_mbox->mbox.chans[IPI_MB_CHNL_RX]; in zynqmp_ipi_interrupt()
164 zynqmp_ipi_fw_call(ipi_mbox, arg0, arg3, &res); in zynqmp_ipi_interrupt()
190 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev); in zynqmp_ipi_peek_data() local
196 if (WARN_ON(!ipi_mbox)) { in zynqmp_ipi_peek_data()
202 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_peek_data()
230 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev); in zynqmp_ipi_last_tx_done() local
236 if (WARN_ON(!ipi_mbox)) { in zynqmp_ipi_last_tx_done()
246 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_last_tx_done()
268 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev); in zynqmp_ipi_send_data() local
274 if (WARN_ON(!ipi_mbox)) { in zynqmp_ipi_send_data()
291 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_send_data()
303 zynqmp_ipi_fw_call(ipi_mbox, arg0, IPI_SMC_ACK_EIRQ_MASK, in zynqmp_ipi_send_data()
319 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev); in zynqmp_ipi_startup() local
331 if (!ipi_mbox->mchans[nchan_type].is_opened) { in zynqmp_ipi_startup()
333 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_startup()
346 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_startup()
361 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev); in zynqmp_ipi_shutdown() local
374 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_shutdown()
378 if (!ipi_mbox->mchans[chan_type].is_opened) { in zynqmp_ipi_shutdown()
380 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res); in zynqmp_ipi_shutdown()
473 static int zynqmp_ipi_mbox_probe(struct zynqmp_ipi_mbox *ipi_mbox, in zynqmp_ipi_mbox_probe() argument
484 dev = ipi_mbox->pdata->dev; in zynqmp_ipi_mbox_probe()
486 ipi_mbox->dev.parent = dev; in zynqmp_ipi_mbox_probe()
487 ipi_mbox->dev.release = NULL; in zynqmp_ipi_mbox_probe()
488 ipi_mbox->dev.of_node = node; in zynqmp_ipi_mbox_probe()
489 dev_set_name(&ipi_mbox->dev, "%s", of_node_full_name(node)); in zynqmp_ipi_mbox_probe()
490 dev_set_drvdata(&ipi_mbox->dev, ipi_mbox); in zynqmp_ipi_mbox_probe()
491 ipi_mbox->dev.release = zynqmp_ipi_mbox_dev_release; in zynqmp_ipi_mbox_probe()
492 ipi_mbox->dev.driver = &zynqmp_ipi_mbox_driver; in zynqmp_ipi_mbox_probe()
493 ret = device_register(&ipi_mbox->dev); in zynqmp_ipi_mbox_probe()
498 mdev = &ipi_mbox->dev; in zynqmp_ipi_mbox_probe()
500 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_TX]; in zynqmp_ipi_mbox_probe()
537 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX]; in zynqmp_ipi_mbox_probe()
575 ret = of_property_read_u32(node, "xlnx,ipi-id", &ipi_mbox->remote_id); in zynqmp_ipi_mbox_probe()
581 mbox = &ipi_mbox->mbox; in zynqmp_ipi_mbox_probe()
593 chans[IPI_MB_CHNL_TX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_TX]; in zynqmp_ipi_mbox_probe()
594 chans[IPI_MB_CHNL_RX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_RX]; in zynqmp_ipi_mbox_probe()
595 ipi_mbox->mchans[IPI_MB_CHNL_TX].chan_type = IPI_MB_CHNL_TX; in zynqmp_ipi_mbox_probe()
596 ipi_mbox->mchans[IPI_MB_CHNL_RX].chan_type = IPI_MB_CHNL_RX; in zynqmp_ipi_mbox_probe()
614 struct zynqmp_ipi_mbox *ipi_mbox; in zynqmp_ipi_free_mboxes() local
619 ipi_mbox = &pdata->ipi_mboxes[i]; in zynqmp_ipi_free_mboxes()
620 if (ipi_mbox->dev.parent) { in zynqmp_ipi_free_mboxes()
621 mbox_controller_unregister(&ipi_mbox->mbox); in zynqmp_ipi_free_mboxes()
622 device_unregister(&ipi_mbox->dev); in zynqmp_ipi_free_mboxes()