diff options
Diffstat (limited to 'include/asm-sh')
-rw-r--r-- | include/asm-sh/clock.h | 61 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh4/freq.h | 2 | ||||
-rw-r--r-- | include/asm-sh/freq.h | 11 |
3 files changed, 63 insertions, 11 deletions
diff --git a/include/asm-sh/clock.h b/include/asm-sh/clock.h new file mode 100644 index 000000000000..fdfb75b30f0d --- /dev/null +++ b/include/asm-sh/clock.h | |||
@@ -0,0 +1,61 @@ | |||
1 | #ifndef __ASM_SH_CLOCK_H | ||
2 | #define __ASM_SH_CLOCK_H | ||
3 | |||
4 | #include <linux/kref.h> | ||
5 | #include <linux/list.h> | ||
6 | #include <linux/seq_file.h> | ||
7 | |||
8 | struct clk; | ||
9 | |||
10 | struct clk_ops { | ||
11 | void (*init)(struct clk *clk); | ||
12 | void (*enable)(struct clk *clk); | ||
13 | void (*disable)(struct clk *clk); | ||
14 | void (*recalc)(struct clk *clk); | ||
15 | int (*set_rate)(struct clk *clk, unsigned long rate); | ||
16 | }; | ||
17 | |||
18 | struct clk { | ||
19 | struct list_head node; | ||
20 | const char *name; | ||
21 | |||
22 | struct module *owner; | ||
23 | |||
24 | struct clk *parent; | ||
25 | struct clk_ops *ops; | ||
26 | |||
27 | struct kref kref; | ||
28 | |||
29 | unsigned long rate; | ||
30 | unsigned long flags; | ||
31 | }; | ||
32 | |||
33 | #define CLK_ALWAYS_ENABLED (1 << 0) | ||
34 | #define CLK_RATE_PROPAGATES (1 << 1) | ||
35 | |||
36 | /* Should be defined by processor-specific code */ | ||
37 | void arch_init_clk_ops(struct clk_ops **, int type); | ||
38 | |||
39 | /* arch/sh/kernel/cpu/clock.c */ | ||
40 | int clk_init(void); | ||
41 | |||
42 | int __clk_enable(struct clk *); | ||
43 | int clk_enable(struct clk *); | ||
44 | |||
45 | void __clk_disable(struct clk *); | ||
46 | void clk_disable(struct clk *); | ||
47 | |||
48 | int clk_set_rate(struct clk *, unsigned long rate); | ||
49 | unsigned long clk_get_rate(struct clk *); | ||
50 | void clk_recalc_rate(struct clk *); | ||
51 | |||
52 | struct clk *clk_get(const char *id); | ||
53 | void clk_put(struct clk *); | ||
54 | |||
55 | int clk_register(struct clk *); | ||
56 | void clk_unregister(struct clk *); | ||
57 | |||
58 | int show_clocks(struct seq_file *m); | ||
59 | |||
60 | #endif /* __ASM_SH_CLOCK_H */ | ||
61 | |||
diff --git a/include/asm-sh/cpu-sh4/freq.h b/include/asm-sh/cpu-sh4/freq.h index 201d94fd214f..ef2b9b1ae41f 100644 --- a/include/asm-sh/cpu-sh4/freq.h +++ b/include/asm-sh/cpu-sh4/freq.h | |||
@@ -12,6 +12,8 @@ | |||
12 | 12 | ||
13 | #if defined(CONFIG_CPU_SUBTYPE_SH73180) | 13 | #if defined(CONFIG_CPU_SUBTYPE_SH73180) |
14 | #define FRQCR 0xa4150000 | 14 | #define FRQCR 0xa4150000 |
15 | #elif defined(CONFIG_CPU_SUBTYPE_SH7780) | ||
16 | #define FRQCR 0xffc80000 | ||
15 | #else | 17 | #else |
16 | #define FRQCR 0xffc00000 | 18 | #define FRQCR 0xffc00000 |
17 | #endif | 19 | #endif |
diff --git a/include/asm-sh/freq.h b/include/asm-sh/freq.h index 2c0fde46a0ed..39c0e091cf58 100644 --- a/include/asm-sh/freq.h +++ b/include/asm-sh/freq.h | |||
@@ -14,16 +14,5 @@ | |||
14 | 14 | ||
15 | #include <asm/cpu/freq.h> | 15 | #include <asm/cpu/freq.h> |
16 | 16 | ||
17 | /* arch/sh/kernel/time.c */ | ||
18 | extern void get_current_frequency_divisors(unsigned int *ifc, unsigned int *pfc, unsigned int *bfc); | ||
19 | |||
20 | extern unsigned int get_ifc_divisor(unsigned int value); | ||
21 | extern unsigned int get_ifc_divisor(unsigned int value); | ||
22 | extern unsigned int get_ifc_divisor(unsigned int value); | ||
23 | |||
24 | extern unsigned int get_ifc_value(unsigned int divisor); | ||
25 | extern unsigned int get_pfc_value(unsigned int divisor); | ||
26 | extern unsigned int get_bfc_value(unsigned int divisor); | ||
27 | |||
28 | #endif /* __KERNEL__ */ | 17 | #endif /* __KERNEL__ */ |
29 | #endif /* __ASM_SH_FREQ_H */ | 18 | #endif /* __ASM_SH_FREQ_H */ |