void rkpm_ddr_regs_dump(void __iomem * base_addr,u32 start_offset,u32 end_offset)
{
u32 i;
- u32 line=0;
+ //u32 line=0;
rkpm_ddr_printascii("start from:");
rkpm_ddr_printhex((u32)(base_addr +start_offset));
rkpm_ddr_printch('\n');
+
for(i=start_offset;i<=end_offset;)
{
+
rkpm_ddr_printhex(reg_readl((base_addr + i)));
- line++;
- if((line%4==0)||i==end_offset)
+ if(i%16==12)
+ {
rkpm_ddr_printch('\n');
- else
- rkpm_ddr_printch('-');
- i+=4;
+ }
+ else
+ {
+ if(i!=end_offset)
+ rkpm_ddr_printch('-');
+ else
+ rkpm_ddr_printch('\n');
+ }
+ i=i+4;
}
+
}
static struct rkpm_ops pm_ops={NULL};
p_pm_sram_ops->re_ddr=re_ddr;
}
}
+
+void rkpm_set_sram_ops_bus(rkpm_ops_void_callback bus_idle_request)
+{
+ if (p_pm_sram_ops)
+ p_pm_sram_ops->bus_idle_request = bus_idle_request;
+}
void rkpm_set_sram_ops_printch(rkpm_ops_printch_callback printch)
{
if(p_pm_sram_ops)
}
/******************for user ************************/
-void inline rkpm_set_ctrbits(u32 bits)
+void rkpm_set_ctrbits(u32 bits)
{
rkpm_ctrbits = bits;
}
-void inline rkpm_add_ctrbits(u32 bits)
+void rkpm_add_ctrbits(u32 bits)
{
rkpm_ctrbits |= bits;
}
-u32 inline rkpm_get_ctrbits(void)
+u32 rkpm_get_ctrbits(void)
{
return rkpm_ctrbits;
}
-u32 inline rkpm_chk_ctrbits(u32 bits)
+u32 rkpm_chk_ctrbits(u32 bits)
{
return (rkpm_ctrbits&bits);
}
//clear
-void inline rkpm_clr_ctrbits(u32 bits)
+void rkpm_clr_ctrbits(u32 bits)
{
rkpm_ctrbits&=~bits;
}
hex <<= 4;
}
}
+void rk_sram_suspend(void)
+{
+ RKPM_DDR_FUN(regs_pread);
+ rkpm_ddr_printascii("sram");
+ call_with_stack(p_suspend_pie_cb
+ , &rkpm_jdg_sram_ctrbits, rockchip_sram_stack);
+}
static int rk_lpmode_enter(unsigned long arg)
{
//RKPM_DDR_PFUN(slp_setting(rkpm_jdg_sram_ctrbits),slp_setting);
RKPM_DDR_FUN(slp_setting);
-
+
local_flush_tlb_all();
flush_cache_all();
outer_flush_all();
//outer_inv_all();// ???
// l2x0_inv_all_pm(); //rk319x is not need
flush_cache_all();
-
- rkpm_ddr_printch('d');
+
+ rkpm_ddr_printch('d');
//rkpm_udelay(3*10);
return 0;
}
-
int cpu_suspend(unsigned long arg, int (*fn)(unsigned long));
-static u32 test_count=0;
static int rkpm_enter(suspend_state_t state)
{
-
+ //static u32 test_count=0;
// printk(KERN_DEBUG"pm: ");
printk("%s:\n",__FUNCTION__);
//printk("pm test times=%d\n",++test_count);
if(cpu_suspend(0,rk_lpmode_enter)==0)
{
RKPM_DDR_FUN(slp_re_first);
- rkpm_ddr_printch('D');
+ rkpm_ddr_printch('K');
//rk_soc_pm_ctr_bits_prepare();
}
rkpm_ddr_printch('d');
return 0;
}
+#if 0
static int rkpm_enter_tst(void)
{
return rkpm_enter(0);
}
+#endif
static int rkpm_suspend_prepare(void)
{