aboutsummaryrefslogtreecommitdiff
path: root/drivers/mxc/vpu/mxc_vpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mxc/vpu/mxc_vpu.c')
-rw-r--r--drivers/mxc/vpu/mxc_vpu.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/drivers/mxc/vpu/mxc_vpu.c b/drivers/mxc/vpu/mxc_vpu.c
index c2d40bbfa1e..0f7be85e48f 100644
--- a/drivers/mxc/vpu/mxc_vpu.c
+++ b/drivers/mxc/vpu/mxc_vpu.c
@@ -19,6 +19,7 @@
* @ingroup VPU
*/
+#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
@@ -654,7 +655,10 @@ static int vpu_dev_probe(struct platform_device *pdev)
iram.end = addr + vpu_plat->iram_size - 1;
}
- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "vpu_regs");
+ if (pdev->dev.of_node)
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ else
+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "vpu_regs");
if (!res) {
printk(KERN_ERR "vpu: unable to get vpu base addr\n");
return -ENODEV;
@@ -688,7 +692,10 @@ static int vpu_dev_probe(struct platform_device *pdev)
goto err_out_class;
}
- vpu_ipi_irq = platform_get_irq_byname(pdev, "vpu_ipi_irq");
+ if (pdev->dev.of_node)
+ vpu_ipi_irq = platform_get_irq(pdev, 0);
+ else
+ vpu_ipi_irq = platform_get_irq_byname(pdev, "vpu_ipi_irq");
if (vpu_ipi_irq < 0) {
printk(KERN_ERR "vpu: unable to get vpu interrupt\n");
err = -ENXIO;
@@ -700,7 +707,10 @@ static int vpu_dev_probe(struct platform_device *pdev)
goto err_out_class;
#ifdef MXC_VPU_HAS_JPU
- vpu_jpu_irq = platform_get_irq_byname(pdev, "vpu_jpu_irq");
+ if (pdev->dev.of_node)
+ vpu_jpu_irq = platform_get_irq(pdev, 1);
+ else
+ vpu_jpu_irq = platform_get_irq_byname(pdev, "vpu_jpu_irq");
if (vpu_jpu_irq < 0) {
printk(KERN_ERR "vpu: unable to get vpu jpu interrupt\n");
err = -ENXIO;
@@ -873,12 +883,18 @@ recover_clk:
#define vpu_resume NULL
#endif /* !CONFIG_PM */
+static const struct of_device_id mxc_vpu_dt_ids[] = {
+ { .compatible = "fsl,vpu", },
+ { /* sentinel */ }
+};
+
/*! Driver definition
*
*/
static struct platform_driver mxcvpu_driver = {
.driver = {
.name = "mxc_vpu",
+ .of_match_table = mxc_vpu_dt_ids,
},
.probe = vpu_dev_probe,
.remove = vpu_dev_remove,