• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
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 
21 struct clk;
22 
23 struct 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 
32 struct 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 
51 enum 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
71