This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm365 睡眠模式设置



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);

烦请帮忙解释下,为什么会有这样的现象产生,谢谢!

  • 你好,

    请问你的休眠唤醒代码是否都运行在DM36x内部的RAM里面?休眠唤醒的流程ARM subsystem guide里面应该有具体的描述。

  •  你好,Chris Meng:

         是这样的,我们目前设置deepsleep模式,只是单纯想要验证睡眠模式下的功耗,用以评估方案的可行性,所以对已唤醒这块还没有关注过,按您的回答,是否出现终端不能被操作的现象是跟设置唤醒条件有关?    又或者说系统进入deepsleep模式后,不能操作终端就是正常的(console=ttyS1,115200n8 no_console_suspend)?谢谢您的答复。