#endif
}
+#ifdef CONFIG_CHIP_RK2818
+#include <asm/tcm.h>
+static void __tcmfunc dsp_subsys_power_on(void)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+ /* dsp subsys power on 0x21*/
+ tcm_udelay(1, 600); //¿ªÖ®Ç°Ò²µÃ¼Ó,±ÜÃâ×ÜÏß»¹ÔÚ·ÃÎÊ
+ __raw_writel((__raw_readl(SCU_BASE_ADDR_VA+0x10) & (~0x21)) , SCU_BASE_ADDR_VA+0x10);
+ tcm_udelay(1, 600); //¹ØÖжÏʱ¼ä²»ÄÜÌ«³¤ (´ó¸ÅΪ1us)
+ local_irq_restore(flags);
+}
+#endif
void dsp_powerctl(int ctl, int arg)
{
{
case DPC_NORMAL:
{
-#if 0 //def CONFIG_CHIP_RK2818 //coreµçѹ²»ÎÈʱ,dspÉϵç»áµ¼ÖÂAHBÈ¡Ö¸´íÎó,ËùÒÔdspÉϵçºóµ½Îȶ¨Æڼ䲻²Ù×÷AHB
- unsigned long flags;
- local_irq_save(flags);
- /* dsp subsys power on 0x21*/
- ddr_pll_delay(6000); //¿ªÖ®Ç°Ò²µÃ¼Ó,±ÜÃâ×ÜÏß»¹ÔÚ·ÃÎÊ
- __raw_writel((__raw_readl(SCU_BASE_ADDR_VA+0x10) & (~0x21)) , SCU_BASE_ADDR_VA+0x10);
- ddr_pll_delay(6000); //¹ØÖжÏʱ¼ä²»ÄÜÌ«³¤ (6000´ó¸ÅΪ1us)
- local_irq_restore(flags);
- mdelay(10);
+#ifdef CONFIG_CHIP_RK2818 //coreµçѹ²»ÎÈʱ,dspÉϵç»áµ¼ÖÂAHBÈ¡Ö¸´íÎó,ËùÒÔdspÉϵçºóµ½Îȶ¨Æڼ䲻²Ù×÷AHB
+ dsp_subsys_power_on();
+ mdelay(10);
#else
/* dsp subsys power on 0x21*/
__raw_writel((__raw_readl(SCU_BASE_ADDR_VA+0x10) & (~0x21)) , SCU_BASE_ADDR_VA+0x10);