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

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __ASM_MIPS_CLOCK_H
   3 #define __ASM_MIPS_CLOCK_H
   4 
   5 #include <linux/kref.h>
   6 #include <linux/list.h>
   7 #include <linux/seq_file.h>
   8 #include <linux/clk.h>
   9 
  10 struct clk;
  11 
  12 struct clk_ops {
  13         void (*init) (struct clk *clk);
  14         void (*enable) (struct clk *clk);
  15         void (*disable) (struct clk *clk);
  16         void (*recalc) (struct clk *clk);
  17         int (*set_rate) (struct clk *clk, unsigned long rate, int algo_id);
  18         long (*round_rate) (struct clk *clk, unsigned long rate);
  19 };
  20 
  21 struct clk {
  22         struct list_head node;
  23         const char *name;
  24         int id;
  25         struct module *owner;
  26 
  27         struct clk *parent;
  28         struct clk_ops *ops;
  29 
  30         struct kref kref;
  31 
  32         unsigned long rate;
  33         unsigned long flags;
  34 };
  35 
  36 #define CLK_ALWAYS_ENABLED      (1 << 0)
  37 #define CLK_RATE_PROPAGATES     (1 << 1)
  38 
  39 int clk_init(void);
  40 
  41 int __clk_enable(struct clk *);
  42 void __clk_disable(struct clk *);
  43 
  44 void clk_recalc_rate(struct clk *);
  45 
  46 int clk_register(struct clk *);
  47 void clk_unregister(struct clk *);
  48 
  49 #endif                          /* __ASM_MIPS_CLOCK_H */

/* [<][>][^][v][top][bottom][index][help] */