/* $NetBSD: imx7_ccmvar.h,v 1.1 2016/05/17 06:44:45 ryo Exp $ */ /* * Copyright (c) 2015 Internet Initiative Japan, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ARM_IMX_IMX7_CCMVAR_H_ #define _ARM_IMX_IMX7_CCMVAR_H_ enum imx7_clock { /* OSC */ IMX7CLK_OSC_24M, /* fixed */ IMX7CLK_REF_1M, /* fixed */ IMX7CLK_OSC_32K, /* fixed */ /* external clocks */ IMX7CLK_EXT_CLK1, IMX7CLK_EXT_CLK2, IMX7CLK_EXT_CLK3, IMX7CLK_EXT_CLK4, /* PLLs */ IMX7CLK_ARM_PLL, IMX7CLK_SYS_PLL, IMX7CLK_ENET_PLL, /* fixed */ IMX7CLK_AUDIO_PLL, IMX7CLK_VIDEO_PLL, IMX7CLK_DDR_PLL, IMX7CLK_USB_PLL, /* fixed? */ /* PLL PFDs */ IMX7CLK_SYS_PLL_PFD0, IMX7CLK_SYS_PLL_PFD1, IMX7CLK_SYS_PLL_PFD2, IMX7CLK_SYS_PLL_PFD3, IMX7CLK_SYS_PLL_PFD4, IMX7CLK_SYS_PLL_PFD5, IMX7CLK_SYS_PLL_PFD6, IMX7CLK_SYS_PLL_PFD7, /* fixed divided */ IMX7CLK_SYS_PLL_DIV2, IMX7CLK_SYS_PLL_DIV4, IMX7CLK_SYS_PLL_PFD0_DIV2, IMX7CLK_SYS_PLL_PFD1_DIV2, IMX7CLK_SYS_PLL_PFD2_DIV2, IMX7CLK_ENET_PLL_DIV2, IMX7CLK_ENET_PLL_DIV4, IMX7CLK_ENET_PLL_DIV8, IMX7CLK_ENET_PLL_DIV10, IMX7CLK_ENET_PLL_DIV20, IMX7CLK_ENET_PLL_DIV25, IMX7CLK_ENET_PLL_DIV40, IMX7CLK_ENET_PLL_DIV50, IMX7CLK_DDR_PLL_DIV2, /* root clocks */ IMX7CLK_ARM_A7_CLK_ROOT, IMX7CLK_ARM_M4_CLK_ROOT, IMX7CLK_MAIN_AXI_CLK_ROOT, IMX7CLK_DISP_AXI_CLK_ROOT, IMX7CLK_ENET_AXI_CLK_ROOT, IMX7CLK_NAND_USDHC_BUS_CLK_ROOT, IMX7CLK_AHB_CLK_ROOT, IMX7CLK_IPG_CLK_ROOT, IMX7CLK_DRAM_PHYM_CLK_ROOT, IMX7CLK_DRAM_CLK_ROOT, IMX7CLK_DRAM_PHYM_ALT_CLK_ROOT, IMX7CLK_DRAM_ALT_CLK_ROOT, IMX7CLK_USB_HSIC_CLK_ROOT, IMX7CLK_PCIE_CTRL_CLK_ROOT, IMX7CLK_PCIE_PHY_CLK_ROOT, IMX7CLK_EPDC_PIXEL_CLK_ROOT, IMX7CLK_LCDIF_PIXEL_CLK_ROOT, IMX7CLK_MIPI_DSI_CLK_ROOT, IMX7CLK_MIPI_CSI_CLK_ROOT, IMX7CLK_MIPI_DPHY_REF_CLK_ROOT, IMX7CLK_SAI1_CLK_ROOT, IMX7CLK_SAI2_CLK_ROOT, IMX7CLK_SAI3_CLK_ROOT, IMX7CLK_ENET1_REF_CLK_ROOT, IMX7CLK_ENET1_TIME_CLK_ROOT, IMX7CLK_ENET2_REF_CLK_ROOT, IMX7CLK_ENET2_TIME_CLK_ROOT, IMX7CLK_ENET_PHY_REF_CLK_ROOT, IMX7CLK_EIM_CLK_ROOT, IMX7CLK_NAND_CLK_ROOT, IMX7CLK_QSPI_CLK_ROOT, IMX7CLK_USDHC1_CLK_ROOT, IMX7CLK_USDHC2_CLK_ROOT, IMX7CLK_USDHC3_CLK_ROOT, IMX7CLK_CAN1_CLK_ROOT, IMX7CLK_CAN2_CLK_ROOT, IMX7CLK_I2C1_CLK_ROOT, IMX7CLK_I2C2_CLK_ROOT, IMX7CLK_I2C3_CLK_ROOT, IMX7CLK_I2C4_CLK_ROOT, IMX7CLK_UART1_CLK_ROOT, IMX7CLK_UART2_CLK_ROOT, IMX7CLK_UART3_CLK_ROOT, IMX7CLK_UART4_CLK_ROOT, IMX7CLK_UART5_CLK_ROOT, IMX7CLK_UART6_CLK_ROOT, IMX7CLK_UART7_CLK_ROOT, IMX7CLK_ECSPI1_CLK_ROOT, IMX7CLK_ECSPI2_CLK_ROOT, IMX7CLK_ECSPI3_CLK_ROOT, IMX7CLK_ECSPI4_CLK_ROOT, IMX7CLK_PWM1_CLK_ROOT, IMX7CLK_PWM2_CLK_ROOT, IMX7CLK_PWM3_CLK_ROOT, IMX7CLK_PWM4_CLK_ROOT, IMX7CLK_FLEXTIMER1_CLK_ROOT, IMX7CLK_FLEXTIMER2_CLK_ROOT, IMX7CLK_SIM1_CLK_ROOT, IMX7CLK_SIM2_CLK_ROOT, IMX7CLK_GPT1_CLK_ROOT, IMX7CLK_GPT2_CLK_ROOT, IMX7CLK_GPT3_CLK_ROOT, IMX7CLK_GPT4_CLK_ROOT, IMX7CLK_TRACE_CLK_ROOT, IMX7CLK_WDOG_CLK_ROOT, IMX7CLK_CSI_MCLK_CLK_ROOT, IMX7CLK_AUDIO_MCLK_CLK_ROOT, IMX7CLK_CCM_CLKO1, IMX7CLK_CCM_CLKO2 }; uint32_t imx7_ccm_read(uint32_t); void imx7_ccm_write(uint32_t, uint32_t); uint32_t imx7_ccm_analog_read(uint32_t); void imx7_ccm_analog_write(uint32_t, uint32_t); int imx7_pll_power(uint32_t, int); uint32_t imx7_get_clock(enum imx7_clock); int imx7_set_clock(enum imx7_clock, uint32_t); #endif /* _ARM_IMX_IMX7_CCMVAR_H_ */