blob: d7c92f7058d03986932e961ef67aca24cc489c3b [file] [log] [blame]
Peng Fanb15705a2021-08-07 16:00:35 +08001/* SPDX-License-Identifier: GPL-2.0+ */
2/*
Peng Fan690eea12021-08-07 16:00:45 +08003 * Copyright 2021 NXP
Peng Fanb15705a2021-08-07 16:00:35 +08004 */
5
6#ifndef _ASM_ARCH_IMX8ULP_CLOCK_H
7#define _ASM_ARCH_IMX8ULP_CLOCK_H
8
Peng Fan016e6502022-04-06 14:30:07 +08009#include <asm/arch/pcc.h>
10#include <asm/arch/cgc.h>
11
Peng Fanb15705a2021-08-07 16:00:35 +080012/* Mainly for compatible to imx common code. */
13enum mxc_clock {
14 MXC_ARM_CLK = 0,
15 MXC_AHB_CLK,
16 MXC_IPG_CLK,
17 MXC_UART_CLK,
18 MXC_CSPI_CLK,
19 MXC_AXI_CLK,
20 MXC_DDR_CLK,
21 MXC_ESDHC_CLK,
22 MXC_ESDHC2_CLK,
Peng Fan690eea12021-08-07 16:00:45 +080023 MXC_ESDHC3_CLK,
Peng Fanb15705a2021-08-07 16:00:35 +080024 MXC_I2C_CLK,
25};
26
27u32 mxc_get_clock(enum mxc_clock clk);
28u32 get_lpuart_clk(void);
29#ifdef CONFIG_SYS_I2C_IMX_LPI2C
30int enable_i2c_clk(unsigned char enable, unsigned int i2c_num);
31u32 imx_get_i2cclk(unsigned int i2c_num);
32#endif
Peng Fan690eea12021-08-07 16:00:45 +080033void enable_usboh3_clk(unsigned char enable);
34int enable_usb_pll(ulong usb_phy_base);
Peng Fanb15705a2021-08-07 16:00:35 +080035#ifdef CONFIG_MXC_OCOTP
36void enable_ocotp_clk(unsigned char enable);
37#endif
38void init_clk_usdhc(u32 index);
Peng Fan690eea12021-08-07 16:00:45 +080039void init_clk_fspi(int index);
40void init_clk_ddr(void);
41int set_ddr_clk(u32 phy_freq_mhz);
Peng Fanb15705a2021-08-07 16:00:35 +080042void clock_init(void);
Peng Fan690eea12021-08-07 16:00:45 +080043void cgc1_enet_stamp_sel(u32 clk_src);
Ye Li3d3dfb02021-10-29 09:46:19 +080044void mxs_set_lcdclk(u32 base_addr, u32 freq_in_khz);
Ye Licb7e3752021-10-29 09:46:27 +080045void reset_lcdclk(void);
Ye Li3d3dfb02021-10-29 09:46:19 +080046void enable_mipi_dsi_clk(unsigned char enable);
Alice Guo23ee0e12021-10-29 09:46:29 +080047void enable_adc1_clk(bool enable);
Peng Fanb15705a2021-08-07 16:00:35 +080048#endif