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