at v4.4-rc6 1.3 kB view raw
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