xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-mx35/clock.h (revision 326ea986ac150acdc7656d57fca647db80b50158)
1b9bb0531SStefano Babic /*
2b9bb0531SStefano Babic  * (C) Copyright 2011
3b9bb0531SStefano Babic  * Stefano Babic, DENX Software Engineering, sbabic@denx.de.
4b9bb0531SStefano Babic  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
6b9bb0531SStefano Babic  */
7b9bb0531SStefano Babic 
8b9bb0531SStefano Babic #ifndef __ASM_ARCH_CLOCK_H
9b9bb0531SStefano Babic #define __ASM_ARCH_CLOCK_H
10b9bb0531SStefano Babic 
119c6c5c06SBenoît Thébaudeau #include <common.h>
129c6c5c06SBenoît Thébaudeau 
139c6c5c06SBenoît Thébaudeau #ifdef CONFIG_MX35_HCLK_FREQ
149c6c5c06SBenoît Thébaudeau #define MXC_HCLK	CONFIG_MX35_HCLK_FREQ
159c6c5c06SBenoît Thébaudeau #else
169c6c5c06SBenoît Thébaudeau #define MXC_HCLK	24000000
179c6c5c06SBenoît Thébaudeau #endif
189c6c5c06SBenoît Thébaudeau 
199c6c5c06SBenoît Thébaudeau #ifdef CONFIG_MX35_CLK32
209c6c5c06SBenoît Thébaudeau #define MXC_CLK32	CONFIG_MX35_CLK32
219c6c5c06SBenoît Thébaudeau #else
229c6c5c06SBenoît Thébaudeau #define MXC_CLK32	32768
239c6c5c06SBenoît Thébaudeau #endif
249c6c5c06SBenoît Thébaudeau 
25b9bb0531SStefano Babic enum mxc_clock {
267c80326dSBenoît Thébaudeau 	MXC_ARM_CLK,
27b9bb0531SStefano Babic 	MXC_AHB_CLK,
28b9bb0531SStefano Babic 	MXC_IPG_CLK,
29b9bb0531SStefano Babic 	MXC_IPG_PERCLK,
30b9bb0531SStefano Babic 	MXC_UART_CLK,
316e3dc127SBenoît Thébaudeau 	MXC_ESDHC1_CLK,
326e3dc127SBenoît Thébaudeau 	MXC_ESDHC2_CLK,
336e3dc127SBenoît Thébaudeau 	MXC_ESDHC3_CLK,
34b9bb0531SStefano Babic 	MXC_USB_CLK,
35b9bb0531SStefano Babic 	MXC_CSPI_CLK,
36b9bb0531SStefano Babic 	MXC_FEC_CLK,
37e7bed5c2SMatthias Weisser 	MXC_I2C_CLK,
38b9bb0531SStefano Babic };
39b9bb0531SStefano Babic 
407c80326dSBenoît Thébaudeau enum mxc_main_clock {
417c80326dSBenoît Thébaudeau 	CPU_CLK,
427c80326dSBenoît Thébaudeau 	AHB_CLK,
437c80326dSBenoît Thébaudeau 	IPG_CLK,
447c80326dSBenoît Thébaudeau 	IPG_PER_CLK,
457c80326dSBenoît Thébaudeau 	NFC_CLK,
467c80326dSBenoît Thébaudeau 	USB_CLK,
477c80326dSBenoît Thébaudeau 	HSP_CLK,
487c80326dSBenoît Thébaudeau };
497c80326dSBenoît Thébaudeau 
507c80326dSBenoît Thébaudeau enum mxc_peri_clock {
517c80326dSBenoît Thébaudeau 	UART1_BAUD,
527c80326dSBenoît Thébaudeau 	UART2_BAUD,
537c80326dSBenoît Thébaudeau 	UART3_BAUD,
547c80326dSBenoît Thébaudeau 	SSI1_BAUD,
557c80326dSBenoît Thébaudeau 	SSI2_BAUD,
567c80326dSBenoît Thébaudeau 	CSI_BAUD,
577c80326dSBenoît Thébaudeau 	MSHC_CLK,
587c80326dSBenoît Thébaudeau 	ESDHC1_CLK,
597c80326dSBenoît Thébaudeau 	ESDHC2_CLK,
607c80326dSBenoît Thébaudeau 	ESDHC3_CLK,
617c80326dSBenoît Thébaudeau 	SPDIF_CLK,
627c80326dSBenoît Thébaudeau 	SPI1_CLK,
637c80326dSBenoît Thébaudeau 	SPI2_CLK,
647c80326dSBenoît Thébaudeau };
657c80326dSBenoît Thébaudeau 
66b9bb0531SStefano Babic u32 imx_get_uartclk(void);
67b9bb0531SStefano Babic u32 imx_get_fecclk(void);
68b9bb0531SStefano Babic unsigned int mxc_get_clock(enum mxc_clock clk);
69b9bb0531SStefano Babic 
70b9bb0531SStefano Babic #endif /* __ASM_ARCH_CLOCK_H */
71