1 /* 2 * linux/arch/arm/mach-w90x900/clock.h 3 * 4 * Copyright (c) 2008 Nuvoton technology corporation 5 * 6 * Wan ZongShun <mcuos.com@gmail.com> 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License. 11 */ 12 13 #include <linux/clkdev.h> 14 15 void nuc900_clk_enable(struct clk *clk, int enable); 16 void nuc900_subclk_enable(struct clk *clk, int enable); 17 18 struct clk { 19 unsigned long cken; 20 unsigned int enabled; 21 void (*enable)(struct clk *, int enable); 22 }; 23 24 #define DEFINE_CLK(_name, _ctrlbit) \ 25 struct clk clk_##_name = { \ 26 .enable = nuc900_clk_enable, \ 27 .cken = (1 << _ctrlbit), \ 28 } 29 30 #define DEFINE_SUBCLK(_name, _ctrlbit) \ 31 struct clk clk_##_name = { \ 32 .enable = nuc900_subclk_enable, \ 33 .cken = (1 << _ctrlbit), \ 34 } 35 36 37 #define DEF_CLKLOOK(_clk, _devname, _conname) \ 38 { \ 39 .clk = _clk, \ 40 .dev_id = _devname, \ 41 .con_id = _conname, \ 42 } 43 44