Lines Matching refs:vpu

53  * struct vpu - Ingenic VPU remoteproc private structure
61 struct vpu {
71 struct vpu *vpu = rproc->priv;
75 ret = clk_bulk_prepare_enable(ARRAY_SIZE(vpu->clks), vpu->clks);
77 dev_err(vpu->dev, "Unable to start clocks: %d\n", ret);
84 struct vpu *vpu = rproc->priv;
86 clk_bulk_disable_unprepare(ARRAY_SIZE(vpu->clks), vpu->clks);
93 struct vpu *vpu = rproc->priv;
96 enable_irq(vpu->irq);
100 writel(ctrl, vpu->aux_base + REG_AUX_CTRL);
107 struct vpu *vpu = rproc->priv;
109 disable_irq(vpu->irq);
112 writel(AUX_CTRL_SW_RESET, vpu->aux_base + REG_AUX_CTRL);
119 struct vpu *vpu = rproc->priv;
121 writel(vqid, vpu->aux_base + REG_CORE_MSG);
126 struct vpu *vpu = rproc->priv;
131 const struct vpu_mem_info *info = &vpu->mem_info[i];
155 struct vpu *vpu = rproc->priv;
158 vring = readl(vpu->aux_base + REG_AUX_MSG);
161 writel(0, vpu->aux_base + REG_AUX_MSG_ACK);
171 struct vpu *vpu;
175 rproc = devm_rproc_alloc(dev, "ingenic-vpu",
176 &ingenic_rproc_ops, NULL, sizeof(*vpu));
182 vpu = rproc->priv;
183 vpu->dev = &pdev->dev;
184 platform_set_drvdata(pdev, vpu);
187 vpu->aux_base = devm_ioremap_resource(dev, mem);
188 if (IS_ERR(vpu->aux_base)) {
190 return PTR_ERR(vpu->aux_base);
197 vpu->mem_info[i].base = devm_ioremap_resource(dev, mem);
198 if (IS_ERR(vpu->mem_info[i].base)) {
199 ret = PTR_ERR(vpu->mem_info[i].base);
204 vpu->mem_info[i].len = resource_size(mem);
205 vpu->mem_info[i].map = &vpu_mem_map[i];
208 vpu->clks[0].id = "vpu";
209 vpu->clks[1].id = "aux";
211 ret = devm_clk_bulk_get(dev, ARRAY_SIZE(vpu->clks), vpu->clks);
217 vpu->irq = platform_get_irq(pdev, 0);
218 if (vpu->irq < 0)
219 return vpu->irq;
221 ret = devm_request_irq(dev, vpu->irq, vpu_interrupt, IRQF_NO_AUTOEN,
238 { .compatible = "ingenic,jz4770-vpu-rproc", },
246 .name = "ingenic-vpu",