1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * 4 * (c) 2009 Ilya Yanok, Emcraft Systems <yanok@emcraft.com> 5 * 6 * Modified for mx25 by John Rigby <jrigby@gmail.com> 7 */ 8 9 #ifndef __ASM_ARCH_CLOCK_H 10 #define __ASM_ARCH_CLOCK_H 11 12 #include <common.h> 13 14 #ifdef CONFIG_MX25_HCLK_FREQ 15 #define MXC_HCLK CONFIG_MX25_HCLK_FREQ 16 #else 17 #define MXC_HCLK 24000000 18 #endif 19 20 #ifdef CONFIG_MX25_CLK32 21 #define MXC_CLK32 CONFIG_MX25_CLK32 22 #else 23 #define MXC_CLK32 32768 24 #endif 25 26 enum mxc_clock { 27 /* PER clocks (do not change order) */ 28 MXC_CSI_CLK, 29 MXC_EPIT_CLK, 30 MXC_ESAI_CLK, 31 MXC_ESDHC1_CLK, 32 MXC_ESDHC2_CLK, 33 MXC_GPT_CLK, 34 MXC_I2C_CLK, 35 MXC_LCDC_CLK, 36 MXC_NFC_CLK, 37 MXC_OWIRE_CLK, 38 MXC_PWM_CLK, 39 MXC_SIM1_CLK, 40 MXC_SIM2_CLK, 41 MXC_SSI1_CLK, 42 MXC_SSI2_CLK, 43 MXC_UART_CLK, 44 /* Other clocks */ 45 MXC_ARM_CLK, 46 MXC_AHB_CLK, 47 MXC_IPG_CLK, 48 MXC_CSPI_CLK, 49 MXC_FEC_CLK, 50 MXC_CLK_NUM 51 }; 52 53 int imx_set_perclk(enum mxc_clock clk, bool from_upll, unsigned int freq); 54 unsigned int mxc_get_clock(enum mxc_clock clk); 55 56 #define imx_get_uartclk() mxc_get_clock(MXC_UART_CLK) 57 #define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK) 58 59 #endif /* __ASM_ARCH_CLOCK_H */ 60