]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - arch/arm/include/asm/arch-mxs/clock.h
d3bc95b8240ac270c8fa5920dde868bdffbacf83
[karo-tx-uboot.git] / arch / arm / include / asm / arch-mxs / clock.h
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         MXC_XBUS_CLK,
29 };
30
31 enum mxs_ioclock {
32         MXC_IOCLK0 = 0,
33         MXC_IOCLK1,
34 };
35
36 enum mxs_sspclock {
37         MXC_SSPCLK0 = 0,
38 #ifdef CONFIG_MX28
39         MXC_SSPCLK1,
40         MXC_SSPCLK2,
41         MXC_SSPCLK3,
42 #endif
43 };
44
45 uint32_t mxc_get_clock(enum mxc_clock clk);
46
47 void mxs_set_ioclk(enum mxs_ioclock io, uint32_t freq);
48 void mxs_set_sspclk(enum mxs_sspclock ssp, uint32_t freq, int xtal);
49 void mxs_set_ssp_busclock(unsigned int bus, uint32_t freq);
50 void mxs_set_lcdclk(uint32_t freq);
51
52 /* Compatibility with the FEC Ethernet driver */
53 #define imx_get_fecclk()        mxc_get_clock(MXC_AHB_CLK)
54
55 #endif  /* __CLOCK_H__ */