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