summaryrefslogtreecommitdiff
path: root/include/soc/sprd/pm_debug.h
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
committerYuval Adam <_@yuv.al>2017-08-30 08:25:59 +0000
commit8e4bff4cab0ddac6060645b0715210484d02ff40 (patch)
tree3a5c3024371a04692a3a6d9974d001cdff8ebf84 /include/soc/sprd/pm_debug.h
Initial file dump from open source releaseHEADmaster
Diffstat (limited to 'include/soc/sprd/pm_debug.h')
-rw-r--r--include/soc/sprd/pm_debug.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/include/soc/sprd/pm_debug.h b/include/soc/sprd/pm_debug.h
new file mode 100644
index 00000000..c91bb335
--- /dev/null
+++ b/include/soc/sprd/pm_debug.h
@@ -0,0 +1,59 @@
+#ifndef _MACH_PM_DEBUG_H
+#define _MACH_PM_DEBUG_H
+
+#include<soc/sprd/hardware.h>
+#include<linux/io.h>
+
+/*print message every 30 second*/
+#define PM_PRINT_ENABLE
+
+/* use this method we can get time everytime */
+#if !(defined(CONFIG_ARCH_SCX35L64)||defined(CONFIG_ARCH_SCX35LT8))
+#define TIMER_REG(off) (SPRD_TIMER_BASE + (off))
+#define SYSCNT_REG(off) (SPRD_SYSCNT_BASE + (off))
+#define SYSCNT_COUNT SYSCNT_REG(0x0004)
+static u32 inline get_sys_cnt(void)
+{
+ u32 val1, val2;
+ val1 = __raw_readl(SYSCNT_COUNT);
+ val2 = __raw_readl(SYSCNT_COUNT);
+ while(val2 != val1) {
+ val1 = val2;
+ val2 = __raw_readl(SYSCNT_COUNT);
+ }
+ return val2;
+}
+#endif
+
+/*just for pm_sc8810.c & pm_vlx.c*/
+
+/*sleep mode info*/
+#define SLP_MODE_ARM 0
+#define SLP_MODE_MCU 1
+#define SLP_MODE_DEP 2
+#define SLP_MODE_LIT 3
+#define SLP_MODE_NON 4
+
+extern void pm_debug_init(void);
+extern void print_statisic(void);
+extern void wakeup_irq_set(void);
+extern void print_irq_loop(void);
+extern void hard_irq_set(void);
+extern void print_int_status(void);
+extern void clr_sleep_mode(void);
+extern void set_sleep_mode(int sm);
+extern void time_statisic_begin(void);
+extern void time_statisic_end(void);
+extern void print_time(void);
+extern void irq_wakeup_set(void);
+extern void time_add(unsigned int time, int ret);
+extern void print_hard_irq_inloop(int ret);
+extern void pm_debug_save_ahb_glb_regs(void);
+extern void pm_debug_set_wakeup_timer(void);
+extern int is_print_linux_clock;
+extern int is_print_modem_clock;
+
+/* *just for ddi.c */
+extern void inc_irq(int irq);
+
+#endif