Root/arch/mips/include/asm/clock.h

Source at commit 77dbab172c582f659e7c1e21dfeb465eec7ce09a created 8 years 6 months ago.
By Maarten ter Huurne, MIPS: Removed declaration of obsolete arch_init_clk_ops()
1#ifndef __ASM_MIPS_CLOCK_H
2#define __ASM_MIPS_CLOCK_H
3
4#include <linux/kref.h>
5#include <linux/list.h>
6#include <linux/seq_file.h>
7#include <linux/clk.h>
8
9extern void (*cpu_wait) (void);
10
11struct clk;
12
13struct clk_ops {
14    void (*init) (struct clk *clk);
15    void (*enable) (struct clk *clk);
16    void (*disable) (struct clk *clk);
17    void (*recalc) (struct clk *clk);
18    int (*set_rate) (struct clk *clk, unsigned long rate, int algo_id);
19    long (*round_rate) (struct clk *clk, unsigned long rate);
20};
21
22struct clk {
23    struct list_head node;
24    const char *name;
25    int id;
26    struct module *owner;
27
28    struct clk *parent;
29    struct clk_ops *ops;
30
31    struct kref kref;
32
33    unsigned long rate;
34    unsigned long flags;
35};
36
37#define CLK_ALWAYS_ENABLED (1 << 0)
38#define CLK_RATE_PROPAGATES (1 << 1)
39
40int clk_init(void);
41
42int __clk_enable(struct clk *);
43void __clk_disable(struct clk *);
44
45void clk_recalc_rate(struct clk *);
46
47int clk_register(struct clk *);
48void clk_unregister(struct clk *);
49
50/* the exported API, in addition to clk_set_rate */
51/**
52 * clk_set_rate_ex - set the clock rate for a clock source, with additional parameter
53 * @clk: clock source
54 * @rate: desired clock rate in Hz
55 * @algo_id: algorithm id to be passed down to ops->set_rate
56 *
57 * Returns success (0) or negative errno.
58 */
59int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id);
60
61#endif /* __ASM_MIPS_CLOCK_H */
62

Archive Download this file



interactive