123608e23SJason Liu /* 223608e23SJason Liu * (C) Copyright 2009 323608e23SJason Liu * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 423608e23SJason Liu * 51a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 623608e23SJason Liu */ 723608e23SJason Liu 823608e23SJason Liu #ifndef __ASM_ARCH_CLOCK_H 923608e23SJason Liu #define __ASM_ARCH_CLOCK_H 1023608e23SJason Liu 11833b6435SBenoît Thébaudeau #include <common.h> 12833b6435SBenoît Thébaudeau 13833b6435SBenoît Thébaudeau #ifdef CONFIG_SYS_MX6_HCLK 14833b6435SBenoît Thébaudeau #define MXC_HCLK CONFIG_SYS_MX6_HCLK 15833b6435SBenoît Thébaudeau #else 16833b6435SBenoît Thébaudeau #define MXC_HCLK 24000000 17833b6435SBenoît Thébaudeau #endif 18833b6435SBenoît Thébaudeau 19833b6435SBenoît Thébaudeau #ifdef CONFIG_SYS_MX6_CLK32 20833b6435SBenoît Thébaudeau #define MXC_CLK32 CONFIG_SYS_MX6_CLK32 21833b6435SBenoît Thébaudeau #else 22833b6435SBenoît Thébaudeau #define MXC_CLK32 32768 23833b6435SBenoît Thébaudeau #endif 24833b6435SBenoît Thébaudeau 2523608e23SJason Liu enum mxc_clock { 2623608e23SJason Liu MXC_ARM_CLK = 0, 2723608e23SJason Liu MXC_PER_CLK, 2823608e23SJason Liu MXC_AHB_CLK, 2923608e23SJason Liu MXC_IPG_CLK, 3023608e23SJason Liu MXC_IPG_PERCLK, 3123608e23SJason Liu MXC_UART_CLK, 3223608e23SJason Liu MXC_CSPI_CLK, 3323608e23SJason Liu MXC_AXI_CLK, 3423608e23SJason Liu MXC_EMI_SLOW_CLK, 3523608e23SJason Liu MXC_DDR_CLK, 3623608e23SJason Liu MXC_ESDHC_CLK, 3723608e23SJason Liu MXC_ESDHC2_CLK, 3823608e23SJason Liu MXC_ESDHC3_CLK, 3923608e23SJason Liu MXC_ESDHC4_CLK, 4023608e23SJason Liu MXC_SATA_CLK, 4123608e23SJason Liu MXC_NFC_CLK, 42e7bed5c2SMatthias Weisser MXC_I2C_CLK, 4323608e23SJason Liu }; 4423608e23SJason Liu 455f98d0b5SFabio Estevam enum enet_freq { 467731745cSStefan Roese ENET_25MHZ, 477731745cSStefan Roese ENET_50MHZ, 487731745cSStefan Roese ENET_100MHZ, 497731745cSStefan Roese ENET_125MHZ, 505f98d0b5SFabio Estevam }; 515f98d0b5SFabio Estevam 5223608e23SJason Liu u32 imx_get_uartclk(void); 5323608e23SJason Liu u32 imx_get_fecclk(void); 5423608e23SJason Liu unsigned int mxc_get_clock(enum mxc_clock clk); 55224beb83SNikita Kiryanov void setup_gpmi_io_clk(u32 cfg); 5636c1ca4dSNitin Garg void hab_caam_clock_enable(unsigned char enable); 57112fd2ecSBenoît Thébaudeau void enable_ocotp_clk(unsigned char enable); 583f467529SWolfgang Grandegger void enable_usboh3_clk(unsigned char enable); 59224beb83SNikita Kiryanov void enable_uart_clk(unsigned char enable); 60224beb83SNikita Kiryanov int enable_usdhc_clk(unsigned char enable, unsigned bus_num); 6164e7cdb5SEric Nelson int enable_sata_clock(void); 628d29cef5SNikita Kiryanov void disable_sata_clock(void); 6379814492SMarek Vasut int enable_pcie_clock(void); 64cc54a0f7STroy Kisky int enable_i2c_clk(unsigned char enable, unsigned i2c_num); 65a0ae0091SHeiko Schocher int enable_spi_clk(unsigned char enable, unsigned spi_num); 665ea7f0e3SPardeep Kumar Singla void enable_ipu_clock(void); 67*6d97dc10SPeng Fan int enable_fec_anatop_clock(int fec_id, enum enet_freq freq); 68224beb83SNikita Kiryanov void enable_enet_clk(unsigned char enable); 69b93ab2eeSPeng Fan void enable_qspi_clk(int qspi_num); 70cf202d26SNitin Garg void enable_thermal_clk(void); 7123608e23SJason Liu #endif /* __ASM_ARCH_CLOCK_H */ 72