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