blob: 9f127c3d32be6ed1939f8c260d5348c8f1d35fe6 [file] [log] [blame]
Tony SIM1d7a8942010-01-28 17:04:55 +09001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __ASM_SH_CLOCK_H
13#define __ASM_SH_CLOCK_H
14
15#include <linux/kref.h>
16#include <linux/list.h>
17#include <linux/seq_file.h>
18#include <linux/clk.h>
19#include <linux/err.h>
20
21struct clk;
22
23struct clk_ops {
24 void (*init)(struct clk *clk);
25 void (*enable)(struct clk *clk);
26 void (*disable)(struct clk *clk);
27 void (*recalc)(struct clk *clk);
28 int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id);
29 long (*round_rate)(struct clk *clk, unsigned long rate);
30};
31
32struct clk {
33 struct list_head node;
34 const char *name;
35 int id;
36 struct module *owner;
37
38 struct clk *parent;
39 struct clk_ops *ops;
40
41 struct kref kref;
42
43 unsigned long rate;
44 unsigned long flags;
45 unsigned long arch_flags;
46};
47
48#define CLK_ALWAYS_ENABLED (1 << 0)
49#define CLK_RATE_PROPAGATES (1 << 1)
50
51enum clk_sh_algo_id {
52 NO_CHANGE = 0,
53
54 IUS_N1_N1,
55 IUS_322,
56 IUS_522,
57 IUS_N11,
58
59 SB_N1,
60
61 SB3_N1,
62 SB3_32,
63 SB3_43,
64 SB3_54,
65
66 BP_N1,
67
68 IP_N1,
69};
70#endif