xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mx25/clock.h (revision 821560fd8e43eecc208c1c52ad24faadb6b52703)
1819833afSPeter Tyser /*
2819833afSPeter Tyser  *
3819833afSPeter Tyser  * (c) 2009 Ilya Yanok, Emcraft Systems <yanok@emcraft.com>
4819833afSPeter Tyser  *
5819833afSPeter Tyser  * Modified for mx25 by John Rigby <jrigby@gmail.com>
6819833afSPeter Tyser  *
71a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
8819833afSPeter Tyser  */
9819833afSPeter Tyser 
10819833afSPeter Tyser #ifndef __ASM_ARCH_CLOCK_H
11819833afSPeter Tyser #define __ASM_ARCH_CLOCK_H
12819833afSPeter Tyser 
131b2080f3SBenoît Thébaudeau #include <common.h>
141b2080f3SBenoît Thébaudeau 
151b2080f3SBenoît Thébaudeau #ifdef CONFIG_MX25_HCLK_FREQ
161b2080f3SBenoît Thébaudeau #define MXC_HCLK	CONFIG_MX25_HCLK_FREQ
171b2080f3SBenoît Thébaudeau #else
181b2080f3SBenoît Thébaudeau #define MXC_HCLK	24000000
191b2080f3SBenoît Thébaudeau #endif
201b2080f3SBenoît Thébaudeau 
211b2080f3SBenoît Thébaudeau #ifdef CONFIG_MX25_CLK32
221b2080f3SBenoît Thébaudeau #define MXC_CLK32	CONFIG_MX25_CLK32
231b2080f3SBenoît Thébaudeau #else
241b2080f3SBenoît Thébaudeau #define MXC_CLK32	32768
251b2080f3SBenoît Thébaudeau #endif
261b2080f3SBenoît Thébaudeau 
2742d25327STimo Ketola enum mxc_clock {
28c3b51890SBenoît Thébaudeau 	/* PER clocks (do not change order) */
2942d25327STimo Ketola 	MXC_CSI_CLK,
3042d25327STimo Ketola 	MXC_EPIT_CLK,
3142d25327STimo Ketola 	MXC_ESAI_CLK,
3242d25327STimo Ketola 	MXC_ESDHC1_CLK,
3342d25327STimo Ketola 	MXC_ESDHC2_CLK,
3442d25327STimo Ketola 	MXC_GPT_CLK,
3542d25327STimo Ketola 	MXC_I2C_CLK,
3642d25327STimo Ketola 	MXC_LCDC_CLK,
3742d25327STimo Ketola 	MXC_NFC_CLK,
3842d25327STimo Ketola 	MXC_OWIRE_CLK,
3942d25327STimo Ketola 	MXC_PWM_CLK,
4042d25327STimo Ketola 	MXC_SIM1_CLK,
4142d25327STimo Ketola 	MXC_SIM2_CLK,
4242d25327STimo Ketola 	MXC_SSI1_CLK,
4342d25327STimo Ketola 	MXC_SSI2_CLK,
4442d25327STimo Ketola 	MXC_UART_CLK,
45c3b51890SBenoît Thébaudeau 	/* Other clocks */
4642d25327STimo Ketola 	MXC_ARM_CLK,
47c3b51890SBenoît Thébaudeau 	MXC_AHB_CLK,
48c3b51890SBenoît Thébaudeau 	MXC_IPG_CLK,
49c3b51890SBenoît Thébaudeau 	MXC_CSPI_CLK,
5042d25327STimo Ketola 	MXC_FEC_CLK,
5142d25327STimo Ketola 	MXC_CLK_NUM
5242d25327STimo Ketola };
5342d25327STimo Ketola 
54*3e3aab33SBenoît Thébaudeau int imx_set_perclk(enum mxc_clock clk, bool from_upll, unsigned int freq);
5542d25327STimo Ketola unsigned int mxc_get_clock(enum mxc_clock clk);
56819833afSPeter Tyser 
579baefa46SBenoît Thébaudeau #define imx_get_uartclk()	mxc_get_clock(MXC_UART_CLK)
589baefa46SBenoît Thébaudeau #define imx_get_fecclk()	mxc_get_clock(MXC_FEC_CLK)
599baefa46SBenoît Thébaudeau 
60819833afSPeter Tyser #endif /* __ASM_ARCH_CLOCK_H */
61