// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2023 Linaro Ltd.
 * Author: Peter Griffin <peter.griffin@linaro.org>
 *
 * Common Clock Framework support for GS101.
 */

#include <linux/clk.h>
#include <linux/clk-provider.h>
#include <linux/of.h>
#include <linux/platform_device.h>

#include <dt-bindings/clock/google,gs101.h>

#include "clk.h"
#include "clk-exynos-arm64.h"

/* NOTE: Must be equal to the last clock ID increased by one */
#define CLKS_NR_TOP	(CLK_GOUT_CMU_TPU_UART + 1)
#define CLKS_NR_APM	(CLK_APM_PLL_DIV16_APM + 1)
#define CLKS_NR_MISC	(CLK_GOUT_MISC_XIU_D_MISC_ACLK + 1)
#define CLKS_NR_PERIC0	(CLK_GOUT_PERIC0_SYSREG_PERIC0_PCLK + 1)
#define CLKS_NR_PERIC1	(CLK_GOUT_PERIC1_SYSREG_PERIC1_PCLK + 1)

/* ---- CMU_TOP ------------------------------------------------------------- */

/* Register Offset definitions for CMU_TOP (0x1e080000) */
#define PLL_LOCKTIME_PLL_SHARED0			0x0000
#define PLL_LOCKTIME_PLL_SHARED1			0x0004
#define PLL_LOCKTIME_PLL_SHARED2			0x0008
#define PLL_LOCKTIME_PLL_SHARED3			0x000c
#define PLL_LOCKTIME_PLL_SPARE				0x0010
#define PLL_CON0_PLL_SHARED0				0x0100
#define PLL_CON1_PLL_SHARED0				0x0104
#define PLL_CON2_PLL_SHARED0				0x0108
#define PLL_CON3_PLL_SHARED0				0x010c
#define PLL_CON4_PLL_SHARED0				0x0110
#define PLL_CON0_PLL_SHARED1				0x0140
#define PLL_CON1_PLL_SHARED1				0x0144
#define PLL_CON2_PLL_SHARED1				0x0148
#define PLL_CON3_PLL_SHARED1				0x014c
#define PLL_CON4_PLL_SHARED1				0x0150
#define PLL_CON0_PLL_SHARED2				0x0180
#define PLL_CON1_PLL_SHARED2				0x0184
#define PLL_CON2_PLL_SHARED2				0x0188
#define PLL_CON3_PLL_SHARED2				0x018c
#define PLL_CON4_PLL_SHARED2				0x0190
#define PLL_CON0_PLL_SHARED3				0x01c0
#define PLL_CON1_PLL_SHARED3				0x01c4
#define PLL_CON2_PLL_SHARED3				0x01c8
#define PLL_CON3_PLL_SHARED3				0x01cc
#define PLL_CON4_PLL_SHARED3				0x01d0
#define PLL_CON0_PLL_SPARE				0x0200
#define PLL_CON1_PLL_SPARE				0x0204
#define PLL_CON2_PLL_SPARE				0x0208
#define PLL_CON3_PLL_SPARE				0x020c
#define PLL_CON4_PLL_SPARE				0x0210
#define CMU_CMU_TOP_CONTROLLER_OPTION			0x0800
#define CLKOUT_CON_BLK_CMU_CMU_TOP_CLKOUT0		0x0810
#define CMU_HCHGEN_CLKMUX_CMU_BOOST			0x0840
#define CMU_HCHGEN_CLKMUX_TOP_BOOST			0x0844
#define CMU_HCHGEN_CLKMUX				0x0850
#define POWER_FAIL_DETECT_PLL				0x0864
#define EARLY_WAKEUP_FORCED_0_ENABLE			0x0870
#define EARLY_WAKEUP_FORCED_1_ENABLE			0x0874
#define EARLY_WAKEUP_APM_CTRL				0x0878
#define EARLY_WAKEUP_CLUSTER0_CTRL			0x087c
#define EARLY_WAKEUP_DPU_CTRL				0x0880
#define EARLY_WAKEUP_CSIS_CTRL				0x0884
#define EARLY_WAKEUP_APM_DEST				0x0890
#define EARLY_WAKEUP_CLUSTER0_DEST			0x0894
#define EARLY_WAKEUP_DPU_DEST				0x0898
#define EARLY_WAKEUP_CSIS_DEST				0x089c
#define EARLY_WAKEUP_SW_TRIG_APM			0x08c0
#define EARLY_WAKEUP_SW_TRIG_APM_SET			0x08c4
#define EARLY_WAKEUP_SW_TRIG_APM_CLEAR			0x08c8
#define EARLY_WAKEUP_SW_TRIG_CLUSTER0			0x08d0
#define EARLY_WAKEUP_SW_TRIG_CLUSTER0_SET		0x08d4
#define EARLY_WAKEUP_SW_TRIG_CLUSTER0_CLEAR		0x08d8
#define EARLY_WAKEUP_SW_TRIG_DPU			0x08e0
#define EARLY_WAKEUP_SW_TRIG_DPU_SET			0x08e4
#define EARLY_WAKEUP_SW_TRIG_DPU_CLEAR			0x08e8
#define EARLY_WAKEUP_SW_TRIG_CSIS			0x08f0
#define EARLY_WAKEUP_SW_TRIG_CSIS_SET			0x08f4
#define EARLY_WAKEUP_SW_TRIG_CSIS_CLEAR			0x08f8
#define CLK_CON_MUX_MUX_CLKCMU_BO_BUS			0x1000
#define CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS			0x1004
#define CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS			0x1008
#define CLK_CON_MUX_MUX_CLKCMU_BUS2_BUS			0x100c
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0			0x1010
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1			0x1014
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2			0x1018
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3			0x101c
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4			0x1020
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5			0x1024
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK6			0x1028
#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK7			0x102c
#define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST		0x1030
#define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_OPTION1	0x1034
#define CLK_CON_MUX_MUX_CLKCMU_CORE_BUS			0x1038
#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG		0x103c
#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH		0x1040
#define CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH		0x1044
#define CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH		0x1048
#define CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS			0x104c
#define CLK_CON_MUX_MUX_CLKCMU_DISP_BUS			0x1050
#define CLK_CON_MUX_MUX_CLKCMU_DNS_BUS			0x1054
#define CLK_CON_MUX_MUX_CLKCMU_DPU_BUS			0x1058
#define CLK_CON_MUX_MUX_CLKCMU_EH_BUS			0x105c
#define CLK_CON_MUX_MUX_CLKCMU_G2D_G2D			0x1060
#define CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL			0x1064
#define CLK_CON_MUX_MUX_CLKCMU_G3AA_G3AA		0x1068
#define CLK_CON_MUX_MUX_CLKCMU_G3D_BUSD			0x106c
#define CLK_CON_MUX_MUX_CLKCMU_G3D_GLB			0x1070
#define CLK_CON_MUX_MUX_CLKCMU_G3D_SWITCH		0x1074
#define CLK_CON_MUX_MUX_CLKCMU_GDC_GDC0			0x1078
#define CLK_CON_MUX_MUX_CLKCMU_GDC_GDC1			0x107c
#define CLK_CON_MUX_MUX_CLKCMU_GDC_SCSC			0x1080
#define CLK_CON_MUX_MUX_CLKCMU_HPM			0x1084
#define CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS			0x1088
#define CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC		0x108c
#define CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD		0x1090
#define CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDPDBG		0x1094
#define CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS			0x1098
#define CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE		0x109c
#define CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS			0x10a0
#define CLK_CON_MUX_MUX_CLKCMU_HSI2_MMC_CARD		0x10a4
#define CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE		0x10a8
#define CLK_CON_MUX_MUX_CLKCMU_HSI2_UFS_EMBD		0x10ac
#define CLK_CON_MUX_MUX_CLKCMU_IPP_BUS			0x10b0
#define CLK_CON_MUX_MUX_CLKCMU_ITP_BUS			0x10b4
#define CLK_CON_MUX_MUX_CLKCMU_MCSC_ITSC		0x10b8
#define CLK_CON_MUX_MUX_CLKCMU_MCSC_MCSC		0x10bc
#define CLK_CON_MUX_MUX_CLKCMU_MFC_MFC			0x10c0
#define CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP			0x10c4
#define CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH		0x10c8
#define CLK_CON_MUX_MUX_CLKCMU_MISC_BUS			0x10cc
#define CLK_CON_MUX_MUX_CLKCMU_MISC_SSS			0x10d0
#define CLK_CON_MUX_MUX_CLKCMU_PDP_BUS			0x10d4
#define CLK_CON_MUX_MUX_CLKCMU_PDP_VRA			0x10d8
#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS		0x10dc
#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP		0x10e0
#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS		0x10e4
#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP		0x10e8
#define CLK_CON_MUX_MUX_CLKCMU_TNR_BUS			0x10ec
#define CLK_CON_MUX_MUX_CLKCMU_TOP_BOOST_OPTION1	0x10f0
#define CLK_CON_MUX_MUX_CLKCMU_TOP_CMUREF		0x10f4
#define CLK_CON_MUX_MUX_CLKCMU_TPU_BUS			0x10f8
#define CLK_CON_MUX_MUX_CLKCMU_TPU_TPU			0x10fc
#define CLK_CON_MUX_MUX_CLKCMU_TPU_TPUCTL		0x1100
#define CLK_CON_MUX_MUX_CLKCMU_TPU_UART			0x1104
#define CLK_CON_MUX_MUX_CMU_CMUREF			0x1108
#define CLK_CON_DIV_CLKCMU_BO_BUS			0x1800
#define CLK_CON_DIV_CLKCMU_BUS0_BUS			0x1804
#define CLK_CON_DIV_CLKCMU_BUS1_BUS			0x1808
#define CLK_CON_DIV_CLKCMU_BUS2_BUS			0x180c
#define CLK_CON_DIV_CLKCMU_CIS_CLK0			0x1810
#define CLK_CON_DIV_CLKCMU_CIS_CLK1			0x1814
#define CLK_CON_DIV_CLKCMU_CIS_CLK2			0x1818
#define CLK_CON_DIV_CLKCMU_CIS_CLK3			0x181c
#define CLK_CON_DIV_CLKCMU_CIS_CLK4			0x1820
#define CLK_CON_DIV_CLKCMU_CIS_CLK5			0x1824
#define CLK_CON_DIV_CLKCMU_CIS_CLK6			0x1828
#define CLK_CON_DIV_CLKCMU_CIS_CLK7			0x182c
#define CLK_CON_DIV_CLKCMU_CORE_BUS			0x1830
#define CLK_CON_DIV_CLKCMU_CPUCL0_DBG			0x1834
#define CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH		0x1838
#define CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH		0x183c
#define CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH		0x1840
#define CLK_CON_DIV_CLKCMU_CSIS_BUS			0x1844
#define CLK_CON_DIV_CLKCMU_DISP_BUS			0x1848
#define CLK_CON_DIV_CLKCMU_DNS_BUS			0x184c
#define CLK_CON_DIV_CLKCMU_DPU_BUS			0x1850
#define CLK_CON_DIV_CLKCMU_EH_BUS			0x1854
#define CLK_CON_DIV_CLKCMU_G2D_G2D			0x1858
#define CLK_CON_DIV_CLKCMU_G2D_MSCL			0x185c
#define CLK_CON_DIV_CLKCMU_G3AA_G3AA			0x1860
#define CLK_CON_DIV_CLKCMU_G3D_BUSD			0x1864
#define CLK_CON_DIV_CLKCMU_G3D_GLB			0x1868
#define CLK_CON_DIV_CLKCMU_G3D_SWITCH			0x186c
#define CLK_CON_DIV_CLKCMU_GDC_GDC0			0x1870
#define CLK_CON_DIV_CLKCMU_GDC_GDC1			0x1874
#define CLK_CON_DIV_CLKCMU_GDC_SCSC			0x1878
#define CLK_CON_DIV_CLKCMU_HPM				0x187c
#define CLK_CON_DIV_CLKCMU_HSI0_BUS			0x1880
#define CLK_CON_DIV_CLKCMU_HSI0_DPGTC			0x1884
#define CLK_CON_DIV_CLKCMU_HSI0_USB31DRD		0x1888
#define CLK_CON_DIV_CLKCMU_HSI0_USBDPDBG		0x188c
#define CLK_CON_DIV_CLKCMU_HSI1_BUS			0x1890
#define CLK_CON_DIV_CLKCMU_HSI1_PCIE			0x1894
#define CLK_CON_DIV_CLKCMU_HSI2_BUS			0x1898
#define CLK_CON_DIV_CLKCMU_HSI2_MMC_CARD		0x189c
#define CLK_CON_DIV_CLKCMU_HSI2_PCIE			0x18a0
#define CLK_CON_DIV_CLKCMU_HSI2_UFS_EMBD		0x18a4
#define CLK_CON_DIV_CLKCMU_IPP_BUS			0x18a8
#define CLK_CON_DIV_CLKCMU_ITP_BUS			0x18ac
#define CLK_CON_DIV_CLKCMU_MCSC_ITSC			0x18b0
#define CLK_CON_DIV_CLKCMU_MCSC_MCSC			0x18b4
#define CLK_CON_DIV_CLKCMU_MFC_MFC			0x18b8
#define CLK_CON_DIV_CLKCMU_MIF_BUSP			0x18bc
#define CLK_CON_DIV_CLKCMU_MISC_BUS			0x18c0
#define CLK_CON_DIV_CLKCMU_MISC_SSS			0x18c4
#define CLK_CON_DIV_CLKCMU_OTP				0x18c8
#define CLK_CON_DIV_CLKCMU_PDP_BUS			0x18cc
#define CLK_CON_DIV_CLKCMU_PDP_VRA			0x18d0
#define CLK_CON_DIV_CLKCMU_PERIC0_BUS			0x18d4
#define CLK_CON_DIV_CLKCMU_PERIC0_IP			0x18d8
#define CLK_CON_DIV_CLKCMU_PERIC1_BUS			0x18dc
#define CLK_CON_DIV_CLKCMU_PERIC1_IP			0x18e0
#define CLK_CON_DIV_CLKCMU_TNR_BUS			0x18e4
#define CLK_CON_DIV_CLKCMU_TPU_BUS			0x18e8
#define CLK_CON_DIV_CLKCMU_TPU_TPU			0x18ec
#define CLK_CON_DIV_CLKCMU_TPU_TPUCTL			0x18f0
#define CLK_CON_DIV_CLKCMU_TPU_UART			0x18f4
#define CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST		0x18f8
#define CLK_CON_DIV_DIV_CLK_CMU_CMUREF			0x18fc
#define CLK_CON_DIV_PLL_SHARED0_DIV2			0x1900
#define CLK_CON_DIV_PLL_SHARED0_DIV3			0x1904
#define CLK_CON_DIV_PLL_SHARED0_DIV4			0x1908
#define CLK_CON_DIV_PLL_SHARED0_DIV5			0x190c
#define CLK_CON_DIV_PLL_SHARED1_DIV2			0x1910
#define CLK_CON_DIV_PLL_SHARED1_DIV3			0x1914
#define CLK_CON_DIV_PLL_SHARED1_DIV4			0x1918
#define CLK_CON_DIV_PLL_SHARED2_DIV2			0x191c
#define CLK_CON_DIV_PLL_SHARED3_DIV2			0x1920
#define CLK_CON_GAT_CLKCMU_BUS0_BOOST			0x2000
#define CLK_CON_GAT_CLKCMU_BUS1_BOOST			0x2004
#define CLK_CON_GAT_CLKCMU_BUS2_BOOST			0x2008
#define CLK_CON_GAT_CLKCMU_CORE_BOOST			0x200c
#define CLK_CON_GAT_CLKCMU_CPUCL0_BOOST			0x2010
#define CLK_CON_GAT_CLKCMU_CPUCL1_BOOST			0x2014
#define CLK_CON_GAT_CLKCMU_CPUCL2_BOOST			0x2018
#define CLK_CON_GAT_CLKCMU_MIF_BOOST			0x201c
#define CLK_CON_GAT_CLKCMU_MIF_SWITCH			0x2020
#define CLK_CON_GAT_GATE_CLKCMU_BO_BUS			0x2024
#define CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS		0x2028
#define CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS		0x202c
#define CLK_CON_GAT_GATE_CLKCMU_BUS2_BUS		0x2030
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0		0x2034
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1		0x2038
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2		0x203c
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3		0x2040
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4		0x2044
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5		0x2048
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK6		0x204c
#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK7		0x2050
#define CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST		0x2054
#define CLK_CON_GAT_GATE_CLKCMU_CORE_BUS		0x2058
#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS		0x205c
#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH		0x2060
#define CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH		0x2064
#define CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH		0x2068
#define CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS		0x206c
#define CLK_CON_GAT_GATE_CLKCMU_DISP_BUS		0x2070
#define CLK_CON_GAT_GATE_CLKCMU_DNS_BUS			0x2074
#define CLK_CON_GAT_GATE_CLKCMU_DPU_BUS			0x2078
#define CLK_CON_GAT_GATE_CLKCMU_EH_BUS			0x207c
#define CLK_CON_GAT_GATE_CLKCMU_G2D_G2D			0x2080
#define CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL		0x2084
#define CLK_CON_GAT_GATE_CLKCMU_G3AA_G3AA		0x2088
#define CLK_CON_GAT_GATE_CLKCMU_G3D_BUSD		0x208c
#define CLK_CON_GAT_GATE_CLKCMU_G3D_GLB			0x2090
#define CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH		0x2094
#define CLK_CON_GAT_GATE_CLKCMU_GDC_GDC0		0x2098
#define CLK_CON_GAT_GATE_CLKCMU_GDC_GDC1		0x209c
#define CLK_CON_GAT_GATE_CLKCMU_GDC_SCSC		0x20a0
#define CLK_CON_GAT_GATE_CLKCMU_HPM			0x20a4
#define CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS		0x20a8
#define CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC		0x20ac
#define CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD		0x20b0
#define CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDPDBG		0x20b4
#define CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS		0x20b8
#define CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE		0x20bc
#define CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS		0x20c0
#define CLK_CON_GAT_GATE_CLKCMU_HSI2_MMCCARD		0x20c4
#define CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE		0x20c8
#define CLK_CON_GAT_GATE_CLKCMU_HSI2_UFS_EMBD		0x20cc
#define CLK_CON_GAT_GATE_CLKCMU_IPP_BUS			0x20d0
#define CLK_CON_GAT_GATE_CLKCMU_ITP_BUS			0x20d4
#define CLK_CON_GAT_GATE_CLKCMU_MCSC_ITSC		0x20d8
#define CLK_CON_GAT_GATE_CLKCMU_MCSC_MCSC		0x20dc
#define CLK_CON_GAT_GATE_CLKCMU_MFC_MFC			0x20e0
#define CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP		0x20e4
#define CLK_CON_GAT_GATE_CLKCMU_MISC_BUS		0x20e8
#define CLK_CON_GAT_GATE_CLKCMU_MISC_SSS		0x20ec
#define CLK_CON_GAT_GATE_CLKCMU_PDP_BUS			0x20f0
#define CLK_CON_GAT_GATE_CLKCMU_PDP_VRA			0x20f4
#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS		0x20f8
#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP		0x20fc
#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS		0x2100
#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP		0x2104
#define CLK_CON_GAT_GATE_CLKCMU_TNR_BUS			0x2108
#define CLK_CON_GAT_GATE_CLKCMU_TOP_CMUREF		0x210c
#define CLK_CON_GAT_GATE_CLKCMU_TPU_BUS			0x2110
#define CLK_CON_GAT_GATE_CLKCMU_TPU_TPU			0x2114
#define CLK_CON_GAT_GATE_CLKCMU_TPU_TPUCTL		0x2118
#define CLK_CON_GAT_GATE_CLKCMU_TPU_UART		0x211c
#define DMYQCH_CON_CMU_TOP_CMUREF_QCH			0x3000
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK0		0x3004
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK1		0x3008
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK2		0x300c
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK3		0x3010
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK4		0x3014
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK5		0x3018
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK6		0x301c
#define DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK7		0x3020
#define DMYQCH_CON_OTP_QCH				0x3024
#define QUEUE_CTRL_REG_BLK_CMU_CMU_TOP			0x3c00
#define QUEUE_ENTRY0_BLK_CMU_CMU_TOP			0x3c10
#define QUEUE_ENTRY1_BLK_CMU_CMU_TOP			0x3c14
#define QUEUE_ENTRY2_BLK_CMU_CMU_TOP			0x3c18
#define QUEUE_ENTRY3_BLK_CMU_CMU_TOP			0x3c1c
#define QUEUE_ENTRY4_BLK_CMU_CMU_TOP			0x3c20
#define QUEUE_ENTRY5_BLK_CMU_CMU_TOP			0x3c24
#define QUEUE_ENTRY6_BLK_CMU_CMU_TOP			0x3c28
#define QUEUE_ENTRY7_BLK_CMU_CMU_TOP			0x3c2c
#define MIFMIRROR_QUEUE_CTRL_REG			0x3e00
#define MIFMIRROR_QUEUE_ENTRY0				0x3e10
#define MIFMIRROR_QUEUE_ENTRY1				0x3e14
#define MIFMIRROR_QUEUE_ENTRY2				0x3e18
#define MIFMIRROR_QUEUE_ENTRY3				0x3e1c
#define MIFMIRROR_QUEUE_ENTRY4				0x3e20
#define MIFMIRROR_QUEUE_ENTRY5				0x3e24
#define MIFMIRROR_QUEUE_ENTRY6				0x3e28
#define MIFMIRROR_QUEUE_ENTRY7				0x3e2c
#define MIFMIRROR_QUEUE_BUSY				0x3e30
#define GENERALIO_ACD_CHANNEL_0				0x3f00
#define GENERALIO_ACD_CHANNEL_1				0x3f04
#define GENERALIO_ACD_CHANNEL_2				0x3f08
#define GENERALIO_ACD_CHANNEL_3				0x3f0c
#define GENERALIO_ACD_MASK				0x3f14

static const unsigned long cmu_top_clk_regs[] __initconst = {
	PLL_LOCKTIME_PLL_SHARED0,
	PLL_LOCKTIME_PLL_SHARED1,
	PLL_LOCKTIME_PLL_SHARED2,
	PLL_LOCKTIME_PLL_SHARED3,
	PLL_LOCKTIME_PLL_SPARE,
	PLL_CON0_PLL_SHARED0,
	PLL_CON1_PLL_SHARED0,
	PLL_CON2_PLL_SHARED0,
	PLL_CON3_PLL_SHARED0,
	PLL_CON4_PLL_SHARED0,
	PLL_CON0_PLL_SHARED1,
	PLL_CON1_PLL_SHARED1,
	PLL_CON2_PLL_SHARED1,
	PLL_CON3_PLL_SHARED1,
	PLL_CON4_PLL_SHARED1,
	PLL_CON0_PLL_SHARED2,
	PLL_CON1_PLL_SHARED2,
	PLL_CON2_PLL_SHARED2,
	PLL_CON3_PLL_SHARED2,
	PLL_CON4_PLL_SHARED2,
	PLL_CON0_PLL_SHARED3,
	PLL_CON1_PLL_SHARED3,
	PLL_CON2_PLL_SHARED3,
	PLL_CON3_PLL_SHARED3,
	PLL_CON4_PLL_SHARED3,
	PLL_CON0_PLL_SPARE,
	PLL_CON1_PLL_SPARE,
	PLL_CON2_PLL_SPARE,
	PLL_CON3_PLL_SPARE,
	PLL_CON4_PLL_SPARE,
	CMU_CMU_TOP_CONTROLLER_OPTION,
	CLKOUT_CON_BLK_CMU_CMU_TOP_CLKOUT0,
	CMU_HCHGEN_CLKMUX_CMU_BOOST,
	CMU_HCHGEN_CLKMUX_TOP_BOOST,
	CMU_HCHGEN_CLKMUX,
	POWER_FAIL_DETECT_PLL,
	EARLY_WAKEUP_FORCED_0_ENABLE,
	EARLY_WAKEUP_FORCED_1_ENABLE,
	EARLY_WAKEUP_APM_CTRL,
	EARLY_WAKEUP_CLUSTER0_CTRL,
	EARLY_WAKEUP_DPU_CTRL,
	EARLY_WAKEUP_CSIS_CTRL,
	EARLY_WAKEUP_APM_DEST,
	EARLY_WAKEUP_CLUSTER0_DEST,
	EARLY_WAKEUP_DPU_DEST,
	EARLY_WAKEUP_CSIS_DEST,
	EARLY_WAKEUP_SW_TRIG_APM,
	EARLY_WAKEUP_SW_TRIG_APM_SET,
	EARLY_WAKEUP_SW_TRIG_APM_CLEAR,
	EARLY_WAKEUP_SW_TRIG_CLUSTER0,
	EARLY_WAKEUP_SW_TRIG_CLUSTER0_SET,
	EARLY_WAKEUP_SW_TRIG_CLUSTER0_CLEAR,
	EARLY_WAKEUP_SW_TRIG_DPU,
	EARLY_WAKEUP_SW_TRIG_DPU_SET,
	EARLY_WAKEUP_SW_TRIG_DPU_CLEAR,
	EARLY_WAKEUP_SW_TRIG_CSIS,
	EARLY_WAKEUP_SW_TRIG_CSIS_SET,
	EARLY_WAKEUP_SW_TRIG_CSIS_CLEAR,
	CLK_CON_MUX_MUX_CLKCMU_BO_BUS,
	CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS,
	CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS,
	CLK_CON_MUX_MUX_CLKCMU_BUS2_BUS,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK6,
	CLK_CON_MUX_MUX_CLKCMU_CIS_CLK7,
	CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST,
	CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_OPTION1,
	CLK_CON_MUX_MUX_CLKCMU_CORE_BUS,
	CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG,
	CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH,
	CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH,
	CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH,
	CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS,
	CLK_CON_MUX_MUX_CLKCMU_DISP_BUS,
	CLK_CON_MUX_MUX_CLKCMU_DNS_BUS,
	CLK_CON_MUX_MUX_CLKCMU_DPU_BUS,
	CLK_CON_MUX_MUX_CLKCMU_EH_BUS,
	CLK_CON_MUX_MUX_CLKCMU_G2D_G2D,
	CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL,
	CLK_CON_MUX_MUX_CLKCMU_G3AA_G3AA,
	CLK_CON_MUX_MUX_CLKCMU_G3D_BUSD,
	CLK_CON_MUX_MUX_CLKCMU_G3D_GLB,
	CLK_CON_MUX_MUX_CLKCMU_G3D_SWITCH,
	CLK_CON_MUX_MUX_CLKCMU_GDC_GDC0,
	CLK_CON_MUX_MUX_CLKCMU_GDC_GDC1,
	CLK_CON_MUX_MUX_CLKCMU_GDC_SCSC,
	CLK_CON_MUX_MUX_CLKCMU_HPM,
	CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS,
	CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC,
	CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD,
	CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDPDBG,
	CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS,
	CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE,
	CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS,
	CLK_CON_MUX_MUX_CLKCMU_HSI2_MMC_CARD,
	CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE,
	CLK_CON_MUX_MUX_CLKCMU_HSI2_UFS_EMBD,
	CLK_CON_MUX_MUX_CLKCMU_IPP_BUS,
	CLK_CON_MUX_MUX_CLKCMU_ITP_BUS,
	CLK_CON_MUX_MUX_CLKCMU_MCSC_ITSC,
	CLK_CON_MUX_MUX_CLKCMU_MCSC_MCSC,
	CLK_CON_MUX_MUX_CLKCMU_MFC_MFC,
	CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP,
	CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH,
	CLK_CON_MUX_MUX_CLKCMU_MISC_BUS,
	CLK_CON_MUX_MUX_CLKCMU_MISC_SSS,
	CLK_CON_MUX_MUX_CLKCMU_PDP_BUS,
	CLK_CON_MUX_MUX_CLKCMU_PDP_VRA,
	CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS,
	CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP,
	CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS,
	CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP,
	CLK_CON_MUX_MUX_CLKCMU_TNR_BUS,
	CLK_CON_MUX_MUX_CLKCMU_TOP_BOOST_OPTION1,
	CLK_CON_MUX_MUX_CLKCMU_TOP_CMUREF,
	CLK_CON_MUX_MUX_CLKCMU_TPU_BUS,
	CLK_CON_MUX_MUX_CLKCMU_TPU_TPU,
	CLK_CON_MUX_MUX_CLKCMU_TPU_TPUCTL,
	CLK_CON_MUX_MUX_CLKCMU_TPU_UART,
	CLK_CON_MUX_MUX_CMU_CMUREF,
	CLK_CON_DIV_CLKCMU_BO_BUS,
	CLK_CON_DIV_CLKCMU_BUS0_BUS,
	CLK_CON_DIV_CLKCMU_BUS1_BUS,
	CLK_CON_DIV_CLKCMU_BUS2_BUS,
	CLK_CON_DIV_CLKCMU_CIS_CLK0,
	CLK_CON_DIV_CLKCMU_CIS_CLK1,
	CLK_CON_DIV_CLKCMU_CIS_CLK2,
	CLK_CON_DIV_CLKCMU_CIS_CLK3,
	CLK_CON_DIV_CLKCMU_CIS_CLK4,
	CLK_CON_DIV_CLKCMU_CIS_CLK5,
	CLK_CON_DIV_CLKCMU_CIS_CLK6,
	CLK_CON_DIV_CLKCMU_CIS_CLK7,
	CLK_CON_DIV_CLKCMU_CORE_BUS,
	CLK_CON_DIV_CLKCMU_CPUCL0_DBG,
	CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH,
	CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH,
	CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH,
	CLK_CON_DIV_CLKCMU_CSIS_BUS,
	CLK_CON_DIV_CLKCMU_DISP_BUS,
	CLK_CON_DIV_CLKCMU_DNS_BUS,
	CLK_CON_DIV_CLKCMU_DPU_BUS,
	CLK_CON_DIV_CLKCMU_EH_BUS,
	CLK_CON_DIV_CLKCMU_G2D_G2D,
	CLK_CON_DIV_CLKCMU_G2D_MSCL,
	CLK_CON_DIV_CLKCMU_G3AA_G3AA,
	CLK_CON_DIV_CLKCMU_G3D_BUSD,
	CLK_CON_DIV_CLKCMU_G3D_GLB,
	CLK_CON_DIV_CLKCMU_G3D_SWITCH,
	CLK_CON_DIV_CLKCMU_GDC_GDC0,
	CLK_CON_DIV_CLKCMU_GDC_GDC1,
	CLK_CON_DIV_CLKCMU_GDC_SCSC,
	CLK_CON_DIV_CLKCMU_HPM,
	CLK_CON_DIV_CLKCMU_HSI0_BUS,
	CLK_CON_DIV_CLKCMU_HSI0_DPGTC,
	CLK_CON_DIV_CLKCMU_HSI0_USB31DRD,
	CLK_CON_DIV_CLKCMU_HSI0_USBDPDBG,
	CLK_CON_DIV_CLKCMU_HSI1_BUS,
	CLK_CON_DIV_CLKCMU_HSI1_PCIE,
	CLK_CON_DIV_CLKCMU_HSI2_BUS,
	CLK_CON_DIV_CLKCMU_HSI2_MMC_CARD,
	CLK_CON_DIV_CLKCMU_HSI2_PCIE,
	CLK_CON_DIV_CLKCMU_HSI2_UFS_EMBD,
	CLK_CON_DIV_CLKCMU_IPP_BUS,
	CLK_CON_DIV_CLKCMU_ITP_BUS,
	CLK_CON_DIV_CLKCMU_MCSC_ITSC,
	CLK_CON_DIV_CLKCMU_MCSC_MCSC,
	CLK_CON_DIV_CLKCMU_MFC_MFC,
	CLK_CON_DIV_CLKCMU_MIF_BUSP,
	CLK_CON_DIV_CLKCMU_MISC_BUS,
	CLK_CON_DIV_CLKCMU_MISC_SSS,
	CLK_CON_DIV_CLKCMU_OTP,
	CLK_CON_DIV_CLKCMU_PDP_BUS,
	CLK_CON_DIV_CLKCMU_PDP_VRA,
	CLK_CON_DIV_CLKCMU_PERIC0_BUS,
	CLK_CON_DIV_CLKCMU_PERIC0_IP,
	CLK_CON_DIV_CLKCMU_PERIC1_BUS,
	CLK_CON_DIV_CLKCMU_PERIC1_IP,
	CLK_CON_DIV_CLKCMU_TNR_BUS,
	CLK_CON_DIV_CLKCMU_TPU_BUS,
	CLK_CON_DIV_CLKCMU_TPU_TPU,
	CLK_CON_DIV_CLKCMU_TPU_TPUCTL,
	CLK_CON_DIV_CLKCMU_TPU_UART,
	CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST,
	CLK_CON_DIV_DIV_CLK_CMU_CMUREF,
	CLK_CON_DIV_PLL_SHARED0_DIV2,
	CLK_CON_DIV_PLL_SHARED0_DIV3,
	CLK_CON_DIV_PLL_SHARED0_DIV4,
	CLK_CON_DIV_PLL_SHARED0_DIV5,
	CLK_CON_DIV_PLL_SHARED1_DIV2,
	CLK_CON_DIV_PLL_SHARED1_DIV3,
	CLK_CON_DIV_PLL_SHARED1_DIV4,
	CLK_CON_DIV_PLL_SHARED2_DIV2,
	CLK_CON_DIV_PLL_SHARED3_DIV2,
	CLK_CON_GAT_CLKCMU_BUS0_BOOST,
	CLK_CON_GAT_CLKCMU_BUS1_BOOST,
	CLK_CON_GAT_CLKCMU_BUS2_BOOST,
	CLK_CON_GAT_CLKCMU_CORE_BOOST,
	CLK_CON_GAT_CLKCMU_CPUCL0_BOOST,
	CLK_CON_GAT_CLKCMU_CPUCL1_BOOST,
	CLK_CON_GAT_CLKCMU_CPUCL2_BOOST,
	CLK_CON_GAT_CLKCMU_MIF_BOOST,
	CLK_CON_GAT_CLKCMU_MIF_SWITCH,
	CLK_CON_GAT_GATE_CLKCMU_BO_BUS,
	CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS,
	CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS,
	CLK_CON_GAT_GATE_CLKCMU_BUS2_BUS,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK6,
	CLK_CON_GAT_GATE_CLKCMU_CIS_CLK7,
	CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST,
	CLK_CON_GAT_GATE_CLKCMU_CORE_BUS,
	CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS,
	CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH,
	CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH,
	CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH,
	CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS,
	CLK_CON_GAT_GATE_CLKCMU_DISP_BUS,
	CLK_CON_GAT_GATE_CLKCMU_DNS_BUS,
	CLK_CON_GAT_GATE_CLKCMU_DPU_BUS,
	CLK_CON_GAT_GATE_CLKCMU_EH_BUS,
	CLK_CON_GAT_GATE_CLKCMU_G2D_G2D,
	CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL,
	CLK_CON_GAT_GATE_CLKCMU_G3AA_G3AA,
	CLK_CON_GAT_GATE_CLKCMU_G3D_BUSD,
	CLK_CON_GAT_GATE_CLKCMU_G3D_GLB,
	CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH,
	CLK_CON_GAT_GATE_CLKCMU_GDC_GDC0,
	CLK_CON_GAT_GATE_CLKCMU_GDC_GDC1,
	CLK_CON_GAT_GATE_CLKCMU_GDC_SCSC,
	CLK_CON_GAT_GATE_CLKCMU_HPM,
	CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS,
	CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC,
	CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD,
	CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDPDBG,
	CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS,
	CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE,
	CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS,
	CLK_CON_GAT_GATE_CLKCMU_HSI2_MMCCARD,
	CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE,
	CLK_CON_GAT_GATE_CLKCMU_HSI2_UFS_EMBD,
	CLK_CON_GAT_GATE_CLKCMU_IPP_BUS,
	CLK_CON_GAT_GATE_CLKCMU_ITP_BUS,
	CLK_CON_GAT_GATE_CLKCMU_MCSC_ITSC,
	CLK_CON_GAT_GATE_CLKCMU_MCSC_MCSC,
	CLK_CON_GAT_GATE_CLKCMU_MFC_MFC,
	CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP,
	CLK_CON_GAT_GATE_CLKCMU_MISC_BUS,
	CLK_CON_GAT_GATE_CLKCMU_MISC_SSS,
	CLK_CON_GAT_GATE_CLKCMU_PDP_BUS,
	CLK_CON_GAT_GATE_CLKCMU_PDP_VRA,
	CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS,
	CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP,
	CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS,
	CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP,
	CLK_CON_GAT_GATE_CLKCMU_TNR_BUS,
	CLK_CON_GAT_GATE_CLKCMU_TOP_CMUREF,
	CLK_CON_GAT_GATE_CLKCMU_TPU_BUS,
	CLK_CON_GAT_GATE_CLKCMU_TPU_TPU,
	CLK_CON_GAT_GATE_CLKCMU_TPU_TPUCTL,
	CLK_CON_GAT_GATE_CLKCMU_TPU_UART,
	DMYQCH_CON_CMU_TOP_CMUREF_QCH,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK0,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK1,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK2,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK3,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK4,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK5,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK6,
	DMYQCH_CON_DFTMUX_CMU_QCH_CIS_CLK7,
	DMYQCH_CON_OTP_QCH,
	QUEUE_CTRL_REG_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY0_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY1_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY2_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY3_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY4_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY5_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY6_BLK_CMU_CMU_TOP,
	QUEUE_ENTRY7_BLK_CMU_CMU_TOP,
	MIFMIRROR_QUEUE_CTRL_REG,
	MIFMIRROR_QUEUE_ENTRY0,
	MIFMIRROR_QUEUE_ENTRY1,
	MIFMIRROR_QUEUE_ENTRY2,
	MIFMIRROR_QUEUE_ENTRY3,
	MIFMIRROR_QUEUE_ENTRY4,
	MIFMIRROR_QUEUE_ENTRY5,
	MIFMIRROR_QUEUE_ENTRY6,
	MIFMIRROR_QUEUE_ENTRY7,
	MIFMIRROR_QUEUE_BUSY,
	GENERALIO_ACD_CHANNEL_0,
	GENERALIO_ACD_CHANNEL_1,
	GENERALIO_ACD_CHANNEL_2,
	GENERALIO_ACD_CHANNEL_3,
	GENERALIO_ACD_MASK,
};

static const struct samsung_pll_clock cmu_top_pll_clks[] __initconst = {
	/* CMU_TOP_PURECLKCOMP */
	PLL(pll_0517x, CLK_FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk",
	    PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0,
	    NULL),
	PLL(pll_0517x, CLK_FOUT_SHARED1_PLL, "fout_shared1_pll", "oscclk",
	    PLL_LOCKTIME_PLL_SHARED1, PLL_CON3_PLL_SHARED1,
	    NULL),
	PLL(pll_0518x, CLK_FOUT_SHARED2_PLL, "fout_shared2_pll", "oscclk",
	    PLL_LOCKTIME_PLL_SHARED2, PLL_CON3_PLL_SHARED2,
	    NULL),
	PLL(pll_0518x, CLK_FOUT_SHARED3_PLL, "fout_shared3_pll", "oscclk",
	    PLL_LOCKTIME_PLL_SHARED3, PLL_CON3_PLL_SHARED3,
	    NULL),
	PLL(pll_0518x, CLK_FOUT_SPARE_PLL, "fout_spare_pll", "oscclk",
	    PLL_LOCKTIME_PLL_SPARE, PLL_CON3_PLL_SPARE,
	    NULL),
};

/* List of parent clocks for Muxes in CMU_TOP */
PNAME(mout_pll_shared0_p)	= { "oscclk", "fout_shared0_pll" };
PNAME(mout_pll_shared1_p)	= { "oscclk", "fout_shared1_pll" };
PNAME(mout_pll_shared2_p)	= { "oscclk", "fout_shared2_pll" };
PNAME(mout_pll_shared3_p)	= { "oscclk", "fout_shared3_pll" };
PNAME(mout_pll_spare_p)		= { "oscclk", "fout_spare_pll" };
PNAME(mout_cmu_bo_bus_p)	= { "fout_shared2_pll", "dout_cmu_shared0_div3",
				    "fout_shared3_pll", "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_bus0_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2",
				    "fout_spare_pll", "oscclk",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_bus1_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_bus2_bus_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div5", "fout_spare_pll" };
PNAME(mout_cmu_cis_clk0_7_p)	= { "oscclk", "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_cmu_boost_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2" };
PNAME(mout_cmu_cmu_boost_option1_p) = { "dout_cmu_cmu_boost",
					"gout_cmu_boost_option1" };
PNAME(mout_cmu_core_bus_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div5", "fout_spare_pll" };
PNAME(mout_cmu_cpucl0_dbg_p)	= { "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2", "fout_spare_pll",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_cpucl0_switch_p)	= { "fout_shared1_pll", "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2", "fout_shared2_pll",
				    "fout_shared3_pll", "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3", "fout_spare_pll" };
PNAME(mout_cmu_cpucl1_switch_p)	= { "fout_shared1_pll", "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2", "fout_shared2_pll",
				    "fout_shared3_pll", "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3", "fout_spare_pll" };
PNAME(mout_cmu_cpucl2_switch_p)	= { "fout_shared1_pll", "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2", "fout_shared2_pll",
				    "fout_shared3_pll", "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3", "fout_spare_pll" };
PNAME(mout_cmu_csis_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_disp_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_dns_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_dpu_p)		= { "dout_cmu_shared0_div3",
				    "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_eh_bus_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div5", "fout_spare_pll" };
PNAME(mout_cmu_g2d_g2d_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_g2d_mscl_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2",
				    "fout_spare_pll", "oscclk",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_g3aa_g3aa_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_g3d_busd_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4", "fout_spare_pll" };
PNAME(mout_cmu_g3d_glb_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4", "fout_spare_pll" };
PNAME(mout_cmu_g3d_switch_p)	= { "fout_shared2_pll", "dout_cmu_shared0_div3",
				    "fout_shared3_pll", "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "fout_spare_pll", "fout_spare_pll"};
PNAME(mout_cmu_gdc_gdc0_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_gdc_gdc1_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_gdc_scsc_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_hpm_p)		= { "oscclk", "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2" };
PNAME(mout_cmu_hsi0_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2",
				    "fout_spare_pll", "oscclk",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_hsi0_dpgtc_p)	= { "oscclk", "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2", "fout_spare_pll" };
PNAME(mout_cmu_hsi0_usb31drd_p)	= { "oscclk", "dout_cmu_shared2_div2" };
PNAME(mout_cmu_hsi0_usbdpdbg_p)	= { "oscclk", "dout_cmu_shared2_div2" };
PNAME(mout_cmu_hsi1_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2",
				    "fout_spare_pll" };
PNAME(mout_cmu_hsi1_pcie_p)	= { "oscclk", "dout_cmu_shared2_div2" };
PNAME(mout_cmu_hsi2_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2",
				    "fout_spare_pll", "oscclk",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_hsi2_mmc_card_p)	= { "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div4", "fout_spare_pll" };
PNAME(mout_cmu_hsi2_pcie0_p)	= { "oscclk", "dout_cmu_shared2_div2" };
PNAME(mout_cmu_hsi2_ufs_embd_p)	= { "oscclk", "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2", "fout_spare_pll" };
PNAME(mout_cmu_ipp_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_itp_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_mcsc_itsc_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_mcsc_mcsc_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_mfc_mfc_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2", "fout_spare_pll",
				    "oscclk", "oscclk" };
PNAME(mout_cmu_mif_busp_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared0_div5", "fout_spare_pll" };
PNAME(mout_cmu_mif_switch_p)	= { "fout_shared0_pll", "fout_shared1_pll",
				    "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "dout_cmu_shared0_div3",
				    "fout_shared3_pll", "fout_spare_pll" };
PNAME(mout_cmu_misc_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_misc_sss_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_pdp_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_pdp_vra_p)	= { "fout_shared2_pll", "dout_cmu_shared0_div3",
				    "fout_shared3_pll", "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_peric0_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_peric0_ip_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_peric1_bus_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_peric1_ip_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_tnr_bus_p)	= { "dout_cmu_shared0_div3", "fout_shared3_pll",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "fout_spare_pll", "oscclk" };
PNAME(mout_cmu_top_boost_option1_p) = { "oscclk",
					"gout_cmu_boost_option1" };
PNAME(mout_cmu_top_cmuref_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared1_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2" };
PNAME(mout_cmu_tpu_bus_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll",
				    "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4",
				    "fout_spare_pll" };
PNAME(mout_cmu_tpu_tpu_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll",
				    "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4", "fout_spare_pll" };
PNAME(mout_cmu_tpu_tpuctl_p)	= { "dout_cmu_shared0_div2",
				    "dout_cmu_shared1_div2",
				    "fout_shared2_pll", "fout_shared3_pll",
				    "dout_cmu_shared0_div3",
				    "dout_cmu_shared1_div3",
				    "dout_cmu_shared0_div4", "fout_spare_pll" };
PNAME(mout_cmu_tpu_uart_p)	= { "dout_cmu_shared0_div4",
				    "dout_cmu_shared2_div2",
				    "dout_cmu_shared3_div2", "fout_spare_pll" };
PNAME(mout_cmu_cmuref_p)	= { "mout_cmu_top_boost_option1",
				    "dout_cmu_cmuref" };

/*
 * Register name to clock name mangling strategy used in this file
 *
 * Replace PLL_CON0_PLL	           with CLK_MOUT_PLL and mout_pll
 * Replace CLK_CON_MUX_MUX_CLKCMU  with CLK_MOUT_CMU and mout_cmu
 * Replace CLK_CON_DIV_CLKCMU      with CLK_DOUT_CMU and dout_cmu
 * Replace CLK_CON_DIV_DIV_CLKCMU  with CLK_DOUT_CMU and dout_cmu
 * Replace CLK_CON_GAT_CLKCMU      with CLK_GOUT_CMU and gout_cmu
 * Replace CLK_CON_GAT_GATE_CLKCMU with CLK_GOUT_CMU and gout_cmu
 *
 * For gates remove _UID _BLK _IPCLKPORT and _RSTNSYNC
 */

static const struct samsung_mux_clock cmu_top_mux_clks[] __initconst = {
	MUX(CLK_MOUT_PLL_SHARED0, "mout_pll_shared0", mout_pll_shared0_p,
	    PLL_CON0_PLL_SHARED0, 4, 1),
	MUX(CLK_MOUT_PLL_SHARED1, "mout_pll_shared1", mout_pll_shared1_p,
	    PLL_CON0_PLL_SHARED1, 4, 1),
	MUX(CLK_MOUT_PLL_SHARED2, "mout_pll_shared2", mout_pll_shared2_p,
	    PLL_CON0_PLL_SHARED2, 4, 1),
	MUX(CLK_MOUT_PLL_SHARED3, "mout_pll_shared3", mout_pll_shared3_p,
	    PLL_CON0_PLL_SHARED3, 4, 1),
	MUX(CLK_MOUT_PLL_SPARE, "mout_pll_spare", mout_pll_spare_p,
	    PLL_CON0_PLL_SPARE, 4, 1),
	MUX(CLK_MOUT_CMU_BO_BUS, "mout_cmu_bo_bus", mout_cmu_bo_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_BO_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_BUS0_BUS, "mout_cmu_bus0_bus", mout_cmu_bus0_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_BUS1_BUS, "mout_cmu_bus1_bus", mout_cmu_bus1_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_BUS2_BUS, "mout_cmu_bus2_bus", mout_cmu_bus2_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_BUS2_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK0, "mout_cmu_cis_clk0", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK1, "mout_cmu_cis_clk1", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK2, "mout_cmu_cis_clk2", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK3, "mout_cmu_cis_clk3", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK4, "mout_cmu_cis_clk4", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK5, "mout_cmu_cis_clk5", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK6, "mout_cmu_cis_clk6", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK6, 0, 3),
	MUX(CLK_MOUT_CMU_CIS_CLK7, "mout_cmu_cis_clk7", mout_cmu_cis_clk0_7_p,
	    CLK_CON_MUX_MUX_CLKCMU_CIS_CLK7, 0, 3),
	MUX(CLK_MOUT_CMU_CMU_BOOST, "mout_cmu_cmu_boost", mout_cmu_cmu_boost_p,
	    CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 0, 2),
	MUX(CLK_MOUT_CMU_BOOST_OPTION1, "mout_cmu_boost_option1",
	    mout_cmu_cmu_boost_option1_p,
	    CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_OPTION1, 0, 1),
	MUX(CLK_MOUT_CMU_CORE_BUS, "mout_cmu_core_bus", mout_cmu_core_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_CPUCL0_DBG, "mout_cmu_cpucl0_dbg",
	    mout_cmu_cpucl0_dbg_p, CLK_CON_DIV_CLKCMU_CPUCL0_DBG, 0, 3),
	MUX(CLK_MOUT_CMU_CPUCL0_SWITCH, "mout_cmu_cpucl0_switch",
	    mout_cmu_cpucl0_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH,
	    0, 3),
	MUX(CLK_MOUT_CMU_CPUCL1_SWITCH, "mout_cmu_cpucl1_switch",
	    mout_cmu_cpucl1_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH,
	    0, 3),
	MUX(CLK_MOUT_CMU_CPUCL2_SWITCH, "mout_cmu_cpucl2_switch",
	    mout_cmu_cpucl2_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH,
	    0, 3),
	MUX(CLK_MOUT_CMU_CSIS_BUS, "mout_cmu_csis_bus", mout_cmu_csis_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_DISP_BUS, "mout_cmu_disp_bus", mout_cmu_disp_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_DISP_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_DNS_BUS, "mout_cmu_dns_bus", mout_cmu_dns_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_DNS_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_DPU_BUS, "mout_cmu_dpu_bus", mout_cmu_dpu_p,
	    CLK_CON_MUX_MUX_CLKCMU_DPU_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_EH_BUS, "mout_cmu_eh_bus", mout_cmu_eh_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_EH_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_G2D_G2D, "mout_cmu_g2d_g2d", mout_cmu_g2d_g2d_p,
	    CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 0, 3),
	MUX(CLK_MOUT_CMU_G2D_MSCL, "mout_cmu_g2d_mscl", mout_cmu_g2d_mscl_p,
	    CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 3),
	MUX(CLK_MOUT_CMU_G3AA_G3AA, "mout_cmu_g3aa_g3aa", mout_cmu_g3aa_g3aa_p,
	    CLK_CON_MUX_MUX_CLKCMU_G3AA_G3AA, 0, 3),
	MUX(CLK_MOUT_CMU_G3D_BUSD, "mout_cmu_g3d_busd", mout_cmu_g3d_busd_p,
	    CLK_CON_MUX_MUX_CLKCMU_G3D_BUSD, 0, 3),
	MUX(CLK_MOUT_CMU_G3D_GLB, "mout_cmu_g3d_glb", mout_cmu_g3d_glb_p,
	    CLK_CON_MUX_MUX_CLKCMU_G3D_GLB, 0, 3),
	MUX(CLK_MOUT_CMU_G3D_SWITCH, "mout_cmu_g3d_switch",
	    mout_cmu_g3d_switch_p, CLK_CON_MUX_MUX_CLKCMU_G3D_SWITCH, 0, 3),
	MUX(CLK_MOUT_CMU_GDC_GDC0, "mout_cmu_gdc_gdc0", mout_cmu_gdc_gdc0_p,
	    CLK_CON_MUX_MUX_CLKCMU_GDC_GDC0, 0, 3),
	MUX(CLK_MOUT_CMU_GDC_GDC1, "mout_cmu_gdc_gdc1", mout_cmu_gdc_gdc1_p,
	    CLK_CON_MUX_MUX_CLKCMU_GDC_GDC1, 0, 3),
	MUX(CLK_MOUT_CMU_GDC_SCSC, "mout_cmu_gdc_scsc", mout_cmu_gdc_scsc_p,
	    CLK_CON_MUX_MUX_CLKCMU_GDC_SCSC, 0, 3),
	MUX(CLK_MOUT_CMU_HPM, "mout_cmu_hpm", mout_cmu_hpm_p,
	    CLK_CON_MUX_MUX_CLKCMU_HPM, 0, 2),
	MUX(CLK_MOUT_CMU_HSI0_BUS, "mout_cmu_hsi0_bus", mout_cmu_hsi0_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_HSI0_DPGTC, "mout_cmu_hsi0_dpgtc",
	    mout_cmu_hsi0_dpgtc_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC, 0, 2),
	MUX(CLK_MOUT_CMU_HSI0_USB31DRD, "mout_cmu_hsi0_usb31drd",
	    mout_cmu_hsi0_usb31drd_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD,
	    0, 1),
	MUX(CLK_MOUT_CMU_HSI0_USBDPDBG, "mout_cmu_hsi0_usbdpdbg",
	    mout_cmu_hsi0_usbdpdbg_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDPDBG,
	    0, 1),
	MUX(CLK_MOUT_CMU_HSI1_BUS, "mout_cmu_hsi1_bus", mout_cmu_hsi1_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_HSI1_PCIE, "mout_cmu_hsi1_pcie", mout_cmu_hsi1_pcie_p,
	    CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE, 0, 1),
	MUX(CLK_MOUT_CMU_HSI2_BUS, "mout_cmu_hsi2_bus", mout_cmu_hsi2_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_HSI2_MMC_CARD, "mout_cmu_hsi2_mmc_card",
	    mout_cmu_hsi2_mmc_card_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_MMC_CARD,
	    0, 2),
	MUX(CLK_MOUT_CMU_HSI2_PCIE, "mout_cmu_hsi2_pcie", mout_cmu_hsi2_pcie0_p,
	    CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE, 0, 1),
	MUX(CLK_MOUT_CMU_HSI2_UFS_EMBD, "mout_cmu_hsi2_ufs_embd",
	    mout_cmu_hsi2_ufs_embd_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_UFS_EMBD,
	    0, 2),
	MUX(CLK_MOUT_CMU_IPP_BUS, "mout_cmu_ipp_bus", mout_cmu_ipp_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_IPP_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_ITP_BUS, "mout_cmu_itp_bus", mout_cmu_itp_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_ITP_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_MCSC_ITSC, "mout_cmu_mcsc_itsc", mout_cmu_mcsc_itsc_p,
	    CLK_CON_MUX_MUX_CLKCMU_MCSC_ITSC, 0, 3),
	MUX(CLK_MOUT_CMU_MCSC_MCSC, "mout_cmu_mcsc_mcsc", mout_cmu_mcsc_mcsc_p,
	    CLK_CON_MUX_MUX_CLKCMU_MCSC_MCSC, 0, 3),
	MUX(CLK_MOUT_CMU_MFC_MFC, "mout_cmu_mfc_mfc", mout_cmu_mfc_mfc_p,
	    CLK_CON_MUX_MUX_CLKCMU_MFC_MFC, 0, 3),
	MUX(CLK_MOUT_CMU_MIF_BUSP, "mout_cmu_mif_busp", mout_cmu_mif_busp_p,
	    CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 0, 2),
	MUX(CLK_MOUT_CMU_MIF_SWITCH, "mout_cmu_mif_switch",
	    mout_cmu_mif_switch_p, CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 0, 3),
	MUX(CLK_MOUT_CMU_MISC_BUS, "mout_cmu_misc_bus", mout_cmu_misc_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_MISC_BUS, 0, 2),
	MUX(CLK_MOUT_CMU_MISC_SSS, "mout_cmu_misc_sss", mout_cmu_misc_sss_p,
	    CLK_CON_MUX_MUX_CLKCMU_MISC_SSS, 0, 2),
	MUX(CLK_MOUT_CMU_PDP_BUS, "mout_cmu_pdp_bus", mout_cmu_pdp_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_PDP_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_PDP_VRA, "mout_cmu_pdp_vra", mout_cmu_pdp_vra_p,
	    CLK_CON_MUX_MUX_CLKCMU_PDP_VRA, 0, 3),
	MUX(CLK_MOUT_CMU_PERIC0_BUS, "mout_cmu_peric0_bus",
	    mout_cmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 0, 2),
	MUX(CLK_MOUT_CMU_PERIC0_IP, "mout_cmu_peric0_ip", mout_cmu_peric0_ip_p,
	    CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 0, 2),
	MUX(CLK_MOUT_CMU_PERIC1_BUS, "mout_cmu_peric1_bus",
	    mout_cmu_peric1_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 0, 2),
	MUX(CLK_MOUT_CMU_PERIC1_IP, "mout_cmu_peric1_ip", mout_cmu_peric1_ip_p,
	    CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 0, 2),
	MUX(CLK_MOUT_CMU_TNR_BUS, "mout_cmu_tnr_bus", mout_cmu_tnr_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_TOP_BOOST_OPTION1, "mout_cmu_top_boost_option1",
	    mout_cmu_top_boost_option1_p,
	    CLK_CON_MUX_MUX_CLKCMU_TOP_BOOST_OPTION1, 0, 1),
	MUX(CLK_MOUT_CMU_TOP_CMUREF, "mout_cmu_top_cmuref",
	    mout_cmu_top_cmuref_p, CLK_CON_MUX_MUX_CLKCMU_TOP_CMUREF, 0, 2),
	MUX(CLK_MOUT_CMU_TPU_BUS, "mout_cmu_tpu_bus", mout_cmu_tpu_bus_p,
	    CLK_CON_MUX_MUX_CLKCMU_TPU_BUS, 0, 3),
	MUX(CLK_MOUT_CMU_TPU_TPU, "mout_cmu_tpu_tpu", mout_cmu_tpu_tpu_p,
	    CLK_CON_MUX_MUX_CLKCMU_TPU_TPU, 0, 3),
	MUX(CLK_MOUT_CMU_TPU_TPUCTL, "mout_cmu_tpu_tpuctl",
	    mout_cmu_tpu_tpuctl_p, CLK_CON_MUX_MUX_CLKCMU_TPU_TPUCTL, 0, 3),
	MUX(CLK_MOUT_CMU_TPU_UART, "mout_cmu_tpu_uart", mout_cmu_tpu_uart_p,
	    CLK_CON_MUX_MUX_CLKCMU_TPU_UART, 0, 2),
	MUX(CLK_MOUT_CMU_CMUREF, "mout_cmu_cmuref", mout_cmu_cmuref_p,
	    CLK_CON_MUX_MUX_CMU_CMUREF, 0, 1),
};

static const struct samsung_div_clock cmu_top_div_clks[] __initconst = {
	DIV(CLK_DOUT_CMU_BO_BUS, "dout_cmu_bo_bus", "gout_cmu_bo_bus",
	    CLK_CON_DIV_CLKCMU_BO_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_BUS0_BUS, "dout_cmu_bus0_bus", "gout_cmu_bus0_bus",
	    CLK_CON_DIV_CLKCMU_BUS0_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_BUS1_BUS, "dout_cmu_bus1_bus", "gout_cmu_bus1_bus",
	    CLK_CON_DIV_CLKCMU_BUS1_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_BUS2_BUS, "dout_cmu_bus2_bus", "gout_cmu_bus2_bus",
	    CLK_CON_DIV_CLKCMU_BUS2_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_CIS_CLK0, "dout_cmu_cis_clk0", "gout_cmu_cis_clk0",
	    CLK_CON_DIV_CLKCMU_CIS_CLK0, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK1, "dout_cmu_cis_clk1", "gout_cmu_cis_clk1",
	    CLK_CON_DIV_CLKCMU_CIS_CLK1, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK2, "dout_cmu_cis_clk2", "gout_cmu_cis_clk2",
	    CLK_CON_DIV_CLKCMU_CIS_CLK2, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK3, "dout_cmu_cis_clk3", "gout_cmu_cis_clk3",
	    CLK_CON_DIV_CLKCMU_CIS_CLK3, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK4, "dout_cmu_cis_clk4", "gout_cmu_cis_clk4",
	    CLK_CON_DIV_CLKCMU_CIS_CLK4, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK5, "dout_cmu_cis_clk5", "gout_cmu_cis_clk5",
	    CLK_CON_DIV_CLKCMU_CIS_CLK5, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK6, "dout_cmu_cis_clk6", "gout_cmu_cis_clk6",
	    CLK_CON_DIV_CLKCMU_CIS_CLK6, 0, 5),
	DIV(CLK_DOUT_CMU_CIS_CLK7, "dout_cmu_cis_clk7", "gout_cmu_cis_clk7",
	    CLK_CON_DIV_CLKCMU_CIS_CLK7, 0, 5),
	DIV(CLK_DOUT_CMU_CORE_BUS, "dout_cmu_core_bus", "gout_cmu_core_bus",
	    CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_CPUCL0_DBG, "dout_cmu_cpucl0_dbg",
	    "gout_cmu_cpucl0_dbg", CLK_CON_DIV_CLKCMU_CPUCL0_DBG, 0, 4),
	DIV(CLK_DOUT_CMU_CPUCL0_SWITCH, "dout_cmu_cpucl0_switch",
	    "gout_cmu_cpucl0_switch", CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 0, 3),
	DIV(CLK_DOUT_CMU_CPUCL1_SWITCH, "dout_cmu_cpucl1_switch",
	    "gout_cmu_cpucl1_switch", CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 0, 3),
	DIV(CLK_DOUT_CMU_CPUCL2_SWITCH, "dout_cmu_cpucl2_switch",
	    "gout_cmu_cpucl2_switch", CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH, 0, 3),
	DIV(CLK_DOUT_CMU_CSIS_BUS, "dout_cmu_csis_bus", "gout_cmu_csis_bus",
	    CLK_CON_DIV_CLKCMU_CSIS_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_DISP_BUS, "dout_cmu_disp_bus", "gout_cmu_disp_bus",
	    CLK_CON_DIV_CLKCMU_DISP_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_DNS_BUS, "dout_cmu_dns_bus", "gout_cmu_dns_bus",
	    CLK_CON_DIV_CLKCMU_DNS_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_DPU_BUS, "dout_cmu_dpu_bus", "gout_cmu_dpu_bus",
	    CLK_CON_DIV_CLKCMU_DPU_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_EH_BUS, "dout_cmu_eh_bus", "gout_cmu_eh_bus",
	    CLK_CON_DIV_CLKCMU_EH_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_G2D_G2D, "dout_cmu_g2d_g2d", "gout_cmu_g2d_g2d",
	    CLK_CON_DIV_CLKCMU_G2D_G2D, 0, 4),
	DIV(CLK_DOUT_CMU_G2D_MSCL, "dout_cmu_g2d_mscl", "gout_cmu_g2d_mscl",
	    CLK_CON_DIV_CLKCMU_G2D_MSCL, 0, 4),
	DIV(CLK_DOUT_CMU_G3AA_G3AA, "dout_cmu_g3aa_g3aa", "gout_cmu_g3aa_g3aa",
	    CLK_CON_DIV_CLKCMU_G3AA_G3AA, 0, 4),
	DIV(CLK_DOUT_CMU_G3D_SWITCH, "dout_cmu_g3d_busd", "gout_cmu_g3d_busd",
	    CLK_CON_DIV_CLKCMU_G3D_BUSD, 0, 4),
	DIV(CLK_DOUT_CMU_G3D_GLB, "dout_cmu_g3d_glb", "gout_cmu_g3d_glb",
	    CLK_CON_DIV_CLKCMU_G3D_GLB, 0, 4),
	DIV(CLK_DOUT_CMU_G3D_SWITCH, "dout_cmu_g3d_switch",
	    "gout_cmu_g3d_switch", CLK_CON_DIV_CLKCMU_G3D_SWITCH, 0, 3),
	DIV(CLK_DOUT_CMU_GDC_GDC0, "dout_cmu_gdc_gdc0", "gout_cmu_gdc_gdc0",
	    CLK_CON_DIV_CLKCMU_GDC_GDC0, 0, 4),
	DIV(CLK_DOUT_CMU_GDC_GDC1, "dout_cmu_gdc_gdc1", "gout_cmu_gdc_gdc1",
	    CLK_CON_DIV_CLKCMU_GDC_GDC1, 0, 4),
	DIV(CLK_DOUT_CMU_GDC_SCSC, "dout_cmu_gdc_scsc", "gout_cmu_gdc_scsc",
	    CLK_CON_DIV_CLKCMU_GDC_SCSC, 0, 4),
	DIV(CLK_DOUT_CMU_CMU_HPM, "dout_cmu_hpm", "gout_cmu_hpm",
	    CLK_CON_DIV_CLKCMU_HPM, 0, 2),
	DIV(CLK_DOUT_CMU_HSI0_BUS, "dout_cmu_hsi0_bus", "gout_cmu_hsi0_bus",
	    CLK_CON_DIV_CLKCMU_HSI0_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_HSI0_DPGTC, "dout_cmu_hsi0_dpgtc",
	    "gout_cmu_hsi0_dpgtc", CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 0, 4),
	DIV(CLK_DOUT_CMU_HSI0_USB31DRD, "dout_cmu_hsi0_usb31drd",
	    "gout_cmu_hsi0_usb31drd", CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 0, 5),
	DIV(CLK_DOUT_CMU_HSI1_BUS, "dout_cmu_hsi1_bus", "gout_cmu_hsi1_bus",
	    CLK_CON_DIV_CLKCMU_HSI1_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_HSI1_PCIE, "dout_cmu_hsi1_pcie", "gout_cmu_hsi1_pcie",
	    CLK_CON_DIV_CLKCMU_HSI1_PCIE, 0, 3),
	DIV(CLK_DOUT_CMU_HSI2_BUS, "dout_cmu_hsi2_bus", "gout_cmu_hsi2_bus",
	    CLK_CON_DIV_CLKCMU_HSI2_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_HSI2_MMC_CARD, "dout_cmu_hsi2_mmc_card",
	    "gout_cmu_hsi2_mmc_card", CLK_CON_DIV_CLKCMU_HSI2_MMC_CARD, 0, 9),
	DIV(CLK_DOUT_CMU_HSI2_PCIE, "dout_cmu_hsi2_pcie", "gout_cmu_hsi2_pcie",
	    CLK_CON_DIV_CLKCMU_HSI2_PCIE, 0, 3),
	DIV(CLK_DOUT_CMU_HSI2_UFS_EMBD, "dout_cmu_hsi2_ufs_embd",
	    "gout_cmu_hsi2_ufs_embd", CLK_CON_DIV_CLKCMU_HSI2_UFS_EMBD, 0, 4),
	DIV(CLK_DOUT_CMU_IPP_BUS, "dout_cmu_ipp_bus", "gout_cmu_ipp_bus",
	    CLK_CON_DIV_CLKCMU_IPP_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_ITP_BUS, "dout_cmu_itp_bus", "gout_cmu_itp_bus",
	    CLK_CON_DIV_CLKCMU_ITP_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_MCSC_ITSC, "dout_cmu_mcsc_itsc", "gout_cmu_mcsc_itsc",
	    CLK_CON_DIV_CLKCMU_MCSC_ITSC, 0, 4),
	DIV(CLK_DOUT_CMU_MCSC_MCSC, "dout_cmu_mcsc_mcsc", "gout_cmu_mcsc_mcsc",
	    CLK_CON_DIV_CLKCMU_MCSC_MCSC, 0, 4),
	DIV(CLK_DOUT_CMU_MFC_MFC, "dout_cmu_mfc_mfc", "gout_cmu_mfc_mfc",
	    CLK_CON_DIV_CLKCMU_MFC_MFC, 0, 4),
	DIV(CLK_DOUT_CMU_MIF_BUSP, "dout_cmu_mif_busp", "gout_cmu_mif_busp",
	    CLK_CON_DIV_CLKCMU_MIF_BUSP, 0, 4),
	DIV(CLK_DOUT_CMU_MISC_BUS, "dout_cmu_misc_bus", "gout_cmu_misc_bus",
	    CLK_CON_DIV_CLKCMU_MISC_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_MISC_SSS, "dout_cmu_misc_sss", "gout_cmu_misc_sss",
	    CLK_CON_DIV_CLKCMU_MISC_SSS, 0, 4),
	DIV(CLK_DOUT_CMU_PDP_BUS, "dout_cmu_pdp_bus", "gout_cmu_pdp_bus",
	    CLK_CON_DIV_CLKCMU_PDP_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_PDP_VRA, "dout_cmu_pdp_vra", "gout_cmu_pdp_vra",
	    CLK_CON_DIV_CLKCMU_PDP_VRA, 0, 4),
	DIV(CLK_DOUT_CMU_PERIC0_BUS, "dout_cmu_peric0_bus",
	    "gout_cmu_peric0_bus", CLK_CON_DIV_CLKCMU_PERIC0_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_PERIC0_IP, "dout_cmu_peric0_ip", "gout_cmu_peric0_ip",
	    CLK_CON_DIV_CLKCMU_PERIC0_IP, 0, 4),
	DIV(CLK_DOUT_CMU_PERIC1_BUS, "dout_cmu_peric1_bus",
	    "gout_cmu_peric1_bus", CLK_CON_DIV_CLKCMU_PERIC1_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_PERIC1_IP, "dout_cmu_peric1_ip", "gout_cmu_peric1_ip",
	    CLK_CON_DIV_CLKCMU_PERIC1_IP, 0, 4),
	DIV(CLK_DOUT_CMU_TNR_BUS, "dout_cmu_tnr_bus", "gout_cmu_tnr_bus",
	    CLK_CON_DIV_CLKCMU_TNR_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_TPU_BUS, "dout_cmu_tpu_bus", "gout_cmu_tpu_bus",
	    CLK_CON_DIV_CLKCMU_TPU_BUS, 0, 4),
	DIV(CLK_DOUT_CMU_TPU_TPU, "dout_cmu_tpu_tpu", "gout_cmu_tpu_tpu",
	    CLK_CON_DIV_CLKCMU_TPU_TPU, 0, 4),
	DIV(CLK_DOUT_CMU_TPU_TPUCTL, "dout_cmu_tpu_tpuctl",
	    "gout_cmu_tpu_tpuctl", CLK_CON_DIV_CLKCMU_TPU_TPUCTL, 0, 4),
	DIV(CLK_DOUT_CMU_TPU_UART, "dout_cmu_tpu_uart", "gout_cmu_tpu_uart",
	    CLK_CON_DIV_CLKCMU_TPU_UART, 0, 4),
	DIV(CLK_DOUT_CMU_CMU_BOOST, "dout_cmu_cmu_boost", "gout_cmu_cmu_boost",
	    CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST, 0, 2),
	DIV(CLK_DOUT_CMU_CMU_CMUREF, "dout_cmu_cmuref", "gout_cmu_cmuref",
	    CLK_CON_DIV_DIV_CLK_CMU_CMUREF, 0, 2),
	DIV(CLK_DOUT_CMU_SHARED0_DIV2, "dout_cmu_shared0_div2",
	    "mout_pll_shared0", CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1),
	DIV(CLK_DOUT_CMU_SHARED0_DIV3, "dout_cmu_shared0_div3",
	    "mout_pll_shared0", CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2),
	DIV(CLK_DOUT_CMU_SHARED0_DIV4, "dout_cmu_shared0_div4",
	    "dout_cmu_shared0_div2", CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1),
	DIV(CLK_DOUT_CMU_SHARED0_DIV5, "dout_cmu_shared0_div5",
	    "mout_pll_shared0", CLK_CON_DIV_PLL_SHARED0_DIV5, 0, 3),
	DIV(CLK_DOUT_CMU_SHARED1_DIV2, "dout_cmu_shared1_div2",
	    "mout_pll_shared1", CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1),
	DIV(CLK_DOUT_CMU_SHARED1_DIV3, "dout_cmu_shared1_div3",
	    "mout_pll_shared1", CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2),
	DIV(CLK_DOUT_CMU_SHARED1_DIV4, "dout_cmu_shared1_div4",
	    "mout_pll_shared1", CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1),
	DIV(CLK_DOUT_CMU_SHARED2_DIV2, "dout_cmu_shared2_div2",
	    "mout_pll_shared2", CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1),
	DIV(CLK_DOUT_CMU_SHARED3_DIV2, "dout_cmu_shared3_div2",
	    "mout_pll_shared3", CLK_CON_DIV_PLL_SHARED3_DIV2, 0, 1),
};

static const struct samsung_fixed_factor_clock cmu_top_ffactor[] __initconst = {
	FFACTOR(CLK_DOUT_CMU_HSI0_USBDPDBG, "dout_cmu_hsi0_usbdpdbg",
		"gout_cmu_hsi0_usbdpdbg", 1, 4, 0),
	FFACTOR(CLK_DOUT_CMU_OTP, "dout_cmu_otp", "oscclk", 1, 8, 0),
};

static const struct samsung_gate_clock cmu_top_gate_clks[] __initconst = {
	GATE(CLK_GOUT_CMU_BUS0_BOOST, "gout_cmu_bus0_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_BUS0_BOOST, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BUS1_BOOST, "gout_cmu_bus1_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_BUS1_BOOST, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BUS2_BOOST, "gout_cmu_bus2_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_BUS2_BOOST, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CORE_BOOST, "gout_cmu_core_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_CORE_BOOST, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL0_BOOST, "gout_cmu_cpucl0_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_CPUCL0_BOOST,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL1_BOOST, "gout_cmu_cpucl1_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_CPUCL1_BOOST,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL2_BOOST, "gout_cmu_cpucl2_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_CPUCL2_BOOST,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_MIF_BOOST, "gout_cmu_mif_boost",
	     "mout_cmu_boost_option1", CLK_CON_GAT_CLKCMU_MIF_BOOST,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_MIF_SWITCH, "gout_cmu_mif_switch",
	     "mout_cmu_mif_switch", CLK_CON_GAT_CLKCMU_MIF_SWITCH, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BO_BUS, "gout_cmu_bo_bus", "mout_cmu_bo_bus",
	     CLK_CON_GAT_GATE_CLKCMU_BO_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BUS0_BUS, "gout_cmu_bus0_bus", "mout_cmu_bus0_bus",
	     CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BUS1_BUS, "gout_cmu_bus1_bus", "mout_cmu_bus1_bus",
	     CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BUS2_BUS, "gout_cmu_bus2_bus", "mout_cmu_bus2_bus",
	     CLK_CON_GAT_GATE_CLKCMU_BUS2_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK0, "gout_cmu_cis_clk0", "mout_cmu_cis_clk0",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK1, "gout_cmu_cis_clk1", "mout_cmu_cis_clk1",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK2, "gout_cmu_cis_clk2", "mout_cmu_cis_clk2",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK3, "gout_cmu_cis_clk3", "mout_cmu_cis_clk3",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK4, "gout_cmu_cis_clk4", "mout_cmu_cis_clk4",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK5, "gout_cmu_cis_clk5", "mout_cmu_cis_clk5",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK6, "gout_cmu_cis_clk6", "mout_cmu_cis_clk6",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK6, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CIS_CLK7, "gout_cmu_cis_clk7", "mout_cmu_cis_clk7",
	     CLK_CON_GAT_GATE_CLKCMU_CIS_CLK7, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CMU_BOOST, "gout_cmu_cmu_boost", "mout_cmu_cmu_boost",
	     CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CORE_BUS, "gout_cmu_core_bus", "mout_cmu_core_bus",
	     CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL0_DBG, "gout_cmu_cpucl0_dbg",
	     "mout_cmu_cpucl0_dbg", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL0_SWITCH, "gout_cmu_cpucl0_switch",
	     "mout_cmu_cpucl0_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL1_SWITCH, "gout_cmu_cpucl1_switch",
	     "mout_cmu_cpucl1_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CPUCL2_SWITCH, "gout_cmu_cpucl2_switch",
	     "mout_cmu_cpucl2_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_CSIS_BUS, "gout_cmu_csis_bus", "mout_cmu_csis_bus",
	     CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_DISP_BUS, "gout_cmu_disp_bus", "mout_cmu_disp_bus",
	     CLK_CON_GAT_GATE_CLKCMU_DISP_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_DNS_BUS, "gout_cmu_dns_bus", "mout_cmu_dns_bus",
	     CLK_CON_GAT_GATE_CLKCMU_DNS_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_DPU_BUS, "gout_cmu_dpu_bus", "mout_cmu_dpu_bus",
	     CLK_CON_GAT_GATE_CLKCMU_DPU_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_EH_BUS, "gout_cmu_eh_bus", "mout_cmu_eh_bus",
	     CLK_CON_GAT_GATE_CLKCMU_EH_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G2D_G2D, "gout_cmu_g2d_g2d", "mout_cmu_g2d_g2d",
	     CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G2D_MSCL, "gout_cmu_g2d_mscl", "mout_cmu_g2d_mscl",
	     CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G3AA_G3AA, "gout_cmu_g3aa_g3aa", "mout_cmu_g3aa_g3aa",
	     CLK_CON_MUX_MUX_CLKCMU_G3AA_G3AA, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G3D_BUSD, "gout_cmu_g3d_busd", "mout_cmu_g3d_busd",
	     CLK_CON_GAT_GATE_CLKCMU_G3D_BUSD, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G3D_GLB, "gout_cmu_g3d_glb", "mout_cmu_g3d_glb",
	     CLK_CON_GAT_GATE_CLKCMU_G3D_GLB, 21, 0, 0),
	GATE(CLK_GOUT_CMU_G3D_SWITCH, "gout_cmu_g3d_switch",
	     "mout_cmu_g3d_switch", CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_GDC_GDC0, "gout_cmu_gdc_gdc0", "mout_cmu_gdc_gdc0",
	     CLK_CON_GAT_GATE_CLKCMU_GDC_GDC0, 21, 0, 0),
	GATE(CLK_GOUT_CMU_GDC_GDC1, "gout_cmu_gdc_gdc1", "mout_cmu_gdc_gdc1",
	     CLK_CON_GAT_GATE_CLKCMU_GDC_GDC1, 21, 0, 0),
	GATE(CLK_GOUT_CMU_GDC_SCSC, "gout_cmu_gdc_scsc", "mout_cmu_gdc_scsc",
	     CLK_CON_GAT_GATE_CLKCMU_GDC_SCSC, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HPM, "gout_cmu_hpm", "mout_cmu_hpm",
	     CLK_CON_GAT_GATE_CLKCMU_HPM, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI0_BUS, "gout_cmu_hsi0_bus", "mout_cmu_hsi0_bus",
	     CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI0_DPGTC, "gout_cmu_hsi0_dpgtc",
	     "mout_cmu_hsi0_dpgtc", CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI0_USB31DRD, "gout_cmu_hsi0_usb31drd",
	     "mout_cmu_hsi0_usb31drd", CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI0_USBDPDBG, "gout_cmu_hsi0_usbdpdbg",
	     "mout_cmu_hsi0_usbdpdbg", CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDPDBG,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI1_BUS, "gout_cmu_hsi1_bus", "mout_cmu_hsi1_bus",
	     CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI1_PCIE, "gout_cmu_hsi1_pcie", "mout_cmu_hsi1_pcie",
	     CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI2_BUS, "gout_cmu_hsi2_bus", "mout_cmu_hsi2_bus",
	     CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI2_MMC_CARD, "gout_cmu_hsi2_mmc_card",
	     "mout_cmu_hsi2_mmc_card", CLK_CON_GAT_GATE_CLKCMU_HSI2_MMCCARD,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI2_PCIE, "gout_cmu_hsi2_pcie", "mout_cmu_hsi2_pcie",
	     CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE, 21, 0, 0),
	GATE(CLK_GOUT_CMU_HSI2_UFS_EMBD, "gout_cmu_hsi2_ufs_embd",
	     "mout_cmu_hsi2_ufs_embd", CLK_CON_GAT_GATE_CLKCMU_HSI2_UFS_EMBD,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_IPP_BUS, "gout_cmu_ipp_bus", "mout_cmu_ipp_bus",
	     CLK_CON_GAT_GATE_CLKCMU_IPP_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_ITP_BUS, "gout_cmu_itp_bus", "mout_cmu_itp_bus",
	     CLK_CON_GAT_GATE_CLKCMU_ITP_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MCSC_ITSC, "gout_cmu_mcsc_itsc", "mout_cmu_mcsc_itsc",
	     CLK_CON_GAT_GATE_CLKCMU_MCSC_ITSC, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MCSC_MCSC, "gout_cmu_mcsc_mcsc", "mout_cmu_mcsc_mcsc",
	     CLK_CON_GAT_GATE_CLKCMU_MCSC_MCSC, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MFC_MFC, "gout_cmu_mfc_mfc", "mout_cmu_mfc_mfc",
	     CLK_CON_GAT_GATE_CLKCMU_MFC_MFC, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MIF_BUSP, "gout_cmu_mif_busp", "mout_cmu_mif_busp",
	     CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MISC_BUS, "gout_cmu_misc_bus", "mout_cmu_misc_bus",
	     CLK_CON_GAT_GATE_CLKCMU_MISC_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_MISC_SSS, "gout_cmu_misc_sss", "mout_cmu_misc_sss",
	     CLK_CON_GAT_GATE_CLKCMU_MISC_SSS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_PDP_BUS, "gout_cmu_pdp_bus", "mout_cmu_pdp_bus",
	     CLK_CON_GAT_GATE_CLKCMU_PDP_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_PDP_VRA, "gout_cmu_pdp_vra", "mout_cmu_pdp_vra",
	     CLK_CON_GAT_GATE_CLKCMU_PDP_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_PERIC0_BUS, "gout_cmu_peric0_bus",
	     "mout_cmu_peric0_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_PERIC0_IP, "gout_cmu_peric0_ip", "mout_cmu_peric0_ip",
	     CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 21, 0, 0),
	GATE(CLK_GOUT_CMU_PERIC1_BUS, "gout_cmu_peric1_bus",
	     "mout_cmu_peric1_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_PERIC1_IP, "gout_cmu_peric1_ip", "mout_cmu_peric1_ip",
	     CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 21, 0, 0),
	GATE(CLK_GOUT_CMU_TNR_BUS, "gout_cmu_tnr_bus", "mout_cmu_tnr_bus",
	     CLK_CON_GAT_GATE_CLKCMU_TNR_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_TOP_CMUREF, "gout_cmu_top_cmuref",
	     "mout_cmu_top_cmuref", CLK_CON_GAT_GATE_CLKCMU_TOP_CMUREF,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_TPU_BUS, "gout_cmu_tpu_bus", "mout_cmu_tpu_bus",
	     CLK_CON_GAT_GATE_CLKCMU_TPU_BUS, 21, 0, 0),
	GATE(CLK_GOUT_CMU_TPU_TPU, "gout_cmu_tpu_tpu", "mout_cmu_tpu_tpu",
	     CLK_CON_GAT_GATE_CLKCMU_TPU_TPU, 21, 0, 0),
	GATE(CLK_GOUT_CMU_TPU_TPUCTL, "gout_cmu_tpu_tpuctl",
	     "mout_cmu_tpu_tpuctl", CLK_CON_GAT_GATE_CLKCMU_TPU_TPUCTL,
	     21, 0, 0),
	GATE(CLK_GOUT_CMU_TPU_UART, "gout_cmu_tpu_uart", "mout_cmu_tpu_uart",
	     CLK_CON_GAT_GATE_CLKCMU_TPU_UART, 21, 0, 0),
};

static const struct samsung_cmu_info top_cmu_info __initconst = {
	.pll_clks		= cmu_top_pll_clks,
	.nr_pll_clks		= ARRAY_SIZE(cmu_top_pll_clks),
	.mux_clks		= cmu_top_mux_clks,
	.nr_mux_clks		= ARRAY_SIZE(cmu_top_mux_clks),
	.div_clks		= cmu_top_div_clks,
	.nr_div_clks		= ARRAY_SIZE(cmu_top_div_clks),
	.fixed_factor_clks	= cmu_top_ffactor,
	.nr_fixed_factor_clks	= ARRAY_SIZE(cmu_top_ffactor),
	.gate_clks		= cmu_top_gate_clks,
	.nr_gate_clks		= ARRAY_SIZE(cmu_top_gate_clks),
	.nr_clk_ids		= CLKS_NR_TOP,
	.clk_regs		= cmu_top_clk_regs,
	.nr_clk_regs		= ARRAY_SIZE(cmu_top_clk_regs),
};

static void __init gs101_cmu_top_init(struct device_node *np)
{
	exynos_arm64_register_cmu(NULL, np, &top_cmu_info);
}

/* Register CMU_TOP early, as it's a dependency for other early domains */
CLK_OF_DECLARE(gs101_cmu_top, "google,gs101-cmu-top",
	       gs101_cmu_top_init);

/* ---- CMU_APM ------------------------------------------------------------- */

/* Register Offset definitions for CMU_APM (0x17400000) */
#define APM_CMU_APM_CONTROLLER_OPTION							0x0800
#define CLKOUT_CON_BLK_APM_CMU_APM_CLKOUT0						0x0810
#define CLK_CON_MUX_MUX_CLKCMU_APM_FUNC							0x1000
#define CLK_CON_MUX_MUX_CLKCMU_APM_FUNCSRC						0x1004
#define CLK_CON_DIV_DIV_CLK_APM_BOOST							0x1800
#define CLK_CON_DIV_DIV_CLK_APM_USI0_UART						0x1804
#define CLK_CON_DIV_DIV_CLK_APM_USI0_USI						0x1808
#define CLK_CON_DIV_DIV_CLK_APM_USI1_UART						0x180c
#define CLK_CON_GAT_CLK_BLK_APM_UID_APM_CMU_APM_IPCLKPORT_PCLK				0x2000
#define CLK_CON_GAT_CLK_BUS0_BOOST_OPTION1						0x2004
#define CLK_CON_GAT_CLK_CMU_BOOST_OPTION1						0x2008
#define CLK_CON_GAT_CLK_CORE_BOOST_OPTION1						0x200c
#define CLK_CON_GAT_GATE_CLKCMU_APM_FUNC						0x2010
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_ALIVE_IPCLKPORT_PCLK			0x2014
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_FAR_ALIVE_IPCLKPORT_PCLK		0x2018
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_PMU_ALIVE_IPCLKPORT_PCLK			0x201c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_RTC_IPCLKPORT_PCLK				0x2020
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_TRTC_IPCLKPORT_PCLK				0x2024
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_IPCLK			0x2028
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_PCLK			0x202c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_IPCLK			0x2030
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_PCLK			0x2034
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_IPCLK			0x2038
#define CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_PCLK			0x203c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_D_TZPC_APM_IPCLKPORT_PCLK				0x2040
#define CLK_CON_GAT_GOUT_BLK_APM_UID_GPC_APM_IPCLKPORT_PCLK				0x2044
#define CLK_CON_GAT_GOUT_BLK_APM_UID_GREBEINTEGRATION_IPCLKPORT_HCLK			0x2048
#define CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_ACLK				0x204c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_PCLK				0x2050
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_G_SWD_IPCLKPORT_I_CLK			0x2054
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_P_AOCAPM_IPCLKPORT_I_CLK			0x2058
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_P_APM_IPCLKPORT_I_CLK			0x205c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_D_APM_IPCLKPORT_I_CLK			0x2060
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_DBGCORE_IPCLKPORT_I_CLK			0x2064
#define CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_SCAN2DRAM_IPCLKPORT_I_CLK		0x2068
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AOC_IPCLKPORT_PCLK			0x206c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AP_IPCLKPORT_PCLK			0x2070
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_GSA_IPCLKPORT_PCLK			0x2074
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_SWD_IPCLKPORT_PCLK			0x207c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_TPU_IPCLKPORT_PCLK			0x2080
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_AOC_IPCLKPORT_PCLK			0x2084
#define CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_DBGCORE_IPCLKPORT_PCLK			0x2088
#define CLK_CON_GAT_GOUT_BLK_APM_UID_PMU_INTR_GEN_IPCLKPORT_PCLK			0x208c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_ACLK			0x2090
#define CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_PCLK			0x2094
#define CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_BUS_IPCLKPORT_CLK			0x2098
#define CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_UART_IPCLKPORT_CLK		0x209c
#define CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_USI_IPCLKPORT_CLK		0x20a0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI1_UART_IPCLKPORT_CLK		0x20a4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_APM_IPCLKPORT_PCLK				0x20a8
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_SUB_APM_IPCLKPORT_PCLK			0x20ac
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_ACLK				0x20b0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_PCLK				0x20b4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_ACLK			0x20b8
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_PCLK			0x20bc
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SS_DBGCORE_IPCLKPORT_SS_DBGCORE_IPCLKPORT_HCLK	0x20c0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SYSMMU_D_APM_IPCLKPORT_CLK_S2			0x20c4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_SYSREG_APM_IPCLKPORT_PCLK				0x20cc
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_ACLK				0x20d0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_PCLK				0x20d4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_ACLK			0x20d8
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_PCLK			0x20dc
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_ACLK				0x20e0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_PCLK				0x20e4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_AOCAPM_IPCLKPORT_ACLK			0x20e8
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_AOCAPM_IPCLKPORT_PCLK			0x20ec
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_ACLK				0x20f0
#define CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_PCLK				0x20f4
#define CLK_CON_GAT_GOUT_BLK_APM_UID_WDT_APM_IPCLKPORT_PCLK				0x20f8
#define CLK_CON_GAT_GOUT_BLK_APM_UID_XIU_DP_APM_IPCLKPORT_ACLK				0x20fc
#define PCH_CON_LHM_AXI_G_SWD_PCH							0x3000
#define PCH_CON_LHM_AXI_P_AOCAPM_PCH							0x3004
#define PCH_CON_LHM_AXI_P_APM_PCH							0x3008
#define PCH_CON_LHS_AXI_D_APM_PCH							0x300c
#define PCH_CON_LHS_AXI_G_DBGCORE_PCH							0x3010
#define PCH_CON_LHS_AXI_G_SCAN2DRAM_PCH							0x3014
#define QCH_CON_APBIF_GPIO_ALIVE_QCH							0x3018
#define QCH_CON_APBIF_GPIO_FAR_ALIVE_QCH						0x301c
#define QCH_CON_APBIF_PMU_ALIVE_QCH							0x3020
#define QCH_CON_APBIF_RTC_QCH								0x3024
#define QCH_CON_APBIF_TRTC_QCH								0x3028
#define QCH_CON_APM_CMU_APM_QCH								0x302c
#define QCH_CON_APM_USI0_UART_QCH							0x3030
#define QCH_CON_APM_USI0_USI_QCH							0x3034
#define QCH_CON_APM_USI1_UART_QCH							0x3038
#define QCH_CON_D_TZPC_APM_QCH								0x303c
#define QCH_CON_GPC_APM_QCH								0x3040
#define QCH_CON_GREBEINTEGRATION_QCH_DBG						0x3044
#define QCH_CON_GREBEINTEGRATION_QCH_GREBE						0x3048
#define QCH_CON_INTMEM_QCH								0x304c
#define QCH_CON_LHM_AXI_G_SWD_QCH							0x3050
#define QCH_CON_LHM_AXI_P_AOCAPM_QCH							0x3054
#define QCH_CON_LHM_AXI_P_APM_QCH							0x3058
#define QCH_CON_LHS_AXI_D_APM_QCH							0x305c
#define QCH_CON_LHS_AXI_G_DBGCORE_QCH							0x3060
#define QCH_CON_LHS_AXI_G_SCAN2DRAM_QCH							0x3064
#define QCH_CON_MAILBOX_APM_AOC_QCH							0x3068
#define QCH_CON_MAILBOX_APM_AP_QCH							0x306c
#define QCH_CON_MAILBOX_APM_GSA_QCH							0x3070
#define QCH_CON_MAILBOX_APM_SWD_QCH							0x3078
#define QCH_CON_MAILBOX_APM_TPU_QCH							0x307c
#define QCH_CON_MAILBOX_AP_AOC_QCH							0x3080
#define QCH_CON_MAILBOX_AP_DBGCORE_QCH							0x3084
#define QCH_CON_PMU_INTR_GEN_QCH							0x3088
#define QCH_CON_ROM_CRC32_HOST_QCH							0x308c
#define QCH_CON_RSTNSYNC_CLK_APM_BUS_QCH_GREBE						0x3090
#define QCH_CON_RSTNSYNC_CLK_APM_BUS_QCH_GREBE_DBG					0x3094
#define QCH_CON_SPEEDY_APM_QCH								0x3098
#define QCH_CON_SPEEDY_SUB_APM_QCH							0x309c
#define QCH_CON_SSMT_D_APM_QCH								0x30a0
#define QCH_CON_SSMT_G_DBGCORE_QCH							0x30a4
#define QCH_CON_SS_DBGCORE_QCH_DBG							0x30a8
#define QCH_CON_SS_DBGCORE_QCH_GREBE							0x30ac
#define QCH_CON_SYSMMU_D_APM_QCH							0x30b0
#define QCH_CON_SYSREG_APM_QCH								0x30b8
#define QCH_CON_UASC_APM_QCH								0x30bc
#define QCH_CON_UASC_DBGCORE_QCH							0x30c0
#define QCH_CON_UASC_G_SWD_QCH								0x30c4
#define QCH_CON_UASC_P_AOCAPM_QCH							0x30c8
#define QCH_CON_UASC_P_APM_QCH								0x30cc
#define QCH_CON_WDT_APM_QCH								0x30d0
#define QUEUE_CTRL_REG_BLK_APM_CMU_APM							0x3c00

static const unsigned long apm_clk_regs[] __initconst = {
	APM_CMU_APM_CONTROLLER_OPTION,
	CLKOUT_CON_BLK_APM_CMU_APM_CLKOUT0,
	CLK_CON_MUX_MUX_CLKCMU_APM_FUNC,
	CLK_CON_MUX_MUX_CLKCMU_APM_FUNCSRC,
	CLK_CON_DIV_DIV_CLK_APM_BOOST,
	CLK_CON_DIV_DIV_CLK_APM_USI0_UART,
	CLK_CON_DIV_DIV_CLK_APM_USI0_USI,
	CLK_CON_DIV_DIV_CLK_APM_USI1_UART,
	CLK_CON_GAT_CLK_BLK_APM_UID_APM_CMU_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_CLK_BUS0_BOOST_OPTION1,
	CLK_CON_GAT_CLK_CMU_BOOST_OPTION1,
	CLK_CON_GAT_CLK_CORE_BOOST_OPTION1,
	CLK_CON_GAT_GATE_CLKCMU_APM_FUNC,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_ALIVE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_FAR_ALIVE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_PMU_ALIVE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_RTC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_TRTC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_IPCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_IPCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_IPCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_D_TZPC_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_GPC_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_GREBEINTEGRATION_IPCLKPORT_HCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_G_SWD_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_P_AOCAPM_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_P_APM_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_D_APM_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_DBGCORE_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_SCAN2DRAM_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AOC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AP_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_GSA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_SWD_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_TPU_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_AOC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_DBGCORE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_PMU_INTR_GEN_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_BUS_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_UART_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI1_UART_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_SUB_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SS_DBGCORE_IPCLKPORT_SS_DBGCORE_IPCLKPORT_HCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SYSMMU_D_APM_IPCLKPORT_CLK_S2,
	CLK_CON_GAT_GOUT_BLK_APM_UID_SYSREG_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_AOCAPM_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_AOCAPM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_WDT_APM_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_APM_UID_XIU_DP_APM_IPCLKPORT_ACLK,
};

PNAME(mout_apm_func_p)		= { "oscclk", "mout_apm_funcsrc",
				    "pad_clk_apm", "oscclk" };
PNAME(mout_apm_funcsrc_p)	= { "pll_alv_div2_apm", "pll_alv_div4_apm",
				    "pll_alv_div16_apm" };

static const struct samsung_fixed_rate_clock apm_fixed_clks[] __initconst = {
	FRATE(CLK_APM_PLL_DIV2_APM, "pll_alv_div2_apm", NULL, 0, 393216000),
	FRATE(CLK_APM_PLL_DIV4_APM, "pll_alv_div4_apm", NULL, 0, 196608000),
	FRATE(CLK_APM_PLL_DIV16_APM, "pll_alv_div16_apm", NULL, 0, 49152000),
};

static const struct samsung_mux_clock apm_mux_clks[] __initconst = {
	MUX(CLK_MOUT_APM_FUNC, "mout_apm_func", mout_apm_func_p,
	    CLK_CON_MUX_MUX_CLKCMU_APM_FUNC, 4, 1),
	MUX(CLK_MOUT_APM_FUNCSRC, "mout_apm_funcsrc", mout_apm_funcsrc_p,
	    CLK_CON_MUX_MUX_CLKCMU_APM_FUNCSRC, 3, 1),
};

static const struct samsung_div_clock apm_div_clks[] __initconst = {
	DIV(CLK_DOUT_APM_BOOST, "dout_apm_boost", "gout_apm_func",
	    CLK_CON_DIV_DIV_CLK_APM_BOOST, 0, 1),
	DIV(CLK_DOUT_APM_USI0_UART, "dout_apm_usi0_uart", "gout_apm_func",
	    CLK_CON_DIV_DIV_CLK_APM_USI0_UART, 0, 7),
	DIV(CLK_DOUT_APM_USI0_USI, "dout_apm_usi0_usi", "gout_apm_func",
	    CLK_CON_DIV_DIV_CLK_APM_USI0_USI, 0, 7),
	DIV(CLK_DOUT_APM_USI1_UART, "dout_apm_usi1_uart", "gout_apm_func",
	    CLK_CON_DIV_DIV_CLK_APM_USI1_UART, 0, 7),
};

static const struct samsung_gate_clock apm_gate_clks[] __initconst = {
	GATE(CLK_GOUT_APM_APM_CMU_APM_PCLK,
	     "gout_apm_apm_cmu_apm_pclk", "mout_apm_func",
	     CLK_CON_GAT_CLK_BLK_APM_UID_APM_CMU_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_BUS0_BOOST_OPTION1, "gout_bus0_boost_option1",
	     "dout_apm_boost", CLK_CON_GAT_CLK_BUS0_BOOST_OPTION1, 21, 0, 0),
	GATE(CLK_GOUT_CMU_BOOST_OPTION1, "gout_cmu_boost_option1",
	     "dout_apm_boost", CLK_CON_GAT_CLK_CMU_BOOST_OPTION1, 21, 0, 0),
	GATE(CLK_GOUT_CORE_BOOST_OPTION1, "gout_core_boost_option1",
	     "dout_apm_boost", CLK_CON_GAT_CLK_CORE_BOOST_OPTION1, 21, 0, 0),
	GATE(CLK_GOUT_APM_FUNC, "gout_apm_func", "mout_apm_func",
	     CLK_CON_GAT_GATE_CLKCMU_APM_FUNC, 21, 0, 0),
	GATE(CLK_GOUT_APM_APBIF_GPIO_ALIVE_PCLK,
	     "gout_apm_apbif_gpio_alive_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_ALIVE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APBIF_GPIO_FAR_ALIVE_PCLK,
	     "gout_apm_apbif_gpio_far_alive_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_GPIO_FAR_ALIVE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APBIF_PMU_ALIVE_PCLK,
	     "gout_apm_apbif_pmu_alive_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_PMU_ALIVE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APBIF_RTC_PCLK,
	     "gout_apm_apbif_rtc_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_RTC_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_APBIF_TRTC_PCLK,
	     "gout_apm_apbif_trtc_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APBIF_TRTC_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI0_UART_IPCLK,
	     "gout_apm_apm_usi0_uart_ipclk", "dout_apm_usi0_uart",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_IPCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI0_UART_PCLK,
	     "gout_apm_apm_usi0_uart_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_UART_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI0_USI_IPCLK,
	     "gout_apm_apm_usi0_usi_ipclk", "dout_apm_usi0_usi",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_IPCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI0_USI_PCLK,
	     "gout_apm_apm_usi0_usi_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI0_USI_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI1_UART_IPCLK,
	     "gout_apm_apm_usi1_uart_ipclk", "dout_apm_usi1_uart",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_IPCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_APM_USI1_UART_PCLK,
	     "gout_apm_apm_usi1_uart_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_APM_USI1_UART_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_D_TZPC_APM_PCLK,
	     "gout_apm_d_tzpc_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_D_TZPC_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_GPC_APM_PCLK,
	     "gout_apm_gpc_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_GPC_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_GREBEINTEGRATION_HCLK,
	     "gout_apm_grebeintegration_hclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_GREBEINTEGRATION_IPCLKPORT_HCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_INTMEM_ACLK,
	     "gout_apm_intmem_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_ACLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_INTMEM_PCLK,
	     "gout_apm_intmem_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_INTMEM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_LHM_AXI_G_SWD_I_CLK,
	     "gout_apm_lhm_axi_g_swd_i_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_G_SWD_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_LHM_AXI_P_AOCAPM_I_CLK,
	     "gout_apm_lhm_axi_p_aocapm_i_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHM_AXI_P_AOCAPM_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_LHM_AXI_P_APM_I_CLK,
	     "gout_apm_lhm_axi_p_apm_i_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_D_APM_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_LHS_AXI_D_APM_I_CLK,
	     "gout_apm_lhs_axi_d_apm_i_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_D_APM_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_LHS_AXI_G_DBGCORE_I_CLK,
	     "gout_apm_lhs_axi_g_dbgcore_i_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_DBGCORE_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_LHS_AXI_G_SCAN2DRAM_I_CLK,
	     "gout_apm_lhs_axi_g_scan2dram_i_clk",
	     "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_LHS_AXI_G_SCAN2DRAM_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_APM_AOC_PCLK,
	     "gout_apm_mailbox_apm_aoc_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AOC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_APM_AP_PCLK,
	     "gout_apm_mailbox_apm_ap_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_AP_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_APM_GSA_PCLK,
	     "gout_apm_mailbox_apm_gsa_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_GSA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_APM_SWD_PCLK,
	     "gout_apm_mailbox_apm_swd_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_SWD_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_APM_TPU_PCLK,
	     "gout_apm_mailbox_apm_tpu_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_APM_TPU_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_AP_AOC_PCLK,
	     "gout_apm_mailbox_ap_aoc_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_AOC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_MAILBOX_AP_DBGCORE_PCLK,
	     "gout_apm_mailbox_ap_dbgcore_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_MAILBOX_AP_DBGCORE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_PMU_INTR_GEN_PCLK,
	     "gout_apm_pmu_intr_gen_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_PMU_INTR_GEN_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_ROM_CRC32_HOST_ACLK,
	     "gout_apm_rom_crc32_host_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_ROM_CRC32_HOST_PCLK,
	     "gout_apm_rom_crc32_host_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_ROM_CRC32_HOST_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_CLK_APM_BUS_CLK,
	     "gout_apm_clk_apm_bus_clk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_BUS_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_CLK_APM_USI0_UART_CLK,
	     "gout_apm_clk_apm_usi0_uart_clk",
	     "dout_apm_usi0_uart",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_UART_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_CLK_APM_USI0_USI_CLK,
	     "gout_apm_clk_apm_usi0_usi_clk",
	     "dout_apm_usi0_usi",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI0_UART_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_CLK_APM_USI1_UART_CLK,
	     "gout_apm_clk_apm_usi1_uart_clk",
	     "dout_apm_usi1_uart",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_RSTNSYNC_CLK_APM_USI1_UART_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SPEEDY_APM_PCLK,
	     "gout_apm_speedy_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_SPEEDY_SUB_APM_PCLK,
	     "gout_apm_speedy_sub_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SPEEDY_SUB_APM_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SSMT_D_APM_ACLK,
	     "gout_apm_ssmt_d_apm_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_ACLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_SSMT_D_APM_PCLK,
	     "gout_apm_ssmt_d_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_D_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_SSMT_G_DBGCORE_ACLK,
	     "gout_apm_ssmt_g_dbgcore_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SSMT_G_DBGCORE_PCLK,
	     "gout_apm_ssmt_g_dbgcore_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SSMT_G_DBGCORE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SS_DBGCORE_SS_DBGCORE_HCLK,
	     "gout_apm_ss_dbgcore_ss_dbgcore_hclk",
	     "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SS_DBGCORE_IPCLKPORT_SS_DBGCORE_IPCLKPORT_HCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SYSMMU_D_APM_CLK_S2,
	     "gout_apm_sysmmu_d_dpm_clk_s2", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SYSMMU_D_APM_IPCLKPORT_CLK_S2,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_SYSREG_APM_PCLK,
	     "gout_apm_sysreg_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_SYSREG_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_APM_ACLK,
	     "gout_apm_uasc_apm_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_ACLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_APM_PCLK,
	     "gout_apm_uasc_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_DBGCORE_ACLK,
	     "gout_apm_uasc_dbgcore_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_DBGCORE_PCLK,
	     "gout_apm_uasc_dbgcore_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_DBGCORE_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_G_SWD_ACLK,
	     "gout_apm_uasc_g_swd_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_ACLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_G_SWD_PCLK,
	     "gout_apm_uasc_g_swd_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_P_AOCAPM_ACLK,
	     "gout_apm_uasc_p_aocapm_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_AOCAPM_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_P_AOCAPM_PCLK,
	     "gout_apm_uasc_p_aocapm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_G_SWD_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_P_APM_ACLK,
	     "gout_apm_uasc_p_apm_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_ACLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_UASC_P_APM_PCLK,
	     "gout_apm_uasc_p_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_UASC_P_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_WDT_APM_PCLK,
	     "gout_apm_wdt_apm_pclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_WDT_APM_IPCLKPORT_PCLK, 21, 0, 0),
	GATE(CLK_GOUT_APM_XIU_DP_APM_ACLK,
	     "gout_apm_xiu_dp_apm_aclk", "gout_apm_func",
	     CLK_CON_GAT_GOUT_BLK_APM_UID_XIU_DP_APM_IPCLKPORT_ACLK, 21, 0, 0),
};

static const struct samsung_cmu_info apm_cmu_info __initconst = {
	.mux_clks		= apm_mux_clks,
	.nr_mux_clks		= ARRAY_SIZE(apm_mux_clks),
	.div_clks		= apm_div_clks,
	.nr_div_clks		= ARRAY_SIZE(apm_div_clks),
	.gate_clks		= apm_gate_clks,
	.nr_gate_clks		= ARRAY_SIZE(apm_gate_clks),
	.fixed_clks		= apm_fixed_clks,
	.nr_fixed_clks		= ARRAY_SIZE(apm_fixed_clks),
	.nr_clk_ids		= CLKS_NR_APM,
	.clk_regs		= apm_clk_regs,
	.nr_clk_regs		= ARRAY_SIZE(apm_clk_regs),
};

/* ---- CMU_MISC ------------------------------------------------------------ */

/* Register Offset definitions for CMU_MISC (0x10010000) */
#define PLL_CON0_MUX_CLKCMU_MISC_BUS_USER					0x0600
#define PLL_CON1_MUX_CLKCMU_MISC_BUS_USER					0x0604
#define PLL_CON0_MUX_CLKCMU_MISC_SSS_USER					0x0610
#define PLL_CON1_MUX_CLKCMU_MISC_SSS_USER					0x0614
#define MISC_CMU_MISC_CONTROLLER_OPTION						0x0800
#define CLKOUT_CON_BLK_MISC_CMU_MISC_CLKOUT0					0x0810
#define CLK_CON_MUX_MUX_CLK_MISC_GIC						0x1000
#define CLK_CON_DIV_DIV_CLK_MISC_BUSP						0x1800
#define CLK_CON_DIV_DIV_CLK_MISC_GIC						0x1804
#define CLK_CON_GAT_CLK_BLK_MISC_UID_MISC_CMU_MISC_IPCLKPORT_PCLK		0x2000
#define CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK		0x2004
#define CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_I_OSCCLK		0x2008
#define CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK		0x200c
#define CLK_CON_GAT_CLK_BLK_MISC_UID_RSTNSYNC_CLK_MISC_OSCCLK_IPCLKPORT_CLK	0x2010
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_ADM_AHB_SSS_IPCLKPORT_HCLKM		0x2014
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_AD_APB_DIT_IPCLKPORT_PCLKM		0x2018
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_AD_APB_PUF_IPCLKPORT_PCLKM		0x201c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_DIT_IPCLKPORT_ICLKL2A			0x2020
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_D_TZPC_MISC_IPCLKPORT_PCLK		0x2024
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_GIC_IPCLKPORT_GICCLK			0x2028
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_GPC_MISC_IPCLKPORT_PCLK			0x202c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AST_ICC_CPUGIC_IPCLKPORT_I_CLK	0x2030
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_D_SSS_IPCLKPORT_I_CLK		0x2034
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_GIC_IPCLKPORT_I_CLK		0x2038
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_MISC_IPCLKPORT_I_CLK		0x203c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_ACEL_D_MISC_IPCLKPORT_I_CLK		0x2040
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AST_IRI_GICCPU_IPCLKPORT_I_CLK	0x2044
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AXI_D_SSS_IPCLKPORT_I_CLK		0x2048
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_MCT_IPCLKPORT_PCLK			0x204c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_PCLK		0x2050
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_PCLK		0x2054
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_PCLK		0x2058
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_PDMA_IPCLKPORT_ACLK			0x205c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_DMA_IPCLKPORT_ACLK			0x2060
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_ACLK			0x2064
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_PCLK			0x2068
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_PUF_IPCLKPORT_I_CLK			0x206c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_ACLK			0x2070
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_PCLK			0x2074
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_ACLK			0x2078
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_PCLK			0x207c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_ACLK		0x2080
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_PCLK		0x2084
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_ACLK			0x2088
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_PCLK			0x208c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_ACLK			0x2090
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_PCLK			0x2094
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_ACLK			0x2098
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_PCLK			0x209c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSD_IPCLKPORT_CLK	0x20a0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSP_IPCLKPORT_CLK	0x20a4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_GIC_IPCLKPORT_CLK	0x20a8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_SSS_IPCLKPORT_CLK	0x20ac
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_ACLK			0x20b0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_PCLK			0x20b4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SPDMA_IPCLKPORT_ACLK			0x20b8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_ACLK			0x20bc
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_PCLK			0x20c0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_ACLK			0x20c4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_PCLK			0x20c8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_ACLK		0x20cc
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_PCLK		0x20d0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_ACLK			0x20d4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_PCLK			0x20d8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_ACLK			0x20dc
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_PCLK			0x20e0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_ACLK			0x20e4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_PCLK			0x20e8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_ACLK			0x20ec
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_PCLK			0x20f0
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_MISC_IPCLKPORT_CLK_S2		0x20f4
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_SSS_IPCLKPORT_CLK_S1		0x20f8
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSREG_MISC_IPCLKPORT_PCLK		0x20fc
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_SUB_IPCLKPORT_PCLK			0x2100
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_TOP_IPCLKPORT_PCLK			0x2104
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER0_IPCLKPORT_PCLK		0x2108
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER1_IPCLKPORT_PCLK		0x210c
#define CLK_CON_GAT_GOUT_BLK_MISC_UID_XIU_D_MISC_IPCLKPORT_ACLK			0x2110
#define DMYQCH_CON_PPMU_DMA_QCH							0x3000
#define DMYQCH_CON_PUF_QCH							0x3004
#define PCH_CON_LHM_AXI_D_SSS_PCH						0x300c
#define PCH_CON_LHM_AXI_P_GIC_PCH						0x3010
#define PCH_CON_LHM_AXI_P_MISC_PCH						0x3014
#define PCH_CON_LHS_ACEL_D_MISC_PCH						0x3018
#define PCH_CON_LHS_AST_IRI_GICCPU_PCH						0x301c
#define PCH_CON_LHS_AXI_D_SSS_PCH						0x3020
#define QCH_CON_ADM_AHB_SSS_QCH							0x3024
#define QCH_CON_DIT_QCH								0x3028
#define QCH_CON_GIC_QCH								0x3030
#define QCH_CON_LHM_AST_ICC_CPUGIC_QCH						0x3038
#define QCH_CON_LHM_AXI_D_SSS_QCH						0x303c
#define QCH_CON_LHM_AXI_P_GIC_QCH						0x3040
#define QCH_CON_LHM_AXI_P_MISC_QCH						0x3044
#define QCH_CON_LHS_ACEL_D_MISC_QCH						0x3048
#define QCH_CON_LHS_AST_IRI_GICCPU_QCH						0x304c
#define QCH_CON_LHS_AXI_D_SSS_QCH						0x3050
#define QCH_CON_MCT_QCH								0x3054
#define QCH_CON_MISC_CMU_MISC_QCH						0x3058
#define QCH_CON_OTP_CON_BIRA_QCH						0x305c
#define QCH_CON_OTP_CON_BISR_QCH						0x3060
#define QCH_CON_OTP_CON_TOP_QCH							0x3064
#define QCH_CON_PDMA_QCH							0x3068
#define QCH_CON_PPMU_MISC_QCH							0x306c
#define QCH_CON_QE_DIT_QCH							0x3070
#define QCH_CON_QE_PDMA_QCH							0x3074
#define QCH_CON_QE_PPMU_DMA_QCH							0x3078
#define QCH_CON_QE_RTIC_QCH							0x307c
#define QCH_CON_QE_SPDMA_QCH							0x3080
#define QCH_CON_QE_SSS_QCH							0x3084
#define QCH_CON_RTIC_QCH							0x3088
#define QCH_CON_SPDMA_QCH							0x308c
#define QCH_CON_SSMT_DIT_QCH							0x3090
#define QCH_CON_SSMT_PDMA_QCH							0x3094
#define QCH_CON_SSMT_PPMU_DMA_QCH						0x3098
#define QCH_CON_SSMT_RTIC_QCH							0x309c
#define QCH_CON_SSMT_SPDMA_QCH							0x30a0
#define QCH_CON_SSMT_SSS_QCH							0x30a4
#define QCH_CON_SSS_QCH								0x30a8
#define QCH_CON_SYSMMU_MISC_QCH							0x30ac
#define QCH_CON_SYSMMU_SSS_QCH							0x30b0
#define QCH_CON_SYSREG_MISC_QCH							0x30b4
#define QCH_CON_TMU_SUB_QCH							0x30b8
#define QCH_CON_TMU_TOP_QCH							0x30bc
#define QCH_CON_WDT_CLUSTER0_QCH						0x30c0
#define QCH_CON_WDT_CLUSTER1_QCH						0x30c4
#define QUEUE_CTRL_REG_BLK_MISC_CMU_MISC					0x3c00

static const unsigned long misc_clk_regs[] __initconst = {
	PLL_CON0_MUX_CLKCMU_MISC_BUS_USER,
	PLL_CON1_MUX_CLKCMU_MISC_BUS_USER,
	PLL_CON0_MUX_CLKCMU_MISC_SSS_USER,
	PLL_CON1_MUX_CLKCMU_MISC_SSS_USER,
	MISC_CMU_MISC_CONTROLLER_OPTION,
	CLKOUT_CON_BLK_MISC_CMU_MISC_CLKOUT0,
	CLK_CON_MUX_MUX_CLK_MISC_GIC,
	CLK_CON_DIV_DIV_CLK_MISC_BUSP,
	CLK_CON_DIV_DIV_CLK_MISC_GIC,
	CLK_CON_GAT_CLK_BLK_MISC_UID_MISC_CMU_MISC_IPCLKPORT_PCLK,
	CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK,
	CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_I_OSCCLK,
	CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK,
	CLK_CON_GAT_CLK_BLK_MISC_UID_RSTNSYNC_CLK_MISC_OSCCLK_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_ADM_AHB_SSS_IPCLKPORT_HCLKM,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_AD_APB_DIT_IPCLKPORT_PCLKM,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_AD_APB_PUF_IPCLKPORT_PCLKM,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_DIT_IPCLKPORT_ICLKL2A,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_D_TZPC_MISC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_GIC_IPCLKPORT_GICCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_GPC_MISC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AST_ICC_CPUGIC_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_D_SSS_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_GIC_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_MISC_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_ACEL_D_MISC_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AST_IRI_GICCPU_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AXI_D_SSS_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_MCT_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_PDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_DMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_PUF_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSD_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSP_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_GIC_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_SSS_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SPDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_ACLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_MISC_IPCLKPORT_CLK_S2,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_SSS_IPCLKPORT_CLK_S1,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSREG_MISC_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_SUB_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_TOP_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER0_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER1_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_MISC_UID_XIU_D_MISC_IPCLKPORT_ACLK,
	DMYQCH_CON_PPMU_DMA_QCH,
	DMYQCH_CON_PUF_QCH,
	PCH_CON_LHM_AXI_D_SSS_PCH,
	PCH_CON_LHM_AXI_P_GIC_PCH,
	PCH_CON_LHM_AXI_P_MISC_PCH,
	PCH_CON_LHS_ACEL_D_MISC_PCH,
	PCH_CON_LHS_AST_IRI_GICCPU_PCH,
	PCH_CON_LHS_AXI_D_SSS_PCH,
	QCH_CON_ADM_AHB_SSS_QCH,
	QCH_CON_DIT_QCH,
	QCH_CON_GIC_QCH,
	QCH_CON_LHM_AST_ICC_CPUGIC_QCH,
	QCH_CON_LHM_AXI_D_SSS_QCH,
	QCH_CON_LHM_AXI_P_GIC_QCH,
	QCH_CON_LHM_AXI_P_MISC_QCH,
	QCH_CON_LHS_ACEL_D_MISC_QCH,
	QCH_CON_LHS_AST_IRI_GICCPU_QCH,
	QCH_CON_LHS_AXI_D_SSS_QCH,
	QCH_CON_MCT_QCH,
	QCH_CON_MISC_CMU_MISC_QCH,
	QCH_CON_OTP_CON_BIRA_QCH,
	QCH_CON_OTP_CON_BISR_QCH,
	QCH_CON_OTP_CON_TOP_QCH,
	QCH_CON_PDMA_QCH,
	QCH_CON_PPMU_MISC_QCH,
	QCH_CON_QE_DIT_QCH,
	QCH_CON_QE_PDMA_QCH,
	QCH_CON_QE_PPMU_DMA_QCH,
	QCH_CON_QE_RTIC_QCH,
	QCH_CON_QE_SPDMA_QCH,
	QCH_CON_QE_SSS_QCH,
	QCH_CON_RTIC_QCH,
	QCH_CON_SPDMA_QCH,
	QCH_CON_SSMT_DIT_QCH,
	QCH_CON_SSMT_PDMA_QCH,
	QCH_CON_SSMT_PPMU_DMA_QCH,
	QCH_CON_SSMT_RTIC_QCH,
	QCH_CON_SSMT_SPDMA_QCH,
	QCH_CON_SSMT_SSS_QCH,
	QCH_CON_SSS_QCH,
	QCH_CON_SYSMMU_MISC_QCH,
	QCH_CON_SYSMMU_SSS_QCH,
	QCH_CON_SYSREG_MISC_QCH,
	QCH_CON_TMU_SUB_QCH,
	QCH_CON_TMU_TOP_QCH,
	QCH_CON_WDT_CLUSTER0_QCH,
	QCH_CON_WDT_CLUSTER1_QCH,
	QUEUE_CTRL_REG_BLK_MISC_CMU_MISC,
};

 /* List of parent clocks for Muxes in CMU_MISC */
PNAME(mout_misc_bus_user_p)		= { "oscclk", "dout_cmu_misc_bus" };
PNAME(mout_misc_sss_user_p)		= { "oscclk", "dout_cmu_misc_sss" };
PNAME(mout_misc_gic_p)			= { "dout_misc_gic", "oscclk" };

static const struct samsung_mux_clock misc_mux_clks[] __initconst = {
	MUX(CLK_MOUT_MISC_BUS_USER, "mout_misc_bus_user", mout_misc_bus_user_p,
	    PLL_CON0_MUX_CLKCMU_MISC_BUS_USER, 4, 1),
	MUX(CLK_MOUT_MISC_SSS_USER, "mout_misc_sss_user", mout_misc_sss_user_p,
	    PLL_CON0_MUX_CLKCMU_MISC_SSS_USER, 4, 1),
	MUX(CLK_MOUT_MISC_GIC, "mout_misc_gic", mout_misc_gic_p,
	    CLK_CON_MUX_MUX_CLK_MISC_GIC, 0, 0),
};

static const struct samsung_div_clock misc_div_clks[] __initconst = {
	DIV(CLK_DOUT_MISC_BUSP, "dout_misc_busp", "mout_misc_bus_user",
	    CLK_CON_DIV_DIV_CLK_MISC_BUSP, 0, 3),
	DIV(CLK_DOUT_MISC_GIC, "dout_misc_gic", "mout_misc_bus_user",
	    CLK_CON_DIV_DIV_CLK_MISC_GIC, 0, 3),
};

static const struct samsung_gate_clock misc_gate_clks[] __initconst = {
	GATE(CLK_GOUT_MISC_MISC_CMU_MISC_PCLK,
	     "gout_misc_misc_cmu_misc_pclk", "dout_misc_busp",
	     CLK_CON_GAT_CLK_BLK_MISC_UID_MISC_CMU_MISC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_BIRA_I_OSCCLK,
	     "gout_misc_otp_con_bira_i_oscclk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_BISR_I_OSCCLK,
	     "gout_misc_otp_con_bisr_i_oscclk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_I_OSCCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_TOP_I_OSCCLK,
	     "gout_misc_otp_con_top_i_oscclk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_CLK_MISC_OSCCLK_CLK,
	     "gout_misc_clk_misc_oscclk_clk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_MISC_UID_RSTNSYNC_CLK_MISC_OSCCLK_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_ADM_AHB_SSS_HCLKM,
	     "gout_misc_adm_ahb_sss_hclkm", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_ADM_AHB_SSS_IPCLKPORT_HCLKM,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_AD_APB_DIT_PCLKM,
	     "gout_misc_ad_apb_dit_pclkm", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_AD_APB_DIT_IPCLKPORT_PCLKM,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_D_TZPC_MISC_PCLK,
	     "gout_misc_d_tzpc_misc_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_D_TZPC_MISC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_GIC_GICCLK,
	     "gout_misc_gic_gicclk", "mout_misc_gic",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_GIC_IPCLKPORT_GICCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_GPC_MISC_PCLK,
	     "gout_misc_gpc_misc_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_GPC_MISC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHM_AST_ICC_CPUGIC_I_CLK,
	     "gout_misc_lhm_ast_icc_gpugic_i_clk", "mout_misc_gic",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AST_ICC_CPUGIC_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHM_AXI_D_SSS_I_CLK,
	     "gout_misc_lhm_axi_d_sss_i_clk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_D_SSS_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHM_AXI_P_GIC_I_CLK,
	     "gout_misc_lhm_axi_p_gic_i_clk", "mout_misc_gic",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_GIC_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHM_AXI_P_MISC_I_CLK,
	     "gout_misc_lhm_axi_p_misc_i_clk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHM_AXI_P_MISC_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHS_ACEL_D_MISC_I_CLK,
	     "gout_misc_lhs_acel_d_misc_i_clk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_ACEL_D_MISC_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHS_AST_IRI_GICCPU_I_CLK,
	     "gout_misc_lhs_ast_iri_giccpu_i_clk", "mout_misc_gic",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AST_IRI_GICCPU_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_LHS_AXI_D_SSS_I_CLK,
	     "gout_misc_lhs_axi_d_sss_i_clk", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_LHS_AXI_D_SSS_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_MCT_PCLK, "gout_misc_mct_pclk",
	     "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_MCT_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_BIRA_PCLK,
	     "gout_misc_otp_con_bira_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BIRA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_BISR_PCLK,
	     "gout_misc_otp_con_bisr_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_BISR_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_OTP_CON_TOP_PCLK,
	     "gout_misc_otp_con_top_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_OTP_CON_TOP_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_PDMA_ACLK, "gout_misc_pdma_aclk",
	     "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_PDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_PPMU_MISC_ACLK,
	     "gout_misc_ppmu_misc_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_PPMU_MISC_PCLK,
	     "gout_misc_ppmu_misc_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_PPMU_MISC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_PUF_I_CLK,
	     "gout_misc_puf_i_clk", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_PUF_IPCLKPORT_I_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_DIT_ACLK,
	     "gout_misc_qe_dit_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_DIT_PCLK,
	     "gout_misc_qe_dit_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_DIT_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_PDMA_ACLK,
	     "gout_misc_qe_pdma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_PDMA_PCLK,
	     "gout_misc_qe_pdma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PDMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_PPMU_DMA_ACLK,
	     "gout_misc_qe_ppmu_dma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_PPMU_DMA_PCLK,
	     "gout_misc_qe_ppmu_dma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_PPMU_DMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_RTIC_ACLK,
	     "gout_misc_qe_rtic_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_RTIC_PCLK,
	     "gout_misc_qe_rtic_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_RTIC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_SPDMA_ACLK,
	     "gout_misc_qe_spdma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_SPDMA_PCLK,
	     "gout_misc_qe_spdma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SPDMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_SSS_ACLK,
	     "gout_misc_qe_sss_aclk", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_QE_SSS_PCLK,
	     "gout_misc_qe_sss_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_QE_SSS_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_CLK_MISC_BUSD_CLK,
	     "gout_misc_clk_misc_busd_clk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSD_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_CLK_MISC_BUSP_CLK,
	     "gout_misc_clk_misc_busp_clk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_BUSP_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_CLK_MISC_GIC_CLK,
	     "gout_misc_clk_misc_gic_clk", "mout_misc_gic",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_GIC_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_CLK_MISC_SSS_CLK,
	     "gout_misc_clk_misc_sss_clk", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RSTNSYNC_CLK_MISC_SSS_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_RTIC_I_ACLK,
	     "gout_misc_rtic_i_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_RTIC_I_PCLK, "gout_misc_rtic_i_pclk",
	     "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_RTIC_IPCLKPORT_I_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SPDMA_ACLK,
	     "gout_misc_spdma_ipclockport_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SPDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_DIT_ACLK,
	     "gout_misc_ssmt_dit_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_DIT_PCLK,
	     "gout_misc_ssmt_dit_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_DIT_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_PDMA_ACLK,
	     "gout_misc_ssmt_pdma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_PDMA_PCLK,
	     "gout_misc_ssmt_pdma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PDMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_PPMU_DMA_ACLK,
	     "gout_misc_ssmt_ppmu_dma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_PPMU_DMA_PCLK,
	     "gout_misc_ssmt_ppmu_dma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_PPMU_DMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_RTIC_ACLK,
	     "gout_misc_ssmt_rtic_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_RTIC_PCLK,
	     "gout_misc_ssmt_rtic_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_RTIC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_SPDMA_ACLK,
	     "gout_misc_ssmt_spdma_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_SPDMA_PCLK,
	     "gout_misc_ssmt_spdma_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SPDMA_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_SSS_ACLK,
	     "gout_misc_ssmt_sss_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSMT_SSS_PCLK,
	     "gout_misc_ssmt_sss_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSMT_SSS_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSS_I_ACLK,
	     "gout_misc_sss_i_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_ACLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SSS_I_PCLK,
	     "gout_misc_sss_i_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SSS_IPCLKPORT_I_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SYSMMU_MISC_CLK_S2,
	     "gout_misc_sysmmu_misc_clk_s2", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_MISC_IPCLKPORT_CLK_S2,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SYSMMU_SSS_CLK_S1,
	     "gout_misc_sysmmu_sss_clk_s1", "mout_misc_sss_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSMMU_SSS_IPCLKPORT_CLK_S1,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_SYSREG_MISC_PCLK,
	     "gout_misc_sysreg_misc_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_SYSREG_MISC_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_TMU_SUB_PCLK,
	     "gout_misc_tmu_sub_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_SUB_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_TMU_TOP_PCLK,
	     "gout_misc_tmu_top_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_TMU_TOP_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_WDT_CLUSTER0_PCLK,
	     "gout_misc_wdt_cluster0_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER0_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_WDT_CLUSTER1_PCLK,
	     "gout_misc_wdt_cluster1_pclk", "dout_misc_busp",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_WDT_CLUSTER1_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_MISC_XIU_D_MISC_ACLK,
	     "gout_misc_xiu_d_misc_aclk", "mout_misc_bus_user",
	     CLK_CON_GAT_GOUT_BLK_MISC_UID_XIU_D_MISC_IPCLKPORT_ACLK,
	     21, 0, 0),
};

static const struct samsung_cmu_info misc_cmu_info __initconst = {
	.mux_clks		= misc_mux_clks,
	.nr_mux_clks		= ARRAY_SIZE(misc_mux_clks),
	.div_clks		= misc_div_clks,
	.nr_div_clks		= ARRAY_SIZE(misc_div_clks),
	.gate_clks		= misc_gate_clks,
	.nr_gate_clks		= ARRAY_SIZE(misc_gate_clks),
	.nr_clk_ids		= CLKS_NR_MISC,
	.clk_regs		= misc_clk_regs,
	.nr_clk_regs		= ARRAY_SIZE(misc_clk_regs),
	.clk_name		= "bus",
};

static void __init gs101_cmu_misc_init(struct device_node *np)
{
	exynos_arm64_register_cmu(NULL, np, &misc_cmu_info);
}

/* Register CMU_MISC early, as it's needed for MCT timer */
CLK_OF_DECLARE(gs101_cmu_misc, "google,gs101-cmu-misc",
	       gs101_cmu_misc_init);

/* ---- CMU_PERIC0 ---------------------------------------------------------- */

/* Register Offset definitions for CMU_PERIC0 (0x10800000) */
#define PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER		0x0600
#define PLL_CON1_MUX_CLKCMU_PERIC0_BUS_USER		0x0604
#define PLL_CON0_MUX_CLKCMU_PERIC0_I3C_USER		0x0610
#define PLL_CON1_MUX_CLKCMU_PERIC0_I3C_USER		0x0614
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI0_UART_USER	0x0620
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI0_UART_USER	0x0624
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER	0x0640
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI14_USI_USER	0x0644
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI1_USI_USER	0x0650
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI1_USI_USER	0x0654
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI2_USI_USER	0x0660
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI2_USI_USER	0x0664
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI3_USI_USER	0x0670
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI3_USI_USER	0x0674
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI4_USI_USER	0x0680
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI4_USI_USER	0x0684
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI5_USI_USER	0x0690
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI5_USI_USER	0x0694
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI6_USI_USER	0x06a0
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI6_USI_USER	0x06a4
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI7_USI_USER	0x06b0
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI7_USI_USER	0x06b4
#define PLL_CON0_MUX_CLKCMU_PERIC0_USI8_USI_USER	0x06c0
#define PLL_CON1_MUX_CLKCMU_PERIC0_USI8_USI_USER	0x06c4
#define PERIC0_CMU_PERIC0_CONTROLLER_OPTION		0x0800
#define CLKOUT_CON_BLK_PERIC0_CMU_PERIC0_CLKOUT0	0x0810
#define CLK_CON_DIV_DIV_CLK_PERIC0_I3C			0x1800
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI0_UART		0x1804
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI		0x180c
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI1_USI		0x1810
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI2_USI		0x1814
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI3_USI		0x1820
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI		0x1824
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI		0x1828
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI		0x182c
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI		0x1830
#define CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI		0x1834
#define CLK_CON_BUF_CLKBUF_PERIC0_IP			0x2000
#define CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK			0x2004
#define CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK		0x2008
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK			0x200c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPC_PERIC0_IPCLKPORT_PCLK			0x2010
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK			0x2014
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK		0x2018
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0			0x201c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1			0x2020
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10			0x2024
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11			0x2028
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12			0x202c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13			0x2030
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14			0x2034
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15			0x2038
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2			0x203c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3			0x2040
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4			0x2044
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5			0x2048
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6			0x204c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7			0x2050
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8			0x2054
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9			0x2058
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0			0x205c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1			0x2060
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10			0x2064
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11			0x2068
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12			0x206c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13			0x2070
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14			0x2074
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15			0x2078
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2			0x207c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3			0x2080
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4			0x2084
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5			0x2088
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6			0x208c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7			0x2090
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8			0x2094
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9			0x2098
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0			0x209c
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_2			0x20a4
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0			0x20a8
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_2			0x20b0
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK		0x20b4
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_I3C_IPCLKPORT_CLK		0x20b8
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI0_UART_IPCLKPORT_CLK	0x20bc
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK	0x20c4
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI1_USI_IPCLKPORT_CLK	0x20c8
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI2_USI_IPCLKPORT_CLK	0x20cc
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI3_USI_IPCLKPORT_CLK	0x20d0
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI4_USI_IPCLKPORT_CLK	0x20d4
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI5_USI_IPCLKPORT_CLK	0x20d8
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI6_USI_IPCLKPORT_CLK	0x20dc
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI7_USI_IPCLKPORT_CLK	0x20e0
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI8_USI_IPCLKPORT_CLK	0x20e4
#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK			0x20e8
#define DMYQCH_CON_PERIC0_TOP0_QCH_S1			0x3000
#define DMYQCH_CON_PERIC0_TOP0_QCH_S2			0x3004
#define DMYQCH_CON_PERIC0_TOP0_QCH_S3			0x3008
#define DMYQCH_CON_PERIC0_TOP0_QCH_S4			0x300c
#define DMYQCH_CON_PERIC0_TOP0_QCH_S5			0x3010
#define DMYQCH_CON_PERIC0_TOP0_QCH_S6			0x3014
#define DMYQCH_CON_PERIC0_TOP0_QCH_S7			0x3018
#define DMYQCH_CON_PERIC0_TOP0_QCH_S8			0x301c
#define PCH_CON_LHM_AXI_P_PERIC0_PCH			0x3020
#define QCH_CON_D_TZPC_PERIC0_QCH			0x3024
#define QCH_CON_GPC_PERIC0_QCH				0x3028
#define QCH_CON_GPIO_PERIC0_QCH				0x302c
#define QCH_CON_LHM_AXI_P_PERIC0_QCH			0x3030
#define QCH_CON_PERIC0_CMU_PERIC0_QCH			0x3034
#define QCH_CON_PERIC0_TOP0_QCH_I3C1			0x3038
#define QCH_CON_PERIC0_TOP0_QCH_I3C2			0x303c
#define QCH_CON_PERIC0_TOP0_QCH_I3C3			0x3040
#define QCH_CON_PERIC0_TOP0_QCH_I3C4			0x3044
#define QCH_CON_PERIC0_TOP0_QCH_I3C5			0x3048
#define QCH_CON_PERIC0_TOP0_QCH_I3C6			0x304c
#define QCH_CON_PERIC0_TOP0_QCH_I3C7			0x3050
#define QCH_CON_PERIC0_TOP0_QCH_I3C8			0x3054
#define QCH_CON_PERIC0_TOP0_QCH_USI1_USI		0x3058
#define QCH_CON_PERIC0_TOP0_QCH_USI2_USI		0x305c
#define QCH_CON_PERIC0_TOP0_QCH_USI3_USI		0x3060
#define QCH_CON_PERIC0_TOP0_QCH_USI4_USI		0x3064
#define QCH_CON_PERIC0_TOP0_QCH_USI5_USI		0x3068
#define QCH_CON_PERIC0_TOP0_QCH_USI6_USI		0x306c
#define QCH_CON_PERIC0_TOP0_QCH_USI7_USI		0x3070
#define QCH_CON_PERIC0_TOP0_QCH_USI8_USI		0x3074
#define QCH_CON_PERIC0_TOP1_QCH_USI0_UART		0x3078
#define QCH_CON_PERIC0_TOP1_QCH_USI14_UART		0x307c
#define QCH_CON_SYSREG_PERIC0_QCH			0x3080
#define QUEUE_CTRL_REG_BLK_PERIC0_CMU_PERIC0		0x3c00

static const unsigned long peric0_clk_regs[] __initconst = {
	PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_BUS_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_I3C_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_I3C_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI0_UART_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI0_UART_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI14_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI1_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI1_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI2_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI2_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI3_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI3_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI4_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI4_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI5_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI5_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI6_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI6_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI7_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI7_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC0_USI8_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC0_USI8_USI_USER,
	PERIC0_CMU_PERIC0_CONTROLLER_OPTION,
	CLKOUT_CON_BLK_PERIC0_CMU_PERIC0_CLKOUT0,
	CLK_CON_DIV_DIV_CLK_PERIC0_I3C,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI0_UART,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI1_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI2_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI3_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI,
	CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI,
	CLK_CON_BUF_CLKBUF_PERIC0_IP,
	CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK,
	CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPC_PERIC0_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_I3C_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI0_UART_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI1_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI2_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI3_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI4_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI5_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI6_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI7_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI8_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK,
	DMYQCH_CON_PERIC0_TOP0_QCH_S1,
	DMYQCH_CON_PERIC0_TOP0_QCH_S2,
	DMYQCH_CON_PERIC0_TOP0_QCH_S3,
	DMYQCH_CON_PERIC0_TOP0_QCH_S4,
	DMYQCH_CON_PERIC0_TOP0_QCH_S5,
	DMYQCH_CON_PERIC0_TOP0_QCH_S6,
	DMYQCH_CON_PERIC0_TOP0_QCH_S7,
	DMYQCH_CON_PERIC0_TOP0_QCH_S8,
	PCH_CON_LHM_AXI_P_PERIC0_PCH,
	QCH_CON_D_TZPC_PERIC0_QCH,
	QCH_CON_GPC_PERIC0_QCH,
	QCH_CON_GPIO_PERIC0_QCH,
	QCH_CON_LHM_AXI_P_PERIC0_QCH,
	QCH_CON_PERIC0_CMU_PERIC0_QCH,
	QCH_CON_PERIC0_TOP0_QCH_I3C1,
	QCH_CON_PERIC0_TOP0_QCH_I3C2,
	QCH_CON_PERIC0_TOP0_QCH_I3C3,
	QCH_CON_PERIC0_TOP0_QCH_I3C4,
	QCH_CON_PERIC0_TOP0_QCH_I3C5,
	QCH_CON_PERIC0_TOP0_QCH_I3C6,
	QCH_CON_PERIC0_TOP0_QCH_I3C7,
	QCH_CON_PERIC0_TOP0_QCH_I3C8,
	QCH_CON_PERIC0_TOP0_QCH_USI1_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI2_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI3_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI4_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI5_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI6_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI7_USI,
	QCH_CON_PERIC0_TOP0_QCH_USI8_USI,
	QCH_CON_PERIC0_TOP1_QCH_USI0_UART,
	QCH_CON_PERIC0_TOP1_QCH_USI14_UART,
	QCH_CON_SYSREG_PERIC0_QCH,
	QUEUE_CTRL_REG_BLK_PERIC0_CMU_PERIC0,
};

/* List of parent clocks for Muxes in CMU_PERIC0 */
PNAME(mout_peric0_bus_user_p)		= { "oscclk", "dout_cmu_peric0_bus" };
PNAME(mout_peric0_i3c_user_p)		= { "oscclk", "dout_cmu_peric0_ip" };
PNAME(mout_peric0_usi0_uart_user_p)	= { "oscclk", "dout_cmu_peric0_ip" };
PNAME(mout_peric0_usi_usi_user_p)	= { "oscclk", "dout_cmu_peric0_ip" };

static const struct samsung_mux_clock peric0_mux_clks[] __initconst = {
	MUX(CLK_MOUT_PERIC0_BUS_USER, "mout_peric0_bus_user",
	    mout_peric0_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_I3C_USER, "mout_peric0_i3c_user",
	    mout_peric0_i3c_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_I3C_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI0_UART_USER,
	    "mout_peric0_usi0_uart_user", mout_peric0_usi0_uart_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI0_UART_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI14_USI_USER,
	    "mout_peric0_usi14_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI1_USI_USER,
	    "mout_peric0_usi1_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI1_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI2_USI_USER,
	    "mout_peric0_usi2_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI2_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI3_USI_USER,
	    "mout_peric0_usi3_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI3_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI4_USI_USER,
	    "mout_peric0_usi4_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI4_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI5_USI_USER,
	    "mout_peric0_usi5_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI5_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI6_USI_USER,
	    "mout_peric0_usi6_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI6_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI7_USI_USER,
	    "mout_peric0_usi7_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI7_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC0_USI8_USI_USER,
	    "mout_peric0_usi8_usi_user", mout_peric0_usi_usi_user_p,
	    PLL_CON0_MUX_CLKCMU_PERIC0_USI8_USI_USER, 4, 1),
};

static const struct samsung_div_clock peric0_div_clks[] __initconst = {
	DIV(CLK_DOUT_PERIC0_I3C, "dout_peric0_i3c", "mout_peric0_i3c_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_I3C, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI0_UART,
	    "dout_peric0_usi0_uart", "mout_peric0_usi0_uart_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI0_UART, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI14_USI,
	    "dout_peric0_usi14_usi", "mout_peric0_usi14_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI1_USI,
	    "dout_peric0_usi1_usi", "mout_peric0_usi1_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI1_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI2_USI,
	    "dout_peric0_usi2_usi", "mout_peric0_usi2_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI2_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI3_USI,
	    "dout_peric0_usi3_usi", "mout_peric0_usi3_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI3_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI4_USI,
	    "dout_peric0_usi4_usi", "mout_peric0_usi4_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI5_USI,
	    "dout_peric0_usi5_usi", "mout_peric0_usi5_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI6_USI,
	    "dout_peric0_usi6_usi", "mout_peric0_usi6_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI7_USI,
	    "dout_peric0_usi7_usi", "mout_peric0_usi7_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI, 0, 4),
	DIV(CLK_DOUT_PERIC0_USI8_USI,
	    "dout_peric0_usi8_usi", "mout_peric0_usi8_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI, 0, 4),
};

static const struct samsung_gate_clock peric0_gate_clks[] __initconst = {
	/* Disabling this clock makes the system hang. Mark the clock as critical. */
	GATE(CLK_GOUT_PERIC0_PERIC0_CMU_PERIC0_PCLK,
	     "gout_peric0_peric0_cmu_peric0_pclk", "mout_peric0_bus_user",
	     CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_OSCCLK_CLK,
	     "gout_peric0_clk_peric0_oscclk_clk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_D_TZPC_PERIC0_PCLK,
	     "gout_peric0_d_tzpc_peric0_pclk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_GPC_PERIC0_PCLK,
	     "gout_peric0_gpc_peric0_pclk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPC_PERIC0_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_GPIO_PERIC0_PCLK,
	     "gout_peric0_gpio_peric0_pclk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK,
	     21, CLK_IGNORE_UNUSED, 0),
	/* Disabling this clock makes the system hang. Mark the clock as critical. */
	GATE(CLK_GOUT_PERIC0_LHM_AXI_P_PERIC0_I_CLK,
	     "gout_peric0_lhm_axi_p_peric0_i_clk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0,
	     "gout_peric0_peric0_top0_ipclk_0", "dout_peric0_usi1_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1,
	     "gout_peric0_peric0_top0_ipclk_1", "dout_peric0_usi2_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_10,
	     "gout_peric0_peric0_top0_ipclk_10", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_11,
	     "gout_peric0_peric0_top0_ipclk_11", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_12,
	     "gout_peric0_peric0_top0_ipclk_12", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_13,
	     "gout_peric0_peric0_top0_ipclk_13", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_14,
	     "gout_peric0_peric0_top0_ipclk_14", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_15,
	     "gout_peric0_peric0_top0_ipclk_15", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2,
	     "gout_peric0_peric0_top0_ipclk_2", "dout_peric0_usi3_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3,
	     "gout_peric0_peric0_top0_ipclk_3", "dout_peric0_usi4_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4,
	     "gout_peric0_peric0_top0_ipclk_4", "dout_peric0_usi5_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5,
	     "gout_peric0_peric0_top0_ipclk_5", "dout_peric0_usi6_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6,
	     "gout_peric0_peric0_top0_ipclk_6", "dout_peric0_usi7_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7,
	     "gout_peric0_peric0_top0_ipclk_7", "dout_peric0_usi8_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_8,
	     "gout_peric0_peric0_top0_ipclk_8", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_9,
	     "gout_peric0_peric0_top0_ipclk_9", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0,
	     "gout_peric0_peric0_top0_pclk_0", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1,
	     "gout_peric0_peric0_top0_pclk_1", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_10,
	     "gout_peric0_peric0_top0_pclk_10", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_11,
	     "gout_peric0_peric0_top0_pclk_11", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_12,
	     "gout_peric0_peric0_top0_pclk_12", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_13,
	     "gout_peric0_peric0_top0_pclk_13", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_14,
	     "gout_peric0_peric0_top0_pclk_14", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_15,
	     "gout_peric0_peric0_top0_pclk_15", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2,
	     "gout_peric0_peric0_top0_pclk_2", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3,
	     "gout_peric0_peric0_top0_pclk_3", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4,
	     "gout_peric0_peric0_top0_pclk_4", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5,
	     "gout_peric0_peric0_top0_pclk_5", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6,
	     "gout_peric0_peric0_top0_pclk_6", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7,
	     "gout_peric0_peric0_top0_pclk_7", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_8,
	     "gout_peric0_peric0_top0_pclk_8", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_9,
	     "gout_peric0_peric0_top0_pclk_9", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9,
	     21, 0, 0),
	/* Disabling this clock makes the system hang. Mark the clock as critical. */
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0,
	     "gout_peric0_peric0_top1_ipclk_0", "dout_peric0_usi0_uart",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2,
	     "gout_peric0_peric0_top1_ipclk_2", "dout_peric0_usi14_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_2,
	     21, 0, 0),
	/* Disabling this clock makes the system hang. Mark the clock as critical. */
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0,
	     "gout_peric0_peric0_top1_pclk_0", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2,
	     "gout_peric0_peric0_top1_pclk_2", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_2,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_BUSP_CLK,
	     "gout_peric0_clk_peric0_busp_clk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_I3C_CLK,
	     "gout_peric0_clk_peric0_i3c_clk", "dout_peric0_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_I3C_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI0_UART_CLK,
	     "gout_peric0_clk_peric0_usi0_uart_clk", "dout_peric0_usi0_uart",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI0_UART_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI14_USI_CLK,
	     "gout_peric0_clk_peric0_usi14_usi_clk", "dout_peric0_usi14_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI1_USI_CLK,
	     "gout_peric0_clk_peric0_usi1_usi_clk", "dout_peric0_usi1_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI1_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI2_USI_CLK,
	     "gout_peric0_clk_peric0_usi2_usi_clk", "dout_peric0_usi2_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI2_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI3_USI_CLK,
	     "gout_peric0_clk_peric0_usi3_usi_clk", "dout_peric0_usi3_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI3_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI4_USI_CLK,
	     "gout_peric0_clk_peric0_usi4_usi_clk", "dout_peric0_usi4_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI4_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI5_USI_CLK,
	     "gout_peric0_clk_peric0_usi5_usi_clk", "dout_peric0_usi5_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI5_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI6_USI_CLK,
	     "gout_peric0_clk_peric0_usi6_usi_clk", "dout_peric0_usi6_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI6_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI7_USI_CLK,
	     "gout_peric0_clk_peric0_usi7_usi_clk", "dout_peric0_usi7_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI7_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_CLK_PERIC0_USI8_USI_CLK,
	     "gout_peric0_clk_peric0_usi8_usi_clk", "dout_peric0_usi8_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI8_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC0_SYSREG_PERIC0_PCLK,
	     "gout_peric0_sysreg_peric0_pclk", "mout_peric0_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK,
	     21, 0, 0),
};

static const struct samsung_cmu_info peric0_cmu_info __initconst = {
	.mux_clks		= peric0_mux_clks,
	.nr_mux_clks		= ARRAY_SIZE(peric0_mux_clks),
	.div_clks		= peric0_div_clks,
	.nr_div_clks		= ARRAY_SIZE(peric0_div_clks),
	.gate_clks		= peric0_gate_clks,
	.nr_gate_clks		= ARRAY_SIZE(peric0_gate_clks),
	.nr_clk_ids		= CLKS_NR_PERIC0,
	.clk_regs		= peric0_clk_regs,
	.nr_clk_regs		= ARRAY_SIZE(peric0_clk_regs),
	.clk_name		= "bus",
};

/* ---- CMU_PERIC1 ---------------------------------------------------------- */

/* Register Offset definitions for CMU_PERIC1 (0x10c00000) */
#define PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER						0x0600
#define PLL_CON1_MUX_CLKCMU_PERIC1_BUS_USER						0x0604
#define PLL_CON0_MUX_CLKCMU_PERIC1_I3C_USER						0x0610
#define PLL_CON1_MUX_CLKCMU_PERIC1_I3C_USER						0x0614
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI0_USI_USER					0x0620
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI0_USI_USER					0x0624
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER					0x0630
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI10_USI_USER					0x0634
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER					0x0640
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI11_USI_USER					0x0644
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER					0x0650
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI12_USI_USER					0x0654
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI13_USI_USER					0x0660
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI13_USI_USER					0x0664
#define PLL_CON0_MUX_CLKCMU_PERIC1_USI9_USI_USER					0x0670
#define PLL_CON1_MUX_CLKCMU_PERIC1_USI9_USI_USER					0x0674
#define PERIC1_CMU_PERIC1_CONTROLLER_OPTION						0x0800
#define CLKOUT_CON_BLK_PERIC1_CMU_PERIC1_CLKOUT0					0x0810
#define CLK_CON_DIV_DIV_CLK_PERIC1_I3C							0x1800
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI0_USI						0x1804
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI						0x1808
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI						0x180c
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI						0x1810
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI13_USI						0x1814
#define CLK_CON_DIV_DIV_CLK_PERIC1_USI9_USI						0x1818
#define CLK_CON_BUF_CLKBUF_PERIC1_IP							0x2000
#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK			0x2004
#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_I3C_IPCLKPORT_CLK		0x2008
#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK		0x200c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK			0x2010
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPC_PERIC1_IPCLKPORT_PCLK			0x2014
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK			0x2018
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK		0x201c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1			0x2020
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2			0x2024
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3			0x2028
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4			0x202c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5			0x2030
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6			0x2034
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8			0x2038
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1			0x203c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15			0x2040
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2			0x2044
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3			0x2048
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4			0x204c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5			0x2050
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6			0x2054
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8			0x2058
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK		0x205c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI0_USI_IPCLKPORT_CLK	0x2060
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK	0x2064
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK	0x2068
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK	0x206c
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI13_USI_IPCLKPORT_CLK	0x2070
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI9_USI_IPCLKPORT_CLK	0x2074
#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK			0x2078
#define DMYQCH_CON_PERIC1_TOP0_QCH_S							0x3000
#define PCH_CON_LHM_AXI_P_PERIC1_PCH							0x3004
#define QCH_CON_D_TZPC_PERIC1_QCH							0x3008
#define QCH_CON_GPC_PERIC1_QCH								0x300c
#define QCH_CON_GPIO_PERIC1_QCH								0x3010
#define QCH_CON_LHM_AXI_P_PERIC1_QCH							0x3014
#define QCH_CON_PERIC1_CMU_PERIC1_QCH							0x3018
#define QCH_CON_PERIC1_TOP0_QCH_I3C0							0x301c
#define QCH_CON_PERIC1_TOP0_QCH_PWM							0x3020
#define QCH_CON_PERIC1_TOP0_QCH_USI0_USI						0x3024
#define QCH_CON_PERIC1_TOP0_QCH_USI10_USI						0x3028
#define QCH_CON_PERIC1_TOP0_QCH_USI11_USI						0x302c
#define QCH_CON_PERIC1_TOP0_QCH_USI12_USI						0x3030
#define QCH_CON_PERIC1_TOP0_QCH_USI13_USI						0x3034
#define QCH_CON_PERIC1_TOP0_QCH_USI9_USI						0x3038
#define QCH_CON_SYSREG_PERIC1_QCH							0x303c
#define QUEUE_CTRL_REG_BLK_PERIC1_CMU_PERIC1						0x3c00

static const unsigned long peric1_clk_regs[] __initconst = {
	PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_BUS_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_I3C_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_I3C_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI0_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI0_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI10_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI11_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI12_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI13_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI13_USI_USER,
	PLL_CON0_MUX_CLKCMU_PERIC1_USI9_USI_USER,
	PLL_CON1_MUX_CLKCMU_PERIC1_USI9_USI_USER,
	PERIC1_CMU_PERIC1_CONTROLLER_OPTION,
	CLKOUT_CON_BLK_PERIC1_CMU_PERIC1_CLKOUT0,
	CLK_CON_DIV_DIV_CLK_PERIC1_I3C,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI0_USI,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI13_USI,
	CLK_CON_DIV_DIV_CLK_PERIC1_USI9_USI,
	CLK_CON_BUF_CLKBUF_PERIC1_IP,
	CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK,
	CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_I3C_IPCLKPORT_CLK,
	CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPC_PERIC1_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI0_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI13_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI9_USI_IPCLKPORT_CLK,
	CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK,
	DMYQCH_CON_PERIC1_TOP0_QCH_S,
	PCH_CON_LHM_AXI_P_PERIC1_PCH,
	QCH_CON_D_TZPC_PERIC1_QCH,
	QCH_CON_GPC_PERIC1_QCH,
	QCH_CON_GPIO_PERIC1_QCH,
	QCH_CON_LHM_AXI_P_PERIC1_QCH,
	QCH_CON_PERIC1_CMU_PERIC1_QCH,
	QCH_CON_PERIC1_TOP0_QCH_I3C0,
	QCH_CON_PERIC1_TOP0_QCH_PWM,
	QCH_CON_PERIC1_TOP0_QCH_USI0_USI,
	QCH_CON_PERIC1_TOP0_QCH_USI10_USI,
	QCH_CON_PERIC1_TOP0_QCH_USI11_USI,
	QCH_CON_PERIC1_TOP0_QCH_USI12_USI,
	QCH_CON_PERIC1_TOP0_QCH_USI13_USI,
	QCH_CON_PERIC1_TOP0_QCH_USI9_USI,
	QCH_CON_SYSREG_PERIC1_QCH,
	QUEUE_CTRL_REG_BLK_PERIC1_CMU_PERIC1,
};

/* List of parent clocks for Muxes in CMU_PERIC1 */
PNAME(mout_peric1_bus_user_p)		= { "oscclk", "dout_cmu_peric1_bus" };
PNAME(mout_peric1_nonbususer_p)		= { "oscclk", "dout_cmu_peric1_ip" };

static const struct samsung_mux_clock peric1_mux_clks[] __initconst = {
	MUX(CLK_MOUT_PERIC1_BUS_USER, "mout_peric1_bus_user",
	    mout_peric1_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_I3C_USER,
	    "mout_peric1_i3c_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_I3C_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI0_USI_USER,
	    "mout_peric1_usi0_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI0_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI10_USI_USER,
	    "mout_peric1_usi10_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI11_USI_USER,
	    "mout_peric1_usi11_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI12_USI_USER,
	    "mout_peric1_usi12_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI13_USI_USER,
	    "mout_peric1_usi13_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI13_USI_USER, 4, 1),
	MUX(CLK_MOUT_PERIC1_USI9_USI_USER,
	    "mout_peric1_usi9_usi_user", mout_peric1_nonbususer_p,
	    PLL_CON0_MUX_CLKCMU_PERIC1_USI9_USI_USER, 4, 1),
};

static const struct samsung_div_clock peric1_div_clks[] __initconst = {
	DIV(CLK_DOUT_PERIC1_I3C, "dout_peric1_i3c", "mout_peric1_i3c_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_I3C, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI0_USI,
	    "dout_peric1_usi0_usi", "mout_peric1_usi0_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI0_USI, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI10_USI,
	    "dout_peric1_usi10_usi", "mout_peric1_usi10_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI11_USI,
	    "dout_peric1_usi11_usi", "mout_peric1_usi11_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI12_USI,
	    "dout_peric1_usi12_usi", "mout_peric1_usi12_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI13_USI,
	    "dout_peric1_usi13_usi", "mout_peric1_usi13_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI13_USI, 0, 4),
	DIV(CLK_DOUT_PERIC1_USI9_USI,
	    "dout_peric1_usi9_usi", "mout_peric1_usi9_usi_user",
	    CLK_CON_DIV_DIV_CLK_PERIC1_USI9_USI, 0, 4),
};

static const struct samsung_gate_clock peric1_gate_clks[] __initconst = {
	GATE(CLK_GOUT_PERIC1_PCLK,
	     "gout_peric1_peric1_pclk", "mout_peric1_bus_user",
	     CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_I3C_CLK,
	     "gout_peric1_clk_peric1_i3c_clk", "dout_peric1_i3c",
	     CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_I3C_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_OSCCLK_CLK,
	     "gout_peric1_clk_peric1_oscclk_clk", "oscclk",
	     CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_D_TZPC_PERIC1_PCLK,
	     "gout_peric1_d_tzpc_peric1_pclk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_GPC_PERIC1_PCLK,
	     "gout_peric1_gpc_peric1_pclk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPC_PERIC1_IPCLKPORT_PCLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_GPIO_PERIC1_PCLK,
	     "gout_peric1_gpio_peric1_pclk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK,
	     21, CLK_IGNORE_UNUSED, 0),
	GATE(CLK_GOUT_PERIC1_LHM_AXI_P_PERIC1_I_CLK,
	     "gout_peric1_lhm_axi_p_peric1_i_clk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK,
	     21, CLK_IS_CRITICAL, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1,
	     "gout_peric1_peric1_top0_ipclk_1", "dout_peric1_usi0_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2,
	     "gout_peric1_peric1_top0_ipclk_2", "dout_peric1_usi9_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3,
	     "gout_peric1_peric1_top0_ipclk_3", "dout_peric1_usi10_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4,
	     "gout_peric1_peric1_top0_ipclk_4", "dout_peric1_usi11_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5,
	     "gout_peric1_peric1_top0_ipclk_5", "dout_peric1_usi12_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6,
	     "gout_peric1_peric1_top0_ipclk_6", "dout_peric1_usi13_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_8,
	     "gout_peric1_peric1_top0_ipclk_8", "dout_peric1_i3c",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1,
	     "gout_peric1_peric1_top0_pclk_1", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_15,
	     "gout_peric1_peric1_top0_pclk_15", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2,
	     "gout_peric1_peric1_top0_pclk_2", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3,
	     "gout_peric1_peric1_top0_pclk_3", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4,
	     "gout_peric1_peric1_top0_pclk_4", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5,
	     "gout_peric1_peric1_top0_pclk_5", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6,
	     "gout_peric1_peric1_top0_pclk_6", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_8,
	     "gout_peric1_peric1_top0_pclk_8", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_BUSP_CLK,
	     "gout_peric1_clk_peric1_busp_clk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI0_USI_CLK,
	     "gout_peric1_clk_peric1_usi0_usi_clk", "dout_peric1_usi0_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI0_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI10_USI_CLK,
	     "gout_peric1_clk_peric1_usi10_usi_clk", "dout_peric1_usi10_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI11_USI_CLK,
	     "gout_peric1_clk_peric1_usi11_usi_clk", "dout_peric1_usi11_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI12_USI_CLK,
	     "gout_peric1_clk_peric1_usi12_usi_clk", "dout_peric1_usi12_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI13_USI_CLK,
	     "gout_peric1_clk_peric1_usi13_usi_clk", "dout_peric1_usi13_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI13_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_CLK_PERIC1_USI9_USI_CLK,
	     "gout_peric1_clk_peric1_usi9_usi_clk", "dout_peric1_usi9_usi",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI9_USI_IPCLKPORT_CLK,
	     21, 0, 0),
	GATE(CLK_GOUT_PERIC1_SYSREG_PERIC1_PCLK,
	     "gout_peric1_sysreg_peric1_pclk", "mout_peric1_bus_user",
	     CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK,
	     21, 0, 0),
};

static const struct samsung_cmu_info peric1_cmu_info __initconst = {
	.mux_clks		= peric1_mux_clks,
	.nr_mux_clks		= ARRAY_SIZE(peric1_mux_clks),
	.div_clks		= peric1_div_clks,
	.nr_div_clks		= ARRAY_SIZE(peric1_div_clks),
	.gate_clks		= peric1_gate_clks,
	.nr_gate_clks		= ARRAY_SIZE(peric1_gate_clks),
	.nr_clk_ids		= CLKS_NR_PERIC1,
	.clk_regs		= peric1_clk_regs,
	.nr_clk_regs		= ARRAY_SIZE(peric1_clk_regs),
	.clk_name		= "bus",
};

/* ---- platform_driver ----------------------------------------------------- */

static int __init gs101_cmu_probe(struct platform_device *pdev)
{
	const struct samsung_cmu_info *info;
	struct device *dev = &pdev->dev;

	info = of_device_get_match_data(dev);
	exynos_arm64_register_cmu(dev, dev->of_node, info);

	return 0;
}

static const struct of_device_id gs101_cmu_of_match[] = {
	{
		.compatible = "google,gs101-cmu-apm",
		.data = &apm_cmu_info,
	}, {
		.compatible = "google,gs101-cmu-peric0",
		.data = &peric0_cmu_info,
	}, {
		.compatible = "google,gs101-cmu-peric1",
		.data = &peric1_cmu_info,
	}, {
	},
};

static struct platform_driver gs101_cmu_driver __refdata = {
	.driver	= {
		.name = "gs101-cmu",
		.of_match_table = gs101_cmu_of_match,
		.suppress_bind_attrs = true,
	},
	.probe = gs101_cmu_probe,
};

static int __init gs101_cmu_init(void)
{
	return platform_driver_register(&gs101_cmu_driver);
}
core_initcall(gs101_cmu_init);
