1 /*
2  * Freescale i.MX23/i.MX28 Clock
3  *
4  * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
5  * on behalf of DENX Software Engineering GmbH
6  *
7  * SPDX-License-Identifier:	GPL-2.0+
8  */
9 
10 #ifndef __CLOCK_H__
11 #define __CLOCK_H__
12 
13 enum mxc_clock {
14 	MXC_ARM_CLK = 0,
15 	MXC_AHB_CLK,
16 	MXC_IPG_CLK,
17 	MXC_EMI_CLK,
18 	MXC_GPMI_CLK,
19 	MXC_IO0_CLK,
20 	MXC_IO1_CLK,
21 	MXC_XTAL_CLK,
22 	MXC_SSP0_CLK,
23 #ifdef CONFIG_MX28
24 	MXC_SSP1_CLK,
25 	MXC_SSP2_CLK,
26 	MXC_SSP3_CLK,
27 #endif
28 };
29 
30 enum mxs_ioclock {
31 	MXC_IOCLK0 = 0,
32 	MXC_IOCLK1,
33 };
34 
35 enum mxs_sspclock {
36 	MXC_SSPCLK0 = 0,
37 #ifdef CONFIG_MX28
38 	MXC_SSPCLK1,
39 	MXC_SSPCLK2,
40 	MXC_SSPCLK3,
41 #endif
42 };
43 
44 uint32_t mxc_get_clock(enum mxc_clock clk);
45 
46 void mxs_set_ioclk(enum mxs_ioclock io, uint32_t freq);
47 void mxs_set_sspclk(enum mxs_sspclock ssp, uint32_t freq, int xtal);
48 void mxs_set_ssp_busclock(unsigned int bus, uint32_t freq);
49 void mxs_set_lcdclk(uint32_t __maybe_unused lcd_base, uint32_t freq);
50 
51 /* Compatibility with the FEC Ethernet driver */
52 #define	imx_get_fecclk()	mxc_get_clock(MXC_AHB_CLK)
53 
54 #endif	/* __CLOCK_H__ */
55