TI工程师们,你们好,
我们这边使用dm365做开发,现在想使用dm365的睡眠(mem)模式,但是发现在提供的sdk包的linux驱动下并没有dm365芯片相关的pm驱动,查找了一些资料,发现如下问题:
1、如下代码所示,在配置PLL1寄存器时候,终端那边直接就不动了(卡住,无任何信息提示),经测试是写PLL1寄存器的时候发生的。
/* Switch CPU PLL to bypass mode */
val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
val &= ~(PLLCTL_PLLENSRC | PLLCTL_PLLEN);
__raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
udelay(PLL_BYPASS_TIME);
/* Powerdown CPU PLL */
val = __raw_readl(pdata->cpupll_reg_base + PLLCTL);
val |= PLLCTL_PLLPWRDN;
__raw_writel(val, pdata->cpupll_reg_base + PLLCTL);
2、我屏蔽以上操作PLL1寄存器,直接配置DEEPSLEEP寄存器后,进入一下接口,后出现上面一样的现象,终端卡住。
/* System goes to sleep in this call */
davinci_sram_suspend(pdata);
烦请帮忙解释下,为什么会有这样的现象产生,谢谢!