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 #ifdef CONFIG_MX25_HCLK_FREQ 13 #define MXC_HCLK CONFIG_MX25_HCLK_FREQ 14 #else 15 #define MXC_HCLK 24000000 16 #endif 17 18 #ifdef CONFIG_MX25_CLK32 19 #define MXC_CLK32 CONFIG_MX25_CLK32 20 #else 21 #define MXC_CLK32 32768 22 #endif 23 24 enum mxc_clock { 25 /* PER clocks (do not change order) */ 26 MXC_CSI_CLK, 27 MXC_EPIT_CLK, 28 MXC_ESAI_CLK, 29 MXC_ESDHC1_CLK, 30 MXC_ESDHC2_CLK, 31 MXC_GPT_CLK, 32 MXC_I2C_CLK, 33 MXC_LCDC_CLK, 34 MXC_NFC_CLK, 35 MXC_OWIRE_CLK, 36 MXC_PWM_CLK, 37 MXC_SIM1_CLK, 38 MXC_SIM2_CLK, 39 MXC_SSI1_CLK, 40 MXC_SSI2_CLK, 41 MXC_UART_CLK, 42 /* Other clocks */ 43 MXC_ARM_CLK, 44 MXC_AHB_CLK, 45 MXC_IPG_CLK, 46 MXC_CSPI_CLK, 47 MXC_FEC_CLK, 48 MXC_CLK_NUM 49 }; 50 51 int imx_set_perclk(enum mxc_clock clk, bool from_upll, unsigned int freq); 52 unsigned int mxc_get_clock(enum mxc_clock clk); 53 54 #define imx_get_uartclk() mxc_get_clock(MXC_UART_CLK) 55 #define imx_get_fecclk() mxc_get_clock(MXC_FEC_CLK) 56 57 #endif /* __ASM_ARCH_CLOCK_H */ 58