linux/include/linux/clkdev.h
<<
>>
Prefs
   1/*
   2 *  include/linux/clkdev.h
   3 *
   4 *  Copyright (C) 2008 Russell King.
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 *
  10 * Helper for the clk API to assist looking up a struct clk.
  11 */
  12#ifndef __CLKDEV_H
  13#define __CLKDEV_H
  14
  15#include <asm/clkdev.h>
  16
  17struct clk;
  18struct clk_hw;
  19struct device;
  20
  21struct clk_lookup {
  22        struct list_head        node;
  23        const char              *dev_id;
  24        const char              *con_id;
  25        struct clk              *clk;
  26        struct clk_hw           *clk_hw;
  27};
  28
  29#define CLKDEV_INIT(d, n, c)    \
  30        {                       \
  31                .dev_id = d,    \
  32                .con_id = n,    \
  33                .clk = c,       \
  34        }
  35
  36struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
  37        const char *dev_fmt, ...) __printf(3, 4);
  38struct clk_lookup *clkdev_hw_alloc(struct clk_hw *hw, const char *con_id,
  39        const char *dev_fmt, ...) __printf(3, 4);
  40
  41void clkdev_add(struct clk_lookup *cl);
  42void clkdev_drop(struct clk_lookup *cl);
  43
  44struct clk_lookup *clkdev_create(struct clk *clk, const char *con_id,
  45        const char *dev_fmt, ...) __printf(3, 4);
  46struct clk_lookup *clkdev_hw_create(struct clk_hw *hw, const char *con_id,
  47        const char *dev_fmt, ...) __printf(3, 4);
  48
  49void clkdev_add_table(struct clk_lookup *, size_t);
  50int clk_add_alias(const char *, const char *, const char *, struct device *);
  51
  52int clk_register_clkdev(struct clk *, const char *, const char *);
  53int clk_hw_register_clkdev(struct clk_hw *, const char *, const char *);
  54
  55#ifdef CONFIG_COMMON_CLK
  56int __clk_get(struct clk *clk);
  57void __clk_put(struct clk *clk);
  58#endif
  59
  60#endif
  61