blob: b88a1b16b2e965b29c88417b0c153e662a382e5f [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/*
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
15void nuc900_clk_enable(struct clk *clk, int enable);
16void nuc900_subclk_enable(struct clk *clk, int enable);
17
18struct clk {
19 unsigned long cken;
20 unsigned int enabled;
21 void (*enable)(struct clk *, int enable);
22};
23
24#define DEFINE_CLK(_name, _ctrlbit) \
25struct clk clk_##_name = { \
26 .enable = nuc900_clk_enable, \
27 .cken = (1 << _ctrlbit), \
28 }
29
30#define DEFINE_SUBCLK(_name, _ctrlbit) \
31struct 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