linux/include/dt-bindings/clock/imx8mq-clock.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2016 Freescale Semiconductor, Inc.
 * Copyright 2017 NXP
 */

#ifndef __DT_BINDINGS_CLOCK_IMX8MQ_H
#define __DT_BINDINGS_CLOCK_IMX8MQ_H

#define IMX8MQ_CLK_DUMMY
#define IMX8MQ_CLK_32K
#define IMX8MQ_CLK_25M
#define IMX8MQ_CLK_27M
#define IMX8MQ_CLK_EXT1
#define IMX8MQ_CLK_EXT2
#define IMX8MQ_CLK_EXT3
#define IMX8MQ_CLK_EXT4

/* ANAMIX PLL clocks */
/* FRAC PLLs */
/* ARM PLL */
#define IMX8MQ_ARM_PLL_REF_SEL
#define IMX8MQ_ARM_PLL_REF_DIV
#define IMX8MQ_ARM_PLL
#define IMX8MQ_ARM_PLL_BYPASS
#define IMX8MQ_ARM_PLL_OUT

/* GPU PLL */
#define IMX8MQ_GPU_PLL_REF_SEL
#define IMX8MQ_GPU_PLL_REF_DIV
#define IMX8MQ_GPU_PLL
#define IMX8MQ_GPU_PLL_BYPASS
#define IMX8MQ_GPU_PLL_OUT

/* VPU PLL */
#define IMX8MQ_VPU_PLL_REF_SEL
#define IMX8MQ_VPU_PLL_REF_DIV
#define IMX8MQ_VPU_PLL
#define IMX8MQ_VPU_PLL_BYPASS
#define IMX8MQ_VPU_PLL_OUT

/* AUDIO PLL1 */
#define IMX8MQ_AUDIO_PLL1_REF_SEL
#define IMX8MQ_AUDIO_PLL1_REF_DIV
#define IMX8MQ_AUDIO_PLL1
#define IMX8MQ_AUDIO_PLL1_BYPASS
#define IMX8MQ_AUDIO_PLL1_OUT

/* AUDIO PLL2 */
#define IMX8MQ_AUDIO_PLL2_REF_SEL
#define IMX8MQ_AUDIO_PLL2_REF_DIV
#define IMX8MQ_AUDIO_PLL2
#define IMX8MQ_AUDIO_PLL2_BYPASS
#define IMX8MQ_AUDIO_PLL2_OUT

/* VIDEO PLL1 */
#define IMX8MQ_VIDEO_PLL1_REF_SEL
#define IMX8MQ_VIDEO_PLL1_REF_DIV
#define IMX8MQ_VIDEO_PLL1
#define IMX8MQ_VIDEO_PLL1_BYPASS
#define IMX8MQ_VIDEO_PLL1_OUT

/* SYS1 PLL */
#define IMX8MQ_SYS1_PLL1_REF_SEL
#define IMX8MQ_SYS1_PLL1_REF_DIV
#define IMX8MQ_SYS1_PLL1
#define IMX8MQ_SYS1_PLL1_OUT
#define IMX8MQ_SYS1_PLL1_OUT_DIV
#define IMX8MQ_SYS1_PLL2
#define IMX8MQ_SYS1_PLL2_DIV
#define IMX8MQ_SYS1_PLL2_OUT

/* SYS2 PLL */
#define IMX8MQ_SYS2_PLL1_REF_SEL
#define IMX8MQ_SYS2_PLL1_REF_DIV
#define IMX8MQ_SYS2_PLL1
#define IMX8MQ_SYS2_PLL1_OUT
#define IMX8MQ_SYS2_PLL1_OUT_DIV
#define IMX8MQ_SYS2_PLL2
#define IMX8MQ_SYS2_PLL2_DIV
#define IMX8MQ_SYS2_PLL2_OUT

/* SYS3 PLL */
#define IMX8MQ_SYS3_PLL1_REF_SEL
#define IMX8MQ_SYS3_PLL1_REF_DIV
#define IMX8MQ_SYS3_PLL1
#define IMX8MQ_SYS3_PLL1_OUT
#define IMX8MQ_SYS3_PLL1_OUT_DIV
#define IMX8MQ_SYS3_PLL2
#define IMX8MQ_SYS3_PLL2_DIV
#define IMX8MQ_SYS3_PLL2_OUT

/* DRAM PLL */
#define IMX8MQ_DRAM_PLL1_REF_SEL
#define IMX8MQ_DRAM_PLL1_REF_DIV
#define IMX8MQ_DRAM_PLL1
#define IMX8MQ_DRAM_PLL1_OUT
#define IMX8MQ_DRAM_PLL1_OUT_DIV
#define IMX8MQ_DRAM_PLL2
#define IMX8MQ_DRAM_PLL2_DIV
#define IMX8MQ_DRAM_PLL2_OUT

/* SYS PLL DIV */
#define IMX8MQ_SYS1_PLL_40M
#define IMX8MQ_SYS1_PLL_80M
#define IMX8MQ_SYS1_PLL_100M
#define IMX8MQ_SYS1_PLL_133M
#define IMX8MQ_SYS1_PLL_160M
#define IMX8MQ_SYS1_PLL_200M
#define IMX8MQ_SYS1_PLL_266M
#define IMX8MQ_SYS1_PLL_400M
#define IMX8MQ_SYS1_PLL_800M

#define IMX8MQ_SYS2_PLL_50M
#define IMX8MQ_SYS2_PLL_100M
#define IMX8MQ_SYS2_PLL_125M
#define IMX8MQ_SYS2_PLL_166M
#define IMX8MQ_SYS2_PLL_200M
#define IMX8MQ_SYS2_PLL_250M
#define IMX8MQ_SYS2_PLL_333M
#define IMX8MQ_SYS2_PLL_500M
#define IMX8MQ_SYS2_PLL_1000M

/* CCM ROOT clocks */
/* A53 */
#define IMX8MQ_CLK_A53_SRC
#define IMX8MQ_CLK_A53_CG
#define IMX8MQ_CLK_A53_DIV
/* M4 */
#define IMX8MQ_CLK_M4_SRC
#define IMX8MQ_CLK_M4_CG
#define IMX8MQ_CLK_M4_DIV
/* VPU */
#define IMX8MQ_CLK_VPU_SRC
#define IMX8MQ_CLK_VPU_CG
#define IMX8MQ_CLK_VPU_DIV
/* GPU CORE */
#define IMX8MQ_CLK_GPU_CORE_SRC
#define IMX8MQ_CLK_GPU_CORE_CG
#define IMX8MQ_CLK_GPU_CORE_DIV
/* GPU SHADER */
#define IMX8MQ_CLK_GPU_SHADER_SRC
#define IMX8MQ_CLK_GPU_SHADER_CG
#define IMX8MQ_CLK_GPU_SHADER_DIV

/* BUS TYPE */
/* MAIN AXI */
#define IMX8MQ_CLK_MAIN_AXI
/* ENET AXI */
#define IMX8MQ_CLK_ENET_AXI
/* NAND_USDHC_BUS */
#define IMX8MQ_CLK_NAND_USDHC_BUS
/* VPU BUS */
#define IMX8MQ_CLK_VPU_BUS
/* DISP_AXI */
#define IMX8MQ_CLK_DISP_AXI
/* DISP APB */
#define IMX8MQ_CLK_DISP_APB
/* DISP RTRM */
#define IMX8MQ_CLK_DISP_RTRM
/* USB_BUS */
#define IMX8MQ_CLK_USB_BUS
/* GPU_AXI */
#define IMX8MQ_CLK_GPU_AXI
/* GPU_AHB */
#define IMX8MQ_CLK_GPU_AHB
/* NOC */
#define IMX8MQ_CLK_NOC
/* NOC_APB */
#define IMX8MQ_CLK_NOC_APB

/* AHB */
#define IMX8MQ_CLK_AHB
/* AUDIO AHB */
#define IMX8MQ_CLK_AUDIO_AHB

/* DRAM_ALT */
#define IMX8MQ_CLK_DRAM_ALT
/* DRAM APB */
#define IMX8MQ_CLK_DRAM_APB
/* VPU_G1 */
#define IMX8MQ_CLK_VPU_G1
/* VPU_G2 */
#define IMX8MQ_CLK_VPU_G2
/* DISP_DTRC */
#define IMX8MQ_CLK_DISP_DTRC
/* DISP_DC8000 */
#define IMX8MQ_CLK_DISP_DC8000
/* PCIE_CTRL */
#define IMX8MQ_CLK_PCIE1_CTRL
/* PCIE_PHY */
#define IMX8MQ_CLK_PCIE1_PHY
/* PCIE_AUX */
#define IMX8MQ_CLK_PCIE1_AUX
/* DC_PIXEL */
#define IMX8MQ_CLK_DC_PIXEL
/* LCDIF_PIXEL */
#define IMX8MQ_CLK_LCDIF_PIXEL
/* SAI1~6 */
#define IMX8MQ_CLK_SAI1

#define IMX8MQ_CLK_SAI2

#define IMX8MQ_CLK_SAI3

#define IMX8MQ_CLK_SAI4

#define IMX8MQ_CLK_SAI5

#define IMX8MQ_CLK_SAI6
/* SPDIF1 */
#define IMX8MQ_CLK_SPDIF1
/* SPDIF2 */
#define IMX8MQ_CLK_SPDIF2
/* ENET_REF */
#define IMX8MQ_CLK_ENET_REF
/* ENET_TIMER */
#define IMX8MQ_CLK_ENET_TIMER
/* ENET_PHY */
#define IMX8MQ_CLK_ENET_PHY_REF
/* NAND */
#define IMX8MQ_CLK_NAND
/* QSPI */
#define IMX8MQ_CLK_QSPI
/* USDHC1 */
#define IMX8MQ_CLK_USDHC1
/* USDHC2 */
#define IMX8MQ_CLK_USDHC2
/* I2C1 */
#define IMX8MQ_CLK_I2C1
/* I2C2 */
#define IMX8MQ_CLK_I2C2
/* I2C3 */
#define IMX8MQ_CLK_I2C3
/* I2C4 */
#define IMX8MQ_CLK_I2C4
/* UART1 */
#define IMX8MQ_CLK_UART1
/* UART2 */
#define IMX8MQ_CLK_UART2
/* UART3 */
#define IMX8MQ_CLK_UART3
/* UART4 */
#define IMX8MQ_CLK_UART4
/* USB_CORE_REF */
#define IMX8MQ_CLK_USB_CORE_REF
/* USB_PHY_REF */
#define IMX8MQ_CLK_USB_PHY_REF
/* ECSPI1 */
#define IMX8MQ_CLK_ECSPI1
/* ECSPI2 */
#define IMX8MQ_CLK_ECSPI2
/* PWM1 */
#define IMX8MQ_CLK_PWM1
/* PWM2 */
#define IMX8MQ_CLK_PWM2
/* PWM3 */
#define IMX8MQ_CLK_PWM3
/* PWM4 */
#define IMX8MQ_CLK_PWM4
/* GPT1 */
#define IMX8MQ_CLK_GPT1
/* WDOG */
#define IMX8MQ_CLK_WDOG
/* WRCLK */
#define IMX8MQ_CLK_WRCLK
/* DSI_CORE */
#define IMX8MQ_CLK_DSI_CORE
/* DSI_PHY */
#define IMX8MQ_CLK_DSI_PHY_REF
/* DSI_DBI */
#define IMX8MQ_CLK_DSI_DBI
/*DSI_ESC */
#define IMX8MQ_CLK_DSI_ESC
/* CSI1_CORE */
#define IMX8MQ_CLK_CSI1_CORE
/* CSI1_PHY */
#define IMX8MQ_CLK_CSI1_PHY_REF
/* CSI_ESC */
#define IMX8MQ_CLK_CSI1_ESC
/* CSI2_CORE */
#define IMX8MQ_CLK_CSI2_CORE
/* CSI2_PHY */
#define IMX8MQ_CLK_CSI2_PHY_REF
/* CSI2_ESC */
#define IMX8MQ_CLK_CSI2_ESC
/* PCIE2_CTRL */
#define IMX8MQ_CLK_PCIE2_CTRL
/* PCIE2_PHY */
#define IMX8MQ_CLK_PCIE2_PHY
/* PCIE2_AUX */
#define IMX8MQ_CLK_PCIE2_AUX
/* ECSPI3 */
#define IMX8MQ_CLK_ECSPI3

/* CCGR clocks */
#define IMX8MQ_CLK_A53_ROOT
#define IMX8MQ_CLK_DRAM_ROOT
#define IMX8MQ_CLK_ECSPI1_ROOT
#define IMX8MQ_CLK_ECSPI2_ROOT
#define IMX8MQ_CLK_ECSPI3_ROOT
#define IMX8MQ_CLK_ENET1_ROOT
#define IMX8MQ_CLK_GPT1_ROOT
#define IMX8MQ_CLK_I2C1_ROOT
#define IMX8MQ_CLK_I2C2_ROOT
#define IMX8MQ_CLK_I2C3_ROOT
#define IMX8MQ_CLK_I2C4_ROOT
#define IMX8MQ_CLK_M4_ROOT
#define IMX8MQ_CLK_PCIE1_ROOT
#define IMX8MQ_CLK_PCIE2_ROOT
#define IMX8MQ_CLK_PWM1_ROOT
#define IMX8MQ_CLK_PWM2_ROOT
#define IMX8MQ_CLK_PWM3_ROOT
#define IMX8MQ_CLK_PWM4_ROOT
#define IMX8MQ_CLK_QSPI_ROOT
#define IMX8MQ_CLK_SAI1_ROOT
#define IMX8MQ_CLK_SAI2_ROOT
#define IMX8MQ_CLK_SAI3_ROOT
#define IMX8MQ_CLK_SAI4_ROOT
#define IMX8MQ_CLK_SAI5_ROOT
#define IMX8MQ_CLK_SAI6_ROOT
#define IMX8MQ_CLK_UART1_ROOT
#define IMX8MQ_CLK_UART2_ROOT
#define IMX8MQ_CLK_UART3_ROOT
#define IMX8MQ_CLK_UART4_ROOT
#define IMX8MQ_CLK_USB1_CTRL_ROOT
#define IMX8MQ_CLK_USB2_CTRL_ROOT
#define IMX8MQ_CLK_USB1_PHY_ROOT
#define IMX8MQ_CLK_USB2_PHY_ROOT
#define IMX8MQ_CLK_USDHC1_ROOT
#define IMX8MQ_CLK_USDHC2_ROOT
#define IMX8MQ_CLK_WDOG1_ROOT
#define IMX8MQ_CLK_WDOG2_ROOT
#define IMX8MQ_CLK_WDOG3_ROOT
#define IMX8MQ_CLK_GPU_ROOT
#define IMX8MQ_CLK_HEVC_ROOT
#define IMX8MQ_CLK_AVC_ROOT
#define IMX8MQ_CLK_VP9_ROOT
#define IMX8MQ_CLK_HEVC_INTER_ROOT
#define IMX8MQ_CLK_DISP_ROOT
#define IMX8MQ_CLK_HDMI_ROOT
#define IMX8MQ_CLK_HDMI_PHY_ROOT
#define IMX8MQ_CLK_VPU_DEC_ROOT
#define IMX8MQ_CLK_CSI1_ROOT
#define IMX8MQ_CLK_CSI2_ROOT
#define IMX8MQ_CLK_RAWNAND_ROOT
#define IMX8MQ_CLK_SDMA1_ROOT
#define IMX8MQ_CLK_SDMA2_ROOT
#define IMX8MQ_CLK_VPU_G1_ROOT
#define IMX8MQ_CLK_VPU_G2_ROOT

/* SCCG PLL GATE */
#define IMX8MQ_SYS1_PLL_OUT
#define IMX8MQ_SYS2_PLL_OUT
#define IMX8MQ_SYS3_PLL_OUT
#define IMX8MQ_DRAM_PLL_OUT

#define IMX8MQ_GPT_3M_CLK

#define IMX8MQ_CLK_IPG_ROOT
#define IMX8MQ_CLK_IPG_AUDIO_ROOT
#define IMX8MQ_CLK_SAI1_IPG
#define IMX8MQ_CLK_SAI2_IPG
#define IMX8MQ_CLK_SAI3_IPG
#define IMX8MQ_CLK_SAI4_IPG
#define IMX8MQ_CLK_SAI5_IPG
#define IMX8MQ_CLK_SAI6_IPG

/* DSI AHB/IPG clocks */
/* rxesc clock */
#define IMX8MQ_CLK_DSI_AHB
/* txesc clock */
#define IMX8MQ_CLK_DSI_IPG_DIV

#define IMX8MQ_CLK_TMU_ROOT

/* Display root clocks */
#define IMX8MQ_CLK_DISP_AXI_ROOT
#define IMX8MQ_CLK_DISP_APB_ROOT
#define IMX8MQ_CLK_DISP_RTRM_ROOT

#define IMX8MQ_CLK_OCOTP_ROOT

#define IMX8MQ_CLK_DRAM_ALT_ROOT
#define IMX8MQ_CLK_DRAM_CORE

#define IMX8MQ_CLK_MU_ROOT
#define IMX8MQ_VIDEO2_PLL_OUT

#define IMX8MQ_CLK_CLKO2

#define IMX8MQ_CLK_NAND_USDHC_BUS_RAWNAND_CLK

#define IMX8MQ_CLK_CLKO1
#define IMX8MQ_CLK_ARM

#define IMX8MQ_CLK_GPIO1_ROOT
#define IMX8MQ_CLK_GPIO2_ROOT
#define IMX8MQ_CLK_GPIO3_ROOT
#define IMX8MQ_CLK_GPIO4_ROOT
#define IMX8MQ_CLK_GPIO5_ROOT

#define IMX8MQ_CLK_SNVS_ROOT
#define IMX8MQ_CLK_GIC

#define IMX8MQ_VIDEO2_PLL1_REF_SEL

#define IMX8MQ_CLK_GPU_CORE
#define IMX8MQ_CLK_GPU_SHADER
#define IMX8MQ_CLK_M4_CORE
#define IMX8MQ_CLK_VPU_CORE

#define IMX8MQ_CLK_A53_CORE

#define IMX8MQ_CLK_MON_AUDIO_PLL1_DIV
#define IMX8MQ_CLK_MON_AUDIO_PLL2_DIV
#define IMX8MQ_CLK_MON_VIDEO_PLL1_DIV
#define IMX8MQ_CLK_MON_GPU_PLL_DIV
#define IMX8MQ_CLK_MON_VPU_PLL_DIV
#define IMX8MQ_CLK_MON_ARM_PLL_DIV
#define IMX8MQ_CLK_MON_SYS_PLL1_DIV
#define IMX8MQ_CLK_MON_SYS_PLL2_DIV
#define IMX8MQ_CLK_MON_SYS_PLL3_DIV
#define IMX8MQ_CLK_MON_DRAM_PLL_DIV
#define IMX8MQ_CLK_MON_VIDEO_PLL2_DIV
#define IMX8MQ_CLK_MON_SEL
#define IMX8MQ_CLK_MON_CLK2_OUT

#define IMX8MQ_CLK_END

#endif /* __DT_BINDINGS_CLOCK_IMX8MQ_H */