求wm9714声卡的寒热启动原理

求wm9714声卡的冷热启动原理
小弟最近写了个裸奔程序,6410的板子,但是卡在wm9714的冷热启动上的,我们的老师很坑爹的告诉我们资料有误-。-,让我们自己去找,但是网上找了半天没发现什么苗头,求给位大大分享下正确的资料或者相关代码或原理,不甚感激. 


------解决方案--------------------
void cold_reset()
{
printf("cold reset\n");
AC_GLBCTRL = 1;
udelay(200);
AC_GLBCTRL &= ~1;
udelay(200);
AC_GLBCTRL = 1;
udelay(200);
AC_GLBCTRL &= ~1;
}

void warm_reset()
{
AC_GLBCTRL = (1 << 1) | (1 << 2);
udelay(200);
AC_GLBCTRL &= ~(1 << 1);
udelay(200);
AC_GLBCTRL = (1 << 2);
udelay(200);
AC_GLBCTRL |= (2 << 12);
udelay(200);
AC_GLBCTRL |= (1 << 3);
}

注意不要在执行代码前有动作,如果要添加打印或者什么的在后面都可以。我这也是坑爹的老师给的。。。具体原理未知。。。