16d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD/* 26d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * include/linux/clkdev.h 36d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * 46d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * Copyright (C) 2008 Russell King. 56d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * 66d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * This program is free software; you can redistribute it and/or modify 76d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * it under the terms of the GNU General Public License version 2 as 86d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * published by the Free Software Foundation. 96d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * 106d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD * Helper for the clk API to assist looking up a struct clk. 116d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD */ 126d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD#ifndef __CLKDEV_H 136d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD#define __CLKDEV_H 146d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 156d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD#include <asm/clkdev.h> 166d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 176d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDstruct clk; 186d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDstruct device; 196d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 206d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDstruct clk_lookup { 216d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD struct list_head node; 226d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD const char *dev_id; 236d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD const char *con_id; 246d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD struct clk *clk; 256d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD}; 266d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 27196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna#define CLKDEV_INIT(d, n, c) \ 28196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna { \ 29196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna .dev_id = d, \ 30196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna .con_id = n, \ 31196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna .clk = c, \ 32196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna } 33196a57c2749119be4732cc2b2adb8aafcb4fcb14Padmavathi Venna 346d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDstruct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, 356d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD const char *dev_fmt, ...); 366d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 376d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDvoid clkdev_add(struct clk_lookup *cl); 386d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDvoid clkdev_drop(struct clk_lookup *cl); 396d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 406d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDvoid clkdev_add_table(struct clk_lookup *, size_t); 416d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARDint clk_add_alias(const char *, const char *, char *, struct device *); 426d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD 43e9d7f4065408e92338a41b809e437c6e043da090Russell Kingint clk_register_clkdev(struct clk *, const char *, const char *, ...); 44e9d7f4065408e92338a41b809e437c6e043da090Russell Kingint clk_register_clkdevs(struct clk *, struct clk_lookup *, size_t); 45e9d7f4065408e92338a41b809e437c6e043da090Russell King 46ac2df527fb407b61f9c812a99035b62a75a77d6dSylwester Nawrocki#ifdef CONFIG_COMMON_CLK 47ac2df527fb407b61f9c812a99035b62a75a77d6dSylwester Nawrockiint __clk_get(struct clk *clk); 48ac2df527fb407b61f9c812a99035b62a75a77d6dSylwester Nawrockivoid __clk_put(struct clk *clk); 49ac2df527fb407b61f9c812a99035b62a75a77d6dSylwester Nawrocki#endif 50ac2df527fb407b61f9c812a99035b62a75a77d6dSylwester Nawrocki 516d803ba736abb5e122dede70a4720e4843dd6df4Jean-Christop PLAGNIOL-VILLARD#endif 52