xref: /openbmc/linux/arch/m68k/include/asm/mcfclk.h (revision 762f99f4f3cb41a775b5157dd761217beba65873)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2bea8bcb1SSteven King /*
3bea8bcb1SSteven King  * mcfclk.h -- coldfire specific clock structure
4bea8bcb1SSteven King  */
5bea8bcb1SSteven King 
6bea8bcb1SSteven King 
7bea8bcb1SSteven King #ifndef mcfclk_h
8bea8bcb1SSteven King #define mcfclk_h
9bea8bcb1SSteven King 
10bea8bcb1SSteven King struct clk;
11bea8bcb1SSteven King 
12bea8bcb1SSteven King struct clk_ops {
13bea8bcb1SSteven King 	void (*enable)(struct clk *);
14bea8bcb1SSteven King 	void (*disable)(struct clk *);
15bea8bcb1SSteven King };
16bea8bcb1SSteven King 
17bea8bcb1SSteven King struct clk {
18bea8bcb1SSteven King 	struct clk_ops *clk_ops;
19bea8bcb1SSteven King 	unsigned long rate;
20bea8bcb1SSteven King 	unsigned long enabled;
21bea8bcb1SSteven King 	u8 slot;
22bea8bcb1SSteven King };
23bea8bcb1SSteven King 
24610ac938SGreg Ungerer #ifdef MCFPM_PPMCR0
25bea8bcb1SSteven King extern struct clk_ops clk_ops0;
26bea8bcb1SSteven King #ifdef MCFPM_PPMCR1
27bea8bcb1SSteven King extern struct clk_ops clk_ops1;
28bea8bcb1SSteven King #endif /* MCFPM_PPMCR1 */
29bea8bcb1SSteven King 
30*991f5c4dSAngelo Dureghello extern struct clk_ops clk_ops2;
31*991f5c4dSAngelo Dureghello 
32bea8bcb1SSteven King #define DEFINE_CLK(clk_bank, clk_name, clk_slot, clk_rate) \
33bea8bcb1SSteven King static struct clk __clk_##clk_bank##_##clk_slot = { \
34bea8bcb1SSteven King 	.clk_ops = &clk_ops##clk_bank, \
35bea8bcb1SSteven King 	.rate = clk_rate, \
36bea8bcb1SSteven King 	.slot = clk_slot, \
37bea8bcb1SSteven King }
38bea8bcb1SSteven King 
39bea8bcb1SSteven King void __clk_init_enabled(struct clk *);
40bea8bcb1SSteven King void __clk_init_disabled(struct clk *);
41610ac938SGreg Ungerer #else
42610ac938SGreg Ungerer #define DEFINE_CLK(clk_ref, clk_name, clk_rate) \
43610ac938SGreg Ungerer         static struct clk clk_##clk_ref = { \
44610ac938SGreg Ungerer                 .rate = clk_rate, \
45610ac938SGreg Ungerer         }
46bea8bcb1SSteven King #endif /* MCFPM_PPMCR0 */
47bea8bcb1SSteven King 
48bea8bcb1SSteven King #endif /* mcfclk_h */
49