Lines Matching refs:ddata

99 	struct stm32_rproc *ddata = rproc->priv;
102 for (i = 0; i < ddata->nb_rmems; i++) {
103 p_mem = &ddata->rmems[i];
146 struct stm32_rproc *ddata)
190 ddata->rmems = p_mems;
191 ddata->nb_rmems = cnt;
200 struct stm32_rproc *ddata = rproc->priv;
203 for (i = 0; i < ARRAY_SIZE(ddata->mb); i++) {
204 if (!strncmp(ddata->mb[i].name, name, strlen(name)))
311 struct stm32_rproc *ddata = rproc->priv;
313 queue_work(ddata->workqueue, &mb->vq_work);
318 struct stm32_rproc *ddata = rproc->priv;
321 for (i = 0; i < ARRAY_SIZE(ddata->mb); i++) {
322 if (ddata->mb[i].chan)
323 mbox_free_channel(ddata->mb[i].chan);
324 ddata->mb[i].chan = NULL;
367 struct stm32_rproc *ddata = rproc->priv;
375 memcpy(ddata->mb, stm32_rproc_mbox, sizeof(stm32_rproc_mbox));
378 name = ddata->mb[i].name;
380 cl = &ddata->mb[i].client;
383 ddata->mb[i].chan = mbox_request_channel_byname(cl, name);
384 if (IS_ERR(ddata->mb[i].chan)) {
385 if (PTR_ERR(ddata->mb[i].chan) == -EPROBE_DEFER) {
387 PTR_ERR(ddata->mb[i].chan),
393 ddata->mb[i].chan = NULL;
395 if (ddata->mb[i].vq_id >= 0) {
396 INIT_WORK(&ddata->mb[i].vq_work,
405 if (ddata->mb[j].chan)
406 mbox_free_channel(ddata->mb[j].chan);
412 struct stm32_rproc *ddata = rproc->priv;
413 struct stm32_syscon hold_boot = ddata->hold_boot;
426 if (ddata->hold_boot_rst) {
429 err = reset_control_deassert(ddata->hold_boot_rst);
431 err = reset_control_assert(ddata->hold_boot_rst);
432 } else if (IS_ENABLED(CONFIG_HAVE_ARM_SMCCC) && ddata->hold_boot_smc) {
473 struct stm32_rproc *ddata = rproc->priv;
479 if (ddata->pdds.map) {
480 err = regmap_update_bits(ddata->pdds.map, ddata->pdds.reg,
481 ddata->pdds.mask, 0);
504 struct stm32_rproc *ddata = rproc->priv;
509 if (idx >= 0 && ddata->mb[idx].chan) {
510 err = mbox_send_message(ddata->mb[idx].chan, "stop");
521 struct stm32_rproc *ddata = rproc->priv;
527 if (idx >= 0 && ddata->mb[idx].chan) {
528 err = mbox_send_message(ddata->mb[idx].chan, "detach");
538 err = reset_control_assert(ddata->rst);
545 if (ddata->pdds.map) {
546 err = regmap_update_bits(ddata->pdds.map, ddata->pdds.reg,
547 ddata->pdds.mask, 1);
555 if (ddata->m4_state.map) {
556 err = regmap_update_bits(ddata->m4_state.map,
557 ddata->m4_state.reg,
558 ddata->m4_state.mask,
571 struct stm32_rproc *ddata = rproc->priv;
579 if (vqid != ddata->mb[i].vq_id)
581 if (!ddata->mb[i].chan)
583 err = mbox_send_message(ddata->mb[i].chan, "kick");
586 __func__, ddata->mb[i].name, err);
594 struct stm32_rproc *ddata = rproc->priv;
599 for (i = 0; i < ddata->nb_rmems; i++) {
600 p_mem = &ddata->rmems[i];
620 struct stm32_rproc *ddata = rproc->priv;
627 if (ddata->rsc_va)
630 err = regmap_read(ddata->rsctbl.map, ddata->rsctbl.reg, &rsc_da);
644 ddata->rsc_va = devm_ioremap_wc(dev, rsc_pa, RSC_TBL_SIZE);
645 if (IS_ERR_OR_NULL(ddata->rsc_va)) {
648 ddata->rsc_va = NULL;
660 return (__force struct resource_table *)ddata->rsc_va;
707 struct stm32_rproc *ddata, bool *auto_boot)
726 ddata->wdg_irq = irq;
736 ddata->rst = devm_reset_control_get_optional(dev, "mcu_rst");
737 if (!ddata->rst) {
739 ddata->rst = devm_reset_control_get_by_index(dev, 0);
741 if (IS_ERR(ddata->rst))
742 return dev_err_probe(dev, PTR_ERR(ddata->rst),
756 ddata->hold_boot_rst = devm_reset_control_get_optional(dev, "hold_boot");
757 if (IS_ERR(ddata->hold_boot_rst))
758 return dev_err_probe(dev, PTR_ERR(ddata->hold_boot_rst),
761 if (!ddata->hold_boot_rst && IS_ENABLED(CONFIG_HAVE_ARM_SMCCC)) {
770 ddata->hold_boot_smc = tzen & tz.mask;
774 if (!ddata->hold_boot_rst && !ddata->hold_boot_smc) {
777 &ddata->hold_boot);
784 err = stm32_rproc_get_syscon(np, "st,syscfg-pdds", &ddata->pdds);
795 &ddata->m4_state);
798 ddata->m4_state.map = NULL;
808 &ddata->rsctbl);
817 static int stm32_rproc_get_m4_status(struct stm32_rproc *ddata,
821 if (!ddata->m4_state.map) {
830 return regmap_read(ddata->m4_state.map, ddata->m4_state.reg, state);
836 struct stm32_rproc *ddata;
846 rproc = devm_rproc_alloc(dev, np->name, &st_rproc_ops, NULL, sizeof(*ddata));
850 ddata = rproc->priv;
854 ret = stm32_rproc_parse_dt(pdev, ddata, &rproc->auto_boot);
858 ret = stm32_rproc_of_memory_translations(pdev, ddata);
862 ret = stm32_rproc_get_m4_status(ddata, &state);
870 ddata->workqueue = create_workqueue(dev_name(dev));
871 if (!ddata->workqueue) {
892 destroy_workqueue(ddata->workqueue);
906 struct stm32_rproc *ddata = rproc->priv;
914 destroy_workqueue(ddata->workqueue);
925 struct stm32_rproc *ddata = rproc->priv;
928 return enable_irq_wake(ddata->wdg_irq);
936 struct stm32_rproc *ddata = rproc->priv;
939 return disable_irq_wake(ddata->wdg_irq);