1b9bb0531SStefano Babic /* 2b9bb0531SStefano Babic * (C) Copyright 2011 3b9bb0531SStefano Babic * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 4b9bb0531SStefano Babic * 5b9bb0531SStefano Babic * See file CREDITS for list of people who contributed to this 6b9bb0531SStefano Babic * project. 7b9bb0531SStefano Babic * 8b9bb0531SStefano Babic * This program is free software; you can redistribute it and/or 9b9bb0531SStefano Babic * modify it under the terms of the GNU General Public License as 10b9bb0531SStefano Babic * published by the Free Software Foundation; either version 2 of 11b9bb0531SStefano Babic * the License, or (at your option) any later version. 12b9bb0531SStefano Babic * 13b9bb0531SStefano Babic * This program is distributed in the hope that it will be useful, 14b9bb0531SStefano Babic * but WITHOUT ANY WARRANTY; without even the implied warranty of 15b9bb0531SStefano Babic * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16b9bb0531SStefano Babic * GNU General Public License for more details. 17b9bb0531SStefano Babic * 18b9bb0531SStefano Babic * You should have received a copy of the GNU General Public License 19b9bb0531SStefano Babic * along with this program; if not, write to the Free Software 20b9bb0531SStefano Babic * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21b9bb0531SStefano Babic * MA 02111-1307 USA 22b9bb0531SStefano Babic */ 23b9bb0531SStefano Babic 24b9bb0531SStefano Babic #ifndef __ASM_ARCH_CLOCK_H 25b9bb0531SStefano Babic #define __ASM_ARCH_CLOCK_H 26b9bb0531SStefano Babic 279c6c5c06SBenoît Thébaudeau #include <common.h> 289c6c5c06SBenoît Thébaudeau 299c6c5c06SBenoît Thébaudeau #ifdef CONFIG_MX35_HCLK_FREQ 309c6c5c06SBenoît Thébaudeau #define MXC_HCLK CONFIG_MX35_HCLK_FREQ 319c6c5c06SBenoît Thébaudeau #else 329c6c5c06SBenoît Thébaudeau #define MXC_HCLK 24000000 339c6c5c06SBenoît Thébaudeau #endif 349c6c5c06SBenoît Thébaudeau 359c6c5c06SBenoît Thébaudeau #ifdef CONFIG_MX35_CLK32 369c6c5c06SBenoît Thébaudeau #define MXC_CLK32 CONFIG_MX35_CLK32 379c6c5c06SBenoît Thébaudeau #else 389c6c5c06SBenoît Thébaudeau #define MXC_CLK32 32768 399c6c5c06SBenoît Thébaudeau #endif 409c6c5c06SBenoît Thébaudeau 41b9bb0531SStefano Babic enum mxc_clock { 427c80326dSBenoît Thébaudeau MXC_ARM_CLK, 43b9bb0531SStefano Babic MXC_AHB_CLK, 44b9bb0531SStefano Babic MXC_IPG_CLK, 45b9bb0531SStefano Babic MXC_IPG_PERCLK, 46b9bb0531SStefano Babic MXC_UART_CLK, 47b9bb0531SStefano Babic MXC_ESDHC_CLK, 48b9bb0531SStefano Babic MXC_USB_CLK, 49b9bb0531SStefano Babic MXC_CSPI_CLK, 50b9bb0531SStefano Babic MXC_FEC_CLK, 51*e7bed5c2SMatthias Weisser MXC_I2C_CLK, 52b9bb0531SStefano Babic }; 53b9bb0531SStefano Babic 547c80326dSBenoît Thébaudeau enum mxc_main_clock { 557c80326dSBenoît Thébaudeau CPU_CLK, 567c80326dSBenoît Thébaudeau AHB_CLK, 577c80326dSBenoît Thébaudeau IPG_CLK, 587c80326dSBenoît Thébaudeau IPG_PER_CLK, 597c80326dSBenoît Thébaudeau NFC_CLK, 607c80326dSBenoît Thébaudeau USB_CLK, 617c80326dSBenoît Thébaudeau HSP_CLK, 627c80326dSBenoît Thébaudeau }; 637c80326dSBenoît Thébaudeau 647c80326dSBenoît Thébaudeau enum mxc_peri_clock { 657c80326dSBenoît Thébaudeau UART1_BAUD, 667c80326dSBenoît Thébaudeau UART2_BAUD, 677c80326dSBenoît Thébaudeau UART3_BAUD, 687c80326dSBenoît Thébaudeau SSI1_BAUD, 697c80326dSBenoît Thébaudeau SSI2_BAUD, 707c80326dSBenoît Thébaudeau CSI_BAUD, 717c80326dSBenoît Thébaudeau MSHC_CLK, 727c80326dSBenoît Thébaudeau ESDHC1_CLK, 737c80326dSBenoît Thébaudeau ESDHC2_CLK, 747c80326dSBenoît Thébaudeau ESDHC3_CLK, 757c80326dSBenoît Thébaudeau SPDIF_CLK, 767c80326dSBenoît Thébaudeau SPI1_CLK, 777c80326dSBenoît Thébaudeau SPI2_CLK, 787c80326dSBenoît Thébaudeau }; 797c80326dSBenoît Thébaudeau 80b9bb0531SStefano Babic u32 imx_get_uartclk(void); 81b9bb0531SStefano Babic u32 imx_get_fecclk(void); 82b9bb0531SStefano Babic unsigned int mxc_get_clock(enum mxc_clock clk); 83b9bb0531SStefano Babic 84b9bb0531SStefano Babic #endif /* __ASM_ARCH_CLOCK_H */ 85