use pxp_soft_reset() in probe and resume function because this implementation
follows the recommended flow in the IC spec.
without soft reset, when only use wfe_a process without legacy process it's
likely to meet timeout issue since. In other words, wfe_a process need the
soft reset to work properly.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
if (err)
goto exit;
- /* enable all the possible irq raised by PXP */
- __raw_writel(0xffff, pxp->base + HW_PXP_IRQ_MASK);
-
/* Initialize DMA engine */
err = pxp_dma_init(pxp);
if (err < 0)
device_create_file(&pdev->dev, &dev_attr_block_size);
pxp_clk_enable(pxp);
+ pxp_soft_reset(pxp);
+ /* enable all the possible irq raised by PXP */
+ __raw_writel(0xffff, pxp->base + HW_PXP_IRQ_MASK);
+
dump_pxp_reg(pxp);
pxp_clk_disable(pxp);
pxp_clk_enable(pxp);
/* Pull PxP out of reset */
- __raw_writel(0, pxp->base + HW_PXP_CTRL);
+ pxp_soft_reset(pxp);
+ /* enable all the possible irq raised by PXP */
+ __raw_writel(0xffff, pxp->base + HW_PXP_IRQ_MASK);
pxp_clk_disable(pxp);
return 0;