1ff9f475dSJason Liu /* 2ff9f475dSJason Liu * (C) Copyright 2009 3ff9f475dSJason Liu * Stefano Babic, DENX Software Engineering, sbabic@denx.de. 4ff9f475dSJason Liu * 51a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 6ff9f475dSJason Liu */ 7ff9f475dSJason Liu 8ff9f475dSJason Liu #ifndef __ASM_ARCH_CLOCK_H 9ff9f475dSJason Liu #define __ASM_ARCH_CLOCK_H 10ff9f475dSJason Liu 11833b6435SBenoît Thébaudeau #include <common.h> 12833b6435SBenoît Thébaudeau 13833b6435SBenoît Thébaudeau #ifdef CONFIG_SYS_MX5_HCLK 14833b6435SBenoît Thébaudeau #define MXC_HCLK CONFIG_SYS_MX5_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_MX5_CLK32 20833b6435SBenoît Thébaudeau #define MXC_CLK32 CONFIG_SYS_MX5_CLK32 21833b6435SBenoît Thébaudeau #else 22833b6435SBenoît Thébaudeau #define MXC_CLK32 32768 23833b6435SBenoît Thébaudeau #endif 24833b6435SBenoît Thébaudeau 25ff9f475dSJason Liu enum mxc_clock { 26ff9f475dSJason Liu MXC_ARM_CLK = 0, 27ff9f475dSJason Liu MXC_AHB_CLK, 28ff9f475dSJason Liu MXC_IPG_CLK, 29ff9f475dSJason Liu MXC_IPG_PERCLK, 30ff9f475dSJason Liu MXC_UART_CLK, 31ff9f475dSJason Liu MXC_CSPI_CLK, 3232384656SBenoît Thébaudeau MXC_ESDHC_CLK, 3332384656SBenoît Thébaudeau MXC_ESDHC2_CLK, 3432384656SBenoît Thébaudeau MXC_ESDHC3_CLK, 3532384656SBenoît Thébaudeau MXC_ESDHC4_CLK, 36ff9f475dSJason Liu MXC_FEC_CLK, 37d87c85ceSStefano Babic MXC_SATA_CLK, 3870cc86a6SFabio Estevam MXC_DDR_CLK, 3970cc86a6SFabio Estevam MXC_NFC_CLK, 4070cc86a6SFabio Estevam MXC_PERIPH_CLK, 41e7bed5c2SMatthias Weisser MXC_I2C_CLK, 42ff9f475dSJason Liu }; 43ff9f475dSJason Liu 44ff9f475dSJason Liu u32 imx_get_uartclk(void); 45ff9f475dSJason Liu u32 imx_get_fecclk(void); 46ff9f475dSJason Liu unsigned int mxc_get_clock(enum mxc_clock clk); 4770cc86a6SFabio Estevam int mxc_set_clock(u32 ref, u32 freq, u32 clk_type); 48414e1660SBenoît Thébaudeau void set_usb_phy_clk(void); 4976b6b196SFabio Estevam void enable_usb_phy1_clk(bool enable); 5076b6b196SFabio Estevam void enable_usb_phy2_clk(bool enable); 515d2947a3SWolfgang Grandegger void set_usboh3_clk(void); 5276b6b196SFabio Estevam void enable_usboh3_clk(bool enable); 538c38b5d0SStefano Babic void mxc_set_sata_internal_clock(void); 54cc54a0f7STroy Kisky int enable_i2c_clk(unsigned char enable, unsigned i2c_num); 55f399f636SMarek Vasut void enable_nfc_clk(unsigned char enable); 56*4611d5baSSergey Alyoshin void enable_efuse_prog_supply(bool enable); 575d2947a3SWolfgang Grandegger 58ff9f475dSJason Liu #endif /* __ASM_ARCH_CLOCK_H */ 59