diff options
Diffstat (limited to 'arch/arm/mach-imx/src.c')
-rw-r--r-- | arch/arm/mach-imx/src.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/src.c b/arch/arm/mach-imx/src.c index ac8eb58aeeb..bcc4e93acc5 100644 --- a/arch/arm/mach-imx/src.c +++ b/arch/arm/mach-imx/src.c @@ -28,6 +28,22 @@ static void __iomem *src_base; #define cpu_logical_map(cpu) 0 #endif +void imx_reset_vpu(void) +{ + u32 val; + + /* mask interrupt due to vpu passed reset */ + val = readl_relaxed(src_base + 0x18); + val |= 0x02; + writel_relaxed(val, src_base + 0x18); + + val = readl_relaxed(src_base); + val |= 0x5; /* warm reset vpu */ + writel_relaxed(val, src_base); + while (readl_relaxed(src_base) & 0x04) + ; +} + void imx_reset_ipu(int ipu) { u32 val; |