Эх сурвалжийг харах

Blackfin arch: add functions for converting between sclks and usecs

Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Mike Frysinger 17 жил өмнө
parent
commit
2f6cf7bfc6

+ 13 - 1
arch/blackfin/kernel/setup.c

@@ -459,7 +459,7 @@ static u_long get_vco(void)
 	return vco;
 	return vco;
 }
 }
 
 
-/*Get the Core clock*/
+/* Get the Core clock */
 u_long get_cclk(void)
 u_long get_cclk(void)
 {
 {
 	u_long csel, ssel;
 	u_long csel, ssel;
@@ -493,6 +493,18 @@ u_long get_sclk(void)
 }
 }
 EXPORT_SYMBOL(get_sclk);
 EXPORT_SYMBOL(get_sclk);
 
 
+unsigned long sclk_to_usecs(unsigned long sclk)
+{
+	return (USEC_PER_SEC * (u64)sclk) / get_sclk();
+}
+EXPORT_SYMBOL(sclk_to_usecs);
+
+unsigned long usecs_to_sclk(unsigned long usecs)
+{
+	return get_sclk() / (USEC_PER_SEC * (u64)usecs);
+}
+EXPORT_SYMBOL(usecs_to_sclk);
+
 /*
 /*
  *	Get CPU information for use by the procfs.
  *	Get CPU information for use by the procfs.
  */
  */

+ 2 - 0
include/asm-blackfin/bfin-global.h

@@ -47,6 +47,8 @@
 
 
 extern unsigned long get_cclk(void);
 extern unsigned long get_cclk(void);
 extern unsigned long get_sclk(void);
 extern unsigned long get_sclk(void);
+extern unsigned long sclk_to_usecs(unsigned long sclk);
+extern unsigned long usecs_to_sclk(unsigned long usecs);
 
 
 extern void dump_thread(struct pt_regs *regs, struct user *dump);
 extern void dump_thread(struct pt_regs *regs, struct user *dump);
 extern void dump_bfin_regs(struct pt_regs *fp, void *retaddr);
 extern void dump_bfin_regs(struct pt_regs *fp, void *retaddr);