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 device;
  19
  20struct clk_lookup {
  21        struct list_head        node;
  22        const char              *dev_id;
  23        const char              *con_id;
  24        struct clk              *clk;
  25        struct clk_hw           *clk_hw;
  26};
  27
  28#define CLKDEV_INIT(d, n, c)    \
  29        {                       \
  30                .dev_id = d,    \
  31                .con_id = n,    \
  32                .clk = c,       \
  33        }
  34
  35struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id,
  36        const char *dev_fmt, ...) __printf(3, 4);
  37
  38void clkdev_add(struct clk_lookup *cl);
  39void clkdev_drop(struct clk_lookup *cl);
  40
  41struct clk_lookup *clkdev_create(struct clk *clk, const char *con_id,
  42        const char *dev_fmt, ...) __printf(3, 4);
  43
  44void clkdev_add_table(struct clk_lookup *, size_t);
  45int clk_add_alias(const char *, const char *, const char *, struct device *);
  46
  47int clk_register_clkdev(struct clk *, const char *, const char *, ...)
  48        __printf(3, 4);
  49int clk_register_clkdevs(struct clk *, struct clk_lookup *, size_t);
  50
  51#ifdef CONFIG_COMMON_CLK
  52int __clk_get(struct clk *clk);
  53void __clk_put(struct clk *clk);
  54#endif
  55
  56#endif
  57