[PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver

Ivaylo Ivanov posted 5 patches 2 weeks, 4 days ago
[PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Ivaylo Ivanov 2 weeks, 4 days ago
Introduce a clocks management driver for exynos8890, providing clocks
for the peripherals of that SoC.

As exynos8890 is the first SoC to have HWACG, it differs a bit from the
newer SoCs. Q-channel and Q-state bits are separate registers, unlike
the CLK_CON_GAT_* ones that feature HWACG bits in the same register
that controls manual gating. Hence, don't use the clk-exynos-arm64
helper, but implement logic that enforces manual gating according to
how HWACG is implemented here.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
---
 drivers/clk/samsung/Makefile         |    1 +
 drivers/clk/samsung/clk-exynos8890.c | 8695 ++++++++++++++++++++++++++
 2 files changed, 8696 insertions(+)
 create mode 100644 drivers/clk/samsung/clk-exynos8890.c

diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
index b77fe288e..982dc7c64 100644
--- a/drivers/clk/samsung/Makefile
+++ b/drivers/clk/samsung/Makefile
@@ -22,6 +22,7 @@ obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7870.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7885.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos850.o
+obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8890.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8895.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos990.o
 obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov9.o
diff --git a/drivers/clk/samsung/clk-exynos8890.c b/drivers/clk/samsung/clk-exynos8890.c
new file mode 100644
index 000000000..670587bae
--- /dev/null
+++ b/drivers/clk/samsung/clk-exynos8890.c
@@ -0,0 +1,8695 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2025 Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ * Author: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
+ *
+ * Common Clock Framework support for Exynos8890 SoC.
+ */
+
+#include <linux/clk-provider.h>
+#include <linux/mod_devicetable.h>
+#include <linux/of_address.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+
+#include <dt-bindings/clock/samsung,exynos8890-cmu.h>
+
+#include "clk.h"
+
+/* NOTE: Must be equal to the last clock ID increased by one */
+#define TOP_NR_CLK	(CLK_GOUT_TOP_SCLK_PROMISE_DISP + 1)
+#define PERIS_NR_CLK	(CLK_GOUT_PERIS_SCLK_PROMISE_PERIS + 1)
+#define APOLLO_NR_CLK	(CLK_GOUT_APOLLO_SCLK_PROMISE_APOLLO + 1)
+#define AUD_NR_CLK	(CLK_GOUT_AUD_SCLK_I2S_BCLK + 1)
+#define BUS0_NR_CLK	(CLK_GOUT_BUS0_ACLK_TREX_P_BUS0 + 1)
+#define BUS1_NR_CLK	(CLK_GOUT_BUS1_ACLK_TREX_P_BUS1 + 1)
+#define CCORE_NR_CLK	(CLK_GOUT_CCORE_SCLK_PROMISE + 1)
+#define DISP0_NR_CLK	(CLK_GOUT_DISP0_OSCCLK_DP_I_CLK_24M + 1)
+#define DISP1_NR_CLK	(CLK_GOUT_DISP1_SCLK_PROMISE_DISP1 + 1)
+#define FSYS0_NR_CLK	(CLK_GOUT_FSYS0_SCLK_USBHOST20_REF_CLK + 1)
+#define FSYS1_NR_CLK	(CLK_GOUT_FSYS1_SCLK_PROMISE_FSYS1 + 1)
+#define G3D_NR_CLK	(CLK_GOUT_G3D_SCLK_ASYNCAXI_G3D + 1)
+#define MIF0_NR_CLK	(CLK_GOUT_MIF0_RCLK_DREX + 1)
+#define MIF1_NR_CLK	(CLK_GOUT_MIF1_RCLK_DREX + 1)
+#define MIF2_NR_CLK	(CLK_GOUT_MIF2_RCLK_DREX + 1)
+#define MIF3_NR_CLK	(CLK_GOUT_MIF3_RCLK_DREX + 1)
+#define MNGS_NR_CLK	(CLK_GOUT_MNGS_SCLK_PROMISE0_MNGS + 1)
+#define PERIC0_NR_CLK	(CLK_GOUT_PERIC0_SCLK_PWM + 1)
+#define PERIC1_NR_CLK	(CLK_GOUT_PERIC1_SCLK_UART5 + 1)
+
+/*
+ * As exynos8890 first introduced hwacg, cmu registers are mapped similarly
+ * to exynos7, with the exception of the new q-state and q-ch registers that
+ * can set the behavior of automatic gates.
+ */
+
+/* decoded magic number from downstream */
+#define QCH_EN_MASK		BIT(0)
+#define QCH_MASK		(GENMASK(19, 16) | BIT(12))
+#define QCH_DIS			(QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))
+
+/* q-channel registers offsets range */
+#define QCH_OFF_START		0x2000
+#define QCH_OFF_END		0x23ff
+
+/* q-state registers offsets range */
+#define QSTATE_OFF_START	0x2400
+#define QSTATE_OFF_END		0x2fff
+
+/* check if the register offset is a QCH register */
+static bool is_qch_reg(unsigned long off)
+{
+	return off >= QCH_OFF_START && off <= QCH_OFF_END;
+}
+
+/* check if the register offset is a QSTATE register */
+static bool is_qstate_reg(unsigned long off)
+{
+	return off >= QSTATE_OFF_START && off <= QSTATE_OFF_END;
+}
+
+static void __init exynos8890_init_clocks(struct device_node *np,
+					  const struct samsung_cmu_info *cmu)
+{
+	const unsigned long *reg_offs = cmu->clk_regs;
+	size_t reg_offs_len = cmu->nr_clk_regs;
+	void __iomem *reg_base;
+	size_t i;
+
+	reg_base = of_iomap(np, 0);
+	if (!reg_base)
+		panic("%s: failed to map registers\n", __func__);
+
+	for (i = 0; i < reg_offs_len; ++i) {
+		void __iomem *reg = reg_base + reg_offs[i];
+		u32 val;
+
+		if (is_qch_reg(reg_offs[i])) {
+			val = QCH_DIS;
+			writel(val, reg);
+		} else if (is_qstate_reg(reg_offs[i])) {
+			val = 0;
+			writel(val, reg);
+		}
+	}
+
+	iounmap(reg_base);
+}
+
+/* ---- CMU_TOP ------------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_TOP (0x10570000) */
+#define BUS0_PLL_LOCK						0x0000
+#define BUS1_PLL_LOCK						0x0020
+#define BUS2_PLL_LOCK						0x0040
+#define BUS3_PLL_LOCK						0x0060
+#define MFC_PLL_LOCK						0x0080
+#define ISP_PLL_LOCK						0x00A0
+#define AUD_PLL_LOCK						0x00C0
+#define G3D_PLL_LOCK						0x00E0
+#define BUS0_PLL_CON0						0x0100
+#define BUS0_PLL_CON1						0x0104
+#define BUS0_PLL_FREQ_DET					0x010C
+#define BUS1_PLL_CON0						0x0120
+#define BUS1_PLL_CON1						0x0124
+#define BUS1_PLL_FREQ_DET					0x012C
+#define BUS2_PLL_CON0						0x0140
+#define BUS2_PLL_CON1						0x0144
+#define BUS2_PLL_FREQ_DET					0x014C
+#define BUS3_PLL_CON0						0x0160
+#define BUS3_PLL_CON1						0x0164
+#define BUS3_PLL_FREQ_DET					0x016C
+#define MFC_PLL_CON0						0x0180
+#define MFC_PLL_CON1						0x0184
+#define MFC_PLL_FREQ_DET					0x018C
+#define ISP_PLL_CON0						0x01A0
+#define ISP_PLL_CON1						0x01A4
+#define ISP_PLL_FREQ_DET					0x01AC
+#define AUD_PLL_CON0						0x01C0
+#define AUD_PLL_CON1						0x01C4
+#define AUD_PLL_CON2						0x01C8
+#define AUD_PLL_FREQ_DET					0x01D0
+#define G3D_PLL_CON0						0x01E0
+#define G3D_PLL_CON1						0x01E4
+#define G3D_PLL_FREQ_DET					0x01EC
+#define CLK_CON_MUX_BUS0_PLL					0x0200
+#define CLK_CON_MUX_BUS1_PLL					0x0204
+#define CLK_CON_MUX_BUS2_PLL					0x0208
+#define CLK_CON_MUX_BUS3_PLL					0x020C
+#define CLK_CON_MUX_MFC_PLL					0x0210
+#define CLK_CON_MUX_ISP_PLL					0x0214
+#define CLK_CON_MUX_AUD_PLL					0x0218
+#define CLK_CON_MUX_G3D_PLL					0x021C
+#define CLK_CON_MUX_SCLK_BUS0_PLL				0x0220
+#define CLK_CON_MUX_SCLK_BUS1_PLL				0x0224
+#define CLK_CON_MUX_SCLK_BUS2_PLL				0x0228
+#define CLK_CON_MUX_SCLK_BUS3_PLL				0x022C
+#define CLK_CON_MUX_SCLK_MFC_PLL				0x0230
+#define CLK_CON_MUX_SCLK_ISP_PLL				0x0234
+#define CLK_CON_MUX_ACLK_CCORE_800				0x0240
+#define CLK_CON_MUX_ACLK_CCORE_264				0x0244
+#define CLK_CON_MUX_ACLK_CCORE_G3D_800				0x0248
+#define CLK_CON_MUX_ACLK_CCORE_528				0x024C
+#define CLK_CON_MUX_ACLK_CCORE_132				0x0250
+#define CLK_CON_MUX_PCLK_CCORE_66				0x0254
+#define CLK_CON_MUX_ACLK_BUS0_528				0x0258
+#define CLK_CON_MUX_ACLK_BUS0_200				0x025C
+#define CLK_CON_MUX_PCLK_BUS0_132				0x0260
+#define CLK_CON_MUX_ACLK_BUS1_528				0x0264
+#define CLK_CON_MUX_PCLK_BUS1_132				0x0268
+#define CLK_CON_MUX_ACLK_DISP0_0_400				0x026C
+#define CLK_CON_MUX_ACLK_DISP0_1_400_TOP			0x0270
+#define CLK_CON_MUX_ACLK_DISP1_0_400				0x0274
+#define CLK_CON_MUX_ACLK_DISP1_1_400_TOP			0x0278
+#define CLK_CON_MUX_ACLK_MFC_600				0x027C
+#define CLK_CON_MUX_ACLK_MSCL0_528				0x0280
+#define CLK_CON_MUX_ACLK_MSCL1_528_TOP				0x0284
+#define CLK_CON_MUX_ACLK_IMEM_266				0x0288
+#define CLK_CON_MUX_ACLK_IMEM_200				0x028C
+#define CLK_CON_MUX_ACLK_IMEM_100				0x0290
+#define CLK_CON_MUX_ACLK_FSYS0_200				0x0294
+#define CLK_CON_MUX_ACLK_FSYS1_200				0x0298
+#define CLK_CON_MUX_ACLK_PERIS_66				0x029C
+#define CLK_CON_MUX_ACLK_PERIC0_66				0x02A0
+#define CLK_CON_MUX_ACLK_PERIC1_66				0x02A4
+#define CLK_CON_MUX_ACLK_ISP0_ISP0_528				0x02A8
+#define CLK_CON_MUX_ACLK_ISP0_TPU_400				0x02AC
+#define CLK_CON_MUX_ACLK_ISP0_TREX_528				0x02B0
+#define CLK_CON_MUX_ACLK_ISP1_ISP1_468				0x02B4
+#define CLK_CON_MUX_ACLK_CAM0_CSIS0_414				0x02B8
+#define CLK_CON_MUX_ACLK_CAM0_CSIS1_168				0x02BC
+#define CLK_CON_MUX_ACLK_CAM0_CSIS2_234				0x02C0
+#define CLK_CON_MUX_ACLK_CAM0_3AA0_414				0x02C4
+#define CLK_CON_MUX_ACLK_CAM0_3AA1_414				0x02C8
+#define CLK_CON_MUX_ACLK_CAM0_CSIS3_132				0x02CC
+#define CLK_CON_MUX_ACLK_CAM0_TREX_528				0x02D0
+#define CLK_CON_MUX_ACLK_CAM1_ARM_672				0x02D4
+#define CLK_CON_MUX_ACLK_CAM1_TREX_VRA_528			0x02D8
+#define CLK_CON_MUX_ACLK_CAM1_TREX_B_528			0x02DC
+#define CLK_CON_MUX_ACLK_CAM1_BUS_264				0x02E0
+#define CLK_CON_MUX_ACLK_CAM1_PERI_84				0x02E4
+#define CLK_CON_MUX_ACLK_CAM1_CSIS2_414				0x02E8
+#define CLK_CON_MUX_ACLK_CAM1_CSIS3_132				0x02EC
+#define CLK_CON_MUX_ACLK_CAM1_SCL_566				0x02F0
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_TOP			0x02F4
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_TOP			0x02F8
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_TOP			0x02FC
+#define CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_TOP			0x0300
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_TOP			0x0304
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_TOP			0x0308
+#define CLK_CON_MUX_SCLK_FSYS0_USBDRD30				0x030C
+#define CLK_CON_MUX_SCLK_FSYS0_MMC0				0x0310
+#define CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO20			0x0314
+#define CLK_CON_MUX_SCLK_FSYS0_PHY_24M				0x0318
+#define CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_CFG			0x031C
+#define CLK_CON_MUX_SCLK_FSYS1_MMC2				0x0320
+#define CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO20			0x0324
+#define CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY				0x0328
+#define CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_CFG			0x032C
+#define CLK_CON_MUX_SCLK_PERIC0_UART0				0x0330
+#define CLK_CON_MUX_SCLK_PERIC1_SPI0				0x0334
+#define CLK_CON_MUX_SCLK_PERIC1_SPI1				0x0338
+#define CLK_CON_MUX_SCLK_PERIC1_SPI2				0x033C
+#define CLK_CON_MUX_SCLK_PERIC1_SPI3				0x0340
+#define CLK_CON_MUX_SCLK_PERIC1_SPI4				0x0344
+#define CLK_CON_MUX_SCLK_PERIC1_SPI5				0x0348
+#define CLK_CON_MUX_SCLK_PERIC1_SPI6				0x034C
+#define CLK_CON_MUX_SCLK_PERIC1_SPI7				0x0350
+#define CLK_CON_MUX_SCLK_PERIC1_UART1				0x0354
+#define CLK_CON_MUX_SCLK_PERIC1_UART2				0x0358
+#define CLK_CON_MUX_SCLK_PERIC1_UART3				0x035C
+#define CLK_CON_MUX_SCLK_PERIC1_UART4				0x0360
+#define CLK_CON_MUX_SCLK_PERIC1_UART5				0x0364
+#define CLK_CON_MUX_SCLK_CAM1_ISP_SPI0				0x0368
+#define CLK_CON_MUX_SCLK_CAM1_ISP_SPI1				0x036C
+#define CLK_CON_MUX_SCLK_CAM1_ISP_UART				0x0370
+#define CLK_CON_MUX_SCLK_AP2CP_MIF_PLL_OUT			0x0374
+#define CLK_CON_MUX_ACLK_PSCDC_400				0x0378
+#define CLK_CON_MUX_SCLK_BUS_PLL_MNGS				0x0380
+#define CLK_CON_MUX_SCLK_BUS_PLL_APOLLO				0x0384
+#define CLK_CON_MUX_SCLK_BUS_PLL_MIF				0x0388
+#define CLK_CON_MUX_SCLK_BUS_PLL_G3D				0x038C
+#define CLK_CON_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP	0x0390
+#define CLK_CON_DIV_ACLK_CCORE_800				0x03A0
+#define CLK_CON_DIV_ACLK_CCORE_264				0x03A4
+#define CLK_CON_DIV_ACLK_CCORE_G3D_800				0x03A8
+#define CLK_CON_DIV_ACLK_CCORE_528				0x03AC
+#define CLK_CON_DIV_ACLK_CCORE_132				0x03B0
+#define CLK_CON_DIV_PCLK_CCORE_66				0x03B4
+#define CLK_CON_DIV_ACLK_BUS0_528				0x03B8
+#define CLK_CON_DIV_ACLK_BUS0_200				0x03BC
+#define CLK_CON_DIV_PCLK_BUS0_132				0x03C0
+#define CLK_CON_DIV_ACLK_BUS1_528				0x03C4
+#define CLK_CON_DIV_PCLK_BUS1_132				0x03C8
+#define CLK_CON_DIV_ACLK_DISP0_0_400				0x03CC
+#define CLK_CON_DIV_ACLK_DISP0_1_400				0x03D0
+#define CLK_CON_DIV_ACLK_DISP1_0_400				0x03D4
+#define CLK_CON_DIV_ACLK_DISP1_1_400				0x03D8
+#define CLK_CON_DIV_ACLK_MFC_600				0x03DC
+#define CLK_CON_DIV_ACLK_MSCL0_528				0x03E0
+#define CLK_CON_DIV_ACLK_MSCL1_528				0x03E4
+#define CLK_CON_DIV_ACLK_IMEM_266				0x03E8
+#define CLK_CON_DIV_ACLK_IMEM_200				0x03EC
+#define CLK_CON_DIV_ACLK_IMEM_100				0x03F0
+#define CLK_CON_DIV_ACLK_FSYS0_200				0x03F4
+#define CLK_CON_DIV_ACLK_FSYS1_200				0x03F8
+#define CLK_CON_DIV_ACLK_PERIS_66				0x03FC
+#define CLK_CON_DIV_ACLK_PERIC0_66				0x0400
+#define CLK_CON_DIV_ACLK_PERIC1_66				0x0404
+#define CLK_CON_DIV_ACLK_ISP0_ISP0_528				0x0408
+#define CLK_CON_DIV_ACLK_ISP0_TPU_400				0x040C
+#define CLK_CON_DIV_ACLK_ISP0_TREX_528				0x0410
+#define CLK_CON_DIV_ACLK_ISP1_ISP1_468				0x0414
+#define CLK_CON_DIV_ACLK_CAM0_CSIS0_414				0x0418
+#define CLK_CON_DIV_ACLK_CAM0_CSIS1_168				0x041C
+#define CLK_CON_DIV_ACLK_CAM0_CSIS2_234				0x0420
+#define CLK_CON_DIV_ACLK_CAM0_3AA0_414				0x0424
+#define CLK_CON_DIV_ACLK_CAM0_3AA1_414				0x0428
+#define CLK_CON_DIV_ACLK_CAM0_CSIS3_132				0x042C
+#define CLK_CON_DIV_ACLK_CAM0_TREX_528				0x0430
+#define CLK_CON_DIV_ACLK_CAM1_ARM_672				0x0434
+#define CLK_CON_DIV_ACLK_CAM1_TREX_VRA_528			0x0438
+#define CLK_CON_DIV_ACLK_CAM1_TREX_B_528			0x043C
+#define CLK_CON_DIV_ACLK_CAM1_BUS_264				0x0440
+#define CLK_CON_DIV_ACLK_CAM1_PERI_84				0x0444
+#define CLK_CON_DIV_ACLK_CAM1_CSIS2_414				0x0448
+#define CLK_CON_DIV_ACLK_CAM1_CSIS3_132				0x044C
+#define CLK_CON_DIV_ACLK_CAM1_SCL_566				0x0450
+#define CLK_CON_DIV_SCLK_DISP0_DECON0_ECLK0			0x0454
+#define CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK0			0x0458
+#define CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK1			0x045C
+#define CLK_CON_DIV_SCLK_DISP0_HDMI_AUDIO			0x0460
+#define CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK0			0x0464
+#define CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK1			0x0468
+#define CLK_CON_DIV_SCLK_FSYS0_USBDRD30				0x046C
+#define CLK_CON_DIV_SCLK_FSYS0_MMC0				0x0470
+#define CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO20			0x0474
+#define CLK_CON_DIV_SCLK_FSYS0_PHY_24M				0x0478
+#define CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO_CFG			0x047C
+#define CLK_CON_DIV_SCLK_FSYS1_MMC2				0x0480
+#define CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO20			0x0484
+#define CLK_CON_DIV_SCLK_FSYS1_PCIE_PHY				0x0488
+#define CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO_CFG			0x048C
+#define CLK_CON_DIV_SCLK_PERIC0_UART0				0x0490
+#define CLK_CON_DIV_SCLK_PERIC1_SPI0				0x0494
+#define CLK_CON_DIV_SCLK_PERIC1_SPI1				0x0498
+#define CLK_CON_DIV_SCLK_PERIC1_SPI2				0x049C
+#define CLK_CON_DIV_SCLK_PERIC1_SPI3				0x04A0
+#define CLK_CON_DIV_SCLK_PERIC1_SPI4				0x04A4
+#define CLK_CON_DIV_SCLK_PERIC1_SPI5				0x04A8
+#define CLK_CON_DIV_SCLK_PERIC1_SPI6				0x04AC
+#define CLK_CON_DIV_SCLK_PERIC1_SPI7				0x04B0
+#define CLK_CON_DIV_SCLK_PERIC1_UART1				0x04B4
+#define CLK_CON_DIV_SCLK_PERIC1_UART2				0x04B8
+#define CLK_CON_DIV_SCLK_PERIC1_UART3				0x04BC
+#define CLK_CON_DIV_SCLK_PERIC1_UART4				0x04C0
+#define CLK_CON_DIV_SCLK_PERIC1_UART5				0x04C4
+#define CLK_CON_DIV_SCLK_CAM1_ISP_SPI0				0x04C8
+#define CLK_CON_DIV_SCLK_CAM1_ISP_SPI1				0x04CC
+#define CLK_CON_DIV_SCLK_CAM1_ISP_UART				0x04D0
+#define CLK_CON_DIV_SCLK_AP2CP_MIF_PLL_OUT			0x04D4
+#define CLK_CON_DIV_ACLK_PSCDC_400				0x04D8
+#define CLK_CON_DIV_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP	0x04DC
+#define CLK_CON_DIV_SCLK_BUS_PLL_MNGS				0x04F0
+#define CLK_CON_DIV_SCLK_BUS_PLL_APOLLO				0x04F4
+#define CLK_CON_DIV_SCLK_BUS_PLL_MIF				0x04F8
+#define CLK_CON_DIV_SCLK_BUS_PLL_G3D				0x04FC
+#define CLK_STAT_MUX_BUS0_PLL					0x0500
+#define CLK_STAT_MUX_BUS1_PLL					0x0504
+#define CLK_STAT_MUX_BUS2_PLL					0x0508
+#define CLK_STAT_MUX_BUS3_PLL					0x050C
+#define CLK_STAT_MUX_MFC_PLL					0x0510
+#define CLK_STAT_MUX_ISP_PLL					0x0514
+#define CLK_STAT_MUX_AUD_PLL					0x0518
+#define CLK_STAT_MUX_G3D_PLL					0x051C
+#define CLK_STAT_MUX_SCLK_BUS0_PLL				0x0520
+#define CLK_STAT_MUX_SCLK_BUS1_PLL				0x0524
+#define CLK_STAT_MUX_SCLK_BUS2_PLL				0x0528
+#define CLK_STAT_MUX_SCLK_BUS3_PLL				0x052C
+#define CLK_STAT_MUX_SCLK_MFC_PLL				0x0530
+#define CLK_STAT_MUX_SCLK_ISP_PLL				0x0534
+#define CLK_STAT_MUX_ACLK_CCORE_800				0x0540
+#define CLK_STAT_MUX_ACLK_CCORE_264				0x0544
+#define CLK_STAT_MUX_ACLK_CCORE_G3D_800				0x0548
+#define CLK_STAT_MUX_ACLK_CCORE_528				0x054C
+#define CLK_STAT_MUX_ACLK_CCORE_132				0x0550
+#define CLK_STAT_MUX_PCLK_CCORE_66				0x0554
+#define CLK_STAT_MUX_ACLK_BUS0_528				0x0558
+#define CLK_STAT_MUX_ACLK_BUS0_200				0x055C
+#define CLK_STAT_MUX_PCLK_BUS0_132				0x0560
+#define CLK_STAT_MUX_ACLK_BUS1_528				0x0564
+#define CLK_STAT_MUX_PCLK_BUS1_132				0x0568
+#define CLK_STAT_MUX_ACLK_DISP0_0_400				0x056C
+#define CLK_STAT_MUX_ACLK_DISP0_1_400_TOP			0x0570
+#define CLK_STAT_MUX_ACLK_DISP1_0_400				0x0574
+#define CLK_STAT_MUX_ACLK_DISP1_1_400_TOP			0x0578
+#define CLK_STAT_MUX_ACLK_MFC_600				0x057C
+#define CLK_STAT_MUX_ACLK_MSCL0_528				0x0580
+#define CLK_STAT_MUX_ACLK_MSCL1_528_TOP				0x0584
+#define CLK_STAT_MUX_ACLK_IMEM_266				0x0588
+#define CLK_STAT_MUX_ACLK_IMEM_200				0x058C
+#define CLK_STAT_MUX_ACLK_IMEM_100				0x0590
+#define CLK_STAT_MUX_ACLK_FSYS0_200				0x0594
+#define CLK_STAT_MUX_ACLK_FSYS1_200				0x0598
+#define CLK_STAT_MUX_ACLK_PERIS_66				0x059C
+#define CLK_STAT_MUX_ACLK_PERIC0_66				0x05A0
+#define CLK_STAT_MUX_ACLK_PERIC1_66				0x05A4
+#define CLK_STAT_MUX_ACLK_ISP0_ISP0_528				0x05A8
+#define CLK_STAT_MUX_ACLK_ISP0_TPU_400				0x05AC
+#define CLK_STAT_MUX_ACLK_ISP0_TREX_528				0x05B0
+#define CLK_STAT_MUX_ACLK_ISP1_ISP1_468				0x05B4
+#define CLK_STAT_MUX_ACLK_CAM0_CSIS0_414			0x05B8
+#define CLK_STAT_MUX_ACLK_CAM0_CSIS1_168			0x05BC
+#define CLK_STAT_MUX_ACLK_CAM0_CSIS2_234			0x05C0
+#define CLK_STAT_MUX_ACLK_CAM0_3AA0_414				0x05C4
+#define CLK_STAT_MUX_ACLK_CAM0_3AA1_414				0x05C8
+#define CLK_STAT_MUX_ACLK_CAM0_CSIS3_132			0x05CC
+#define CLK_STAT_MUX_ACLK_CAM0_TREX_528				0x05D0
+#define CLK_STAT_MUX_ACLK_CAM1_ARM_672				0x05D4
+#define CLK_STAT_MUX_ACLK_CAM1_TREX_VRA_528			0x05D8
+#define CLK_STAT_MUX_ACLK_CAM1_TREX_B_528			0x05DC
+#define CLK_STAT_MUX_ACLK_CAM1_BUS_264				0x05E0
+#define CLK_STAT_MUX_ACLK_CAM1_PERI_84				0x05E4
+#define CLK_STAT_MUX_ACLK_CAM1_CSIS2_414			0x05E8
+#define CLK_STAT_MUX_ACLK_CAM1_CSIS3_132			0x05EC
+#define CLK_STAT_MUX_ACLK_CAM1_SCL_566				0x05F0
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_TOP		0x05F4
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_TOP		0x05F8
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_TOP		0x05FC
+#define CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_TOP			0x0600
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_TOP		0x0604
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_TOP		0x0608
+#define CLK_STAT_MUX_SCLK_FSYS0_USBDRD30			0x060C
+#define CLK_STAT_MUX_SCLK_FSYS0_MMC0				0x0610
+#define CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO20			0x0614
+#define CLK_STAT_MUX_SCLK_FSYS0_PHY_24M				0x0618
+#define CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_CFG			0x061C
+#define CLK_STAT_MUX_SCLK_FSYS1_MMC2				0x0620
+#define CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO20			0x0624
+#define CLK_STAT_MUX_SCLK_FSYS1_PCIE_PHY			0x0628
+#define CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_CFG			0x062C
+#define CLK_STAT_MUX_SCLK_PERIC0_UART0				0x0630
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI0				0x0634
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI1				0x0638
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI2				0x063C
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI3				0x0640
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI4				0x0644
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI5				0x0648
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI6				0x064C
+#define CLK_STAT_MUX_SCLK_PERIC1_SPI7				0x0650
+#define CLK_STAT_MUX_SCLK_PERIC1_UART1				0x0654
+#define CLK_STAT_MUX_SCLK_PERIC1_UART2				0x0658
+#define CLK_STAT_MUX_SCLK_PERIC1_UART3				0x065C
+#define CLK_STAT_MUX_SCLK_PERIC1_UART4				0x0660
+#define CLK_STAT_MUX_SCLK_PERIC1_UART5				0x0664
+#define CLK_STAT_MUX_SCLK_CAM1_ISP_SPI0				0x0668
+#define CLK_STAT_MUX_SCLK_CAM1_ISP_SPI1				0x066C
+#define CLK_STAT_MUX_SCLK_CAM1_ISP_UART				0x0670
+#define CLK_STAT_MUX_SCLK_AP2CP_MIF_PLL_OUT			0x0674
+#define CLK_STAT_MUX_ACLK_PSCDC_400				0x0678
+#define CLK_STAT_MUX_SCLK_BUS_PLL_MNGS				0x0680
+#define CLK_STAT_MUX_SCLK_BUS_PLL_APOLLO			0x0684
+#define CLK_STAT_MUX_SCLK_BUS_PLL_MIF				0x0688
+#define CLK_STAT_MUX_SCLK_BUS_PLL_G3D				0x068C
+#define CLK_STAT_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP	0x0690
+#define CLK_ENABLE_ACLK_CCORE_800				0x0800
+#define CLK_ENABLE_ACLK_CCORE_264				0x0804
+#define CLK_ENABLE_ACLK_CCORE_G3D_800				0x0808
+#define CLK_ENABLE_ACLK_CCORE_528				0x080C
+#define CLK_ENABLE_ACLK_CCORE_132				0x0810
+#define CLK_ENABLE_PCLK_CCORE_66				0x0814
+#define CLK_ENABLE_ACLK_BUS0_528_TOP				0x0818
+#define CLK_ENABLE_ACLK_BUS0_200_TOP				0x081C
+#define CLK_ENABLE_PCLK_BUS0_132_TOP				0x0820
+#define CLK_ENABLE_ACLK_BUS1_528_TOP				0x0824
+#define CLK_ENABLE_PCLK_BUS1_132_TOP				0x0828
+#define CLK_ENABLE_ACLK_DISP0_0_400				0x082C
+#define CLK_ENABLE_ACLK_DISP0_1_400				0x0830
+#define CLK_ENABLE_ACLK_DISP1_0_400				0x0834
+#define CLK_ENABLE_ACLK_DISP1_1_400				0x0838
+#define CLK_ENABLE_ACLK_MFC_600					0x083C
+#define CLK_ENABLE_ACLK_MSCL0_528				0x0840
+#define CLK_ENABLE_ACLK_MSCL1_528				0x0844
+#define CLK_ENABLE_ACLK_IMEM_266				0x0848
+#define CLK_ENABLE_ACLK_IMEM_200				0x084C
+#define CLK_ENABLE_ACLK_IMEM_100				0x0850
+#define CLK_ENABLE_ACLK_FSYS0_200				0x0854
+#define CLK_ENABLE_ACLK_FSYS1_200				0x0858
+#define CLK_ENABLE_ACLK_PERIS_66				0x085C
+#define CLK_ENABLE_ACLK_PERIC0_66				0x0860
+#define CLK_ENABLE_ACLK_PERIC1_66				0x0864
+#define CLK_ENABLE_ACLK_ISP0_ISP0_528				0x0868
+#define CLK_ENABLE_ACLK_ISP0_TPU_400				0x086C
+#define CLK_ENABLE_ACLK_ISP0_TREX_528				0x0870
+#define CLK_ENABLE_ACLK_ISP1_ISP1_468				0x0874
+#define CLK_ENABLE_ACLK_CAM0_CSIS1_414				0x0878
+#define CLK_ENABLE_ACLK_CAM0_CSIS1_168_TOP			0x087C
+#define CLK_ENABLE_ACLK_CAM0_CSIS2_234_TOP			0x0880
+#define CLK_ENABLE_ACLK_CAM0_3AA0_414_TOP			0x0884
+#define CLK_ENABLE_ACLK_CAM0_3AA1_414_TOP			0x0888
+#define CLK_ENABLE_ACLK_CAM0_CSIS3_132_TOP			0x088C
+#define CLK_ENABLE_ACLK_CAM0_TREX_528_TOP			0x0890
+#define CLK_ENABLE_ACLK_CAM1_ARM_672_TOP			0x0894
+#define CLK_ENABLE_ACLK_CAM1_TREX_VRA_528_TOP			0x0898
+#define CLK_ENABLE_ACLK_CAM1_TREX_B_528_TOP			0x089C
+#define CLK_ENABLE_ACLK_CAM1_BUS_264_TOP			0x08A0
+#define CLK_ENABLE_ACLK_CAM1_PERI_84				0x08A4
+#define CLK_ENABLE_ACLK_CAM1_CSIS2_414_TOP			0x08A8
+#define CLK_ENABLE_ACLK_CAM1_CSIS3_132_TOP			0x08AC
+#define CLK_ENABLE_ACLK_CAM1_SCL_566_TOP			0x08B0
+#define CLK_ENABLE_SCLK_DISP0_DECON0_ECLK0			0x0900
+#define CLK_ENABLE_SCLK_DISP0_DECON0_VCLK0			0x0904
+#define CLK_ENABLE_SCLK_DISP0_DECON0_VCLK1			0x0908
+#define CLK_ENABLE_SCLK_DISP0_HDMI_ADUIO			0x090C
+#define CLK_ENABLE_SCLK_DISP1_DECON1_ECLK0			0x0910
+#define CLK_ENABLE_SCLK_DISP1_DECON1_ECLK1			0x0914
+#define CLK_ENABLE_SCLK_FSYS0_USBDRD30				0x0918
+#define CLK_ENABLE_SCLK_FSYS0_MMC0				0x091C
+#define CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO20			0x0920
+#define CLK_ENABLE_SCLK_FSYS0_PHY_24M				0x0924
+#define CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO_CFG			0x0928
+#define CLK_ENABLE_SCLK_FSYS1_MMC2				0x092C
+#define CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO20			0x0930
+#define CLK_ENABLE_SCLK_FSYS1_PCIE_PHY				0x0934
+#define CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO_CFG			0x0938
+#define CLK_ENABLE_SCLK_PERIC0_UART0				0x093C
+#define CLK_ENABLE_SCLK_PERIC1_SPI0				0x0940
+#define CLK_ENABLE_SCLK_PERIC1_SPI1				0x0944
+#define CLK_ENABLE_SCLK_PERIC1_SPI2				0x0948
+#define CLK_ENABLE_SCLK_PERIC1_SPI3				0x094C
+#define CLK_ENABLE_SCLK_PERIC1_SPI4				0x0950
+#define CLK_ENABLE_SCLK_PERIC1_SPI5				0x0954
+#define CLK_ENABLE_SCLK_PERIC1_SPI6				0x0958
+#define CLK_ENABLE_SCLK_PERIC1_SPI7				0x095C
+#define CLK_ENABLE_SCLK_PERIC1_UART1				0x0960
+#define CLK_ENABLE_SCLK_PERIC1_UART2				0x0964
+#define CLK_ENABLE_SCLK_PERIC1_UART3				0x0968
+#define CLK_ENABLE_SCLK_PERIC1_UART4				0x096C
+#define CLK_ENABLE_SCLK_PERIC1_UART5				0x0970
+#define CLK_ENABLE_SCLK_CAM1_ISP_SPI0_TOP			0x0974
+#define CLK_ENABLE_SCLK_CAM1_ISP_SPI1_TOP			0x0978
+#define CLK_ENABLE_SCLK_CAM1_ISP_UART_TOP			0x097C
+#define CLK_ENABLE_SCLK_AP2CP_MIF_PLL_OUT			0x0980
+#define CLK_ENABLE_ACLK_PSCDC_400				0x0984
+#define CLK_ENABLE_SCLK_BUS_PLL_MNGS				0x0990
+#define CLK_ENABLE_SCLK_BUS_PLL_APOLLO				0x0994
+#define CLK_ENABLE_SCLK_BUS_PLL_MIF				0x0998
+#define CLK_ENABLE_SCLK_BUS_PLL_G3D				0x099C
+#define CLK_ENABLE_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP	0x09A0
+#define CLK_CON_MUX_SCLK_ISP_SENSOR0				0x0B00
+#define CLK_CON_DIV_SCLK_ISP_SENSOR0				0x0B04
+#define CLK_STAT_MUX_SCLK_ISP_SENSOR0				0x0B08
+#define CLK_ENABLE_SCLK_ISP_SENSOR0				0x0B0C
+#define CLK_CON_MUX_SCLK_ISP_SENSOR1				0x0B10
+#define CLK_CON_DIV_SCLK_ISP_SENSOR1				0x0B14
+#define CLK_STAT_MUX_SCLK_ISP_SENSOR1				0x0B18
+#define CLK_ENABLE_SCLK_ISP_SENSOR1				0x0B1C
+#define CLK_CON_MUX_SCLK_ISP_SENSOR2				0x0B20
+#define CLK_CON_DIV_SCLK_ISP_SENSOR2				0x0B24
+#define CLK_STAT_MUX_SCLK_ISP_SENSOR2				0x0B28
+#define CLK_ENABLE_SCLK_ISP_SENSOR2				0x0B2C
+#define CLK_CON_MUX_SCLK_ISP_SENSOR3				0x0B30
+#define CLK_CON_DIV_SCLK_ISP_SENSOR3				0x0B34
+#define CLK_STAT_MUX_SCLK_ISP_SENSOR3				0x0B38
+#define CLK_ENABLE_SCLK_ISP_SENSOR3				0x0B3C
+#define CLK_CON_MUX_SCLK_PROMISE_INT				0x0B40
+#define CLK_CON_DIV_SCLK_PROMISE_INT				0x0B44
+#define CLK_STAT_MUX_SCLK_PROMISE_INT				0x0B48
+#define CLK_ENABLE_SCLK_PROMISE_INT				0x0B4C
+#define CLK_CON_MUX_SCLK_PROMISE_DISP				0x0B50
+#define CLK_CON_DIV_SCLK_PROMISE_DISP				0x0B54
+#define CLK_STAT_MUX_SCLK_PROMISE_DISP				0x0B58
+#define CLK_ENABLE_SCLK_PROMISE_DISP				0x0B5C
+#define CLKOUT_CMU_TOP0						0x0C00
+#define CLKOUT_CMU_TOP0_DIV_STAT				0x0C04
+#define CLKOUT_CMU_TOP1						0x0C10
+#define CLKOUT_CMU_TOP1_DIV_STAT				0x0C14
+#define CLKOUT_CMU_TOP2						0x0C20
+#define CLKOUT_CMU_TOP2_DIV_STAT				0x0C24
+#define CMU_TOP__CLKOUT0					0x0C30
+#define CMU_TOP__CLKOUT1					0x0C34
+#define CMU_TOP__CLKOUT2					0x0C38
+#define CMU_TOP__CLKOUT3					0x0C3C
+#define CLK_CON_MUX_CP2AP_MIF_CLK_USER				0x0D00
+#define CLK_STAT_MUX_CP2AP_MIF_CLK_USER				0x0D0C
+#define AP2CP_CLK_CTRL						0x0D10
+#define CLK_ENABLE_PDN_TOP					0x0E00
+#define TOP_ROOTCLKEN						0x0F04
+#define TOP0_ROOTCLKEN_ON_GATE					0x0F10
+#define TOP1_ROOTCLKEN_ON_GATE					0x0F14
+#define TOP2_ROOTCLKEN_ON_GATE					0x0F18
+#define TOP3_ROOTCLKEN_ON_GATE					0x0F1C
+#define TOP0_ROOTCLKEN_ON_MUX					0x0F20
+#define TOP1_ROOTCLKEN_ON_MUX					0x0F24
+#define TOP2_ROOTCLKEN_ON_MUX					0x0F28
+#define TOP3_ROOTCLKEN_ON_MUX					0x0F2C
+#define TOP_ROOTCLKEN_AFTER_PLL_MUX				0x0F30
+#define TOP0_ROOTCLKEN_ON_GATE_STATUS				0x0F40
+#define TOP1_ROOTCLKEN_ON_GATE_STATUS				0x0F44
+#define TOP2_ROOTCLKEN_ON_GATE_STATUS				0x0F48
+#define TOP3_ROOTCLKEN_ON_GATE_STATUS				0x0F4C
+#define TOP0_ROOTCLKEN_ON_MUX_STATUS				0x0F50
+#define TOP1_ROOTCLKEN_ON_MUX_STATUS				0x0F54
+#define TOP2_ROOTCLKEN_ON_MUX_STATUS				0x0F58
+#define TOP3_ROOTCLKEN_ON_MUX_STATUS				0x0F5C
+#define TOP_ROOTCLKEN_AFTER_PLL_MUX_STATUS			0x0F60
+#define TOP_SFR_IGNORE_REQ_SYSCLK				0x0F80
+#define PSCDC_CTRL0						0x1000
+#define PSCDC_CTRL1						0x1004
+#define PSCDC_CTRL2						0x1008
+#define PSCDC_CTRL3						0x100C
+#define PSCDC_SCI_FIFO_CLK_CON0					0x1010
+#define PSCDC_SCI_FIFO_CLK_CON1					0x1014
+#define PSCDC_SCI_FIFO_CLK_CON2					0x1018
+#define PSCDC_SCI_FIFO_CLK_CON3					0x101C
+#define PSCDC_SMC_FIFO_CLK_CON0					0x1020
+#define PSCDC_SMC_FIFO_CLK_CON1					0x1024
+#define PSCDC_SMC_FIFO_CLK_CON2					0x1028
+#define PSCDC_SMC_FIFO_CLK_CON3					0x102C
+#define PSCDC_SMC_FIFO_CLK_CON4					0x1030
+#define PSCDC_SMC_FIFO_CLK_CON5					0x1034
+#define CCORE_CLK_CTRL0						0x1060
+#define MIF_CLK_CTRL0						0x1080
+#define MIF_CLK_CTRL1						0x1084
+#define MIF_CLK_CTRL2						0x1088
+#define MIF_CLK_CTRL3						0x108C
+#define MIF_CLK_CTRL4						0x1090
+#define ACD_PSCDC_CTRL_0					0x1094
+#define ACD_PSCDC_CTRL_1					0x1098
+#define ACD_PSCDC_STAT						0x109C
+#define CMU_TOP_SPARE0						0x1100
+#define CMU_TOP_SPARE1						0x1104
+#define CMU_TOP_SPARE2						0x1108
+#define CMU_TOP_SPARE3						0x110C
+
+static const unsigned long top_clk_regs[] __initconst = {
+	BUS0_PLL_LOCK,
+	BUS1_PLL_LOCK,
+	BUS2_PLL_LOCK,
+	BUS3_PLL_LOCK,
+	MFC_PLL_LOCK,
+	ISP_PLL_LOCK,
+	AUD_PLL_LOCK,
+	G3D_PLL_LOCK,
+	BUS0_PLL_CON0,
+	BUS0_PLL_CON1,
+	BUS0_PLL_FREQ_DET,
+	BUS1_PLL_CON0,
+	BUS1_PLL_CON1,
+	BUS1_PLL_FREQ_DET,
+	BUS2_PLL_CON0,
+	BUS2_PLL_CON1,
+	BUS2_PLL_FREQ_DET,
+	BUS3_PLL_CON0,
+	BUS3_PLL_CON1,
+	BUS3_PLL_FREQ_DET,
+	MFC_PLL_CON0,
+	MFC_PLL_CON1,
+	MFC_PLL_FREQ_DET,
+	ISP_PLL_CON0,
+	ISP_PLL_CON1,
+	ISP_PLL_FREQ_DET,
+	AUD_PLL_CON0,
+	AUD_PLL_CON1,
+	AUD_PLL_CON2,
+	AUD_PLL_FREQ_DET,
+	G3D_PLL_CON0,
+	G3D_PLL_CON1,
+	G3D_PLL_FREQ_DET,
+	CLK_CON_MUX_BUS0_PLL,
+	CLK_CON_MUX_BUS1_PLL,
+	CLK_CON_MUX_BUS2_PLL,
+	CLK_CON_MUX_BUS3_PLL,
+	CLK_CON_MUX_MFC_PLL,
+	CLK_CON_MUX_ISP_PLL,
+	CLK_CON_MUX_AUD_PLL,
+	CLK_CON_MUX_G3D_PLL,
+	CLK_CON_MUX_SCLK_BUS0_PLL,
+	CLK_CON_MUX_SCLK_BUS1_PLL,
+	CLK_CON_MUX_SCLK_BUS2_PLL,
+	CLK_CON_MUX_SCLK_BUS3_PLL,
+	CLK_CON_MUX_SCLK_MFC_PLL,
+	CLK_CON_MUX_SCLK_ISP_PLL,
+	CLK_CON_MUX_ACLK_CCORE_800,
+	CLK_CON_MUX_ACLK_CCORE_264,
+	CLK_CON_MUX_ACLK_CCORE_G3D_800,
+	CLK_CON_MUX_ACLK_CCORE_528,
+	CLK_CON_MUX_ACLK_CCORE_132,
+	CLK_CON_MUX_PCLK_CCORE_66,
+	CLK_CON_MUX_ACLK_BUS0_528,
+	CLK_CON_MUX_ACLK_BUS0_200,
+	CLK_CON_MUX_PCLK_BUS0_132,
+	CLK_CON_MUX_ACLK_BUS1_528,
+	CLK_CON_MUX_PCLK_BUS1_132,
+	CLK_CON_MUX_ACLK_DISP0_0_400,
+	CLK_CON_MUX_ACLK_DISP0_1_400_TOP,
+	CLK_CON_MUX_ACLK_DISP1_0_400,
+	CLK_CON_MUX_ACLK_DISP1_1_400_TOP,
+	CLK_CON_MUX_ACLK_MFC_600,
+	CLK_CON_MUX_ACLK_MSCL0_528,
+	CLK_CON_MUX_ACLK_MSCL1_528_TOP,
+	CLK_CON_MUX_ACLK_IMEM_266,
+	CLK_CON_MUX_ACLK_IMEM_200,
+	CLK_CON_MUX_ACLK_IMEM_100,
+	CLK_CON_MUX_ACLK_FSYS0_200,
+	CLK_CON_MUX_ACLK_FSYS1_200,
+	CLK_CON_MUX_ACLK_PERIS_66,
+	CLK_CON_MUX_ACLK_PERIC0_66,
+	CLK_CON_MUX_ACLK_PERIC1_66,
+	CLK_CON_MUX_ACLK_ISP0_ISP0_528,
+	CLK_CON_MUX_ACLK_ISP0_TPU_400,
+	CLK_CON_MUX_ACLK_ISP0_TREX_528,
+	CLK_CON_MUX_ACLK_ISP1_ISP1_468,
+	CLK_CON_MUX_ACLK_CAM0_CSIS0_414,
+	CLK_CON_MUX_ACLK_CAM0_CSIS1_168,
+	CLK_CON_MUX_ACLK_CAM0_CSIS2_234,
+	CLK_CON_MUX_ACLK_CAM0_3AA0_414,
+	CLK_CON_MUX_ACLK_CAM0_3AA1_414,
+	CLK_CON_MUX_ACLK_CAM0_CSIS3_132,
+	CLK_CON_MUX_ACLK_CAM0_TREX_528,
+	CLK_CON_MUX_ACLK_CAM1_ARM_672,
+	CLK_CON_MUX_ACLK_CAM1_TREX_VRA_528,
+	CLK_CON_MUX_ACLK_CAM1_TREX_B_528,
+	CLK_CON_MUX_ACLK_CAM1_BUS_264,
+	CLK_CON_MUX_ACLK_CAM1_PERI_84,
+	CLK_CON_MUX_ACLK_CAM1_CSIS2_414,
+	CLK_CON_MUX_ACLK_CAM1_CSIS3_132,
+	CLK_CON_MUX_ACLK_CAM1_SCL_566,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_TOP,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_TOP,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_TOP,
+	CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_TOP,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_TOP,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_TOP,
+	CLK_CON_MUX_SCLK_FSYS0_USBDRD30,
+	CLK_CON_MUX_SCLK_FSYS0_MMC0,
+	CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO20,
+	CLK_CON_MUX_SCLK_FSYS0_PHY_24M,
+	CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_CFG,
+	CLK_CON_MUX_SCLK_FSYS1_MMC2,
+	CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO20,
+	CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY,
+	CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_CFG,
+	CLK_CON_MUX_SCLK_PERIC0_UART0,
+	CLK_CON_MUX_SCLK_PERIC1_SPI0,
+	CLK_CON_MUX_SCLK_PERIC1_SPI1,
+	CLK_CON_MUX_SCLK_PERIC1_SPI2,
+	CLK_CON_MUX_SCLK_PERIC1_SPI3,
+	CLK_CON_MUX_SCLK_PERIC1_SPI4,
+	CLK_CON_MUX_SCLK_PERIC1_SPI5,
+	CLK_CON_MUX_SCLK_PERIC1_SPI6,
+	CLK_CON_MUX_SCLK_PERIC1_SPI7,
+	CLK_CON_MUX_SCLK_PERIC1_UART1,
+	CLK_CON_MUX_SCLK_PERIC1_UART2,
+	CLK_CON_MUX_SCLK_PERIC1_UART3,
+	CLK_CON_MUX_SCLK_PERIC1_UART4,
+	CLK_CON_MUX_SCLK_PERIC1_UART5,
+	CLK_CON_MUX_SCLK_CAM1_ISP_SPI0,
+	CLK_CON_MUX_SCLK_CAM1_ISP_SPI1,
+	CLK_CON_MUX_SCLK_CAM1_ISP_UART,
+	CLK_CON_MUX_SCLK_AP2CP_MIF_PLL_OUT,
+	CLK_CON_MUX_ACLK_PSCDC_400,
+	CLK_CON_MUX_SCLK_BUS_PLL_MNGS,
+	CLK_CON_MUX_SCLK_BUS_PLL_APOLLO,
+	CLK_CON_MUX_SCLK_BUS_PLL_MIF,
+	CLK_CON_MUX_SCLK_BUS_PLL_G3D,
+	CLK_CON_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP,
+	CLK_CON_DIV_ACLK_CCORE_800,
+	CLK_CON_DIV_ACLK_CCORE_264,
+	CLK_CON_DIV_ACLK_CCORE_G3D_800,
+	CLK_CON_DIV_ACLK_CCORE_528,
+	CLK_CON_DIV_ACLK_CCORE_132,
+	CLK_CON_DIV_PCLK_CCORE_66,
+	CLK_CON_DIV_ACLK_BUS0_528,
+	CLK_CON_DIV_ACLK_BUS0_200,
+	CLK_CON_DIV_PCLK_BUS0_132,
+	CLK_CON_DIV_ACLK_BUS1_528,
+	CLK_CON_DIV_PCLK_BUS1_132,
+	CLK_CON_DIV_ACLK_DISP0_0_400,
+	CLK_CON_DIV_ACLK_DISP0_1_400,
+	CLK_CON_DIV_ACLK_DISP1_0_400,
+	CLK_CON_DIV_ACLK_DISP1_1_400,
+	CLK_CON_DIV_ACLK_MFC_600,
+	CLK_CON_DIV_ACLK_MSCL0_528,
+	CLK_CON_DIV_ACLK_MSCL1_528,
+	CLK_CON_DIV_ACLK_IMEM_266,
+	CLK_CON_DIV_ACLK_IMEM_200,
+	CLK_CON_DIV_ACLK_IMEM_100,
+	CLK_CON_DIV_ACLK_FSYS0_200,
+	CLK_CON_DIV_ACLK_FSYS1_200,
+	CLK_CON_DIV_ACLK_PERIS_66,
+	CLK_CON_DIV_ACLK_PERIC0_66,
+	CLK_CON_DIV_ACLK_PERIC1_66,
+	CLK_CON_DIV_ACLK_ISP0_ISP0_528,
+	CLK_CON_DIV_ACLK_ISP0_TPU_400,
+	CLK_CON_DIV_ACLK_ISP0_TREX_528,
+	CLK_CON_DIV_ACLK_ISP1_ISP1_468,
+	CLK_CON_DIV_ACLK_CAM0_CSIS0_414,
+	CLK_CON_DIV_ACLK_CAM0_CSIS1_168,
+	CLK_CON_DIV_ACLK_CAM0_CSIS2_234,
+	CLK_CON_DIV_ACLK_CAM0_3AA0_414,
+	CLK_CON_DIV_ACLK_CAM0_3AA1_414,
+	CLK_CON_DIV_ACLK_CAM0_CSIS3_132,
+	CLK_CON_DIV_ACLK_CAM0_TREX_528,
+	CLK_CON_DIV_ACLK_CAM1_ARM_672,
+	CLK_CON_DIV_ACLK_CAM1_TREX_VRA_528,
+	CLK_CON_DIV_ACLK_CAM1_TREX_B_528,
+	CLK_CON_DIV_ACLK_CAM1_BUS_264,
+	CLK_CON_DIV_ACLK_CAM1_PERI_84,
+	CLK_CON_DIV_ACLK_CAM1_CSIS2_414,
+	CLK_CON_DIV_ACLK_CAM1_CSIS3_132,
+	CLK_CON_DIV_ACLK_CAM1_SCL_566,
+	CLK_CON_DIV_SCLK_DISP0_DECON0_ECLK0,
+	CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK0,
+	CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK1,
+	CLK_CON_DIV_SCLK_DISP0_HDMI_AUDIO,
+	CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK0,
+	CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK1,
+	CLK_CON_DIV_SCLK_FSYS0_USBDRD30,
+	CLK_CON_DIV_SCLK_FSYS0_MMC0,
+	CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO20,
+	CLK_CON_DIV_SCLK_FSYS0_PHY_24M,
+	CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO_CFG,
+	CLK_CON_DIV_SCLK_FSYS1_MMC2,
+	CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO20,
+	CLK_CON_DIV_SCLK_FSYS1_PCIE_PHY,
+	CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO_CFG,
+	CLK_CON_DIV_SCLK_PERIC0_UART0,
+	CLK_CON_DIV_SCLK_PERIC1_SPI0,
+	CLK_CON_DIV_SCLK_PERIC1_SPI1,
+	CLK_CON_DIV_SCLK_PERIC1_SPI2,
+	CLK_CON_DIV_SCLK_PERIC1_SPI3,
+	CLK_CON_DIV_SCLK_PERIC1_SPI4,
+	CLK_CON_DIV_SCLK_PERIC1_SPI5,
+	CLK_CON_DIV_SCLK_PERIC1_SPI6,
+	CLK_CON_DIV_SCLK_PERIC1_SPI7,
+	CLK_CON_DIV_SCLK_PERIC1_UART1,
+	CLK_CON_DIV_SCLK_PERIC1_UART2,
+	CLK_CON_DIV_SCLK_PERIC1_UART3,
+	CLK_CON_DIV_SCLK_PERIC1_UART4,
+	CLK_CON_DIV_SCLK_PERIC1_UART5,
+	CLK_CON_DIV_SCLK_CAM1_ISP_SPI0,
+	CLK_CON_DIV_SCLK_CAM1_ISP_SPI1,
+	CLK_CON_DIV_SCLK_CAM1_ISP_UART,
+	CLK_CON_DIV_SCLK_AP2CP_MIF_PLL_OUT,
+	CLK_CON_DIV_ACLK_PSCDC_400,
+	CLK_CON_DIV_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP,
+	CLK_CON_DIV_SCLK_BUS_PLL_MNGS,
+	CLK_CON_DIV_SCLK_BUS_PLL_APOLLO,
+	CLK_CON_DIV_SCLK_BUS_PLL_MIF,
+	CLK_CON_DIV_SCLK_BUS_PLL_G3D,
+	CLK_STAT_MUX_BUS0_PLL,
+	CLK_STAT_MUX_BUS1_PLL,
+	CLK_STAT_MUX_BUS2_PLL,
+	CLK_STAT_MUX_BUS3_PLL,
+	CLK_STAT_MUX_MFC_PLL,
+	CLK_STAT_MUX_ISP_PLL,
+	CLK_STAT_MUX_AUD_PLL,
+	CLK_STAT_MUX_G3D_PLL,
+	CLK_STAT_MUX_SCLK_BUS0_PLL,
+	CLK_STAT_MUX_SCLK_BUS1_PLL,
+	CLK_STAT_MUX_SCLK_BUS2_PLL,
+	CLK_STAT_MUX_SCLK_BUS3_PLL,
+	CLK_STAT_MUX_SCLK_MFC_PLL,
+	CLK_STAT_MUX_SCLK_ISP_PLL,
+	CLK_STAT_MUX_ACLK_CCORE_800,
+	CLK_STAT_MUX_ACLK_CCORE_264,
+	CLK_STAT_MUX_ACLK_CCORE_G3D_800,
+	CLK_STAT_MUX_ACLK_CCORE_528,
+	CLK_STAT_MUX_ACLK_CCORE_132,
+	CLK_STAT_MUX_PCLK_CCORE_66,
+	CLK_STAT_MUX_ACLK_BUS0_528,
+	CLK_STAT_MUX_ACLK_BUS0_200,
+	CLK_STAT_MUX_PCLK_BUS0_132,
+	CLK_STAT_MUX_ACLK_BUS1_528,
+	CLK_STAT_MUX_PCLK_BUS1_132,
+	CLK_STAT_MUX_ACLK_DISP0_0_400,
+	CLK_STAT_MUX_ACLK_DISP0_1_400_TOP,
+	CLK_STAT_MUX_ACLK_DISP1_0_400,
+	CLK_STAT_MUX_ACLK_DISP1_1_400_TOP,
+	CLK_STAT_MUX_ACLK_MFC_600,
+	CLK_STAT_MUX_ACLK_MSCL0_528,
+	CLK_STAT_MUX_ACLK_MSCL1_528_TOP,
+	CLK_STAT_MUX_ACLK_IMEM_266,
+	CLK_STAT_MUX_ACLK_IMEM_200,
+	CLK_STAT_MUX_ACLK_IMEM_100,
+	CLK_STAT_MUX_ACLK_FSYS0_200,
+	CLK_STAT_MUX_ACLK_FSYS1_200,
+	CLK_STAT_MUX_ACLK_PERIS_66,
+	CLK_STAT_MUX_ACLK_PERIC0_66,
+	CLK_STAT_MUX_ACLK_PERIC1_66,
+	CLK_STAT_MUX_ACLK_ISP0_ISP0_528,
+	CLK_STAT_MUX_ACLK_ISP0_TPU_400,
+	CLK_STAT_MUX_ACLK_ISP0_TREX_528,
+	CLK_STAT_MUX_ACLK_ISP1_ISP1_468,
+	CLK_STAT_MUX_ACLK_CAM0_CSIS0_414,
+	CLK_STAT_MUX_ACLK_CAM0_CSIS1_168,
+	CLK_STAT_MUX_ACLK_CAM0_CSIS2_234,
+	CLK_STAT_MUX_ACLK_CAM0_3AA0_414,
+	CLK_STAT_MUX_ACLK_CAM0_3AA1_414,
+	CLK_STAT_MUX_ACLK_CAM0_CSIS3_132,
+	CLK_STAT_MUX_ACLK_CAM0_TREX_528,
+	CLK_STAT_MUX_ACLK_CAM1_ARM_672,
+	CLK_STAT_MUX_ACLK_CAM1_TREX_VRA_528,
+	CLK_STAT_MUX_ACLK_CAM1_TREX_B_528,
+	CLK_STAT_MUX_ACLK_CAM1_BUS_264,
+	CLK_STAT_MUX_ACLK_CAM1_PERI_84,
+	CLK_STAT_MUX_ACLK_CAM1_CSIS2_414,
+	CLK_STAT_MUX_ACLK_CAM1_CSIS3_132,
+	CLK_STAT_MUX_ACLK_CAM1_SCL_566,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_TOP,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_TOP,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_TOP,
+	CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_TOP,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_TOP,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_TOP,
+	CLK_STAT_MUX_SCLK_FSYS0_USBDRD30,
+	CLK_STAT_MUX_SCLK_FSYS0_MMC0,
+	CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO20,
+	CLK_STAT_MUX_SCLK_FSYS0_PHY_24M,
+	CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_CFG,
+	CLK_STAT_MUX_SCLK_FSYS1_MMC2,
+	CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO20,
+	CLK_STAT_MUX_SCLK_FSYS1_PCIE_PHY,
+	CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_CFG,
+	CLK_STAT_MUX_SCLK_PERIC0_UART0,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI0,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI1,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI2,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI3,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI4,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI5,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI6,
+	CLK_STAT_MUX_SCLK_PERIC1_SPI7,
+	CLK_STAT_MUX_SCLK_PERIC1_UART1,
+	CLK_STAT_MUX_SCLK_PERIC1_UART2,
+	CLK_STAT_MUX_SCLK_PERIC1_UART3,
+	CLK_STAT_MUX_SCLK_PERIC1_UART4,
+	CLK_STAT_MUX_SCLK_PERIC1_UART5,
+	CLK_STAT_MUX_SCLK_CAM1_ISP_SPI0,
+	CLK_STAT_MUX_SCLK_CAM1_ISP_SPI1,
+	CLK_STAT_MUX_SCLK_CAM1_ISP_UART,
+	CLK_STAT_MUX_SCLK_AP2CP_MIF_PLL_OUT,
+	CLK_STAT_MUX_ACLK_PSCDC_400,
+	CLK_STAT_MUX_SCLK_BUS_PLL_MNGS,
+	CLK_STAT_MUX_SCLK_BUS_PLL_APOLLO,
+	CLK_STAT_MUX_SCLK_BUS_PLL_MIF,
+	CLK_STAT_MUX_SCLK_BUS_PLL_G3D,
+	CLK_STAT_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP,
+	CLK_ENABLE_ACLK_CCORE_800,
+	CLK_ENABLE_ACLK_CCORE_264,
+	CLK_ENABLE_ACLK_CCORE_G3D_800,
+	CLK_ENABLE_ACLK_CCORE_528,
+	CLK_ENABLE_ACLK_CCORE_132,
+	CLK_ENABLE_PCLK_CCORE_66,
+	CLK_ENABLE_ACLK_BUS0_528_TOP,
+	CLK_ENABLE_ACLK_BUS0_200_TOP,
+	CLK_ENABLE_PCLK_BUS0_132_TOP,
+	CLK_ENABLE_ACLK_BUS1_528_TOP,
+	CLK_ENABLE_PCLK_BUS1_132_TOP,
+	CLK_ENABLE_ACLK_DISP0_0_400,
+	CLK_ENABLE_ACLK_DISP0_1_400,
+	CLK_ENABLE_ACLK_DISP1_0_400,
+	CLK_ENABLE_ACLK_DISP1_1_400,
+	CLK_ENABLE_ACLK_MFC_600,
+	CLK_ENABLE_ACLK_MSCL0_528,
+	CLK_ENABLE_ACLK_MSCL1_528,
+	CLK_ENABLE_ACLK_IMEM_266,
+	CLK_ENABLE_ACLK_IMEM_200,
+	CLK_ENABLE_ACLK_IMEM_100,
+	CLK_ENABLE_ACLK_FSYS0_200,
+	CLK_ENABLE_ACLK_FSYS1_200,
+	CLK_ENABLE_ACLK_PERIS_66,
+	CLK_ENABLE_ACLK_PERIC0_66,
+	CLK_ENABLE_ACLK_PERIC1_66,
+	CLK_ENABLE_ACLK_ISP0_ISP0_528,
+	CLK_ENABLE_ACLK_ISP0_TPU_400,
+	CLK_ENABLE_ACLK_ISP0_TREX_528,
+	CLK_ENABLE_ACLK_ISP1_ISP1_468,
+	CLK_ENABLE_ACLK_CAM0_CSIS1_414,
+	CLK_ENABLE_ACLK_CAM0_CSIS1_168_TOP,
+	CLK_ENABLE_ACLK_CAM0_CSIS2_234_TOP,
+	CLK_ENABLE_ACLK_CAM0_3AA0_414_TOP,
+	CLK_ENABLE_ACLK_CAM0_3AA1_414_TOP,
+	CLK_ENABLE_ACLK_CAM0_CSIS3_132_TOP,
+	CLK_ENABLE_ACLK_CAM0_TREX_528_TOP,
+	CLK_ENABLE_ACLK_CAM1_ARM_672_TOP,
+	CLK_ENABLE_ACLK_CAM1_TREX_VRA_528_TOP,
+	CLK_ENABLE_ACLK_CAM1_TREX_B_528_TOP,
+	CLK_ENABLE_ACLK_CAM1_BUS_264_TOP,
+	CLK_ENABLE_ACLK_CAM1_PERI_84,
+	CLK_ENABLE_ACLK_CAM1_CSIS2_414_TOP,
+	CLK_ENABLE_ACLK_CAM1_CSIS3_132_TOP,
+	CLK_ENABLE_ACLK_CAM1_SCL_566_TOP,
+	CLK_ENABLE_SCLK_DISP0_DECON0_ECLK0,
+	CLK_ENABLE_SCLK_DISP0_DECON0_VCLK0,
+	CLK_ENABLE_SCLK_DISP0_DECON0_VCLK1,
+	CLK_ENABLE_SCLK_DISP0_HDMI_ADUIO,
+	CLK_ENABLE_SCLK_DISP1_DECON1_ECLK0,
+	CLK_ENABLE_SCLK_DISP1_DECON1_ECLK1,
+	CLK_ENABLE_SCLK_FSYS0_USBDRD30,
+	CLK_ENABLE_SCLK_FSYS0_MMC0,
+	CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO20,
+	CLK_ENABLE_SCLK_FSYS0_PHY_24M,
+	CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO_CFG,
+	CLK_ENABLE_SCLK_FSYS1_MMC2,
+	CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO20,
+	CLK_ENABLE_SCLK_FSYS1_PCIE_PHY,
+	CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO_CFG,
+	CLK_ENABLE_SCLK_PERIC0_UART0,
+	CLK_ENABLE_SCLK_PERIC1_SPI0,
+	CLK_ENABLE_SCLK_PERIC1_SPI1,
+	CLK_ENABLE_SCLK_PERIC1_SPI2,
+	CLK_ENABLE_SCLK_PERIC1_SPI3,
+	CLK_ENABLE_SCLK_PERIC1_SPI4,
+	CLK_ENABLE_SCLK_PERIC1_SPI5,
+	CLK_ENABLE_SCLK_PERIC1_SPI6,
+	CLK_ENABLE_SCLK_PERIC1_SPI7,
+	CLK_ENABLE_SCLK_PERIC1_UART1,
+	CLK_ENABLE_SCLK_PERIC1_UART2,
+	CLK_ENABLE_SCLK_PERIC1_UART3,
+	CLK_ENABLE_SCLK_PERIC1_UART4,
+	CLK_ENABLE_SCLK_PERIC1_UART5,
+	CLK_ENABLE_SCLK_CAM1_ISP_SPI0_TOP,
+	CLK_ENABLE_SCLK_CAM1_ISP_SPI1_TOP,
+	CLK_ENABLE_SCLK_CAM1_ISP_UART_TOP,
+	CLK_ENABLE_SCLK_AP2CP_MIF_PLL_OUT,
+	CLK_ENABLE_ACLK_PSCDC_400,
+	CLK_ENABLE_SCLK_BUS_PLL_MNGS,
+	CLK_ENABLE_SCLK_BUS_PLL_APOLLO,
+	CLK_ENABLE_SCLK_BUS_PLL_MIF,
+	CLK_ENABLE_SCLK_BUS_PLL_G3D,
+	CLK_ENABLE_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP,
+	CLK_CON_MUX_SCLK_ISP_SENSOR0,
+	CLK_CON_DIV_SCLK_ISP_SENSOR0,
+	CLK_STAT_MUX_SCLK_ISP_SENSOR0,
+	CLK_ENABLE_SCLK_ISP_SENSOR0,
+	CLK_CON_MUX_SCLK_ISP_SENSOR1,
+	CLK_CON_DIV_SCLK_ISP_SENSOR1,
+	CLK_STAT_MUX_SCLK_ISP_SENSOR1,
+	CLK_ENABLE_SCLK_ISP_SENSOR1,
+	CLK_CON_MUX_SCLK_ISP_SENSOR2,
+	CLK_CON_DIV_SCLK_ISP_SENSOR2,
+	CLK_STAT_MUX_SCLK_ISP_SENSOR2,
+	CLK_ENABLE_SCLK_ISP_SENSOR2,
+	CLK_CON_MUX_SCLK_ISP_SENSOR3,
+	CLK_CON_DIV_SCLK_ISP_SENSOR3,
+	CLK_STAT_MUX_SCLK_ISP_SENSOR3,
+	CLK_ENABLE_SCLK_ISP_SENSOR3,
+	CLK_CON_MUX_SCLK_PROMISE_INT,
+	CLK_CON_DIV_SCLK_PROMISE_INT,
+	CLK_STAT_MUX_SCLK_PROMISE_INT,
+	CLK_ENABLE_SCLK_PROMISE_INT,
+	CLK_CON_MUX_SCLK_PROMISE_DISP,
+	CLK_CON_DIV_SCLK_PROMISE_DISP,
+	CLK_STAT_MUX_SCLK_PROMISE_DISP,
+	CLK_ENABLE_SCLK_PROMISE_DISP,
+	CLKOUT_CMU_TOP0,
+	CLKOUT_CMU_TOP0_DIV_STAT,
+	CLKOUT_CMU_TOP1,
+	CLKOUT_CMU_TOP1_DIV_STAT,
+	CLKOUT_CMU_TOP2,
+	CLKOUT_CMU_TOP2_DIV_STAT,
+	CMU_TOP__CLKOUT0,
+	CMU_TOP__CLKOUT1,
+	CMU_TOP__CLKOUT2,
+	CMU_TOP__CLKOUT3,
+	CLK_CON_MUX_CP2AP_MIF_CLK_USER,
+	CLK_STAT_MUX_CP2AP_MIF_CLK_USER,
+	AP2CP_CLK_CTRL,
+	CLK_ENABLE_PDN_TOP,
+	TOP_ROOTCLKEN,
+	TOP0_ROOTCLKEN_ON_GATE,
+	TOP1_ROOTCLKEN_ON_GATE,
+	TOP2_ROOTCLKEN_ON_GATE,
+	TOP3_ROOTCLKEN_ON_GATE,
+	TOP0_ROOTCLKEN_ON_MUX,
+	TOP1_ROOTCLKEN_ON_MUX,
+	TOP2_ROOTCLKEN_ON_MUX,
+	TOP3_ROOTCLKEN_ON_MUX,
+	TOP_ROOTCLKEN_AFTER_PLL_MUX,
+	TOP0_ROOTCLKEN_ON_GATE_STATUS,
+	TOP1_ROOTCLKEN_ON_GATE_STATUS,
+	TOP2_ROOTCLKEN_ON_GATE_STATUS,
+	TOP3_ROOTCLKEN_ON_GATE_STATUS,
+	TOP0_ROOTCLKEN_ON_MUX_STATUS,
+	TOP1_ROOTCLKEN_ON_MUX_STATUS,
+	TOP2_ROOTCLKEN_ON_MUX_STATUS,
+	TOP3_ROOTCLKEN_ON_MUX_STATUS,
+	TOP_ROOTCLKEN_AFTER_PLL_MUX_STATUS,
+	TOP_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL0,
+	PSCDC_CTRL1,
+	PSCDC_CTRL2,
+	PSCDC_CTRL3,
+	PSCDC_SCI_FIFO_CLK_CON0,
+	PSCDC_SCI_FIFO_CLK_CON1,
+	PSCDC_SCI_FIFO_CLK_CON2,
+	PSCDC_SCI_FIFO_CLK_CON3,
+	PSCDC_SMC_FIFO_CLK_CON0,
+	PSCDC_SMC_FIFO_CLK_CON1,
+	PSCDC_SMC_FIFO_CLK_CON2,
+	PSCDC_SMC_FIFO_CLK_CON3,
+	PSCDC_SMC_FIFO_CLK_CON4,
+	PSCDC_SMC_FIFO_CLK_CON5,
+	CCORE_CLK_CTRL0,
+	MIF_CLK_CTRL0,
+	MIF_CLK_CTRL1,
+	MIF_CLK_CTRL2,
+	MIF_CLK_CTRL3,
+	MIF_CLK_CTRL4,
+	ACD_PSCDC_CTRL_0,
+	ACD_PSCDC_CTRL_1,
+	ACD_PSCDC_STAT,
+	CMU_TOP_SPARE0,
+	CMU_TOP_SPARE1,
+	CMU_TOP_SPARE2,
+	CMU_TOP_SPARE3,
+};
+
+PNAME(top_mux_bus0_pll_p)				= { "oscclk",
+							    "fout_bus0_pll" };
+PNAME(top_mux_bus1_pll_p)				= { "oscclk",
+							    "fout_bus1_pll" };
+PNAME(top_mux_bus2_pll_p)				= { "oscclk",
+							    "fout_bus2_pll" };
+PNAME(top_mux_bus3_pll_p)				= { "oscclk",
+							    "fout_bus3_pll" };
+PNAME(top_mux_mfc_pll_p)				= { "oscclk",
+							    "fout_mfc_pll" };
+PNAME(top_mux_isp_pll_p)				= { "oscclk",
+							    "fout_isp_pll" };
+PNAME(top_mux_aud_pll_p)				= { "oscclk",
+							    "fout_aud_pll" };
+PNAME(top_mux_g3d_pll_p)				= { "oscclk",
+							    "fout_g3d_pll" };
+PNAME(top_mux_sclk_bus0_pll_p)				= { "mout_top_bus0_pll",
+							    "top_ff_bus0_pll_div2" };
+PNAME(top_mux_sclk_bus1_pll_p)				= { "mout_top_bus1_pll",
+							    "top_ff_bus1_pll_div2" };
+PNAME(top_mux_sclk_bus2_pll_p)				= { "mout_top_bus2_pll",
+							    "top_ff_bus2_pll_div2" };
+PNAME(top_mux_sclk_bus3_pll_p)				= { "mout_top_bus3_pll",
+							    "top_ff_bus3_pll_div2",
+							    "top_ff_bus3_pll_div4" };
+PNAME(top_mux_sclk_mfc_pll_p)				= { "mout_top_mfc_pll",
+							    "top_ff_mfc_pll_div2" };
+PNAME(top_mux_sclk_isp_pll_p)				= { "mout_top_isp_pll",
+							    "top_ff_isp_pll_div2" };
+PNAME(top_mux_aclk_ccore_800_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "top_ff_bus3_pll_div2",
+							    "mout_top_sclk_mfc_pll",
+							    "mout_top_isp_pll",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_aclk_ccore_264_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_aclk_ccore_g3d_800_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "top_ff_bus3_pll_div2",
+							    "mout_top_sclk_mfc_pll",
+							    "mout_top_isp_pll",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_aclk_ccore_528_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_aclk_ccore_132_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_pclk_ccore_66_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_aclk_bus0_528_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_bus0_200_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_pclk_bus0_132_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_bus1_528_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_pclk_bus1_132_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_disp0_0_400_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_disp0_1_400_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_disp1_0_400_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_disp1_1_400_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_mfc_600_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_mscl0_528_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_mscl1_528_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_imem_266_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_imem_200_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_imem_100_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_fsys0_200_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_fsys1_200_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_peris_66_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_peric0_66_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_peric1_66_p)				= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_aclk_isp0_isp0_528_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_isp0_tpu_400_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_isp0_trex_528_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_isp0_pxl_asbs_is_c_from_is_d_p)	= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_isp1_isp1_468_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam0_csis0_414_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam0_csis1_168_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_aclk_cam0_csis2_234_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam0_3aa0_414_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam0_3aa1_414_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam0_csis3_132_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll" };
+PNAME(top_mux_aclk_cam0_trex_528_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam1_arm_672_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_aclk_cam1_trex_vra_528_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam1_trex_b_528_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam1_bus_264_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam1_peri_84_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_aclk_cam1_csis2_414_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_aclk_cam1_csis3_132_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll" };
+PNAME(top_mux_aclk_cam1_scl_566_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_sclk_isp_pll",
+							    "mout_top_sclk_mfc_pll" };
+PNAME(top_mux_sclk_disp0_decon0_eclk0_p)		= { "mout_top_sclk_bus0_pll",
+							    "oscclk",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_sclk_disp0_decon0_vclk0_p)		= { "mout_top_sclk_bus0_pll",
+							    "oscclk",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_sclk_disp0_decon0_vclk1_p)		= { "mout_top_sclk_bus0_pll",
+							    "oscclk",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_sclk_disp0_hdmi_audio_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_aud_pll" };
+PNAME(top_mux_sclk_disp1_decon1_eclk0_p)		= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_sclk_disp1_decon1_eclk1_p)		= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_bus2_pll" };
+PNAME(top_mux_sclk_fsys0_usbdrd30_p)			= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_fsys0_mmc0_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "top_ff_bus3_pll_div2" };
+PNAME(top_mux_sclk_fsys0_ufsunipro20_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_sclk_fsys0_phy_24m_p)			= { "mout_top_sclk_bus0_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_fsys0_ufsunipro_cfg_p)		= { "mout_top_sclk_bus0_pll",
+							    "oscclk",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_sclk_fsys1_mmc2_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "top_ff_bus3_pll_div2" };
+PNAME(top_mux_sclk_fsys1_ufsunipro20_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_sclk_fsys1_pcie_phy_p)			= { "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_fsys1_ufsunipro_cfg_p)		= { "mout_top_sclk_bus0_pll",
+							    "oscclk",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_sclk_peric0_uart0_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi0_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi1_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi2_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi3_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi4_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi5_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi6_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_spi7_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_uart1_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_uart2_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_uart3_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_uart4_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_peric1_uart5_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_cam1_isp_spi0_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_cam1_isp_spi1_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "oscclk" };
+PNAME(top_mux_sclk_cam1_isp_uart_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll" };
+PNAME(top_mux_sclk_ap2cp_mif_pll_out_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll",
+							    "mout_top_sclk_bus3_pll" };
+PNAME(top_mux_aclk_pscdc_400_p)				= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus3_pll",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_sclk_bus_pll_mngs_p)			= { "mout_top_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "top_ff_bus3_pll_div2" };
+PNAME(top_mux_sclk_bus_pll_apollo_p)			= { "mout_top_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "top_ff_bus3_pll_div2" };
+PNAME(top_mux_sclk_bus_pll_mif_p)			= { "mout_top_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "mout_top_bus3_pll",
+							    "top_ff_bus3_pll_div2",
+							    "mout_top_cp2ap_mif_clk_user" };
+PNAME(top_mux_sclk_bus_pll_g3d_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_bus1_pll",
+							    "mout_top_bus2_pll",
+							    "top_ff_bus3_pll_div2",
+							    "mout_top_g3d_pll" };
+PNAME(top_mux_sclk_isp_sensor0_p)			= { "oscclk" };
+PNAME(top_mux_sclk_isp_sensor1_p)			= { "oscclk" };
+PNAME(top_mux_sclk_isp_sensor2_p)			= { "oscclk" };
+PNAME(top_mux_sclk_isp_sensor3_p)			= { "oscclk" };
+PNAME(top_mux_sclk_promise_int_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_sclk_promise_disp_p)			= { "mout_top_sclk_bus0_pll",
+							    "mout_top_sclk_bus1_pll",
+							    "mout_top_sclk_bus2_pll" };
+PNAME(top_mux_cp2ap_mif_clk_user_p)			= { "oscclk",
+							    "i_cp2ap_mif_clk" };
+PNAME(top_mux_mif_pll_p)				= { "oscclk",
+							    "fout_mif0_pll",
+							    "fout_mif1_pll",
+							    "fout_mif2_pll",
+							    "fout_mif3_pll" };
+PNAME(top_mux_bus_pll_mif_p)				= { "oscclk",
+							    "mout_top_sclk_bus1_pll" };
+PNAME(top_mux_aclk_mif_pll_p)				= { "mout_top_mif_pll",
+							    "mout_top_bus_pll_mif" };
+
+static const struct samsung_pll_rate_table g3d_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 806000000U, 124, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 764400000U, 147, 5, 0),
+	PLL_35XX_RATE(26 * MHZ, 754000000U, 116, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 728000000U, 112, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 702000000U, 108, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 682500000U, 105, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 650000000U, 100, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 600166666U, 277, 6, 1),
+	PLL_35XX_RATE(26 * MHZ, 572000000U, 176, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 546000000U, 168, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 455000000U, 140, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 419250000U, 129, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 338000000U, 104, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 260000000U, 160, 4, 2),
+	PLL_35XX_RATE(26 * MHZ, 169000000U, 104, 4, 2),
+	PLL_35XX_RATE(26 * MHZ, 112125000U, 138, 4, 3),
+};
+
+static const struct samsung_pll_rate_table bus0_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 1056000000U, 528, 13, 0),
+};
+
+static const struct samsung_pll_rate_table bus1_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 800000000U, 400, 13, 0),
+};
+
+static const struct samsung_pll_rate_table bus2_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 672000000U, 336, 13, 0),
+};
+
+static const struct samsung_pll_rate_table bus3_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 1872000000U, 288, 4, 0),
+	PLL_35XX_RATE(26 * MHZ, 1352000000U, 156, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1092000000U, 126, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 841750000U, 259, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 572000000U, 132, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 416000000U, 192, 3, 2),
+};
+
+static const struct samsung_pll_rate_table mfc_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 598000000U, 184, 4, 1),
+};
+
+static const struct samsung_pll_rate_table isp_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 425750000U, 131, 4, 1),
+	PLL_35XX_RATE(26 * MHZ, 409500000U, 126, 4, 1),
+};
+
+static const struct samsung_pll_rate_table aud_pll_rates[] __initconst = {
+	PLL_36XX_RATE(26 * MHZ, 592000076U, 46, 1, 1, -30247),
+	PLL_36XX_RATE(26 * MHZ, 589824020U, 45, 1, 1, 24319),
+	PLL_36XX_RATE(26 * MHZ, 492000091U, 38, 1, 1, -10082),
+	PLL_36XX_RATE(26 * MHZ, 491520050U, 38, 1, 1, -12502),
+	PLL_36XX_RATE(26 * MHZ, 410000473U, 32, 1, 1, -30245),
+	PLL_36XX_RATE(26 * MHZ, 294912010U, 45, 1, 2, 24319),
+	PLL_36XX_RATE(26 * MHZ, 196608039U, 30, 1, 2, 16213),
+	PLL_36XX_RATE(26 * MHZ, 135475200U, 42, 1, 3, -20665),
+};
+
+static const struct samsung_pll_clock top_pll_clks[] __initconst = {
+	PLL(pll_141xx, CLK_FOUT_G3D_PLL, "fout_g3d_pll", "oscclk", G3D_PLL_LOCK,
+	    G3D_PLL_CON0, g3d_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_BUS0_PLL, "fout_bus0_pll", "oscclk",
+	    BUS0_PLL_LOCK, BUS0_PLL_CON0, bus0_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_BUS1_PLL, "fout_bus1_pll", "oscclk",
+	    BUS1_PLL_LOCK, BUS1_PLL_CON0, bus1_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_BUS2_PLL, "fout_bus2_pll", "oscclk",
+	    BUS2_PLL_LOCK, BUS2_PLL_CON0, bus2_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_BUS3_PLL, "fout_bus3_pll", "oscclk",
+	    BUS3_PLL_LOCK, BUS3_PLL_CON0, bus3_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_MFC_PLL, "fout_mfc_pll", "oscclk", MFC_PLL_LOCK,
+	    MFC_PLL_CON0, mfc_pll_rates),
+	PLL(pll_141xx, CLK_FOUT_ISP_PLL, "fout_isp_pll", "oscclk", ISP_PLL_LOCK,
+	    ISP_PLL_CON0, isp_pll_rates),
+	PLL(pll_1431x, CLK_FOUT_AUD_PLL, "fout_aud_pll", "oscclk", AUD_PLL_LOCK,
+	    AUD_PLL_CON0, aud_pll_rates),
+};
+
+static const struct samsung_fixed_rate_clock top_fixed_clks[] __initconst = {
+	FRATE(CLK_I_CP2AP_MIF_CLK, "i_cp2ap_mif_clk", NULL, 0, 400000000),
+};
+
+static const struct samsung_mux_clock top_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_TOP_BUS0_PLL, "mout_top_bus0_pll", top_mux_bus0_pll_p,
+	    CLK_CON_MUX_BUS0_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_BUS1_PLL, "mout_top_bus1_pll", top_mux_bus1_pll_p,
+	    CLK_CON_MUX_BUS1_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_BUS2_PLL, "mout_top_bus2_pll", top_mux_bus2_pll_p,
+	    CLK_CON_MUX_BUS2_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_BUS3_PLL, "mout_top_bus3_pll", top_mux_bus3_pll_p,
+	    CLK_CON_MUX_BUS3_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_MFC_PLL, "mout_top_mfc_pll", top_mux_mfc_pll_p,
+	    CLK_CON_MUX_MFC_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_ISP_PLL, "mout_top_isp_pll", top_mux_isp_pll_p,
+	    CLK_CON_MUX_ISP_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_AUD_PLL, "mout_top_aud_pll", top_mux_aud_pll_p,
+	    CLK_CON_MUX_AUD_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_G3D_PLL, "mout_top_g3d_pll", top_mux_g3d_pll_p,
+	    CLK_CON_MUX_G3D_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_BUS0_PLL, "mout_top_sclk_bus0_pll",
+	    top_mux_sclk_bus0_pll_p, CLK_CON_MUX_SCLK_BUS0_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_BUS1_PLL, "mout_top_sclk_bus1_pll",
+	    top_mux_sclk_bus1_pll_p, CLK_CON_MUX_SCLK_BUS1_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_BUS2_PLL, "mout_top_sclk_bus2_pll",
+	    top_mux_sclk_bus2_pll_p, CLK_CON_MUX_SCLK_BUS2_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_BUS3_PLL, "mout_top_sclk_bus3_pll",
+	    top_mux_sclk_bus3_pll_p, CLK_CON_MUX_SCLK_BUS3_PLL, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_MFC_PLL, "mout_top_sclk_mfc_pll",
+	    top_mux_sclk_mfc_pll_p, CLK_CON_MUX_SCLK_MFC_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_ISP_PLL, "mout_top_sclk_isp_pll",
+	    top_mux_sclk_isp_pll_p, CLK_CON_MUX_SCLK_ISP_PLL, 12, 1),
+	MUX(CLK_MOUT_TOP_ACLK_CCORE_800, "mout_top_aclk_ccore_800",
+	    top_mux_aclk_ccore_800_p, CLK_CON_MUX_ACLK_CCORE_800, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CCORE_264, "mout_top_aclk_ccore_264",
+	    top_mux_aclk_ccore_264_p, CLK_CON_MUX_ACLK_CCORE_264, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_CCORE_G3D_800, "mout_top_aclk_ccore_g3d_800",
+	    top_mux_aclk_ccore_g3d_800_p, CLK_CON_MUX_ACLK_CCORE_G3D_800, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CCORE_528, "mout_top_aclk_ccore_528",
+	    top_mux_aclk_ccore_528_p, CLK_CON_MUX_ACLK_CCORE_528, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CCORE_132, "mout_top_aclk_ccore_132",
+	    top_mux_aclk_ccore_132_p, CLK_CON_MUX_ACLK_CCORE_132, 12, 2),
+	MUX(CLK_MOUT_TOP_PCLK_CCORE_66, "mout_top_pclk_ccore_66",
+	    top_mux_pclk_ccore_66_p, CLK_CON_MUX_PCLK_CCORE_66, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_BUS0_528, "mout_top_aclk_bus0_528",
+	    top_mux_aclk_bus0_528_p, CLK_CON_MUX_ACLK_BUS0_528, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_BUS0_200, "mout_top_aclk_bus0_200",
+	    top_mux_aclk_bus0_200_p, CLK_CON_MUX_ACLK_BUS0_200, 12, 2),
+	MUX(CLK_MOUT_TOP_PCLK_BUS0_132, "mout_top_pclk_bus0_132",
+	    top_mux_pclk_bus0_132_p, CLK_CON_MUX_PCLK_BUS0_132, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_BUS1_528, "mout_top_aclk_bus1_528",
+	    top_mux_aclk_bus1_528_p, CLK_CON_MUX_ACLK_BUS1_528, 12, 2),
+	MUX(CLK_MOUT_TOP_PCLK_BUS1_132, "mout_top_pclk_bus1_132",
+	    top_mux_pclk_bus1_132_p, CLK_CON_MUX_PCLK_BUS1_132, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_DISP0_0_400, "mout_top_aclk_disp0_0_400",
+	    top_mux_aclk_disp0_0_400_p, CLK_CON_MUX_ACLK_DISP0_0_400, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_DISP0_1_400, "mout_top_aclk_disp0_1_400",
+	    top_mux_aclk_disp0_1_400_p, CLK_CON_MUX_ACLK_DISP0_1_400_TOP, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_ACLK_DISP1_0_400, "mout_top_aclk_disp1_0_400",
+	    top_mux_aclk_disp1_0_400_p, CLK_CON_MUX_ACLK_DISP1_0_400, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_DISP1_1_400, "mout_top_aclk_disp1_1_400",
+	    top_mux_aclk_disp1_1_400_p, CLK_CON_MUX_ACLK_DISP1_1_400_TOP, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_ACLK_MFC_600, "mout_top_aclk_mfc_600",
+	    top_mux_aclk_mfc_600_p, CLK_CON_MUX_ACLK_MFC_600, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_MSCL0_528, "mout_top_aclk_mscl0_528",
+	    top_mux_aclk_mscl0_528_p, CLK_CON_MUX_ACLK_MSCL0_528, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_MSCL1_528, "mout_top_aclk_mscl1_528",
+	    top_mux_aclk_mscl1_528_p, CLK_CON_MUX_ACLK_MSCL1_528_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_IMEM_266, "mout_top_aclk_imem_266",
+	    top_mux_aclk_imem_266_p, CLK_CON_MUX_ACLK_IMEM_266, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_IMEM_200, "mout_top_aclk_imem_200",
+	    top_mux_aclk_imem_200_p, CLK_CON_MUX_ACLK_IMEM_200, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_IMEM_100, "mout_top_aclk_imem_100",
+	    top_mux_aclk_imem_100_p, CLK_CON_MUX_ACLK_IMEM_100, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_FSYS0_200, "mout_top_aclk_fsys0_200",
+	    top_mux_aclk_fsys0_200_p, CLK_CON_MUX_ACLK_FSYS0_200, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_FSYS1_200, "mout_top_aclk_fsys1_200",
+	    top_mux_aclk_fsys1_200_p, CLK_CON_MUX_ACLK_FSYS1_200, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_PERIS_66, "mout_top_aclk_peris_66",
+	    top_mux_aclk_peris_66_p, CLK_CON_MUX_ACLK_PERIS_66, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_PERIC0_66, "mout_top_aclk_peric0_66",
+	    top_mux_aclk_peric0_66_p, CLK_CON_MUX_ACLK_PERIC0_66, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_PERIC1_66, "mout_top_aclk_peric1_66",
+	    top_mux_aclk_peric1_66_p, CLK_CON_MUX_ACLK_PERIC1_66, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_ISP0_ISP0_528, "mout_top_aclk_isp0_isp0_528",
+	    top_mux_aclk_isp0_isp0_528_p, CLK_CON_MUX_ACLK_ISP0_ISP0_528, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_ISP0_TPU_400, "mout_top_aclk_isp0_tpu_400",
+	    top_mux_aclk_isp0_tpu_400_p, CLK_CON_MUX_ACLK_ISP0_TPU_400, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_ISP0_TREX_528, "mout_top_aclk_isp0_trex_528",
+	    top_mux_aclk_isp0_trex_528_p, CLK_CON_MUX_ACLK_ISP0_TREX_528, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D,
+	    "mout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	    top_mux_aclk_isp0_pxl_asbs_is_c_from_is_d_p,
+	    CLK_CON_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_ISP1_ISP1_468, "mout_top_aclk_isp1_isp1_468",
+	    top_mux_aclk_isp1_isp1_468_p, CLK_CON_MUX_ACLK_ISP1_ISP1_468, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_CSIS0_414, "mout_top_aclk_cam0_csis0_414",
+	    top_mux_aclk_cam0_csis0_414_p, CLK_CON_MUX_ACLK_CAM0_CSIS0_414, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_CSIS1_168, "mout_top_aclk_cam0_csis1_168",
+	    top_mux_aclk_cam0_csis1_168_p, CLK_CON_MUX_ACLK_CAM0_CSIS1_168, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_CSIS2_234, "mout_top_aclk_cam0_csis2_234",
+	    top_mux_aclk_cam0_csis2_234_p, CLK_CON_MUX_ACLK_CAM0_CSIS2_234, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_3AA0_414, "mout_top_aclk_cam0_3aa0_414",
+	    top_mux_aclk_cam0_3aa0_414_p, CLK_CON_MUX_ACLK_CAM0_3AA0_414, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_3AA1_414, "mout_top_aclk_cam0_3aa1_414",
+	    top_mux_aclk_cam0_3aa1_414_p, CLK_CON_MUX_ACLK_CAM0_3AA1_414, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_CSIS3_132, "mout_top_aclk_cam0_csis3_132",
+	    top_mux_aclk_cam0_csis3_132_p, CLK_CON_MUX_ACLK_CAM0_CSIS3_132, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_ACLK_CAM0_TREX_528, "mout_top_aclk_cam0_trex_528",
+	    top_mux_aclk_cam0_trex_528_p, CLK_CON_MUX_ACLK_CAM0_TREX_528, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_ARM_672, "mout_top_aclk_cam1_arm_672",
+	    top_mux_aclk_cam1_arm_672_p, CLK_CON_MUX_ACLK_CAM1_ARM_672, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_TREX_VRA_528,
+	    "mout_top_aclk_cam1_trex_vra_528", top_mux_aclk_cam1_trex_vra_528_p,
+	    CLK_CON_MUX_ACLK_CAM1_TREX_VRA_528, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_TREX_B_528, "mout_top_aclk_cam1_trex_b_528",
+	    top_mux_aclk_cam1_trex_b_528_p, CLK_CON_MUX_ACLK_CAM1_TREX_B_528,
+	    12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_BUS_264, "mout_top_aclk_cam1_bus_264",
+	    top_mux_aclk_cam1_bus_264_p, CLK_CON_MUX_ACLK_CAM1_BUS_264, 12, 3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_PERI_84, "mout_top_aclk_cam1_peri_84",
+	    top_mux_aclk_cam1_peri_84_p, CLK_CON_MUX_ACLK_CAM1_PERI_84, 12, 1),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_CSIS2_414, "mout_top_aclk_cam1_csis2_414",
+	    top_mux_aclk_cam1_csis2_414_p, CLK_CON_MUX_ACLK_CAM1_CSIS2_414, 12,
+	    3),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_CSIS3_132, "mout_top_aclk_cam1_csis3_132",
+	    top_mux_aclk_cam1_csis3_132_p, CLK_CON_MUX_ACLK_CAM1_CSIS3_132, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_ACLK_CAM1_SCL_566, "mout_top_aclk_cam1_scl_566",
+	    top_mux_aclk_cam1_scl_566_p, CLK_CON_MUX_ACLK_CAM1_SCL_566, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_DISP0_DECON0_ECLK0,
+	    "mout_top_sclk_disp0_decon0_eclk0",
+	    top_mux_sclk_disp0_decon0_eclk0_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_DISP0_DECON0_VCLK0,
+	    "mout_top_sclk_disp0_decon0_vclk0",
+	    top_mux_sclk_disp0_decon0_vclk0_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_DISP0_DECON0_VCLK1,
+	    "mout_top_sclk_disp0_decon0_vclk1",
+	    top_mux_sclk_disp0_decon0_vclk1_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_DISP0_HDMI_AUDIO,
+	    "mout_top_sclk_disp0_hdmi_audio", top_mux_sclk_disp0_hdmi_audio_p,
+	    CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_TOP, 12, 1),
+	MUX(CLK_MOUT_TOP_SCLK_DISP1_DECON1_ECLK0,
+	    "mout_top_sclk_disp1_decon1_eclk0",
+	    top_mux_sclk_disp1_decon1_eclk0_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_DISP1_DECON1_ECLK1,
+	    "mout_top_sclk_disp1_decon1_eclk1",
+	    top_mux_sclk_disp1_decon1_eclk1_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_TOP, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS0_USBDRD30, "mout_top_sclk_fsys0_usbdrd30",
+	    top_mux_sclk_fsys0_usbdrd30_p, CLK_CON_MUX_SCLK_FSYS0_USBDRD30, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS0_MMC0, "mout_top_sclk_fsys0_mmc0",
+	    top_mux_sclk_fsys0_mmc0_p, CLK_CON_MUX_SCLK_FSYS0_MMC0, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS0_UFSUNIPRO20,
+	    "mout_top_sclk_fsys0_ufsunipro20", top_mux_sclk_fsys0_ufsunipro20_p,
+	    CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO20, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS0_PHY_24M, "mout_top_sclk_fsys0_phy_24m",
+	    top_mux_sclk_fsys0_phy_24m_p, CLK_CON_MUX_SCLK_FSYS0_PHY_24M, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS0_UFSUNIPRO_CFG,
+	    "mout_top_sclk_fsys0_ufsunipro_cfg",
+	    top_mux_sclk_fsys0_ufsunipro_cfg_p,
+	    CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_CFG, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS1_MMC2, "mout_top_sclk_fsys1_mmc2",
+	    top_mux_sclk_fsys1_mmc2_p, CLK_CON_MUX_SCLK_FSYS1_MMC2, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS1_UFSUNIPRO20,
+	    "mout_top_sclk_fsys1_ufsunipro20", top_mux_sclk_fsys1_ufsunipro20_p,
+	    CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO20, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS1_PCIE_PHY, "mout_top_sclk_fsys1_pcie_phy",
+	    top_mux_sclk_fsys1_pcie_phy_p, CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_SCLK_FSYS1_UFSUNIPRO_CFG,
+	    "mout_top_sclk_fsys1_ufsunipro_cfg",
+	    top_mux_sclk_fsys1_ufsunipro_cfg_p,
+	    CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_CFG, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC0_UART0, "mout_top_sclk_peric0_uart0",
+	    top_mux_sclk_peric0_uart0_p, CLK_CON_MUX_SCLK_PERIC0_UART0, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI0, "mout_top_sclk_peric1_spi0",
+	    top_mux_sclk_peric1_spi0_p, CLK_CON_MUX_SCLK_PERIC1_SPI0, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI1, "mout_top_sclk_peric1_spi1",
+	    top_mux_sclk_peric1_spi1_p, CLK_CON_MUX_SCLK_PERIC1_SPI1, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI2, "mout_top_sclk_peric1_spi2",
+	    top_mux_sclk_peric1_spi2_p, CLK_CON_MUX_SCLK_PERIC1_SPI2, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI3, "mout_top_sclk_peric1_spi3",
+	    top_mux_sclk_peric1_spi3_p, CLK_CON_MUX_SCLK_PERIC1_SPI3, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI4, "mout_top_sclk_peric1_spi4",
+	    top_mux_sclk_peric1_spi4_p, CLK_CON_MUX_SCLK_PERIC1_SPI4, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI5, "mout_top_sclk_peric1_spi5",
+	    top_mux_sclk_peric1_spi5_p, CLK_CON_MUX_SCLK_PERIC1_SPI5, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI6, "mout_top_sclk_peric1_spi6",
+	    top_mux_sclk_peric1_spi6_p, CLK_CON_MUX_SCLK_PERIC1_SPI6, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_SPI7, "mout_top_sclk_peric1_spi7",
+	    top_mux_sclk_peric1_spi7_p, CLK_CON_MUX_SCLK_PERIC1_SPI7, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_UART1, "mout_top_sclk_peric1_uart1",
+	    top_mux_sclk_peric1_uart1_p, CLK_CON_MUX_SCLK_PERIC1_UART1, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_UART2, "mout_top_sclk_peric1_uart2",
+	    top_mux_sclk_peric1_uart2_p, CLK_CON_MUX_SCLK_PERIC1_UART2, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_UART3, "mout_top_sclk_peric1_uart3",
+	    top_mux_sclk_peric1_uart3_p, CLK_CON_MUX_SCLK_PERIC1_UART3, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_UART4, "mout_top_sclk_peric1_uart4",
+	    top_mux_sclk_peric1_uart4_p, CLK_CON_MUX_SCLK_PERIC1_UART4, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PERIC1_UART5, "mout_top_sclk_peric1_uart5",
+	    top_mux_sclk_peric1_uart5_p, CLK_CON_MUX_SCLK_PERIC1_UART5, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_CAM1_ISP_SPI0, "mout_top_sclk_cam1_isp_spi0",
+	    top_mux_sclk_cam1_isp_spi0_p, CLK_CON_MUX_SCLK_CAM1_ISP_SPI0, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_SCLK_CAM1_ISP_SPI1, "mout_top_sclk_cam1_isp_spi1",
+	    top_mux_sclk_cam1_isp_spi1_p, CLK_CON_MUX_SCLK_CAM1_ISP_SPI1, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_SCLK_CAM1_ISP_UART, "mout_top_sclk_cam1_isp_uart",
+	    top_mux_sclk_cam1_isp_uart_p, CLK_CON_MUX_SCLK_CAM1_ISP_UART, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_SCLK_AP2CP_MIF_PLL_OUT,
+	    "mout_top_sclk_ap2cp_mif_pll_out", top_mux_sclk_ap2cp_mif_pll_out_p,
+	    CLK_CON_MUX_SCLK_AP2CP_MIF_PLL_OUT, 12, 2),
+	MUX(CLK_MOUT_TOP_ACLK_PSCDC_400, "mout_top_aclk_pscdc_400",
+	    top_mux_aclk_pscdc_400_p, CLK_CON_MUX_ACLK_PSCDC_400, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_BUS_PLL_MNGS, "mout_top_sclk_bus_pll_mngs",
+	    top_mux_sclk_bus_pll_mngs_p, CLK_CON_MUX_SCLK_BUS_PLL_MNGS, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_BUS_PLL_APOLLO, "mout_top_sclk_bus_pll_apollo",
+	    top_mux_sclk_bus_pll_apollo_p, CLK_CON_MUX_SCLK_BUS_PLL_APOLLO, 12,
+	    2),
+	MUX(CLK_MOUT_TOP_SCLK_BUS_PLL_MIF, "mout_top_sclk_bus_pll_mif",
+	    top_mux_sclk_bus_pll_mif_p, CLK_CON_MUX_SCLK_BUS_PLL_MIF, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_BUS_PLL_G3D, "mout_top_sclk_bus_pll_g3d",
+	    top_mux_sclk_bus_pll_g3d_p, CLK_CON_MUX_SCLK_BUS_PLL_G3D, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_ISP_SENSOR0, "mout_top_sclk_isp_sensor0",
+	    top_mux_sclk_isp_sensor0_p, CLK_CON_MUX_SCLK_ISP_SENSOR0, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_ISP_SENSOR1, "mout_top_sclk_isp_sensor1",
+	    top_mux_sclk_isp_sensor1_p, CLK_CON_MUX_SCLK_ISP_SENSOR1, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_ISP_SENSOR2, "mout_top_sclk_isp_sensor2",
+	    top_mux_sclk_isp_sensor2_p, CLK_CON_MUX_SCLK_ISP_SENSOR2, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_ISP_SENSOR3, "mout_top_sclk_isp_sensor3",
+	    top_mux_sclk_isp_sensor3_p, CLK_CON_MUX_SCLK_ISP_SENSOR3, 12, 3),
+	MUX(CLK_MOUT_TOP_SCLK_PROMISE_INT, "mout_top_sclk_promise_int",
+	    top_mux_sclk_promise_int_p, CLK_CON_MUX_SCLK_PROMISE_INT, 12, 2),
+	MUX(CLK_MOUT_TOP_SCLK_PROMISE_DISP, "mout_top_sclk_promise_disp",
+	    top_mux_sclk_promise_disp_p, CLK_CON_MUX_SCLK_PROMISE_DISP, 12, 2),
+	MUX(CLK_MOUT_TOP_CP2AP_MIF_CLK_USER, "mout_top_cp2ap_mif_clk_user",
+	    top_mux_cp2ap_mif_clk_user_p, CLK_CON_MUX_CP2AP_MIF_CLK_USER, 12,
+	    1),
+	MUX(CLK_MOUT_TOP_MIF_PLL, "mout_top_mif_pll", top_mux_mif_pll_p,
+	    MIF_CLK_CTRL2, 12, 1),
+	MUX(CLK_MOUT_TOP_BUS_PLL_MIF, "mout_top_bus_pll_mif",
+	    top_mux_bus_pll_mif_p, MIF_CLK_CTRL3, 12, 1),
+	MUX(CLK_MOUT_TOP_ACLK_MIF_PLL, "mout_top_aclk_mif_pll",
+	    top_mux_aclk_mif_pll_p, MIF_CLK_CTRL4, 12, 1),
+};
+
+static const struct samsung_div_clock top_div_clks[] __initconst = {
+	DIV(CLK_DOUT_TOP_ACLK_CCORE_800, "dout_top_aclk_ccore_800",
+	    "umout_top_aclk_ccore_800", CLK_CON_DIV_ACLK_CCORE_800, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CCORE_264, "dout_top_aclk_ccore_264",
+	    "umout_top_aclk_ccore_264", CLK_CON_DIV_ACLK_CCORE_264, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CCORE_G3D_800, "dout_top_aclk_ccore_g3d_800",
+	    "umout_top_aclk_ccore_g3d_800", CLK_CON_DIV_ACLK_CCORE_G3D_800, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CCORE_528, "dout_top_aclk_ccore_528",
+	    "umout_top_aclk_ccore_528", CLK_CON_DIV_ACLK_CCORE_528, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CCORE_132, "dout_top_aclk_ccore_132",
+	    "umout_top_aclk_ccore_132", CLK_CON_DIV_ACLK_CCORE_132, 0, 4),
+	DIV(CLK_DOUT_TOP_PCLK_CCORE_66, "dout_top_pclk_ccore_66",
+	    "umout_top_pclk_ccore_66", CLK_CON_DIV_PCLK_CCORE_66, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_BUS0_528, "dout_top_aclk_bus0_528",
+	    "umout_top_aclk_bus0_528", CLK_CON_DIV_ACLK_BUS0_528, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_BUS0_200, "dout_top_aclk_bus0_200",
+	    "umout_top_aclk_bus0_200", CLK_CON_DIV_ACLK_BUS0_200, 0, 4),
+	DIV(CLK_DOUT_TOP_PCLK_BUS0_132, "dout_top_pclk_bus0_132",
+	    "umout_top_pclk_bus0_132", CLK_CON_DIV_PCLK_BUS0_132, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_BUS1_528, "dout_top_aclk_bus1_528",
+	    "umout_top_aclk_bus1_528", CLK_CON_DIV_ACLK_BUS1_528, 0, 4),
+	DIV(CLK_DOUT_TOP_PCLK_BUS1_132, "dout_top_pclk_bus1_132",
+	    "umout_top_pclk_bus1_132", CLK_CON_DIV_PCLK_BUS1_132, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_DISP0_0_400, "dout_top_aclk_disp0_0_400",
+	    "umout_top_aclk_disp0_0_400", CLK_CON_DIV_ACLK_DISP0_0_400, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_DISP0_1_400, "dout_top_aclk_disp0_1_400",
+	    "umout_top_aclk_disp0_1_400", CLK_CON_DIV_ACLK_DISP0_1_400, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_DISP1_0_400, "dout_top_aclk_disp1_0_400",
+	    "umout_top_aclk_disp1_0_400", CLK_CON_DIV_ACLK_DISP1_0_400, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_DISP1_1_400, "dout_top_aclk_disp1_1_400",
+	    "umout_top_aclk_disp1_1_400", CLK_CON_DIV_ACLK_DISP1_1_400, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_MFC_600, "dout_top_aclk_mfc_600",
+	    "umout_top_aclk_mfc_600", CLK_CON_DIV_ACLK_MFC_600, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_MSCL0_528, "dout_top_aclk_mscl0_528",
+	    "umout_top_aclk_mscl0_528", CLK_CON_DIV_ACLK_MSCL0_528, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_MSCL1_528, "dout_top_aclk_mscl1_528",
+	    "umout_top_aclk_mscl1_528", CLK_CON_DIV_ACLK_MSCL1_528, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_IMEM_266, "dout_top_aclk_imem_266",
+	    "umout_top_aclk_imem_266", CLK_CON_DIV_ACLK_IMEM_266, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_IMEM_200, "dout_top_aclk_imem_200",
+	    "umout_top_aclk_imem_200", CLK_CON_DIV_ACLK_IMEM_200, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_IMEM_100, "dout_top_aclk_imem_100",
+	    "umout_top_aclk_imem_100", CLK_CON_DIV_ACLK_IMEM_100, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_FSYS0_200, "dout_top_aclk_fsys0_200",
+	    "umout_top_aclk_fsys0_200", CLK_CON_DIV_ACLK_FSYS0_200, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_FSYS1_200, "dout_top_aclk_fsys1_200",
+	    "umout_top_aclk_fsys1_200", CLK_CON_DIV_ACLK_FSYS1_200, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_PERIS_66, "dout_top_aclk_peris_66",
+	    "umout_top_aclk_peris_66", CLK_CON_DIV_ACLK_PERIS_66, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_PERIC0_66, "dout_top_aclk_peric0_66",
+	    "umout_top_aclk_peric0_66", CLK_CON_DIV_ACLK_PERIC0_66, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_PERIC1_66, "dout_top_aclk_peric1_66",
+	    "umout_top_aclk_peric1_66", CLK_CON_DIV_ACLK_PERIC1_66, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_ISP0_ISP0_528, "dout_top_aclk_isp0_isp0_528",
+	    "umout_top_aclk_isp0_isp0_528", CLK_CON_DIV_ACLK_ISP0_ISP0_528, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_ISP0_TPU_400, "dout_top_aclk_isp0_tpu_400",
+	    "umout_top_aclk_isp0_tpu_400", CLK_CON_DIV_ACLK_ISP0_TPU_400, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_ISP0_TREX_528, "dout_top_aclk_isp0_trex_528",
+	    "umout_top_aclk_isp0_trex_528", CLK_CON_DIV_ACLK_ISP0_TREX_528, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D,
+	    "dout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	    "umout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	    CLK_CON_DIV_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_ISP1_ISP1_468, "dout_top_aclk_isp1_isp1_468",
+	    "umout_top_aclk_isp1_isp1_468", CLK_CON_DIV_ACLK_ISP1_ISP1_468, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_CSIS0_414, "dout_top_aclk_cam0_csis0_414",
+	    "umout_top_aclk_cam0_csis0_414", CLK_CON_DIV_ACLK_CAM0_CSIS0_414, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_CSIS1_168, "dout_top_aclk_cam0_csis1_168",
+	    "umout_top_aclk_cam0_csis1_168", CLK_CON_DIV_ACLK_CAM0_CSIS1_168, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_CSIS2_234, "dout_top_aclk_cam0_csis2_234",
+	    "umout_top_aclk_cam0_csis2_234", CLK_CON_DIV_ACLK_CAM0_CSIS2_234, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_3AA0_414, "dout_top_aclk_cam0_3aa0_414",
+	    "umout_top_aclk_cam0_3aa0_414", CLK_CON_DIV_ACLK_CAM0_3AA0_414, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_3AA1_414, "dout_top_aclk_cam0_3aa1_414",
+	    "umout_top_aclk_cam0_3aa1_414", CLK_CON_DIV_ACLK_CAM0_3AA1_414, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_CSIS3_132, "dout_top_aclk_cam0_csis3_132",
+	    "umout_top_aclk_cam0_csis3_132", CLK_CON_DIV_ACLK_CAM0_CSIS3_132, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM0_TREX_528, "dout_top_aclk_cam0_trex_528",
+	    "umout_top_aclk_cam0_trex_528", CLK_CON_DIV_ACLK_CAM0_TREX_528, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_ARM_672, "dout_top_aclk_cam1_arm_672",
+	    "umout_top_aclk_cam1_arm_672", CLK_CON_DIV_ACLK_CAM1_ARM_672, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_TREX_VRA_528,
+	    "dout_top_aclk_cam1_trex_vra_528",
+	    "umout_top_aclk_cam1_trex_vra_528",
+	    CLK_CON_DIV_ACLK_CAM1_TREX_VRA_528, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_TREX_B_528, "dout_top_aclk_cam1_trex_b_528",
+	    "umout_top_aclk_cam1_trex_b_528", CLK_CON_DIV_ACLK_CAM1_TREX_B_528,
+	    0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_BUS_264, "dout_top_aclk_cam1_bus_264",
+	    "umout_top_aclk_cam1_bus_264", CLK_CON_DIV_ACLK_CAM1_BUS_264, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_PERI_84, "dout_top_aclk_cam1_peri_84",
+	    "umout_top_aclk_cam1_peri_84", CLK_CON_DIV_ACLK_CAM1_PERI_84, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_CSIS2_414, "dout_top_aclk_cam1_csis2_414",
+	    "umout_top_aclk_cam1_csis2_414", CLK_CON_DIV_ACLK_CAM1_CSIS2_414, 0,
+	    8),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_CSIS3_132, "dout_top_aclk_cam1_csis3_132",
+	    "umout_top_aclk_cam1_csis3_132", CLK_CON_DIV_ACLK_CAM1_CSIS3_132, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_ACLK_CAM1_SCL_566, "dout_top_aclk_cam1_scl_566",
+	    "umout_top_aclk_cam1_scl_566", CLK_CON_DIV_ACLK_CAM1_SCL_566, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP0_DECON0_ECLK0,
+	    "dout_top_sclk_disp0_decon0_eclk0",
+	    "umout_top_sclk_disp0_decon0_eclk0",
+	    CLK_CON_DIV_SCLK_DISP0_DECON0_ECLK0, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP0_DECON0_VCLK0,
+	    "dout_top_sclk_disp0_decon0_vclk0",
+	    "umout_top_sclk_disp0_decon0_vclk0",
+	    CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK0, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP0_DECON0_VCLK1,
+	    "dout_top_sclk_disp0_decon0_vclk1",
+	    "umout_top_sclk_disp0_decon0_vclk1",
+	    CLK_CON_DIV_SCLK_DISP0_DECON0_VCLK1, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP0_HDMI_AUDIO,
+	    "dout_top_sclk_disp0_hdmi_audio", "umout_top_sclk_disp0_hdmi_audio",
+	    CLK_CON_DIV_SCLK_DISP0_HDMI_AUDIO, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP1_DECON1_ECLK0,
+	    "dout_top_sclk_disp1_decon1_eclk0",
+	    "umout_top_sclk_disp1_decon1_eclk0",
+	    CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK0, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_DISP1_DECON1_ECLK1,
+	    "dout_top_sclk_disp1_decon1_eclk1",
+	    "umout_top_sclk_disp1_decon1_eclk1",
+	    CLK_CON_DIV_SCLK_DISP1_DECON1_ECLK1, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS0_USBDRD30, "dout_top_sclk_fsys0_usbdrd30",
+	    "umout_top_sclk_fsys0_usbdrd30", CLK_CON_DIV_SCLK_FSYS0_USBDRD30, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS0_MMC0, "dout_top_sclk_fsys0_mmc0",
+	    "umout_top_sclk_fsys0_mmc0", CLK_CON_DIV_SCLK_FSYS0_MMC0, 0, 10),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS0_UFSUNIPRO20,
+	    "dout_top_sclk_fsys0_ufsunipro20",
+	    "umout_top_sclk_fsys0_ufsunipro20",
+	    CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO20, 0, 6),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS0_PHY_24M, "dout_top_sclk_fsys0_phy_24m",
+	    "umout_top_sclk_fsys0_phy_24m", CLK_CON_DIV_SCLK_FSYS0_PHY_24M, 0,
+	    6),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS0_UFSUNIPRO_CFG,
+	    "dout_top_sclk_fsys0_ufsunipro_cfg",
+	    "umout_top_sclk_fsys0_ufsunipro_cfg",
+	    CLK_CON_DIV_SCLK_FSYS0_UFSUNIPRO_CFG, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS1_MMC2, "dout_top_sclk_fsys1_mmc2",
+	    "umout_top_sclk_fsys1_mmc2", CLK_CON_DIV_SCLK_FSYS1_MMC2, 0, 10),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS1_UFSUNIPRO20,
+	    "dout_top_sclk_fsys1_ufsunipro20",
+	    "umout_top_sclk_fsys1_ufsunipro20",
+	    CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO20, 0, 6),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS1_PCIE_PHY, "dout_top_sclk_fsys1_pcie_phy",
+	    "umout_top_sclk_fsys1_pcie_phy", CLK_CON_DIV_SCLK_FSYS1_PCIE_PHY, 0,
+	    6),
+	DIV(CLK_DOUT_TOP_SCLK_FSYS1_UFSUNIPRO_CFG,
+	    "dout_top_sclk_fsys1_ufsunipro_cfg",
+	    "umout_top_sclk_fsys1_ufsunipro_cfg",
+	    CLK_CON_DIV_SCLK_FSYS1_UFSUNIPRO_CFG, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC0_UART0, "dout_top_sclk_peric0_uart0",
+	    "umout_top_sclk_peric0_uart0", CLK_CON_DIV_SCLK_PERIC0_UART0, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI0, "dout_top_sclk_peric1_spi0",
+	    "umout_top_sclk_peric1_spi0", CLK_CON_DIV_SCLK_PERIC1_SPI0, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI1, "dout_top_sclk_peric1_spi1",
+	    "umout_top_sclk_peric1_spi1", CLK_CON_DIV_SCLK_PERIC1_SPI1, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI2, "dout_top_sclk_peric1_spi2",
+	    "umout_top_sclk_peric1_spi2", CLK_CON_DIV_SCLK_PERIC1_SPI2, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI3, "dout_top_sclk_peric1_spi3",
+	    "umout_top_sclk_peric1_spi3", CLK_CON_DIV_SCLK_PERIC1_SPI3, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI4, "dout_top_sclk_peric1_spi4",
+	    "umout_top_sclk_peric1_spi4", CLK_CON_DIV_SCLK_PERIC1_SPI4, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI5, "dout_top_sclk_peric1_spi5",
+	    "umout_top_sclk_peric1_spi5", CLK_CON_DIV_SCLK_PERIC1_SPI5, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI6, "dout_top_sclk_peric1_spi6",
+	    "umout_top_sclk_peric1_spi6", CLK_CON_DIV_SCLK_PERIC1_SPI6, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_SPI7, "dout_top_sclk_peric1_spi7",
+	    "umout_top_sclk_peric1_spi7", CLK_CON_DIV_SCLK_PERIC1_SPI7, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_UART1, "dout_top_sclk_peric1_uart1",
+	    "umout_top_sclk_peric1_uart1", CLK_CON_DIV_SCLK_PERIC1_UART1, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_UART2, "dout_top_sclk_peric1_uart2",
+	    "umout_top_sclk_peric1_uart2", CLK_CON_DIV_SCLK_PERIC1_UART2, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_UART3, "dout_top_sclk_peric1_uart3",
+	    "umout_top_sclk_peric1_uart3", CLK_CON_DIV_SCLK_PERIC1_UART3, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_UART4, "dout_top_sclk_peric1_uart4",
+	    "umout_top_sclk_peric1_uart4", CLK_CON_DIV_SCLK_PERIC1_UART4, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PERIC1_UART5, "dout_top_sclk_peric1_uart5",
+	    "umout_top_sclk_peric1_uart5", CLK_CON_DIV_SCLK_PERIC1_UART5, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_CAM1_ISP_SPI0, "dout_top_sclk_cam1_isp_spi0",
+	    "umout_top_sclk_cam1_isp_spi0", CLK_CON_DIV_SCLK_CAM1_ISP_SPI0, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_SCLK_CAM1_ISP_SPI1, "dout_top_sclk_cam1_isp_spi1",
+	    "umout_top_sclk_cam1_isp_spi1", CLK_CON_DIV_SCLK_CAM1_ISP_SPI1, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_SCLK_CAM1_ISP_UART, "dout_top_sclk_cam1_isp_uart",
+	    "umout_top_sclk_cam1_isp_uart", CLK_CON_DIV_SCLK_CAM1_ISP_UART, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_SCLK_AP2CP_MIF_PLL_OUT,
+	    "dout_top_sclk_ap2cp_mif_pll_out",
+	    "umout_top_sclk_ap2cp_mif_pll_out",
+	    CLK_CON_DIV_SCLK_AP2CP_MIF_PLL_OUT, 0, 4),
+	DIV(CLK_DOUT_TOP_ACLK_PSCDC_400, "dout_top_aclk_pscdc_400",
+	    "umout_top_aclk_pscdc_400", CLK_CON_DIV_ACLK_PSCDC_400, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_BUS_PLL_MNGS, "dout_top_sclk_bus_pll_mngs",
+	    "umout_top_sclk_bus_pll_mngs", CLK_CON_DIV_SCLK_BUS_PLL_MNGS, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_BUS_PLL_APOLLO, "dout_top_sclk_bus_pll_apollo",
+	    "umout_top_sclk_bus_pll_apollo", CLK_CON_DIV_SCLK_BUS_PLL_APOLLO, 0,
+	    4),
+	DIV(CLK_DOUT_TOP_SCLK_BUS_PLL_MIF, "dout_top_sclk_bus_pll_mif",
+	    "umout_top_sclk_bus_pll_mif", CLK_CON_DIV_SCLK_BUS_PLL_MIF, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_BUS_PLL_G3D, "dout_top_sclk_bus_pll_g3d",
+	    "umout_top_sclk_bus_pll_g3d", CLK_CON_DIV_SCLK_BUS_PLL_G3D, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_ISP_SENSOR0, "dout_top_sclk_isp_sensor0",
+	    "umout_top_sclk_isp_sensor0", CLK_CON_DIV_SCLK_ISP_SENSOR0, 0, 8),
+	DIV(CLK_DOUT_TOP_SCLK_ISP_SENSOR1, "dout_top_sclk_isp_sensor1",
+	    "umout_top_sclk_isp_sensor1", CLK_CON_DIV_SCLK_ISP_SENSOR1, 0, 8),
+	DIV(CLK_DOUT_TOP_SCLK_ISP_SENSOR2, "dout_top_sclk_isp_sensor2",
+	    "umout_top_sclk_isp_sensor2", CLK_CON_DIV_SCLK_ISP_SENSOR2, 0, 8),
+	DIV(CLK_DOUT_TOP_SCLK_ISP_SENSOR3, "dout_top_sclk_isp_sensor3",
+	    "umout_top_sclk_isp_sensor3", CLK_CON_DIV_SCLK_ISP_SENSOR3, 0, 8),
+	DIV(CLK_DOUT_TOP_SCLK_PROMISE_INT, "dout_top_sclk_promise_int",
+	    "umout_top_sclk_promise_int", CLK_CON_DIV_SCLK_PROMISE_INT, 0, 4),
+	DIV(CLK_DOUT_TOP_SCLK_PROMISE_DISP, "dout_top_sclk_promise_disp",
+	    "umout_top_sclk_promise_disp", CLK_CON_DIV_SCLK_PROMISE_DISP, 0, 4),
+};
+
+static const
+struct samsung_fixed_factor_clock top_fixed_factor_clks[] __initconst = {
+	FFACTOR(CLK_TOP_FF_BUS0_PLL_DIV2, "top_ff_bus0_pll_div2",
+		"mout_top_bus0_pll", 1, 2, 0),
+	FFACTOR(CLK_TOP_FF_BUS1_PLL_DIV2, "top_ff_bus1_pll_div2",
+		"mout_top_bus1_pll", 1, 2, 0),
+	FFACTOR(CLK_TOP_FF_BUS2_PLL_DIV2, "top_ff_bus2_pll_div2",
+		"mout_top_bus2_pll", 1, 2, 0),
+	FFACTOR(CLK_TOP_FF_BUS3_PLL_DIV2, "top_ff_bus3_pll_div2",
+		"mout_top_bus3_pll", 1, 2, 0),
+	FFACTOR(CLK_TOP_FF_BUS3_PLL_DIV4, "top_ff_bus3_pll_div4",
+		"mout_top_bus3_pll", 1, 4, 0),
+	FFACTOR(CLK_TOP_FF_MFC_PLL_DIV2, "top_ff_mfc_pll_div2",
+		"mout_top_mfc_pll", 1, 2, 0),
+	FFACTOR(CLK_TOP_FF_ISP_PLL_DIV2, "top_ff_isp_pll_div2",
+		"mout_top_isp_pll", 1, 2, 0),
+};
+
+static const struct samsung_gate_clock top_gate_clks[] __initconst = {
+	/* these gates are very sensitive, so keep them open  */
+	GATE(CLK_UMOUT_TOP_BUS0_PLL, "umout_top_bus0_pll", "mout_top_bus0_pll",
+	     CLK_CON_MUX_BUS0_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_BUS1_PLL, "umout_top_bus1_pll", "mout_top_bus1_pll",
+	     CLK_CON_MUX_BUS1_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_BUS2_PLL, "umout_top_bus2_pll", "mout_top_bus2_pll",
+	     CLK_CON_MUX_BUS2_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_BUS3_PLL, "umout_top_bus3_pll", "mout_top_bus3_pll",
+	     CLK_CON_MUX_BUS3_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_MFC_PLL, "umout_top_mfc_pll", "mout_top_mfc_pll",
+	     CLK_CON_MUX_MFC_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ISP_PLL, "umout_top_isp_pll", "mout_top_isp_pll",
+	     CLK_CON_MUX_ISP_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_AUD_PLL, "umout_top_aud_pll", "mout_top_aud_pll",
+	     CLK_CON_MUX_AUD_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_G3D_PLL, "umout_top_g3d_pll", "mout_top_g3d_pll",
+	     CLK_CON_MUX_G3D_PLL, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS0_PLL, "umout_top_sclk_bus0_pll",
+	     "mout_top_sclk_bus0_pll", CLK_CON_MUX_SCLK_BUS0_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS1_PLL, "umout_top_sclk_bus1_pll",
+	     "mout_top_sclk_bus1_pll", CLK_CON_MUX_SCLK_BUS1_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS2_PLL, "umout_top_sclk_bus2_pll",
+	     "mout_top_sclk_bus2_pll", CLK_CON_MUX_SCLK_BUS2_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS3_PLL, "umout_top_sclk_bus3_pll",
+	     "mout_top_sclk_bus3_pll", CLK_CON_MUX_SCLK_BUS3_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_MFC_PLL, "umout_top_sclk_mfc_pll",
+	     "mout_top_sclk_mfc_pll", CLK_CON_MUX_SCLK_MFC_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_ISP_PLL, "umout_top_sclk_isp_pll",
+	     "mout_top_sclk_isp_pll", CLK_CON_MUX_SCLK_ISP_PLL, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CCORE_800, "umout_top_aclk_ccore_800",
+	     "mout_top_aclk_ccore_800", CLK_CON_MUX_ACLK_CCORE_800, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CCORE_264, "umout_top_aclk_ccore_264",
+	     "mout_top_aclk_ccore_264", CLK_CON_MUX_ACLK_CCORE_264, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CCORE_G3D_800, "umout_top_aclk_ccore_g3d_800",
+	     "mout_top_aclk_ccore_g3d_800", CLK_CON_MUX_ACLK_CCORE_G3D_800, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CCORE_528, "umout_top_aclk_ccore_528",
+	     "mout_top_aclk_ccore_528", CLK_CON_MUX_ACLK_CCORE_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CCORE_132, "umout_top_aclk_ccore_132",
+	     "mout_top_aclk_ccore_132", CLK_CON_MUX_ACLK_CCORE_132, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_PCLK_CCORE_66, "umout_top_pclk_ccore_66",
+	     "mout_top_pclk_ccore_66", CLK_CON_MUX_PCLK_CCORE_66, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_BUS0_528, "umout_top_aclk_bus0_528",
+	     "mout_top_aclk_bus0_528", CLK_CON_MUX_ACLK_BUS0_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_BUS0_200, "umout_top_aclk_bus0_200",
+	     "mout_top_aclk_bus0_200", CLK_CON_MUX_ACLK_BUS0_200, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_PCLK_BUS0_132, "umout_top_pclk_bus0_132",
+	     "mout_top_pclk_bus0_132", CLK_CON_MUX_PCLK_BUS0_132, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_BUS1_528, "umout_top_aclk_bus1_528",
+	     "mout_top_aclk_bus1_528", CLK_CON_MUX_ACLK_BUS1_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_PCLK_BUS1_132, "umout_top_pclk_bus1_132",
+	     "mout_top_pclk_bus1_132", CLK_CON_MUX_PCLK_BUS1_132, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_DISP0_0_400, "umout_top_aclk_disp0_0_400",
+	     "mout_top_aclk_disp0_0_400", CLK_CON_MUX_ACLK_DISP0_0_400, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_DISP0_1_400, "umout_top_aclk_disp0_1_400",
+	     "mout_top_aclk_disp0_1_400", CLK_CON_MUX_ACLK_DISP0_1_400_TOP, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_DISP1_0_400, "umout_top_aclk_disp1_0_400",
+	     "mout_top_aclk_disp1_0_400", CLK_CON_MUX_ACLK_DISP1_0_400, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_DISP1_1_400, "umout_top_aclk_disp1_1_400",
+	     "mout_top_aclk_disp1_1_400", CLK_CON_MUX_ACLK_DISP1_1_400_TOP, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_MFC_600, "umout_top_aclk_mfc_600",
+	     "mout_top_aclk_mfc_600", CLK_CON_MUX_ACLK_MFC_600, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_MSCL0_528, "umout_top_aclk_mscl0_528",
+	     "mout_top_aclk_mscl0_528", CLK_CON_MUX_ACLK_MSCL0_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_MSCL1_528, "umout_top_aclk_mscl1_528",
+	     "mout_top_aclk_mscl1_528", CLK_CON_MUX_ACLK_MSCL1_528_TOP, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_IMEM_266, "umout_top_aclk_imem_266",
+	     "mout_top_aclk_imem_266", CLK_CON_MUX_ACLK_IMEM_266, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_IMEM_200, "umout_top_aclk_imem_200",
+	     "mout_top_aclk_imem_200", CLK_CON_MUX_ACLK_IMEM_200, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_IMEM_100, "umout_top_aclk_imem_100",
+	     "mout_top_aclk_imem_100", CLK_CON_MUX_ACLK_IMEM_100, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_FSYS0_200, "umout_top_aclk_fsys0_200",
+	     "mout_top_aclk_fsys0_200", CLK_CON_MUX_ACLK_FSYS0_200, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_FSYS1_200, "umout_top_aclk_fsys1_200",
+	     "mout_top_aclk_fsys1_200", CLK_CON_MUX_ACLK_FSYS1_200, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_PERIS_66, "umout_top_aclk_peris_66",
+	     "mout_top_aclk_peris_66", CLK_CON_MUX_ACLK_PERIS_66, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_PERIC0_66, "umout_top_aclk_peric0_66",
+	     "mout_top_aclk_peric0_66", CLK_CON_MUX_ACLK_PERIC0_66, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_PERIC1_66, "umout_top_aclk_peric1_66",
+	     "mout_top_aclk_peric1_66", CLK_CON_MUX_ACLK_PERIC1_66, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_ISP0_ISP0_528, "umout_top_aclk_isp0_isp0_528",
+	     "mout_top_aclk_isp0_isp0_528", CLK_CON_MUX_ACLK_ISP0_ISP0_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_ISP0_TPU_400, "umout_top_aclk_isp0_tpu_400",
+	     "mout_top_aclk_isp0_tpu_400", CLK_CON_MUX_ACLK_ISP0_TPU_400, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_ISP0_TREX_528, "umout_top_aclk_isp0_trex_528",
+	     "mout_top_aclk_isp0_trex_528", CLK_CON_MUX_ACLK_ISP0_TREX_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D,
+	     "umout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	     "mout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	     CLK_CON_MUX_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_ISP1_ISP1_468, "umout_top_aclk_isp1_isp1_468",
+	     "mout_top_aclk_isp1_isp1_468", CLK_CON_MUX_ACLK_ISP1_ISP1_468, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_CSIS0_414, "umout_top_aclk_cam0_csis0_414",
+	     "mout_top_aclk_cam0_csis0_414", CLK_CON_MUX_ACLK_CAM0_CSIS0_414,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_CSIS1_168, "umout_top_aclk_cam0_csis1_168",
+	     "mout_top_aclk_cam0_csis1_168", CLK_CON_MUX_ACLK_CAM0_CSIS1_168,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_CSIS2_234, "umout_top_aclk_cam0_csis2_234",
+	     "mout_top_aclk_cam0_csis2_234", CLK_CON_MUX_ACLK_CAM0_CSIS2_234,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_3AA0_414, "umout_top_aclk_cam0_3aa0_414",
+	     "mout_top_aclk_cam0_3aa0_414", CLK_CON_MUX_ACLK_CAM0_3AA0_414, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_3AA1_414, "umout_top_aclk_cam0_3aa1_414",
+	     "mout_top_aclk_cam0_3aa1_414", CLK_CON_MUX_ACLK_CAM0_3AA1_414, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_CSIS3_132, "umout_top_aclk_cam0_csis3_132",
+	     "mout_top_aclk_cam0_csis3_132", CLK_CON_MUX_ACLK_CAM0_CSIS3_132,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM0_TREX_528, "umout_top_aclk_cam0_trex_528",
+	     "mout_top_aclk_cam0_trex_528", CLK_CON_MUX_ACLK_CAM0_TREX_528, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_ARM_672, "umout_top_aclk_cam1_arm_672",
+	     "mout_top_aclk_cam1_arm_672", CLK_CON_MUX_ACLK_CAM1_ARM_672, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_TREX_VRA_528,
+	     "umout_top_aclk_cam1_trex_vra_528",
+	     "mout_top_aclk_cam1_trex_vra_528",
+	     CLK_CON_MUX_ACLK_CAM1_TREX_VRA_528, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_TREX_B_528,
+	     "umout_top_aclk_cam1_trex_b_528", "mout_top_aclk_cam1_trex_b_528",
+	     CLK_CON_MUX_ACLK_CAM1_TREX_B_528, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_BUS_264, "umout_top_aclk_cam1_bus_264",
+	     "mout_top_aclk_cam1_bus_264", CLK_CON_MUX_ACLK_CAM1_BUS_264, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_PERI_84, "umout_top_aclk_cam1_peri_84",
+	     "mout_top_aclk_cam1_peri_84", CLK_CON_MUX_ACLK_CAM1_PERI_84, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_CSIS2_414, "umout_top_aclk_cam1_csis2_414",
+	     "mout_top_aclk_cam1_csis2_414", CLK_CON_MUX_ACLK_CAM1_CSIS2_414,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_CSIS3_132, "umout_top_aclk_cam1_csis3_132",
+	     "mout_top_aclk_cam1_csis3_132", CLK_CON_MUX_ACLK_CAM1_CSIS3_132,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_CAM1_SCL_566, "umout_top_aclk_cam1_scl_566",
+	     "mout_top_aclk_cam1_scl_566", CLK_CON_MUX_ACLK_CAM1_SCL_566, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP0_DECON0_ECLK0,
+	     "umout_top_sclk_disp0_decon0_eclk0",
+	     "mout_top_sclk_disp0_decon0_eclk0",
+	     CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP0_DECON0_VCLK0,
+	     "umout_top_sclk_disp0_decon0_vclk0",
+	     "mout_top_sclk_disp0_decon0_vclk0",
+	     CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP0_DECON0_VCLK1,
+	     "umout_top_sclk_disp0_decon0_vclk1",
+	     "mout_top_sclk_disp0_decon0_vclk1",
+	     CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP0_HDMI_AUDIO,
+	     "umout_top_sclk_disp0_hdmi_audio",
+	     "mout_top_sclk_disp0_hdmi_audio",
+	     CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP1_DECON1_ECLK0,
+	     "umout_top_sclk_disp1_decon1_eclk0",
+	     "mout_top_sclk_disp1_decon1_eclk0",
+	     CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_DISP1_DECON1_ECLK1,
+	     "umout_top_sclk_disp1_decon1_eclk1",
+	     "mout_top_sclk_disp1_decon1_eclk1",
+	     CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_TOP, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS0_USBDRD30, "umout_top_sclk_fsys0_usbdrd30",
+	     "mout_top_sclk_fsys0_usbdrd30", CLK_CON_MUX_SCLK_FSYS0_USBDRD30,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS0_MMC0, "umout_top_sclk_fsys0_mmc0",
+	     "mout_top_sclk_fsys0_mmc0", CLK_CON_MUX_SCLK_FSYS0_MMC0, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS0_UFSUNIPRO20,
+	     "umout_top_sclk_fsys0_ufsunipro20",
+	     "mout_top_sclk_fsys0_ufsunipro20",
+	     CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO20, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS0_PHY_24M, "umout_top_sclk_fsys0_phy_24m",
+	     "mout_top_sclk_fsys0_phy_24m", CLK_CON_MUX_SCLK_FSYS0_PHY_24M, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS0_UFSUNIPRO_CFG,
+	     "umout_top_sclk_fsys0_ufsunipro_cfg",
+	     "mout_top_sclk_fsys0_ufsunipro_cfg",
+	     CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_CFG, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS1_MMC2, "umout_top_sclk_fsys1_mmc2",
+	     "mout_top_sclk_fsys1_mmc2", CLK_CON_MUX_SCLK_FSYS1_MMC2, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS1_UFSUNIPRO20,
+	     "umout_top_sclk_fsys1_ufsunipro20",
+	     "mout_top_sclk_fsys1_ufsunipro20",
+	     CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO20, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS1_PCIE_PHY, "umout_top_sclk_fsys1_pcie_phy",
+	     "mout_top_sclk_fsys1_pcie_phy", CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_FSYS1_UFSUNIPRO_CFG,
+	     "umout_top_sclk_fsys1_ufsunipro_cfg",
+	     "mout_top_sclk_fsys1_ufsunipro_cfg",
+	     CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_CFG, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC0_UART0, "umout_top_sclk_peric0_uart0",
+	     "mout_top_sclk_peric0_uart0", CLK_CON_MUX_SCLK_PERIC0_UART0, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI0, "umout_top_sclk_peric1_spi0",
+	     "mout_top_sclk_peric1_spi0", CLK_CON_MUX_SCLK_PERIC1_SPI0, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI1, "umout_top_sclk_peric1_spi1",
+	     "mout_top_sclk_peric1_spi1", CLK_CON_MUX_SCLK_PERIC1_SPI1, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI2, "umout_top_sclk_peric1_spi2",
+	     "mout_top_sclk_peric1_spi2", CLK_CON_MUX_SCLK_PERIC1_SPI2, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI3, "umout_top_sclk_peric1_spi3",
+	     "mout_top_sclk_peric1_spi3", CLK_CON_MUX_SCLK_PERIC1_SPI3, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI4, "umout_top_sclk_peric1_spi4",
+	     "mout_top_sclk_peric1_spi4", CLK_CON_MUX_SCLK_PERIC1_SPI4, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI5, "umout_top_sclk_peric1_spi5",
+	     "mout_top_sclk_peric1_spi5", CLK_CON_MUX_SCLK_PERIC1_SPI5, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI6, "umout_top_sclk_peric1_spi6",
+	     "mout_top_sclk_peric1_spi6", CLK_CON_MUX_SCLK_PERIC1_SPI6, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_SPI7, "umout_top_sclk_peric1_spi7",
+	     "mout_top_sclk_peric1_spi7", CLK_CON_MUX_SCLK_PERIC1_SPI7, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_UART1, "umout_top_sclk_peric1_uart1",
+	     "mout_top_sclk_peric1_uart1", CLK_CON_MUX_SCLK_PERIC1_UART1, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_UART2, "umout_top_sclk_peric1_uart2",
+	     "mout_top_sclk_peric1_uart2", CLK_CON_MUX_SCLK_PERIC1_UART2, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_UART3, "umout_top_sclk_peric1_uart3",
+	     "mout_top_sclk_peric1_uart3", CLK_CON_MUX_SCLK_PERIC1_UART3, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_UART4, "umout_top_sclk_peric1_uart4",
+	     "mout_top_sclk_peric1_uart4", CLK_CON_MUX_SCLK_PERIC1_UART4, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PERIC1_UART5, "umout_top_sclk_peric1_uart5",
+	     "mout_top_sclk_peric1_uart5", CLK_CON_MUX_SCLK_PERIC1_UART5, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_CAM1_ISP_SPI0, "umout_top_sclk_cam1_isp_spi0",
+	     "mout_top_sclk_cam1_isp_spi0", CLK_CON_MUX_SCLK_CAM1_ISP_SPI0, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_CAM1_ISP_SPI1, "umout_top_sclk_cam1_isp_spi1",
+	     "mout_top_sclk_cam1_isp_spi1", CLK_CON_MUX_SCLK_CAM1_ISP_SPI1, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_CAM1_ISP_UART, "umout_top_sclk_cam1_isp_uart",
+	     "mout_top_sclk_cam1_isp_uart", CLK_CON_MUX_SCLK_CAM1_ISP_UART, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_AP2CP_MIF_PLL_OUT,
+	     "umout_top_sclk_ap2cp_mif_pll_out",
+	     "mout_top_sclk_ap2cp_mif_pll_out",
+	     CLK_CON_MUX_SCLK_AP2CP_MIF_PLL_OUT, 21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_ACLK_PSCDC_400, "umout_top_aclk_pscdc_400",
+	     "mout_top_aclk_pscdc_400", CLK_CON_MUX_ACLK_PSCDC_400, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS_PLL_MNGS, "umout_top_sclk_bus_pll_mngs",
+	     "mout_top_sclk_bus_pll_mngs", CLK_CON_MUX_SCLK_BUS_PLL_MNGS, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS_PLL_APOLLO, "umout_top_sclk_bus_pll_apollo",
+	     "mout_top_sclk_bus_pll_apollo", CLK_CON_MUX_SCLK_BUS_PLL_APOLLO,
+	     21, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS_PLL_MIF, "umout_top_sclk_bus_pll_mif",
+	     "mout_top_sclk_bus_pll_mif", CLK_CON_MUX_SCLK_BUS_PLL_MIF, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_BUS_PLL_G3D, "umout_top_sclk_bus_pll_g3d",
+	     "mout_top_sclk_bus_pll_g3d", CLK_CON_MUX_SCLK_BUS_PLL_G3D, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_ISP_SENSOR0, "umout_top_sclk_isp_sensor0",
+	     "mout_top_sclk_isp_sensor0", CLK_CON_MUX_SCLK_ISP_SENSOR0, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_ISP_SENSOR1, "umout_top_sclk_isp_sensor1",
+	     "mout_top_sclk_isp_sensor1", CLK_CON_MUX_SCLK_ISP_SENSOR1, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_ISP_SENSOR2, "umout_top_sclk_isp_sensor2",
+	     "mout_top_sclk_isp_sensor2", CLK_CON_MUX_SCLK_ISP_SENSOR2, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_ISP_SENSOR3, "umout_top_sclk_isp_sensor3",
+	     "mout_top_sclk_isp_sensor3", CLK_CON_MUX_SCLK_ISP_SENSOR3, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PROMISE_INT, "umout_top_sclk_promise_int",
+	     "mout_top_sclk_promise_int", CLK_CON_MUX_SCLK_PROMISE_INT, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_SCLK_PROMISE_DISP, "umout_top_sclk_promise_disp",
+	     "mout_top_sclk_promise_disp", CLK_CON_MUX_SCLK_PROMISE_DISP, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_UMOUT_TOP_CP2AP_MIF_CLK_USER, "umout_top_cp2ap_mif_clk_user",
+	     "mout_top_cp2ap_mif_clk_user", CLK_CON_MUX_CP2AP_MIF_CLK_USER, 21,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CCORE_800, "gout_top_aclk_ccore_800",
+	     "dout_top_aclk_ccore_800", CLK_ENABLE_ACLK_CCORE_800, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CCORE_264, "gout_top_aclk_ccore_264",
+	     "dout_top_aclk_ccore_264", CLK_ENABLE_ACLK_CCORE_264, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CCORE_G3D_800, "gout_top_aclk_ccore_g3d_800",
+	     "dout_top_aclk_ccore_g3d_800", CLK_ENABLE_ACLK_CCORE_G3D_800, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CCORE_528, "gout_top_aclk_ccore_528",
+	     "dout_top_aclk_ccore_528", CLK_ENABLE_ACLK_CCORE_528, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CCORE_132, "gout_top_aclk_ccore_132",
+	     "dout_top_aclk_ccore_132", CLK_ENABLE_ACLK_CCORE_132, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_PCLK_CCORE_66, "gout_top_pclk_ccore_66",
+	     "dout_top_pclk_ccore_66", CLK_ENABLE_PCLK_CCORE_66, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_BUS0_528, "gout_top_aclk_bus0_528",
+	     "dout_top_aclk_bus0_528", CLK_ENABLE_ACLK_BUS0_528_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_BUS0_200, "gout_top_aclk_bus0_200",
+	     "dout_top_aclk_bus0_200", CLK_ENABLE_ACLK_BUS0_200_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_PCLK_BUS0_132, "gout_top_pclk_bus0_132",
+	     "dout_top_pclk_bus0_132", CLK_ENABLE_PCLK_BUS0_132_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_BUS1_528, "gout_top_aclk_bus1_528",
+	     "dout_top_aclk_bus1_528", CLK_ENABLE_ACLK_BUS1_528_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_PCLK_BUS1_132, "gout_top_pclk_bus1_132",
+	     "dout_top_pclk_bus1_132", CLK_ENABLE_PCLK_BUS1_132_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_DISP0_0_400, "gout_top_aclk_disp0_0_400",
+	     "dout_top_aclk_disp0_0_400", CLK_ENABLE_ACLK_DISP0_0_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_DISP0_1_400, "gout_top_aclk_disp0_1_400",
+	     "dout_top_aclk_disp0_1_400", CLK_ENABLE_ACLK_DISP0_1_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_DISP1_0_400, "gout_top_aclk_disp1_0_400",
+	     "dout_top_aclk_disp1_0_400", CLK_ENABLE_ACLK_DISP1_0_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_DISP1_1_400, "gout_top_aclk_disp1_1_400",
+	     "dout_top_aclk_disp1_1_400", CLK_ENABLE_ACLK_DISP1_1_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_MFC_600, "gout_top_aclk_mfc_600",
+	     "dout_top_aclk_mfc_600", CLK_ENABLE_ACLK_MFC_600, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_MSCL0_528, "gout_top_aclk_mscl0_528",
+	     "dout_top_aclk_mscl0_528", CLK_ENABLE_ACLK_MSCL0_528, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_MSCL1_528, "gout_top_aclk_mscl1_528",
+	     "dout_top_aclk_mscl1_528", CLK_ENABLE_ACLK_MSCL1_528, 1,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_IMEM_266, "gout_top_aclk_imem_266",
+	     "dout_top_aclk_imem_266", CLK_ENABLE_ACLK_IMEM_266, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_IMEM_200, "gout_top_aclk_imem_200",
+	     "dout_top_aclk_imem_200", CLK_ENABLE_ACLK_IMEM_200, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_IMEM_100, "gout_top_aclk_imem_100",
+	     "dout_top_aclk_imem_100", CLK_ENABLE_ACLK_IMEM_100, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_FSYS0_200, "gout_top_aclk_fsys0_200",
+	     "dout_top_aclk_fsys0_200", CLK_ENABLE_ACLK_FSYS0_200, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_FSYS1_200, "gout_top_aclk_fsys1_200",
+	     "dout_top_aclk_fsys1_200", CLK_ENABLE_ACLK_FSYS1_200, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_PERIS_66, "gout_top_aclk_peris_66",
+	     "dout_top_aclk_peris_66", CLK_ENABLE_ACLK_PERIS_66, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_PERIC0_66, "gout_top_aclk_peric0_66",
+	     "dout_top_aclk_peric0_66", CLK_ENABLE_ACLK_PERIC0_66, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_PERIC1_66, "gout_top_aclk_peric1_66",
+	     "dout_top_aclk_peric1_66", CLK_ENABLE_ACLK_PERIC1_66, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_ISP0_ISP0_528, "gout_top_aclk_isp0_isp0_528",
+	     "dout_top_aclk_isp0_isp0_528", CLK_ENABLE_ACLK_ISP0_ISP0_528, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_ISP0_TPU_400, "gout_top_aclk_isp0_tpu_400",
+	     "dout_top_aclk_isp0_tpu_400", CLK_ENABLE_ACLK_ISP0_TPU_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_ISP0_TREX_528, "gout_top_aclk_isp0_trex_528",
+	     "dout_top_aclk_isp0_trex_528", CLK_ENABLE_ACLK_ISP0_TREX_528, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D,
+	     "gout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	     "dout_top_aclk_isp0_pxl_asbs_is_c_from_is_d",
+	     CLK_ENABLE_ACLK_ISP0_PXL_ASBS_IS_C_FROM_IS_D_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_ISP1_ISP1_468, "gout_top_aclk_isp1_isp1_468",
+	     "dout_top_aclk_isp1_isp1_468", CLK_ENABLE_ACLK_ISP1_ISP1_468, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_CSIS0_414, "gout_top_aclk_cam0_csis0_414",
+	     "dout_top_aclk_cam0_csis0_414", CLK_ENABLE_ACLK_CAM0_CSIS1_414, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_CSIS1_168, "gout_top_aclk_cam0_csis1_168",
+	     "dout_top_aclk_cam0_csis1_168", CLK_ENABLE_ACLK_CAM0_CSIS1_168_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_CSIS2_234, "gout_top_aclk_cam0_csis2_234",
+	     "dout_top_aclk_cam0_csis2_234", CLK_ENABLE_ACLK_CAM0_CSIS2_234_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_3AA0_414, "gout_top_aclk_cam0_3aa0_414",
+	     "dout_top_aclk_cam0_3aa0_414", CLK_ENABLE_ACLK_CAM0_3AA0_414_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_3AA1_414, "gout_top_aclk_cam0_3aa1_414",
+	     "dout_top_aclk_cam0_3aa1_414", CLK_ENABLE_ACLK_CAM0_3AA1_414_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_CSIS3_132, "gout_top_aclk_cam0_csis3_132",
+	     "dout_top_aclk_cam0_csis3_132", CLK_ENABLE_ACLK_CAM0_CSIS3_132_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM0_TREX_528, "gout_top_aclk_cam0_trex_528",
+	     "dout_top_aclk_cam0_trex_528", CLK_ENABLE_ACLK_CAM0_TREX_528_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_ARM_672, "gout_top_aclk_cam1_arm_672",
+	     "dout_top_aclk_cam1_arm_672", CLK_ENABLE_ACLK_CAM1_ARM_672_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_TREX_VRA_528,
+	     "gout_top_aclk_cam1_trex_vra_528",
+	     "dout_top_aclk_cam1_trex_vra_528",
+	     CLK_ENABLE_ACLK_CAM1_TREX_VRA_528_TOP, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_TREX_B_528, "gout_top_aclk_cam1_trex_b_528",
+	     "dout_top_aclk_cam1_trex_b_528",
+	     CLK_ENABLE_ACLK_CAM1_TREX_B_528_TOP, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_BUS_264, "gout_top_aclk_cam1_bus_264",
+	     "dout_top_aclk_cam1_bus_264", CLK_ENABLE_ACLK_CAM1_BUS_264_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_PERI_84, "gout_top_aclk_cam1_peri_84",
+	     "dout_top_aclk_cam1_peri_84", CLK_ENABLE_ACLK_CAM1_PERI_84, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_CSIS2_414, "gout_top_aclk_cam1_csis2_414",
+	     "dout_top_aclk_cam1_csis2_414", CLK_ENABLE_ACLK_CAM1_CSIS2_414_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_CSIS3_132, "gout_top_aclk_cam1_csis3_132",
+	     "dout_top_aclk_cam1_csis3_132", CLK_ENABLE_ACLK_CAM1_CSIS3_132_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_CAM1_SCL_566, "gout_top_aclk_cam1_scl_566",
+	     "dout_top_aclk_cam1_scl_566", CLK_ENABLE_ACLK_CAM1_SCL_566_TOP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP0_DECON0_ECLK0,
+	     "gout_top_sclk_disp0_decon0_eclk0",
+	     "dout_top_sclk_disp0_decon0_eclk0",
+	     CLK_ENABLE_SCLK_DISP0_DECON0_ECLK0, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP0_DECON0_VCLK0,
+	     "gout_top_sclk_disp0_decon0_vclk0",
+	     "dout_top_sclk_disp0_decon0_vclk0",
+	     CLK_ENABLE_SCLK_DISP0_DECON0_VCLK0, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP0_DECON0_VCLK1,
+	     "gout_top_sclk_disp0_decon0_vclk1",
+	     "dout_top_sclk_disp0_decon0_vclk1",
+	     CLK_ENABLE_SCLK_DISP0_DECON0_VCLK1, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP0_HDMI_AUDIO,
+	     "gout_top_sclk_disp0_hdmi_audio", "dout_top_sclk_disp0_hdmi_audio",
+	     CLK_ENABLE_SCLK_DISP0_HDMI_ADUIO, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP1_DECON1_ECLK0,
+	     "gout_top_sclk_disp1_decon1_eclk0",
+	     "dout_top_sclk_disp1_decon1_eclk0",
+	     CLK_ENABLE_SCLK_DISP1_DECON1_ECLK0, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_DISP1_DECON1_ECLK1,
+	     "gout_top_sclk_disp1_decon1_eclk1",
+	     "dout_top_sclk_disp1_decon1_eclk1",
+	     CLK_ENABLE_SCLK_DISP1_DECON1_ECLK1, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS0_USBDRD30, "gout_top_sclk_fsys0_usbdrd30",
+	     "dout_top_sclk_fsys0_usbdrd30", CLK_ENABLE_SCLK_FSYS0_USBDRD30, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS0_MMC0, "gout_top_sclk_fsys0_mmc0",
+	     "dout_top_sclk_fsys0_mmc0", CLK_ENABLE_SCLK_FSYS0_MMC0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS0_UFSUNIPRO20,
+	     "gout_top_sclk_fsys0_ufsunipro20",
+	     "dout_top_sclk_fsys0_ufsunipro20",
+	     CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO20, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS0_PHY_24M, "gout_top_sclk_fsys0_phy_24m",
+	     "dout_top_sclk_fsys0_phy_24m", CLK_ENABLE_SCLK_FSYS0_PHY_24M, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS0_UFSUNIPRO_CFG,
+	     "gout_top_sclk_fsys0_ufsunipro_cfg",
+	     "dout_top_sclk_fsys0_ufsunipro_cfg",
+	     CLK_ENABLE_SCLK_FSYS0_UFSUNIPRO_CFG, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS1_MMC2, "gout_top_sclk_fsys1_mmc2",
+	     "dout_top_sclk_fsys1_mmc2", CLK_ENABLE_SCLK_FSYS1_MMC2, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS1_UFSUNIPRO20,
+	     "gout_top_sclk_fsys1_ufsunipro20",
+	     "dout_top_sclk_fsys1_ufsunipro20",
+	     CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO20, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS1_PCIE_PHY, "gout_top_sclk_fsys1_pcie_phy",
+	     "dout_top_sclk_fsys1_pcie_phy", CLK_ENABLE_SCLK_FSYS1_PCIE_PHY, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_FSYS1_UFSUNIPRO_CFG,
+	     "gout_top_sclk_fsys1_ufsunipro_cfg",
+	     "dout_top_sclk_fsys1_ufsunipro_cfg",
+	     CLK_ENABLE_SCLK_FSYS1_UFSUNIPRO_CFG, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC0_UART0, "gout_top_sclk_peric0_uart0",
+	     "dout_top_sclk_peric0_uart0", CLK_ENABLE_SCLK_PERIC0_UART0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI0, "gout_top_sclk_peric1_spi0",
+	     "dout_top_sclk_peric1_spi0", CLK_ENABLE_SCLK_PERIC1_SPI0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI1, "gout_top_sclk_peric1_spi1",
+	     "dout_top_sclk_peric1_spi1", CLK_ENABLE_SCLK_PERIC1_SPI1, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI2, "gout_top_sclk_peric1_spi2",
+	     "dout_top_sclk_peric1_spi2", CLK_ENABLE_SCLK_PERIC1_SPI2, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI3, "gout_top_sclk_peric1_spi3",
+	     "dout_top_sclk_peric1_spi3", CLK_ENABLE_SCLK_PERIC1_SPI3, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI4, "gout_top_sclk_peric1_spi4",
+	     "dout_top_sclk_peric1_spi4", CLK_ENABLE_SCLK_PERIC1_SPI4, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI5, "gout_top_sclk_peric1_spi5",
+	     "dout_top_sclk_peric1_spi5", CLK_ENABLE_SCLK_PERIC1_SPI5, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI6, "gout_top_sclk_peric1_spi6",
+	     "dout_top_sclk_peric1_spi6", CLK_ENABLE_SCLK_PERIC1_SPI6, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_SPI7, "gout_top_sclk_peric1_spi7",
+	     "dout_top_sclk_peric1_spi7", CLK_ENABLE_SCLK_PERIC1_SPI7, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_UART1, "gout_top_sclk_peric1_uart1",
+	     "dout_top_sclk_peric1_uart1", CLK_ENABLE_SCLK_PERIC1_UART1, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_UART2, "gout_top_sclk_peric1_uart2",
+	     "dout_top_sclk_peric1_uart2", CLK_ENABLE_SCLK_PERIC1_UART2, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_UART3, "gout_top_sclk_peric1_uart3",
+	     "dout_top_sclk_peric1_uart3", CLK_ENABLE_SCLK_PERIC1_UART3, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_UART4, "gout_top_sclk_peric1_uart4",
+	     "dout_top_sclk_peric1_uart4", CLK_ENABLE_SCLK_PERIC1_UART4, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PERIC1_UART5, "gout_top_sclk_peric1_uart5",
+	     "dout_top_sclk_peric1_uart5", CLK_ENABLE_SCLK_PERIC1_UART5, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_CAM1_ISP_SPI0, "gout_top_sclk_cam1_isp_spi0",
+	     "dout_top_sclk_cam1_isp_spi0", CLK_ENABLE_SCLK_CAM1_ISP_SPI0_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_CAM1_ISP_SPI1, "gout_top_sclk_cam1_isp_spi1",
+	     "dout_top_sclk_cam1_isp_spi1", CLK_ENABLE_SCLK_CAM1_ISP_SPI1_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_CAM1_ISP_UART, "gout_top_sclk_cam1_isp_uart",
+	     "dout_top_sclk_cam1_isp_uart", CLK_ENABLE_SCLK_CAM1_ISP_UART_TOP,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_AP2CP_MIF_PLL_OUT,
+	     "gout_top_sclk_ap2cp_mif_pll_out",
+	     "dout_top_sclk_ap2cp_mif_pll_out",
+	     CLK_ENABLE_SCLK_AP2CP_MIF_PLL_OUT, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_ACLK_PSCDC_400, "gout_top_aclk_pscdc_400",
+	     "dout_top_aclk_pscdc_400", CLK_ENABLE_ACLK_PSCDC_400, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_BUS_PLL_MNGS, "gout_top_sclk_bus_pll_mngs",
+	     "dout_top_sclk_bus_pll_mngs", CLK_ENABLE_SCLK_BUS_PLL_MNGS, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_BUS_PLL_APOLLO, "gout_top_sclk_bus_pll_apollo",
+	     "dout_top_sclk_bus_pll_apollo", CLK_ENABLE_SCLK_BUS_PLL_APOLLO, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_BUS_PLL_MIF, "gout_top_sclk_bus_pll_mif",
+	     "mout_top_sclk_bus_pll_mif", CLK_ENABLE_SCLK_BUS_PLL_MIF, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_BUS_PLL_G3D, "gout_top_sclk_bus_pll_g3d",
+	     "dout_top_sclk_bus_pll_g3d", CLK_ENABLE_SCLK_BUS_PLL_G3D, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_ISP_SENSOR0, "gout_top_sclk_isp_sensor0",
+	     "dout_top_sclk_isp_sensor0", CLK_ENABLE_SCLK_ISP_SENSOR0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_ISP_SENSOR1, "gout_top_sclk_isp_sensor1",
+	     "dout_top_sclk_isp_sensor1", CLK_ENABLE_SCLK_ISP_SENSOR1, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_ISP_SENSOR2, "gout_top_sclk_isp_sensor2",
+	     "dout_top_sclk_isp_sensor2", CLK_ENABLE_SCLK_ISP_SENSOR2, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_ISP_SENSOR3, "gout_top_sclk_isp_sensor3",
+	     "dout_top_sclk_isp_sensor3", CLK_ENABLE_SCLK_ISP_SENSOR3, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PROMISE_INT, "gout_top_sclk_promise_int",
+	     "dout_top_sclk_promise_int", CLK_ENABLE_SCLK_PROMISE_INT, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_TOP_SCLK_PROMISE_DISP, "gout_top_sclk_promise_disp",
+	     "dout_top_sclk_promise_disp", CLK_ENABLE_SCLK_PROMISE_DISP, 0,
+	     CLK_IGNORE_UNUSED, 0),
+};
+
+static const struct samsung_cmu_info top_cmu_info __initconst = {
+	.pll_clks		= top_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(top_pll_clks),
+	.mux_clks		= top_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(top_mux_clks),
+	.div_clks		= top_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(top_div_clks),
+	.gate_clks		= top_gate_clks,
+	.fixed_clks		= top_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(top_fixed_clks),
+	.fixed_factor_clks	= top_fixed_factor_clks,
+	.nr_fixed_factor_clks	= ARRAY_SIZE(top_fixed_factor_clks),
+	.nr_gate_clks		= ARRAY_SIZE(top_gate_clks),
+	.nr_clk_ids		= TOP_NR_CLK,
+	.clk_regs		= top_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(top_clk_regs),
+};
+
+static void __init exynos8890_cmu_top_init(struct device_node *np)
+{
+	exynos8890_init_clocks(np, &top_cmu_info);
+	samsung_cmu_register_one(np, &top_cmu_info);
+}
+
+/* Register CMU_TOP early, as it's a dependency for other early domains */
+CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
+	       exynos8890_cmu_top_init);
+
+/* ---- CMU_PERIS ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_PERIS (0x10040000) */
+#define CLK_CON_MUX_ACLK_PERIS_66_USER		0x0200
+#define CLK_STAT_MUX_ACLK_PERIS_66_USER		0x0600
+#define CG_CTRL_VAL_ACLK_PERIS			0x0800
+#define CG_CTRL_VAL_ACLK_PERIS_HPM_APBIF_PERIS	0x0804
+#define CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC	0x0808
+#define CG_CTRL_VAL_ACLK_PERIS_SECURE_RTC	0x080C
+#define CG_CTRL_VAL_ACLK_PERIS_SECURE_OTP	0x0810
+#define CG_CTRL_VAL_ACLK_PERIS_SECURE_CHIPID	0x0814
+#define CG_CTRL_VAL_SCLK_PERIS_SECURE_OTP	0x0844
+#define CG_CTRL_VAL_SCLK_PERIS_SECURE_CHIPID	0x0848
+#define CG_CTRL_VAL_SCLK_PERIS			0x084C
+#define CG_CTRL_VAL_SCLK_PERIS_PROMISE		0x0850
+#define CLKOUT_CMU_PERIS			0x0C00
+#define CLKOUT_CMU_PERIS_DIV_STAT		0x0C04
+#define PERIS_SFR_IGNORE_REQ_SYSCLK		0x0D04
+#define CMU_PERIS_SPARE0			0x0D08
+#define CMU_PERIS_SPARE1			0x0D0C
+#define CG_CTRL_MAN_ACLK_PERIS			0x1800
+#define CG_CTRL_MAN_ACLK_PERIS_HPM_APBIF_PERIS	0x1804
+#define CG_CTRL_MAN_ACLK_PERIS_SECURE_TZPC	0x1808
+#define CG_CTRL_MAN_ACLK_PERIS_SECURE_RTC	0x180C
+#define CG_CTRL_MAN_ACLK_PERIS_SECURE_OTP	0x1810
+#define CG_CTRL_MAN_ACLK_PERIS_SECURE_CHIPID	0x1814
+#define CG_CTRL_MAN_SCLK_PERIS_SECURE_OTP	0x1844
+#define CG_CTRL_MAN_SCLK_PERIS_SECURE_CHIPID	0x1848
+#define CG_CTRL_MAN_SCLK_PERIS			0x184C
+#define CG_CTRL_MAN_SCLK_PERIS_PROMISE		0x1850
+#define CG_CTRL_STAT_ACLK_PERIS_0		0x1C00
+#define CG_CTRL_STAT_ACLK_PERIS_1		0x1C04
+#define CG_CTRL_STAT_ACLK_PERIS_HPM_APBIF_PERIS	0x1C08
+#define CG_CTRL_STAT_ACLK_PERIS_SECURE_TZPC_0	0x1C0C
+#define CG_CTRL_STAT_ACLK_PERIS_SECURE_TZPC_1	0x1C10
+#define CG_CTRL_STAT_ACLK_PERIS_SECURE_RTC	0x1C14
+#define CG_CTRL_STAT_ACLK_PERIS_SECURE_OTP	0x1C18
+#define CG_CTRL_STAT_ACLK_PERIS_SECURE_CHIPID	0x1C1C
+#define CG_CTRL_STAT_SCLK_PERIS_SECURE_OTP	0x1C44
+#define CG_CTRL_STAT_SCLK_PERIS_SECURE_CHIPID	0x1C48
+#define CG_CTRL_STAT_SCLK_PERIS			0x1C4C
+#define CG_CTRL_STAT_SCLK_PERIS_PROMISE		0x1C50
+#define QCH_CTRL_AXILHASYNCM_PERIS		0x2000
+#define QCH_CTRL_CMU_PERIS			0x2004
+#define QCH_CTRL_PMU_PERIS			0x2008
+#define QCH_CTRL_SYSREG_PERIS			0x200C
+#define QCH_CTRL_MONOCNT_APBIF			0x2010
+#define QSTATE_CTRL_MCT				0x240C
+#define QSTATE_CTRL_WDT_MNGS			0x2410
+#define QSTATE_CTRL_WDT_APOLLO			0x2414
+#define QSTATE_CTRL_RTC_APBIF			0x2418
+#define QSTATE_CTRL_SFR_APBIF_TMU		0x241C
+#define QSTATE_CTRL_SFR_APBIF_HDMI_CEC		0x2420
+#define QSTATE_CTRL_HPM_APBIF_PERIS		0x2424
+#define QSTATE_CTRL_TZPC_0			0x2428
+#define QSTATE_CTRL_TZPC_1			0x242C
+#define QSTATE_CTRL_TZPC_2			0x2430
+#define QSTATE_CTRL_TZPC_3			0x2434
+#define QSTATE_CTRL_TZPC_4			0x2438
+#define QSTATE_CTRL_TZPC_5			0x243C
+#define QSTATE_CTRL_TZPC_6			0x2440
+#define QSTATE_CTRL_TZPC_7			0x2444
+#define QSTATE_CTRL_TZPC_8			0x2448
+#define QSTATE_CTRL_TZPC_9			0x244C
+#define QSTATE_CTRL_TZPC_10			0x2450
+#define QSTATE_CTRL_TZPC_11			0x2454
+#define QSTATE_CTRL_TZPC_12			0x2458
+#define QSTATE_CTRL_TZPC_13			0x245C
+#define QSTATE_CTRL_TZPC_14			0x2460
+#define QSTATE_CTRL_TZPC_15			0x2464
+#define QSTATE_CTRL_TOP_RTC			0x2468
+#define QSTATE_CTRL_OTP_CON_TOP			0x246C
+#define QSTATE_CTRL_SFR_APBIF_CHIPID		0x2470
+#define QSTATE_CTRL_TMU				0x2474
+#define QSTATE_CTRL_CHIPID			0x2484
+#define QSTATE_CTRL_PROMISE_PERIS		0x2488
+
+static const unsigned long peris_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_PERIS_66_USER,
+	CLK_STAT_MUX_ACLK_PERIS_66_USER,
+	CG_CTRL_VAL_ACLK_PERIS,
+	CG_CTRL_VAL_ACLK_PERIS_HPM_APBIF_PERIS,
+	CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC,
+	CG_CTRL_VAL_ACLK_PERIS_SECURE_RTC,
+	CG_CTRL_VAL_ACLK_PERIS_SECURE_OTP,
+	CG_CTRL_VAL_ACLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_VAL_SCLK_PERIS_SECURE_OTP,
+	CG_CTRL_VAL_SCLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_VAL_SCLK_PERIS,
+	CG_CTRL_VAL_SCLK_PERIS_PROMISE,
+	CLKOUT_CMU_PERIS,
+	CLKOUT_CMU_PERIS_DIV_STAT,
+	PERIS_SFR_IGNORE_REQ_SYSCLK,
+	CMU_PERIS_SPARE0,
+	CMU_PERIS_SPARE1,
+	CG_CTRL_MAN_ACLK_PERIS,
+	CG_CTRL_MAN_ACLK_PERIS_HPM_APBIF_PERIS,
+	CG_CTRL_MAN_ACLK_PERIS_SECURE_TZPC,
+	CG_CTRL_MAN_ACLK_PERIS_SECURE_RTC,
+	CG_CTRL_MAN_ACLK_PERIS_SECURE_OTP,
+	CG_CTRL_MAN_ACLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_MAN_SCLK_PERIS_SECURE_OTP,
+	CG_CTRL_MAN_SCLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_MAN_SCLK_PERIS,
+	CG_CTRL_MAN_SCLK_PERIS_PROMISE,
+	CG_CTRL_STAT_ACLK_PERIS_0,
+	CG_CTRL_STAT_ACLK_PERIS_1,
+	CG_CTRL_STAT_ACLK_PERIS_HPM_APBIF_PERIS,
+	CG_CTRL_STAT_ACLK_PERIS_SECURE_TZPC_0,
+	CG_CTRL_STAT_ACLK_PERIS_SECURE_TZPC_1,
+	CG_CTRL_STAT_ACLK_PERIS_SECURE_RTC,
+	CG_CTRL_STAT_ACLK_PERIS_SECURE_OTP,
+	CG_CTRL_STAT_ACLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_STAT_SCLK_PERIS_SECURE_OTP,
+	CG_CTRL_STAT_SCLK_PERIS_SECURE_CHIPID,
+	CG_CTRL_STAT_SCLK_PERIS,
+	CG_CTRL_STAT_SCLK_PERIS_PROMISE,
+	QCH_CTRL_AXILHASYNCM_PERIS,
+	QCH_CTRL_CMU_PERIS,
+	QCH_CTRL_PMU_PERIS,
+	QCH_CTRL_SYSREG_PERIS,
+	QCH_CTRL_MONOCNT_APBIF,
+	QSTATE_CTRL_MCT,
+	QSTATE_CTRL_WDT_MNGS,
+	QSTATE_CTRL_WDT_APOLLO,
+	QSTATE_CTRL_RTC_APBIF,
+	QSTATE_CTRL_SFR_APBIF_TMU,
+	QSTATE_CTRL_SFR_APBIF_HDMI_CEC,
+	QSTATE_CTRL_HPM_APBIF_PERIS,
+	QSTATE_CTRL_TZPC_0,
+	QSTATE_CTRL_TZPC_1,
+	QSTATE_CTRL_TZPC_2,
+	QSTATE_CTRL_TZPC_3,
+	QSTATE_CTRL_TZPC_4,
+	QSTATE_CTRL_TZPC_5,
+	QSTATE_CTRL_TZPC_6,
+	QSTATE_CTRL_TZPC_7,
+	QSTATE_CTRL_TZPC_8,
+	QSTATE_CTRL_TZPC_9,
+	QSTATE_CTRL_TZPC_10,
+	QSTATE_CTRL_TZPC_11,
+	QSTATE_CTRL_TZPC_12,
+	QSTATE_CTRL_TZPC_13,
+	QSTATE_CTRL_TZPC_14,
+	QSTATE_CTRL_TZPC_15,
+	QSTATE_CTRL_TOP_RTC,
+	QSTATE_CTRL_OTP_CON_TOP,
+	QSTATE_CTRL_SFR_APBIF_CHIPID,
+	QSTATE_CTRL_TMU,
+	QSTATE_CTRL_CHIPID,
+	QSTATE_CTRL_PROMISE_PERIS,
+};
+
+PNAME(peris_mux_aclk_peris_66_user_p)	= { "oscclk",
+					    "gout_top_aclk_peris_66" };
+
+static const struct samsung_mux_clock peris_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_PERIS_ACLK_PERIS_66_USER, "mout_peris_aclk_peris_66_user",
+	    peris_mux_aclk_peris_66_user_p, CLK_CON_MUX_ACLK_PERIS_66_USER, 12,
+	    1),
+};
+
+static const struct samsung_gate_clock peris_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_PERIS_PCLK_SFR_APBIF_HDMI_CEC,
+	     "gout_peris_pclk_sfr_apbif_hdmi_cec",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 13,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_SFR_APBIF_TMU, "gout_peris_pclk_sfr_apbif_tmu",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 12,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_RTC_APBIF, "gout_peris_pclk_rtc_apbif",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 11,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_MONOCNT_APBIF, "gout_peris_pclk_monocnt_apbif",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 10,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_WDT_APOLLO, "gout_peris_pclk_wdt_apollo",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 9, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_WDT_MNGS, "gout_peris_pclk_wdt_mngs",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 8, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_MCT, "gout_peris_pclk_mct",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 7, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_SYSREG_PERIS, "gout_peris_pclk_sysreg_peris",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 6, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_PMU_PERIS, "gout_peris_pclk_pmu_peris",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_CMU_PERIS, "gout_peris_pclk_cmu_peris",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_ACLK_AXI2APB_PERIS1,
+	     "gout_peris_aclk_axi2apb_peris1", "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS, 3, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_ACLK_AXI2APB_PERIS0,
+	     "gout_peris_aclk_axi2apb_peris0", "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS, 2, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_ACLK_XIU_PERIS, "gout_peris_aclk_xiu_peris",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_ACLK_AXI_LH_ASYNC, "gout_peris_aclk_axi_lh_async",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_HPM_APBIF_PERIS,
+	     "gout_peris_pclk_hpm_apbif_peris", "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_HPM_APBIF_PERIS, 0, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_15, "gout_peris_pclk_tzpc_15",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 15, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_14, "gout_peris_pclk_tzpc_14",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 14, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_13, "gout_peris_pclk_tzpc_13",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 13, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_12, "gout_peris_pclk_tzpc_12",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 12, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_11, "gout_peris_pclk_tzpc_11",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 11, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_10, "gout_peris_pclk_tzpc_10",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 10, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_9, "gout_peris_pclk_tzpc_9",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 9, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_8, "gout_peris_pclk_tzpc_8",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 8, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_7, "gout_peris_pclk_tzpc_7",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 7, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_6, "gout_peris_pclk_tzpc_6",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 6, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_5, "gout_peris_pclk_tzpc_5",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 5, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_4, "gout_peris_pclk_tzpc_4",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 4, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_3, "gout_peris_pclk_tzpc_3",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 3, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_2, "gout_peris_pclk_tzpc_2",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 2, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_1, "gout_peris_pclk_tzpc_1",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 1, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TZPC_0, "gout_peris_pclk_tzpc_0",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_TZPC, 0, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_TOP_RTC, "gout_peris_pclk_top_rtc",
+	     "mout_peris_aclk_peris_66_user", CG_CTRL_VAL_ACLK_PERIS_SECURE_RTC,
+	     0, 0, 0),
+	GATE(CLK_GOUT_PERIS_PCLK_SFR_APBIF_CHIPID,
+	     "gout_peris_pclk_sfr_apbif_chipid",
+	     "mout_peris_aclk_peris_66_user",
+	     CG_CTRL_VAL_ACLK_PERIS_SECURE_CHIPID, 0, CLK_IGNORE_UNUSED, 0),
+	/* reading CG_CTRL_VAL_SCLK_PERIS_SECURE_OTP causes an abort */
+	GATE(CLK_GOUT_PERIS_SCLK_CHIPID, "gout_peris_sclk_chipid", "oscclk",
+	     CG_CTRL_VAL_SCLK_PERIS_SECURE_CHIPID, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIS_SCLK_TMU, "gout_peris_sclk_tmu", "oscclk",
+	     CG_CTRL_VAL_SCLK_PERIS, 0, 0, 0),
+	GATE(CLK_GOUT_PERIS_SCLK_PROMISE_PERIS, "gout_peris_sclk_promise_peris",
+	     "gout_top_sclk_promise_int", CG_CTRL_VAL_SCLK_PERIS_PROMISE, 0,
+	     CLK_IGNORE_UNUSED, 0),
+};
+
+static const struct samsung_cmu_info peris_cmu_info __initconst = {
+	.mux_clks		= peris_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(peris_mux_clks),
+	.gate_clks		= peris_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(peris_gate_clks),
+	.nr_clk_ids		= PERIS_NR_CLK,
+	.clk_regs		= peris_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(peris_clk_regs),
+};
+
+static void __init exynos8890_cmu_peris_init(struct device_node *np)
+{
+	exynos8890_init_clocks(np, &peris_cmu_info);
+	samsung_cmu_register_one(np, &peris_cmu_info);
+}
+
+/* Register CMU_PERIS early, as it's needed for MCT timer */
+CLK_OF_DECLARE(exynos8890_cmu_peris, "samsung,exynos8890-cmu-peris",
+	       exynos8890_cmu_peris_init);
+
+/* ---- CMU_APOLLO --------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_APOLLO (0x11900000) */
+#define APOLLO_PLL_LOCK				0x0000
+#define APOLLO_PLL_CON0				0x0100
+#define APOLLO_PLL_CON1				0x0104
+#define APOLLO_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_APOLLO_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_APOLLO_USER		0x0204
+#define CLK_CON_MUX_APOLLO			0x0208
+#define CLK_CON_DIV_APOLLO			0x0400
+#define CLK_CON_DIV_ACLK_APOLLO			0x0404
+#define CLK_CON_DIV_ATCLK_APOLLO		0x0408
+#define CLK_CON_DIV_PCLK_DBG_APOLLO		0x040C
+#define CLK_CON_DIV_PCLK_APOLLO			0x0410
+#define CLK_CON_DIV_CNTCLK_APOLLO		0x0414
+#define CLK_CON_DIV_APOLLO_RUN_MONITOR		0x0418
+#define CLK_CON_DIV_SCLK_PROMISE_APOLLO		0x041C
+#define CLK_CON_DIV_APOLLO_PLL			0x0420
+#define CLK_STAT_MUX_APOLLO_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_APOLLO_USER	0x0604
+#define CLK_STAT_MUX_APOLLO			0x0608
+#define CLK_ENABLE_ACLK_APOLLO			0x0800
+#define CLK_ENABLE_ATCLK_APOLLO			0x0804
+#define CLK_ENABLE_PCLK_DBG_APOLLO		0x0900
+#define CLK_ENABLE_PCLK_APOLLO			0x0904
+#define CLK_ENABLE_PCLK_HPM_APOLLO		0x0908
+#define CLK_ENABLE_SCLK_APOLLO			0x0A00
+#define CLK_ENABLE_SCLK_PROMISE_APOLLO		0x0A04
+#define CLKOUT_CMU_APOLLO			0x0C00
+#define CLKOUT_CMU_APOLLO_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_APOLLO			0x0D00
+#define APOLLO_SFR_IGNORE_REQ_SYSCLK		0x0D04
+#define CMU_APOLLO_SPARE0			0x0D08
+#define CMU_APOLLO_SPARE1			0x0D0C
+#define ARMCLK_STOPCTRL_APOLLO			0x1000
+#define PWR_CTRL_APOLLO				0x1020
+#define PWR_CTRL2_APOLLO			0x1024
+#define PWR_CTRL3_APOLLO			0x1028
+#define PWR_CTRL4_APOLLO			0x102C
+#define INTR_SPREAD_ENABLE_APOLLO		0x1080
+#define INTR_SPREAD_USE_STANDBYWFI_APOLLO	0x1084
+#define INTR_SPREAD_BLOCKING_DURATION_APOLLO	0x1088
+
+static const unsigned long apollo_clk_regs[] __initconst = {
+	APOLLO_PLL_LOCK,
+	APOLLO_PLL_CON0,
+	APOLLO_PLL_CON1,
+	APOLLO_PLL_FREQ_DET,
+	CLK_CON_MUX_APOLLO_PLL,
+	CLK_CON_MUX_BUS_PLL_APOLLO_USER,
+	CLK_CON_MUX_APOLLO,
+	CLK_CON_DIV_APOLLO,
+	CLK_CON_DIV_ACLK_APOLLO,
+	CLK_CON_DIV_ATCLK_APOLLO,
+	CLK_CON_DIV_PCLK_DBG_APOLLO,
+	CLK_CON_DIV_PCLK_APOLLO,
+	CLK_CON_DIV_CNTCLK_APOLLO,
+	CLK_CON_DIV_APOLLO_RUN_MONITOR,
+	CLK_CON_DIV_SCLK_PROMISE_APOLLO,
+	CLK_CON_DIV_APOLLO_PLL,
+	CLK_STAT_MUX_APOLLO_PLL,
+	CLK_STAT_MUX_BUS_PLL_APOLLO_USER,
+	CLK_STAT_MUX_APOLLO,
+	CLK_ENABLE_ACLK_APOLLO,
+	CLK_ENABLE_ATCLK_APOLLO,
+	CLK_ENABLE_PCLK_DBG_APOLLO,
+	CLK_ENABLE_PCLK_APOLLO,
+	CLK_ENABLE_PCLK_HPM_APOLLO,
+	CLK_ENABLE_SCLK_APOLLO,
+	CLK_ENABLE_SCLK_PROMISE_APOLLO,
+	CLKOUT_CMU_APOLLO,
+	CLKOUT_CMU_APOLLO_DIV_STAT,
+	CLK_ENABLE_PDN_APOLLO,
+	APOLLO_SFR_IGNORE_REQ_SYSCLK,
+	CMU_APOLLO_SPARE0,
+	CMU_APOLLO_SPARE1,
+	ARMCLK_STOPCTRL_APOLLO,
+	PWR_CTRL_APOLLO,
+	PWR_CTRL2_APOLLO,
+	PWR_CTRL3_APOLLO,
+	PWR_CTRL4_APOLLO,
+	INTR_SPREAD_ENABLE_APOLLO,
+	INTR_SPREAD_USE_STANDBYWFI_APOLLO,
+	INTR_SPREAD_BLOCKING_DURATION_APOLLO,
+};
+
+static const struct samsung_pll_rate_table apollo_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 1976000000U, 228, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1898000000U, 219, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1794000000U, 207, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1690000000U, 195, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1586000000U, 183, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1482000000U, 171, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1378000000U, 159, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1274000000U, 147, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1170000000U, 135, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1066000000U, 123, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 962000000U, 222, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 858000000U, 198, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 754000000U, 174, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 650000000U, 150, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 546000000U, 126, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 442000000U, 204, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 338000000U, 156, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 234000000U, 216, 3, 3),
+	PLL_35XX_RATE(26 * MHZ, 130000000U, 120, 3, 3),
+};
+
+static const struct samsung_pll_clock apollo_pll_clks[] __initconst = {
+	PLL(pll_141xx, CLK_FOUT_APOLLO_PLL, "fout_apollo_pll", "oscclk", APOLLO_PLL_LOCK,
+	    APOLLO_PLL_CON0, apollo_pll_rates),
+};
+
+/* List of parent clocks for Muxes in CMU_APOLLO*/
+PNAME(apollo_mux_apollo_pll_p)		= { "oscclk", "fout_apollo_pll" };
+PNAME(apollo_mux_bus_pll_apollo_user_p)	= { "oscclk",
+					    "gout_top_sclk_bus_pll_apollo" };
+PNAME(apollo_mux_apollo_p)		= { "mout_apollo_apollo_pll",
+					    "mout_apollo_bus_pll_apollo_user" };
+
+static const struct samsung_mux_clock apollo_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_APOLLO_APOLLO_PLL, "mout_apollo_apollo_pll",
+	    apollo_mux_apollo_pll_p, CLK_CON_MUX_APOLLO_PLL, 12, 1),
+	MUX(CLK_MOUT_APOLLO_BUS_PLL_APOLLO_USER,
+	    "mout_apollo_bus_pll_apollo_user", apollo_mux_bus_pll_apollo_user_p,
+	    CLK_CON_MUX_BUS_PLL_APOLLO_USER, 12, 1),
+	MUX(CLK_MOUT_APOLLO_APOLLO, "mout_apollo_apollo", apollo_mux_apollo_p,
+	    CLK_CON_MUX_APOLLO, 12, 1),
+};
+
+static const struct samsung_div_clock apollo_div_clks[] __initconst = {
+	DIV(CLK_DOUT_APOLLO_APOLLO, "dout_apollo_apollo", "mout_apollo_apollo",
+	    CLK_CON_DIV_APOLLO, 0, 6),
+	DIV(CLK_DOUT_APOLLO_ACLK_APOLLO, "dout_apollo_aclk_apollo",
+	    "dout_apollo_apollo", CLK_CON_DIV_ACLK_APOLLO, 0, 3),
+	DIV(CLK_DOUT_APOLLO_ATCLK_APOLLO, "dout_apollo_atclk_apollo",
+	    "dout_apollo_apollo", CLK_CON_DIV_ATCLK_APOLLO, 0, 4),
+	DIV(CLK_DOUT_APOLLO_PCLK_DBG_APOLLO, "dout_apollo_pclk_dbg_apollo",
+	    "dout_apollo_apollo", CLK_CON_DIV_PCLK_DBG_APOLLO, 0, 4),
+	DIV(CLK_DOUT_APOLLO_PCLK_APOLLO, "dout_apollo_pclk_apollo",
+	    "dout_apollo_apollo", CLK_CON_DIV_PCLK_APOLLO, 0, 4),
+	DIV(CLK_DOUT_APOLLO_CNTCLK_APOLLO, "dout_apollo_cntclk_apollo",
+	    "dout_apollo_apollo", CLK_CON_DIV_CNTCLK_APOLLO, 0, 4),
+	DIV(CLK_DOUT_APOLLO_APOLLO_RUN_MONITOR,
+	    "dout_apollo_apollo_run_monitor", "dout_apollo_apollo",
+	    CLK_CON_DIV_APOLLO_RUN_MONITOR, 0, 3),
+	DIV(CLK_DOUT_APOLLO_SCLK_PROMISE_APOLLO,
+	    "dout_apollo_sclk_promise_apollo", "mout_apollo_apollo",
+	    CLK_CON_DIV_SCLK_PROMISE_APOLLO, 0, 3),
+	DIV(CLK_DOUT_APOLLO_APOLLO_PLL, "dout_apollo_apollo_pll",
+	    "mout_apollo_apollo", CLK_CON_DIV_APOLLO_PLL, 0, 3),
+};
+
+static const struct samsung_gate_clock apollo_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_APOLLO_ACLK_ASYNCACES_APOLLO_CCI,
+	     "gout_apollo_aclk_asyncaces_apollo_cci", "dout_apollo_aclk_apollo",
+	     CLK_ENABLE_ACLK_APOLLO, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_ACLK_ASATBSLV_APOLLO3_CSSYS,
+	     "gout_apollo_aclk_asatbslv_apollo3_cssys",
+	     "dout_apollo_atclk_apollo", CLK_ENABLE_ATCLK_APOLLO, 3,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_ACLK_ASATBSLV_APOLLO2_CSSYS,
+	     "gout_apollo_aclk_asatbslv_apollo2_cssys",
+	     "dout_apollo_atclk_apollo", CLK_ENABLE_ATCLK_APOLLO, 2,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_ACLK_ASATBSLV_APOLLO1_CSSYS,
+	     "gout_apollo_aclk_asatbslv_apollo1_cssys",
+	     "dout_apollo_atclk_apollo", CLK_ENABLE_ATCLK_APOLLO, 1,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_ACLK_ASATBSLV_APOLLO0_CSSYS,
+	     "gout_apollo_aclk_asatbslv_apollo0_cssys",
+	     "dout_apollo_atclk_apollo", CLK_ENABLE_ATCLK_APOLLO, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLKDBG_DUMP_PC_APOLLO,
+	     "gout_apollo_pclkdbg_dump_pc_apollo",
+	     "dout_apollo_pclk_dbg_apollo", CLK_ENABLE_PCLK_DBG_APOLLO, 1,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLKDBG_ASAPBMST_CSSYS_APOLLO,
+	     "gout_apollo_pclkdbg_asapbmst_cssys_apollo",
+	     "dout_apollo_pclk_dbg_apollo", CLK_ENABLE_PCLK_DBG_APOLLO, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLK_SYSREG_APOLLO,
+	     "gout_apollo_pclk_sysreg_apollo", "dout_apollo_pclk_apollo",
+	     CLK_ENABLE_PCLK_APOLLO, 3, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLK_PMU_APOLLO, "gout_apollo_pclk_pmu_apollo",
+	     "dout_apollo_pclk_apollo", CLK_ENABLE_PCLK_APOLLO, 2,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLK_AXI2APB_APOLLO_ACLK,
+	     "gout_apollo_pclk_axi2apb_apollo_aclk", "dout_apollo_pclk_apollo",
+	     CLK_ENABLE_PCLK_APOLLO, 1, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLK_XIU_PERI_APOLLO_ACLK,
+	     "gout_apollo_pclk_xiu_peri_apollo_aclk", "dout_apollo_pclk_apollo",
+	     CLK_ENABLE_PCLK_APOLLO, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_PCLK_HPM_APOLLO, "gout_apollo_pclk_hpm_apollo",
+	     "dout_apollo_pclk_apollo", CLK_ENABLE_PCLK_HPM_APOLLO, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_APOLLO_SCLK_APOLLO, "gout_apollo_sclk_apollo",
+	     "dout_apollo_apollo", CLK_ENABLE_SCLK_APOLLO, 0, CLK_IGNORE_UNUSED,
+	     0),
+	GATE(CLK_GOUT_APOLLO_SCLK_PROMISE_APOLLO,
+	     "gout_apollo_sclk_promise_apollo",
+	     "dout_apollo_sclk_promise_apollo", CLK_ENABLE_SCLK_PROMISE_APOLLO,
+	     0, CLK_IGNORE_UNUSED, 0),
+};
+
+static const struct samsung_cmu_info apollo_cmu_info __initconst = {
+	.pll_clks		= apollo_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(apollo_pll_clks),
+	.mux_clks		= apollo_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(apollo_mux_clks),
+	.div_clks		= apollo_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(apollo_div_clks),
+	.gate_clks		= apollo_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(apollo_gate_clks),
+	.nr_clk_ids		= APOLLO_NR_CLK,
+	.clk_regs		= apollo_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(apollo_clk_regs),
+};
+
+/* ---- CMU_AUD ------------------------------------------------------------ */
+
+/* Register Offset definitions for CMU_AUD (0x114C0000) */
+#define CLK_CON_MUX_AUD_PLL_USER	0x0200
+#define CLK_CON_MUX_SCLK_I2S		0x0204
+#define CLK_CON_MUX_SCLK_PCM		0x0208
+#define CLK_CON_MUX_CP2AP_AUD_CLK_USER	0x020C
+#define CLK_CON_MUX_ACLK_CA5		0x0210
+#define CLK_CON_MUX_CDCLK_AUD		0x0214
+#define CLK_CON_DIV_AUD_CA5		0x0400
+#define CLK_CON_DIV_ACLK_AUD		0x0404
+#define CLK_CON_DIV_PCLK_DBG		0x0408
+#define CLK_CON_DIV_ATCLK_AUD		0x040C
+#define CLK_CON_DIV_AUD_CDCLK		0x0410
+#define CLK_CON_DIV_SCLK_I2S		0x0414
+#define CLK_CON_DIV_SCLK_PCM		0x0418
+#define CLK_CON_DIV_SCLK_SLIMBUS	0x041C
+#define CLK_CON_DIV_SCLK_CP_I2S		0x0424
+#define CLK_CON_DIV_SCLK_ASRC		0x0428
+#define CLK_CON_DIV_CP_CA5		0x042C
+#define CLK_CON_DIV_CP_CDCLK		0x0430
+#define CLK_STAT_MUX_AUD_PLL_USER	0x0600
+#define CLK_STAT_MUX_CP2AP_AUD_CLK_USER	0x060C
+#define CLK_STAT_MUX_ACLK_CA5		0x0610
+#define CLK_STAT_MUX_CDCLK_AUD		0x0614
+#define CLK_ENABLE_SCLK_CA5		0x0800
+#define CLK_ENABLE_ACLK_AUD		0x0804
+#define CLK_ENABLE_PCLK_AUD		0x0808
+#define CLK_ENABLE_ACLK_ATCLK_AUD	0x080C
+#define CLK_ENABLE_SCLK_I2S		0x0810
+#define CLK_ENABLE_SCLK_PCM		0x0814
+#define CLK_ENABLE_SCLK_SLIMBUS		0x0818
+#define CLK_ENABLE_SCLK_CP_I2S		0x081C
+#define CLK_ENABLE_SCLK_ASRC		0x0820
+#define CLK_ENABLE_SCLK_SLIMBUS_CLKIN	0x0824
+#define CLK_ENABLE_SCLK_I2S_BCLK	0x0828
+#define CLKOUT_CMU_AUD			0x0D00
+#define CLKOUT_CMU_AUD_DIV_STAT		0x0D04
+#define CMU_AUD_SPARE0			0x0D08
+#define CMU_AUD_SPARE1			0x0D0C
+#define CLK_ENABLE_PDN_AUD		0x0E00
+#define AUD_SFR_IGNORE_REQ_SYSCLK	0x0F28
+
+static const unsigned long aud_clk_regs[] __initconst = {
+	CLK_CON_MUX_AUD_PLL_USER,
+	CLK_CON_MUX_SCLK_I2S,
+	CLK_CON_MUX_SCLK_PCM,
+	CLK_CON_MUX_CP2AP_AUD_CLK_USER,
+	CLK_CON_MUX_ACLK_CA5,
+	CLK_CON_MUX_CDCLK_AUD,
+	CLK_CON_DIV_AUD_CA5,
+	CLK_CON_DIV_ACLK_AUD,
+	CLK_CON_DIV_PCLK_DBG,
+	CLK_CON_DIV_ATCLK_AUD,
+	CLK_CON_DIV_AUD_CDCLK,
+	CLK_CON_DIV_SCLK_I2S,
+	CLK_CON_DIV_SCLK_PCM,
+	CLK_CON_DIV_SCLK_SLIMBUS,
+	CLK_CON_DIV_SCLK_CP_I2S,
+	CLK_CON_DIV_SCLK_ASRC,
+	CLK_CON_DIV_CP_CA5,
+	CLK_CON_DIV_CP_CDCLK,
+	CLK_STAT_MUX_AUD_PLL_USER,
+	CLK_STAT_MUX_CP2AP_AUD_CLK_USER,
+	CLK_STAT_MUX_ACLK_CA5,
+	CLK_STAT_MUX_CDCLK_AUD,
+	CLK_ENABLE_SCLK_CA5,
+	CLK_ENABLE_ACLK_AUD,
+	CLK_ENABLE_PCLK_AUD,
+	CLK_ENABLE_ACLK_ATCLK_AUD,
+	CLK_ENABLE_SCLK_I2S,
+	CLK_ENABLE_SCLK_PCM,
+	CLK_ENABLE_SCLK_SLIMBUS,
+	CLK_ENABLE_SCLK_CP_I2S,
+	CLK_ENABLE_SCLK_ASRC,
+	CLK_ENABLE_SCLK_SLIMBUS_CLKIN,
+	CLK_ENABLE_SCLK_I2S_BCLK,
+	CLKOUT_CMU_AUD,
+	CLKOUT_CMU_AUD_DIV_STAT,
+	CMU_AUD_SPARE0,
+	CMU_AUD_SPARE1,
+	CLK_ENABLE_PDN_AUD,
+	AUD_SFR_IGNORE_REQ_SYSCLK,
+};
+
+PNAME(aud_mux_aud_pll_user_p)		= { "oscclk", "fout_aud_pll" };
+PNAME(aud_mux_sclk_i2s_p)		= { "mout_aud_cdclk_aud",
+					    "ioclk_audiocdclk0" };
+PNAME(aud_mux_sclk_pcm_p)		= { "mout_aud_cdclk_aud",
+					    "ioclk_audiocdclk0" };
+PNAME(aud_mux_cp2ap_aud_clk_user_p)	= { "oscclk",
+					    "sclk_cp2ap_aud_clk" };
+PNAME(aud_mux_aclk_ca5_p)		= { "dout_aud_aud_ca5",
+					    "dout_aud_cp_ca5" };
+PNAME(aud_mux_cdclk_aud_p)		= { "dout_aud_aud_cdclk",
+					    "dout_aud_cp_cdclk" };
+
+static const struct samsung_mux_clock aud_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_AUD_AUD_PLL_USER, "mout_aud_aud_pll_user",
+	    aud_mux_aud_pll_user_p, CLK_CON_MUX_AUD_PLL_USER, 12, 1),
+	MUX(CLK_MOUT_AUD_SCLK_I2S, "mout_aud_sclk_i2s", aud_mux_sclk_i2s_p,
+	    CLK_CON_MUX_SCLK_I2S, 12, 1),
+	MUX(CLK_MOUT_AUD_SCLK_PCM, "mout_aud_sclk_pcm", aud_mux_sclk_pcm_p,
+	    CLK_CON_MUX_SCLK_PCM, 12, 1),
+	MUX(CLK_MOUT_AUD_CP2AP_AUD_CLK_USER, "mout_aud_cp2ap_aud_clk_user",
+	    aud_mux_cp2ap_aud_clk_user_p, CLK_CON_MUX_CP2AP_AUD_CLK_USER, 12,
+	    1),
+	MUX(CLK_MOUT_AUD_ACLK_CA5, "mout_aud_aclk_ca5", aud_mux_aclk_ca5_p,
+	    CLK_CON_MUX_ACLK_CA5, 12, 1),
+	MUX(CLK_MOUT_AUD_CDCLK_AUD, "mout_aud_cdclk_aud", aud_mux_cdclk_aud_p,
+	    CLK_CON_MUX_CDCLK_AUD, 12, 1),
+};
+
+static const struct samsung_div_clock aud_div_clks[] __initconst = {
+	DIV(CLK_DOUT_AUD_AUD_CA5, "dout_aud_aud_ca5", "mout_aud_aud_pll_user",
+	    CLK_CON_DIV_AUD_CA5, 0, 4),
+	DIV(CLK_DOUT_AUD_ACLK_AUD, "dout_aud_aclk_aud", "mout_aud_aclk_ca5",
+	    CLK_CON_DIV_ACLK_AUD, 0, 4),
+	DIV(CLK_DOUT_AUD_PCLK_DBG, "dout_aud_pclk_dbg", "mout_aud_aclk_ca5",
+	    CLK_CON_DIV_PCLK_DBG, 0, 4),
+	DIV(CLK_DOUT_AUD_ATCLK_AUD, "dout_aud_atclk_aud", "mout_aud_aclk_ca5",
+	    CLK_CON_DIV_ATCLK_AUD, 0, 4),
+	DIV(CLK_DOUT_AUD_AUD_CDCLK, "dout_aud_aud_cdclk",
+	    "mout_aud_aud_pll_user", CLK_CON_DIV_AUD_CDCLK, 0, 4),
+	DIV(CLK_DOUT_AUD_SCLK_I2S, "dout_aud_sclk_i2s", "mout_aud_sclk_i2s",
+	    CLK_CON_DIV_SCLK_I2S, 0, 4),
+	DIV(CLK_DOUT_AUD_SCLK_PCM, "dout_aud_sclk_pcm", "mout_aud_sclk_pcm",
+	    CLK_CON_DIV_SCLK_PCM, 0, 8),
+	DIV(CLK_DOUT_AUD_SCLK_SLIMBUS, "dout_aud_sclk_slimbus",
+	    "mout_aud_cdclk_aud", CLK_CON_DIV_SCLK_SLIMBUS, 0, 5),
+	DIV(CLK_DOUT_AUD_SCLK_CP_I2S, "dout_aud_sclk_cp_i2s",
+	    "mout_aud_cdclk_aud", CLK_CON_DIV_SCLK_CP_I2S, 0, 6),
+	DIV(CLK_DOUT_AUD_SCLK_ASRC, "dout_aud_sclk_asrc", "mout_aud_cdclk_aud",
+	    CLK_CON_DIV_SCLK_ASRC, 0, 5),
+	DIV(CLK_DOUT_AUD_CP_CA5, "dout_aud_cp_ca5",
+	    "mout_aud_cp2ap_aud_clk_user", CLK_CON_DIV_CP_CA5, 0, 5),
+	DIV(CLK_DOUT_AUD_CP_CDCLK, "dout_aud_cp_cdclk",
+	    "mout_aud_cp2ap_aud_clk_user", CLK_CON_DIV_CP_CDCLK, 0, 5),
+};
+
+static const struct samsung_fixed_rate_clock aud_fixed_clks[] __initconst = {
+	FRATE(CLK_SCLK_CP2AP_AUD_CLK, "sclk_cp2ap_aud_clk", NULL, 0, 30000000),
+	FRATE(CLK_IOCLK_AUDIOCDCLK0, "ioclk_audiocdclk0", NULL, 0, 30000000),
+	FRATE(CLK_IOCLK_SLIMBUS_CLK, "ioclk_slimbus_clk", NULL, 0, 30000000),
+	FRATE(CLK_IOCLK_I2S_BCLK, "ioclk_i2s_bclk", NULL, 0, 30000000),
+};
+
+static const struct samsung_gate_clock aud_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_AUD_SCLK_CA5, "gout_aud_sclk_ca5", "mout_aud_aclk_ca5",
+	     CLK_ENABLE_SCLK_CA5, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_PPMU_AUD, "gout_aud_pclk_ppmu_aud",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 20, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_CP_I2S, "gout_aud_pclk_cp_i2s",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 19, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_SYSREG_AUD, "gout_aud_pclk_sysreg_aud",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 18, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_GPIO_AUD, "gout_aud_pclk_gpio_aud",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 17, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_PMU_AUD, "gout_aud_pclk_pmu_aud",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 16, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_SLIMBUS, "gout_aud_pclk_slimbus",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 15, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_PCM, "gout_aud_pclk_pcm", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 14, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_I2S, "gout_aud_pclk_i2s", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 13, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_TIMER, "gout_aud_pclk_timer",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 12, 0, 0),
+	GATE(CLK_GOUT_AUD_PCLK_SFR1, "gout_aud_pclk_sfr1", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 11, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_PCLK_SFR0, "gout_aud_pclk_sfr0", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 10, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_PCLK_SMMU, "gout_aud_pclk_smmu", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 9, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_ACLK_PPMU_AUD, "gout_aud_aclk_ppmu_aud",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 8, 0, 0),
+	GATE(CLK_GOUT_AUD_ACLK_INTR, "gout_aud_aclk_intr", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 7, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_ACLK_XIU_LPASSX, "gout_aud_aclk_xiu_lpassx",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 6, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_ACLK_SMMU, "gout_aud_aclk_smmu", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 5, 0, 0),
+	GATE(CLK_GOUT_AUD_ACLK_AXI_LH_ASYNC_SI_TOP,
+	     "gout_aud_aclk_axi_lh_async_si_top", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 4, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_AUD_ACLK_AXI_LH_ASYNC_MI_TOP,
+	     "gout_aud_aclk_axi_lh_async_mi_top", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 3, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_AUD_ACLK_AXI_US_32TO64, "gout_aud_aclk_axi_us_32to64",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 2, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_AUD_ACLK_SRAMC, "gout_aud_aclk_sramc",
+	     "dout_aud_aclk_aud", CLK_ENABLE_ACLK_AUD, 1, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_ACLK_DMAC, "gout_aud_aclk_dmac", "dout_aud_aclk_aud",
+	     CLK_ENABLE_ACLK_AUD, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_PCLK_DBG, "gout_aud_pclk_dbg", "dout_aud_pclk_dbg",
+	     CLK_ENABLE_PCLK_AUD, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_ACLK_ATCLK_AUD, "gout_aud_aclk_atclk_aud",
+	     "dout_aud_atclk_aud", CLK_ENABLE_ACLK_ATCLK_AUD, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_SCLK_I2S, "gout_aud_sclk_i2s", "dout_aud_sclk_i2s",
+	     CLK_ENABLE_SCLK_I2S, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_SCLK_PCM, "gout_aud_sclk_pcm", "dout_aud_sclk_pcm",
+	     CLK_ENABLE_SCLK_PCM, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_SCLK_SLIMBUS, "gout_aud_sclk_slimbus",
+	     "dout_aud_sclk_slimbus", CLK_ENABLE_SCLK_SLIMBUS, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_SCLK_CP_I2S, "gout_aud_sclk_cp_i2s",
+	     "dout_aud_sclk_cp_i2s", CLK_ENABLE_SCLK_CP_I2S, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_SCLK_ASRC, "gout_aud_sclk_asrc", "dout_aud_sclk_asrc",
+	     CLK_ENABLE_SCLK_ASRC, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_AUD_SCLK_SLIMBUS_CLKIN, "gout_aud_sclk_slimbus_clkin",
+	     "ioclk_slimbus_clk", CLK_ENABLE_SCLK_SLIMBUS_CLKIN, 0, 0, 0),
+	GATE(CLK_GOUT_AUD_SCLK_I2S_BCLK, "gout_aud_sclk_i2s_bclk",
+	     "ioclk_i2s_bclk", CLK_ENABLE_SCLK_I2S_BCLK, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info aud_cmu_info __initconst = {
+	.mux_clks		= aud_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(aud_mux_clks),
+	.div_clks		= aud_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(aud_div_clks),
+	.gate_clks		= aud_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(aud_gate_clks),
+	.fixed_clks		= aud_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(aud_fixed_clks),
+	.nr_clk_ids		= AUD_NR_CLK,
+	.clk_regs		= aud_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(aud_clk_regs),
+};
+
+/* ---- CMU_BUS0 ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_BUS0 (0x13400000) */
+#define CLK_CON_MUX_ACLK_BUS0_528_USER	0x0200
+#define CLK_CON_MUX_ACLK_BUS0_200_USER	0x0204
+#define CLK_CON_MUX_PCLK_BUS0_132_USER	0x0208
+#define CLK_STAT_MUX_ACLK_BUS0_528_USER	0x0600
+#define CLK_STAT_MUX_ACLK_BUS0_200_USER	0x0604
+#define CLK_STAT_MUX_PCLK_BUS0_132_USER	0x0608
+#define CLK_ENABLE_ACLK_BUS0_528_BUS0	0x0800
+#define CLK_ENABLE_ACLK_BUS0_200_BUS0	0x0804
+#define CLK_ENABLE_PCLK_BUS0_132_BUS0	0x0900
+#define CG_CTRL_VAL_ACLK_BUS0_528_BUS0	0x0800
+#define CG_CTRL_VAL_ACLK_BUS0_200_BUS0	0x0804
+#define CG_CTRL_VAL_PCLK_BUS0_132_BUS0	0x0900
+#define CLKOUT_CMU_BUS0			0x0D00
+#define CLKOUT_CMU_BUS0_DIV_STAT	0x0D04
+#define CMU_BUS0_SPARE0			0x0D08
+#define CMU_BUS0_SPARE1			0x0D0C
+#define CLK_ENABLE_PDN_BUS0		0x0E00
+#define BUS0_SFR_IGNORE_REQ_SYSCLK	0x0F28
+#define CG_CTRL_MAN_ACLK_BUS0_528	0x1800
+#define CG_CTRL_MAN_ACLK_BUS0_200	0x1804
+#define CG_CTRL_MAN_PCLK_BUS0_132	0x1900
+#define CG_CTRL_STAT_ACLK_BUS0_528_0	0x1C00
+#define CG_CTRL_STAT_ACLK_BUS0_528_1	0x1C04
+#define CG_CTRL_STAT_ACLK_BUS0_200	0x1C08
+#define CG_CTRL_STAT_PCLK_BUS0_132_0	0x1D00
+#define CG_CTRL_STAT_PCLK_BUS0_132_1	0x1D04
+#define CG_CTRL_STAT_PCLK_BUS0_132_2	0x1D08
+#define QCH_CTRL_TREX_D_BUS0		0x2000
+#define QCH_CTRL_CAM0_D			0x2004
+#define QCH_CTRL_CAM1_D			0x2008
+#define QCH_CTRL_DISP00_D		0x200C
+#define QCH_CTRL_DISP01_D		0x2010
+#define QCH_CTRL_DISP10_D		0x2014
+#define QCH_CTRL_DISP11_D		0x201C
+#define QCH_CTRL_ISP0_D			0x2020
+#define QCH_CTRL_FSYS1_D		0x2024
+#define QCH_CTRL_TREX_P_BUS0		0x2100
+#define QCH_CTRL_ISP0_SFR		0x2104
+#define QCH_CTRL_ISP1_SFR		0x2108
+#define QCH_CTRL_DISP0_SFR		0x210C
+#define QCH_CTRL_DISP1_SFR		0x2110
+#define QCH_CTRL_PERIS_SFR		0x2114
+#define QCH_CTRL_PERIC0_SFR		0x2118
+#define QCH_CTRL_PERIC1_SFR		0x211C
+#define QCH_CTRL_FSYS1_SFR		0x2120
+#define QCH_CTRL_SYSREG_BUS0		0x2124
+#define QCH_CTRL_PMU_BUS0		0x2128
+#define QCH_CTRL_CMU_BUS0		0x212C
+
+static const unsigned long bus0_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_BUS0_528_USER,
+	CLK_CON_MUX_ACLK_BUS0_200_USER,
+	CLK_CON_MUX_PCLK_BUS0_132_USER,
+	CLK_STAT_MUX_ACLK_BUS0_528_USER,
+	CLK_STAT_MUX_ACLK_BUS0_200_USER,
+	CLK_STAT_MUX_PCLK_BUS0_132_USER,
+	CLK_ENABLE_ACLK_BUS0_528_BUS0,
+	CLK_ENABLE_ACLK_BUS0_200_BUS0,
+	CLK_ENABLE_PCLK_BUS0_132_BUS0,
+	CG_CTRL_VAL_ACLK_BUS0_528_BUS0,
+	CG_CTRL_VAL_ACLK_BUS0_200_BUS0,
+	CG_CTRL_VAL_PCLK_BUS0_132_BUS0,
+	CLKOUT_CMU_BUS0,
+	CLKOUT_CMU_BUS0_DIV_STAT,
+	CMU_BUS0_SPARE0,
+	CMU_BUS0_SPARE1,
+	CLK_ENABLE_PDN_BUS0,
+	BUS0_SFR_IGNORE_REQ_SYSCLK,
+	CG_CTRL_MAN_ACLK_BUS0_528,
+	CG_CTRL_MAN_ACLK_BUS0_200,
+	CG_CTRL_MAN_PCLK_BUS0_132,
+	CG_CTRL_STAT_ACLK_BUS0_528_0,
+	CG_CTRL_STAT_ACLK_BUS0_528_1,
+	CG_CTRL_STAT_ACLK_BUS0_200,
+	CG_CTRL_STAT_PCLK_BUS0_132_0,
+	CG_CTRL_STAT_PCLK_BUS0_132_1,
+	CG_CTRL_STAT_PCLK_BUS0_132_2,
+	QCH_CTRL_TREX_D_BUS0,
+	QCH_CTRL_CAM0_D,
+	QCH_CTRL_CAM1_D,
+	QCH_CTRL_DISP00_D,
+	QCH_CTRL_DISP01_D,
+	QCH_CTRL_DISP10_D,
+	QCH_CTRL_DISP11_D,
+	QCH_CTRL_ISP0_D,
+	QCH_CTRL_FSYS1_D,
+	QCH_CTRL_TREX_P_BUS0,
+	QCH_CTRL_ISP0_SFR,
+	QCH_CTRL_ISP1_SFR,
+	QCH_CTRL_DISP0_SFR,
+	QCH_CTRL_DISP1_SFR,
+	QCH_CTRL_PERIS_SFR,
+	QCH_CTRL_PERIC0_SFR,
+	QCH_CTRL_PERIC1_SFR,
+	QCH_CTRL_FSYS1_SFR,
+	QCH_CTRL_SYSREG_BUS0,
+	QCH_CTRL_PMU_BUS0,
+	QCH_CTRL_CMU_BUS0,
+};
+
+PNAME(bus0_mux_aclk_bus0_528_user_p)	= { "oscclk",
+					    "gout_top_aclk_bus0_528" };
+PNAME(bus0_mux_aclk_bus0_200_user_p)	= { "oscclk",
+					    "gout_top_aclk_bus0_200" };
+PNAME(bus0_mux_pclk_bus0_132_user_p)	= { "oscclk",
+					    "gout_top_pclk_bus0_132" };
+
+static const struct samsung_mux_clock bus0_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_BUS0_ACLK_BUS0_528_USER, "mout_bus0_aclk_bus0_528_user",
+	    bus0_mux_aclk_bus0_528_user_p, CLK_CON_MUX_ACLK_BUS0_528_USER, 12,
+	    1),
+	MUX(CLK_MOUT_BUS0_ACLK_BUS0_200_USER, "mout_bus0_aclk_bus0_200_user",
+	    bus0_mux_aclk_bus0_200_user_p, CLK_CON_MUX_ACLK_BUS0_200_USER, 12,
+	    1),
+	MUX(CLK_MOUT_BUS0_PCLK_BUS0_132_USER, "mout_bus0_pclk_bus0_132_user",
+	    bus0_mux_pclk_bus0_132_user_p, CLK_CON_MUX_PCLK_BUS0_132_USER, 12,
+	    1),
+};
+
+static const struct samsung_gate_clock bus0_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_BUS0_ACLK_ACE_FSYS1, "gout_bus0_aclk_ace_fsys1",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 8,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_ISP0, "gout_bus0_aclk_lh_isp0",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 7,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_DISP11, "gout_bus0_aclk_lh_disp11",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 6,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_DISP10, "gout_bus0_aclk_lh_disp10",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 5,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_DISP01, "gout_bus0_aclk_lh_disp01",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 4,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_DISP00, "gout_bus0_aclk_lh_disp00",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 3,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_CAM1, "gout_bus0_aclk_lh_cam1",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 2,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_CAM0, "gout_bus0_aclk_lh_cam0",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 1,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_TREX_BUS0, "gout_bus0_aclk_trex_bus0",
+	     "mout_bus0_aclk_bus0_528_user", CG_CTRL_VAL_ACLK_BUS0_528_BUS0, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_LH_FSYS1, "gout_bus0_aclk_lh_fsys1",
+	     "mout_bus0_aclk_bus0_200_user", CG_CTRL_VAL_ACLK_BUS0_200_BUS0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_CMU_BUS0, "gout_bus0_pclk_cmu_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 16,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_TREX_BUS0, "gout_bus0_pclk_trex_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 15,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_PMU_BUS0, "gout_bus0_pclk_pmu_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 14,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_SYSREG_BUS0, "gout_bus0_pclk_sysreg_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 13,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_FSYS1SFRX, "gout_bus0_pclk_lh_fsys1sfrx",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 12,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_PERIC1P, "gout_bus0_pclk_lh_peric1p",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 11,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_PERIC0P, "gout_bus0_pclk_lh_peric0p",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 10,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_PERISFRX, "gout_bus0_pclk_lh_perisfrx",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 9,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_DISP1SFRX, "gout_bus0_pclk_lh_disp1sfrx",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 8,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_DISP0SFRX, "gout_bus0_pclk_lh_disp0sfrx",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 7,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_ISPHX, "gout_bus0_pclk_lh_isphx",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 6,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_LH_IS0X, "gout_bus0_pclk_lh_is0x",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 5,
+	     0, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_AXI2APB_2MB_BUS0_TP,
+	     "gout_bus0_pclk_axi2apb_2mb_bus0_tp",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_AHB2APB_BUS0P, "gout_bus0_pclk_ahb2apb_bus0p",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 3,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_AXI2APB_2MB_BUS0_TD,
+	     "gout_bus0_pclk_axi2apb_2mb_bus0_td",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 2,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_PCLK_TREX_P_BUS0, "gout_bus0_pclk_trex_p_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS0_ACLK_TREX_P_BUS0, "gout_bus0_aclk_trex_p_bus0",
+	     "mout_bus0_pclk_bus0_132_user", CG_CTRL_VAL_PCLK_BUS0_132_BUS0, 0,
+	     CLK_IS_CRITICAL, 0),
+};
+
+static const struct samsung_cmu_info bus0_cmu_info __initconst = {
+	.mux_clks		= bus0_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(bus0_mux_clks),
+	.gate_clks		= bus0_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(bus0_gate_clks),
+	.nr_clk_ids		= BUS0_NR_CLK,
+	.clk_regs		= bus0_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(bus0_clk_regs),
+};
+
+/* ---- CMU_BUS1----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_BUS1 (0x14800000) */
+#define CLK_CON_MUX_ACLK_BUS1_528_USER	0x0200
+#define CLK_CON_MUX_PCLK_BUS1_132_USER	0x0204
+#define CLK_STAT_MUX_ACLK_BUS1_528_USER	0x0600
+#define CLK_STAT_MUX_PCLK_BUS1_132_USER	0x0604
+#define CLK_ENABLE_ACLK_BUS1_528_BUS1	0x0800
+#define CLK_ENABLE_PCLK_BUS1_132_BUS1	0x0900
+#define CG_CTRL_VAL_ACLK_BUS1_528_BUS1	0x0800
+#define CG_CTRL_VAL_PCLK_BUS1_132_BUS1	0x0900
+#define CLKOUT_CMU_BUS1			0x0D00
+#define CLKOUT_CMU_BUS1_DIV_STAT	0x0D04
+#define CMU_BUS1_SPARE0			0x0D08
+#define CMU_BUS1_SPARE1			0x0D0C
+#define CLK_ENABLE_PDN_BUS1		0x0E00
+#define BUS1_SFR_IGNORE_REQ_SYSCLK	0x0F28
+#define CG_CTRL_MAN_ACLK_BUS1_528	0x1800
+#define CG_CTRL_MAN_PCLK_BUS1_132	0x1900
+#define CG_CTRL_STAT_ACLK_BUS1_528	0x1C00
+#define CG_CTRL_STAT_PCLK_BUS1_132_0	0x1D00
+#define CG_CTRL_STAT_PCLK_BUS1_132_1	0x1D04
+#define QCH_CTRL_TREX_D_BUS1		0x2000
+#define QCH_CTRL_FSYS0_D		0x2004
+#define QCH_CTRL_MFC0_D			0x2008
+#define QCH_CTRL_MFC1_D			0x200C
+#define QCH_CTRL_MSCL0_D		0x2010
+#define QCH_CTRL_MSCL1_D		0x2014
+#define QCH_CTRL_TREX_P_BUS1		0x2018
+#define QCH_CTRL_FSYS0_SFR		0x201C
+#define QCH_CTRL_MFC_SFR		0x2020
+#define QCH_CTRL_MSCL_SFR		0x2024
+#define QCH_CTRL_PMU_BUS1		0x2028
+#define QCH_CTRL_SYSREG_BUS1		0x202C
+#define QCH_CTRL_CMU_BUS1		0x2030
+
+static const unsigned long bus1_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_BUS1_528_USER,
+	CLK_CON_MUX_PCLK_BUS1_132_USER,
+	CLK_STAT_MUX_ACLK_BUS1_528_USER,
+	CLK_STAT_MUX_PCLK_BUS1_132_USER,
+	CLK_ENABLE_ACLK_BUS1_528_BUS1,
+	CLK_ENABLE_PCLK_BUS1_132_BUS1,
+	CG_CTRL_VAL_ACLK_BUS1_528_BUS1,
+	CG_CTRL_VAL_PCLK_BUS1_132_BUS1,
+	CLKOUT_CMU_BUS1,
+	CLKOUT_CMU_BUS1_DIV_STAT,
+	CMU_BUS1_SPARE0,
+	CMU_BUS1_SPARE1,
+	CLK_ENABLE_PDN_BUS1,
+	BUS1_SFR_IGNORE_REQ_SYSCLK,
+	CG_CTRL_MAN_ACLK_BUS1_528,
+	CG_CTRL_MAN_PCLK_BUS1_132,
+	CG_CTRL_STAT_ACLK_BUS1_528,
+	CG_CTRL_STAT_PCLK_BUS1_132_0,
+	CG_CTRL_STAT_PCLK_BUS1_132_1,
+	QCH_CTRL_TREX_D_BUS1,
+	QCH_CTRL_FSYS0_D,
+	QCH_CTRL_MFC0_D,
+	QCH_CTRL_MFC1_D,
+	QCH_CTRL_MSCL0_D,
+	QCH_CTRL_MSCL1_D,
+	QCH_CTRL_TREX_P_BUS1,
+	QCH_CTRL_FSYS0_SFR,
+	QCH_CTRL_MFC_SFR,
+	QCH_CTRL_MSCL_SFR,
+	QCH_CTRL_PMU_BUS1,
+	QCH_CTRL_SYSREG_BUS1,
+	QCH_CTRL_CMU_BUS1,
+};
+
+PNAME(bus1_mux_aclk_bus1_528_user_p)	= { "oscclk",
+					    "gout_top_aclk_bus1_528" };
+PNAME(bus1_mux_pclk_bus1_132_user_p)	= { "oscclk",
+					    "gout_top_pclk_bus1_132" };
+
+static const struct samsung_mux_clock bus1_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_BUS1_ACLK_BUS1_528_USER, "mout_bus1_aclk_bus1_528_user",
+	    bus1_mux_aclk_bus1_528_user_p, CLK_CON_MUX_ACLK_BUS1_528_USER, 12,
+	    1),
+	MUX(CLK_MOUT_BUS1_PCLK_BUS1_132_USER, "mout_bus1_pclk_bus1_132_user",
+	    bus1_mux_pclk_bus1_132_user_p, CLK_CON_MUX_PCLK_BUS1_132_USER, 12,
+	    1),
+};
+
+static const struct samsung_gate_clock bus1_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_BUS1_ACLK_LH_MSCL1, "gout_bus1_aclk_lh_mscl1",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 5,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_LH_MSCL0, "gout_bus1_aclk_lh_mscl0",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 4,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_LH_MFC1, "gout_bus1_aclk_lh_mfc1",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 3,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_LH_MFC0, "gout_bus1_aclk_lh_mfc0",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 2,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_LH_FSYS0, "gout_bus1_aclk_lh_fsys0",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 1,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_TREX_BUS1, "gout_bus1_aclk_trex_bus1",
+	     "mout_bus1_aclk_bus1_528_user", CG_CTRL_VAL_ACLK_BUS1_528_BUS1, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_CMU_BUS1, "gout_bus1_pclk_cmu_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 11,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_TREX_BUS1, "gout_bus1_pclk_trex_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 10,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_SYSREG_BUS1, "gout_bus1_pclk_sysreg_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 9,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_PMU_BUS1, "gout_bus1_pclk_pmu_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 8,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_LH_MSCLSFRX, "gout_bus1_pclk_lh_msclsfrx",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 7,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_LH_MFCP, "gout_bus1_pclk_lh_mfcp",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 6,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_LH_FSYS0SFRX, "gout_bus1_pclk_lh_fsys0sfrx",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 5,
+	     0, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_AHB2APB_BUS1P, "gout_bus1_pclk_ahb2apb_bus1p",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_AXI2APB_2MB_BUS1_TP,
+	     "gout_bus1_pclk_axi2apb_2mb_bus1_tp",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 3,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_AXI2APB_2MB_BUS1_TD,
+	     "gout_bus1_pclk_axi2apb_2mb_bus1_td",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 2,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_PCLK_TREX_P_BUS1, "gout_bus1_pclk_trex_p_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_BUS1_ACLK_TREX_P_BUS1, "gout_bus1_aclk_trex_p_bus1",
+	     "mout_bus1_pclk_bus1_132_user", CG_CTRL_VAL_PCLK_BUS1_132_BUS1, 0,
+	     CLK_IS_CRITICAL, 0),
+};
+
+static const struct samsung_cmu_info bus1_cmu_info __initconst = {
+	.mux_clks		= bus1_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(bus1_mux_clks),
+	.gate_clks		= bus1_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(bus1_gate_clks),
+	.nr_clk_ids		= BUS1_NR_CLK,
+	.clk_regs		= bus1_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(bus1_clk_regs),
+};
+
+/* ---- CMU_CCORE ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_CCORE (0x105B0000) */
+#define CLK_CON_MUX_ACLK_CCORE_800_USER		0x0200
+#define CLK_CON_MUX_ACLK_CCORE_264_USER		0x0204
+#define CLK_CON_MUX_ACLK_CCORE_G3D_800_USER	0x0208
+#define CLK_CON_MUX_ACLK_CCORE_528_USER		0x020C
+#define CLK_CON_MUX_ACLK_CCORE_132_USER		0x0210
+#define CLK_CON_MUX_PCLK_CCORE_66_USER		0x0214
+#define CLK_CON_DIV_SCLK_HPM_CCORE		0x0400
+#define CLK_STAT_MUX_ACLK_CCORE_800_USER	0x0500
+#define CLK_STAT_MUX_ACLK_CCORE_264_USER	0x0504
+#define CLK_STAT_MUX_ACLK_CCORE_G3D_800_USER	0x0508
+#define CLK_STAT_MUX_ACLK_CCORE_528_USER	0x050C
+#define CLK_STAT_MUX_ACLK_CCORE_132_USER	0x0510
+#define CLK_STAT_MUX_PCLK_CCORE_66_USER		0x0514
+#define CLK_ENABLE_ACLK_CCORE0			0x0800
+#define CLK_ENABLE_ACLK_CCORE1			0x0804
+#define CLK_ENABLE_ACLK_CCORE2			0x0808
+#define CLK_ENABLE_ACLK_CCORE3			0x080C
+#define CLK_ENABLE_ACLK_CCORE4			0x0810
+#define CLK_ENABLE_ACLK_CCORE_AP		0x0814
+#define CLK_ENABLE_ACLK_CCORE_CP		0x0818
+#define CLK_ENABLE_PCLK_CCORE_AP		0x0900
+#define CLK_ENABLE_PCLK_CCORE_CP		0x0904
+#define CLK_ENABLE_SCLK_HPM_CCORE		0x0A00
+#define CG_CTRL_VAL_ACLK_CCORE0			0x0800
+#define CG_CTRL_VAL_ACLK_CCORE1			0x0804
+#define CG_CTRL_VAL_ACLK_CCORE2			0x0808
+#define CG_CTRL_VAL_ACLK_CCORE3			0x080C
+#define CG_CTRL_VAL_ACLK_CCORE4			0x0810
+#define CG_CTRL_VAL_ACLK_CCORE_AP		0x0814
+#define CG_CTRL_VAL_ACLK_CCORE_CP		0x0818
+#define CG_CTRL_VAL_PCLK_CCORE_AP		0x0900
+#define CG_CTRL_VAL_PCLK_CCORE_CP		0x0904
+#define CG_CTRL_VAL_SCLK_HPM_CCORE		0x0A00
+#define CLKOUT_CMU_CCORE			0x0C00
+#define CLKOUT_CMU_CCORE_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_CCORE			0x0E00
+#define CCORE_SFR_IGNORE_REQ_SYSCLK		0x0F28
+#define PSCDC_CTRL_CCORE			0x1000
+#define CLK_STOPCTRL_CCORE			0x1004
+#define CG_CTRL_MAN_ACLK_CCORE0			0x1800
+#define CG_CTRL_MAN_ACLK_CCORE1			0x1804
+#define CG_CTRL_MAN_ACLK_CCORE2			0x1808
+#define CG_CTRL_MAN_ACLK_CCORE3			0x180C
+#define CG_CTRL_MAN_ACLK_CCORE4			0x1810
+#define CG_CTRL_MAN_ACLK_CCORE_AP		0x1814
+#define CG_CTRL_MAN_ACLK_CCORE_CP		0x1818
+#define CG_CTRL_MAN_PCLK_CCORE_AP		0x1900
+#define CG_CTRL_MAN_PCLK_CCORE_CP		0x1904
+#define CG_CTRL_MAN_SCLK_HPM_CCORE		0x1A00
+#define CG_CTRL_STAT_ACLK_CCORE0_0		0x1C00
+#define CG_CTRL_STAT_ACLK_CCORE0_1		0x1C04
+#define CG_CTRL_STAT_ACLK_CCORE1_0		0x1C08
+#define CG_CTRL_STAT_ACLK_CCORE1_1		0x1C0C
+#define CG_CTRL_STAT_ACLK_CCORE2		0x1C10
+#define CG_CTRL_STAT_ACLK_CCORE3		0x1C14
+#define CG_CTRL_STAT_ACLK_CCORE4_0		0x1C18
+#define CG_CTRL_STAT_ACLK_CCORE4_1		0x1C1C
+#define CG_CTRL_STAT_ACLK_CCORE4_2		0x1C20
+#define CG_CTRL_STAT_ACLK_CCORE4_3		0x1C24
+#define CG_CTRL_STAT_ACLK_CCORE_AP		0x1C28
+#define CG_CTRL_STAT_ACLK_CCORE_CP		0x1C2C
+#define CG_CTRL_STAT_PCLK_CCORE_AP		0x1D00
+#define CG_CTRL_STAT_PCLK_CCORE_CP		0x1D04
+#define CG_CTRL_STAT_SCLK_HPM_CCORE		0x1E00
+#define CMU_CCORE_SPARE0			0x1100
+#define CMU_CCORE_SPARE1			0x1104
+#define QCH_CTRL_TREX_CCORE			0x2000
+#define QCH_CTRL_TREX_P_CCORE			0x2004
+#define QCH_CTRL_LH_G3DIRAM			0x2008
+#define QCH_CTRL_LH_CCORESFRX			0x200C
+#define QCH_CTRL_LH_CPPERI			0x2010
+#define QCH_CTRL_LH_G3D0			0x2014
+#define QCH_CTRL_LH_G3D1			0x2018
+#define QCH_CTRL_LH_AUD				0x201C
+#define QCH_CTRL_LH_IMEM			0x2020
+#define QCH_CTRL_LH_CPDATA			0x2024
+#define QCH_CTRL_LH_AUDP			0x2028
+#define QCH_CTRL_LH_G3DP			0x202C
+#define QCH_CTRL_LH_MIF0P			0x2030
+#define QCH_CTRL_LH_MIF1P			0x2034
+#define QCH_CTRL_LH_MIF2P			0x2038
+#define QCH_CTRL_LH_MIF3P			0x203C
+#define QCH_CTRL_PMU_CCORE			0x2040
+#define QCH_CTRL_SYSREG_CCORE			0x2044
+#define QCH_CTRL_CMU_CCORE			0x2048
+#define QSTATE_CTRL_AXI_AS_MI_MNGSCS_CCORETD	0x2400
+#define QSTATE_CTRL_ATB_APL_MNGS		0x2404
+#define QSTATE_CTRL_APB_AS_MI_MNGSCS_CCOREBDU	0x2408
+#define QSTATE_CTRL_APB_PDU			0x240C
+#define QSTATE_CTRL_HSI2C			0x2410
+#define QSTATE_CTRL_HSI2C_BAT_AP		0x2414
+#define QSTATE_CTRL_HSI2C_BAT_CP		0x2418
+#define QSTATE_CTRL_PROMISE			0x241C
+#define QSTATE_CTRL_AXI_AS_SI_CCORETP_MNGS	0x2420
+#define QSTATE_CTRL_AXI_AS_SI_CCORETP_APL	0x2424
+
+static const unsigned long ccore_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_CCORE_800_USER,
+	CLK_CON_MUX_ACLK_CCORE_264_USER,
+	CLK_CON_MUX_ACLK_CCORE_G3D_800_USER,
+	CLK_CON_MUX_ACLK_CCORE_528_USER,
+	CLK_CON_MUX_ACLK_CCORE_132_USER,
+	CLK_CON_MUX_PCLK_CCORE_66_USER,
+	CLK_CON_DIV_SCLK_HPM_CCORE,
+	CLK_STAT_MUX_ACLK_CCORE_800_USER,
+	CLK_STAT_MUX_ACLK_CCORE_264_USER,
+	CLK_STAT_MUX_ACLK_CCORE_G3D_800_USER,
+	CLK_STAT_MUX_ACLK_CCORE_528_USER,
+	CLK_STAT_MUX_ACLK_CCORE_132_USER,
+	CLK_STAT_MUX_PCLK_CCORE_66_USER,
+	CLK_ENABLE_ACLK_CCORE0,
+	CLK_ENABLE_ACLK_CCORE1,
+	CLK_ENABLE_ACLK_CCORE2,
+	CLK_ENABLE_ACLK_CCORE3,
+	CLK_ENABLE_ACLK_CCORE4,
+	CLK_ENABLE_ACLK_CCORE_AP,
+	CLK_ENABLE_ACLK_CCORE_CP,
+	CLK_ENABLE_PCLK_CCORE_AP,
+	CLK_ENABLE_PCLK_CCORE_CP,
+	CLK_ENABLE_SCLK_HPM_CCORE,
+	CG_CTRL_VAL_ACLK_CCORE0,
+	CG_CTRL_VAL_ACLK_CCORE1,
+	CG_CTRL_VAL_ACLK_CCORE2,
+	CG_CTRL_VAL_ACLK_CCORE3,
+	CG_CTRL_VAL_ACLK_CCORE4,
+	CG_CTRL_VAL_ACLK_CCORE_AP,
+	CG_CTRL_VAL_ACLK_CCORE_CP,
+	CG_CTRL_VAL_PCLK_CCORE_AP,
+	CG_CTRL_VAL_PCLK_CCORE_CP,
+	CG_CTRL_VAL_SCLK_HPM_CCORE,
+	CLKOUT_CMU_CCORE,
+	CLKOUT_CMU_CCORE_DIV_STAT,
+	CLK_ENABLE_PDN_CCORE,
+	CCORE_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL_CCORE,
+	CLK_STOPCTRL_CCORE,
+	CG_CTRL_MAN_ACLK_CCORE0,
+	CG_CTRL_MAN_ACLK_CCORE1,
+	CG_CTRL_MAN_ACLK_CCORE2,
+	CG_CTRL_MAN_ACLK_CCORE3,
+	CG_CTRL_MAN_ACLK_CCORE4,
+	CG_CTRL_MAN_ACLK_CCORE_AP,
+	CG_CTRL_MAN_ACLK_CCORE_CP,
+	CG_CTRL_MAN_PCLK_CCORE_AP,
+	CG_CTRL_MAN_PCLK_CCORE_CP,
+	CG_CTRL_MAN_SCLK_HPM_CCORE,
+	CG_CTRL_STAT_ACLK_CCORE0_0,
+	CG_CTRL_STAT_ACLK_CCORE0_1,
+	CG_CTRL_STAT_ACLK_CCORE1_0,
+	CG_CTRL_STAT_ACLK_CCORE1_1,
+	CG_CTRL_STAT_ACLK_CCORE2,
+	CG_CTRL_STAT_ACLK_CCORE3,
+	CG_CTRL_STAT_ACLK_CCORE4_0,
+	CG_CTRL_STAT_ACLK_CCORE4_1,
+	CG_CTRL_STAT_ACLK_CCORE4_2,
+	CG_CTRL_STAT_ACLK_CCORE4_3,
+	CG_CTRL_STAT_ACLK_CCORE_AP,
+	CG_CTRL_STAT_ACLK_CCORE_CP,
+	CG_CTRL_STAT_PCLK_CCORE_AP,
+	CG_CTRL_STAT_PCLK_CCORE_CP,
+	CG_CTRL_STAT_SCLK_HPM_CCORE,
+	CMU_CCORE_SPARE0,
+	CMU_CCORE_SPARE1,
+	QCH_CTRL_TREX_CCORE,
+	QCH_CTRL_TREX_P_CCORE,
+	QCH_CTRL_LH_G3DIRAM,
+	QCH_CTRL_LH_CCORESFRX,
+	QCH_CTRL_LH_CPPERI,
+	QCH_CTRL_LH_G3D0,
+	QCH_CTRL_LH_G3D1,
+	QCH_CTRL_LH_AUD,
+	QCH_CTRL_LH_IMEM,
+	QCH_CTRL_LH_CPDATA,
+	QCH_CTRL_LH_AUDP,
+	QCH_CTRL_LH_G3DP,
+	QCH_CTRL_LH_MIF0P,
+	QCH_CTRL_LH_MIF1P,
+	QCH_CTRL_LH_MIF2P,
+	QCH_CTRL_LH_MIF3P,
+	QCH_CTRL_PMU_CCORE,
+	QCH_CTRL_SYSREG_CCORE,
+	QCH_CTRL_CMU_CCORE,
+	QSTATE_CTRL_AXI_AS_MI_MNGSCS_CCORETD,
+	QSTATE_CTRL_ATB_APL_MNGS,
+	QSTATE_CTRL_APB_AS_MI_MNGSCS_CCOREBDU,
+	QSTATE_CTRL_APB_PDU,
+	QSTATE_CTRL_HSI2C,
+	QSTATE_CTRL_HSI2C_BAT_AP,
+	QSTATE_CTRL_HSI2C_BAT_CP,
+	QSTATE_CTRL_PROMISE,
+	QSTATE_CTRL_AXI_AS_SI_CCORETP_MNGS,
+	QSTATE_CTRL_AXI_AS_SI_CCORETP_APL,
+};
+
+PNAME(ccore_mux_aclk_ccore_800_user_p)		= { "oscclk",
+						    "gout_top_aclk_ccore_800" };
+PNAME(ccore_mux_aclk_ccore_264_user_p)		= { "oscclk",
+						    "gout_top_aclk_ccore_264" };
+PNAME(ccore_mux_aclk_ccore_g3d_800_user_p)	= { "oscclk",
+						    "gout_top_aclk_ccore_g3d_800" };
+PNAME(ccore_mux_aclk_ccore_528_user_p)		= { "oscclk",
+						    "gout_top_aclk_ccore_528" };
+PNAME(ccore_mux_aclk_ccore_132_user_p)		= { "oscclk",
+						    "gout_top_aclk_ccore_132" };
+PNAME(ccore_mux_pclk_ccore_66_user_p)		= { "oscclk",
+						    "gout_top_pclk_ccore_66" };
+
+static const struct samsung_mux_clock ccore_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_CCORE_ACLK_CCORE_800_USER,
+	    "mout_ccore_aclk_ccore_800_user", ccore_mux_aclk_ccore_800_user_p,
+	    CLK_CON_MUX_ACLK_CCORE_800_USER, 12, 1),
+	MUX(CLK_MOUT_CCORE_ACLK_CCORE_264_USER,
+	    "mout_ccore_aclk_ccore_264_user", ccore_mux_aclk_ccore_264_user_p,
+	    CLK_CON_MUX_ACLK_CCORE_264_USER, 12, 1),
+	MUX(CLK_MOUT_CCORE_ACLK_CCORE_G3D_800_USER,
+	    "mout_ccore_aclk_ccore_g3d_800_user",
+	    ccore_mux_aclk_ccore_g3d_800_user_p,
+	    CLK_CON_MUX_ACLK_CCORE_G3D_800_USER, 12, 1),
+	MUX(CLK_MOUT_CCORE_ACLK_CCORE_528_USER,
+	    "mout_ccore_aclk_ccore_528_user", ccore_mux_aclk_ccore_528_user_p,
+	    CLK_CON_MUX_ACLK_CCORE_528_USER, 12, 1),
+	MUX(CLK_MOUT_CCORE_ACLK_CCORE_132_USER,
+	    "mout_ccore_aclk_ccore_132_user", ccore_mux_aclk_ccore_132_user_p,
+	    CLK_CON_MUX_ACLK_CCORE_132_USER, 12, 1),
+	MUX(CLK_MOUT_CCORE_PCLK_CCORE_66_USER, "mout_ccore_pclk_ccore_66_user",
+	    ccore_mux_pclk_ccore_66_user_p, CLK_CON_MUX_PCLK_CCORE_66_USER,
+	    12, 1),
+};
+
+static const struct samsung_div_clock ccore_div_clks[] __initconst = {
+	DIV(CLK_DOUT_CCORE_SCLK_HPM_CCORE, "dout_ccore_sclk_hpm_ccore",
+	    "mout_ccore_aclk_ccore_800_user", CLK_CON_DIV_SCLK_HPM_CCORE, 0, 4),
+};
+
+static const struct samsung_gate_clock ccore_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_AS_SI_IRPM,
+	     "gout_ccore_aclk_axi_as_si_irpm", "mout_ccore_aclk_ccore_800_user",
+	     CG_CTRL_VAL_ACLK_CCORE0, 11, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_MPACEBRIDGE, "gout_ccore_aclk_mpacebridge",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 10, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_PULSE2HS, "gout_ccore_aclk_pulse2hs",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 9, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_DBG_LH_MI_MIF_CCORE,
+	     "gout_ccore_aclk_dbg_lh_mi_mif_ccore",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 8,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_SCI_PPC_WRAPPER,
+	     "gout_ccore_aclk_sci_ppc_wrapper",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 7, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_ACE_AS_MI_APL_CCORE,
+	     "gout_ccore_aclk_ace_as_mi_apl_ccore",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 6, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_MPACE_SI, "gout_ccore_aclk_mpace_si",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 5, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_CPACE_MI, "gout_ccore_aclk_cpace_mi",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 4, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_ATB_SI_CCOREBDU_MNGSCS,
+	     "gout_ccore_aclk_atb_si_ccorebdu_mngscs",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 3, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_BDU, "gout_ccore_aclk_bdu",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 2, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_CCORE_SCI,
+	     "gout_ccore_aclk_trex_ccore_sci", "mout_ccore_aclk_ccore_800_user",
+	     CG_CTRL_VAL_ACLK_CCORE0, 1, 0, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_SCI, "gout_ccore_aclk_sci",
+	     "mout_ccore_aclk_ccore_800_user", CG_CTRL_VAL_ACLK_CCORE0, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_CLEANY_CPPERI, "gout_ccore_aclk_cleany_cpperi",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 9, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_US_CPPERI, "gout_ccore_aclk_axi_us_cpperi",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 8,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_MI_CPPERI_CCORE,
+	     "gout_ccore_aclk_axi_lh_mi_cpperi_ccore",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 7,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORESFRX_IMEMX,
+	     "gout_ccore_aclk_axi_lh_si_ccoresfrx_imemx",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 6,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_MI_G3DXIRAM_CCORESFR,
+	     "gout_ccore_aclk_axi_lh_mi_g3dxiram_ccoresfr",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 5,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_DS_IRPM, "gout_ccore_aclk_axi_ds_irpm",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_XIU_CCORESFRX, "gout_ccore_aclk_xiu_ccoresfrx",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 3,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_P_CCORE_BUS,
+	     "gout_ccore_aclk_trex_p_ccore_bus",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 2, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_CCORE_PERI,
+	     "gout_ccore_aclk_trex_ccore_peri",
+	     "mout_ccore_aclk_ccore_264_user", CG_CTRL_VAL_ACLK_CCORE1, 1, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_AS_MI_IRPM,
+	     "gout_ccore_aclk_axi_as_mi_irpm", "mout_ccore_aclk_ccore_264_user",
+	     CG_CTRL_VAL_ACLK_CCORE1, 0, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_CCORE_G3D,
+	     "gout_ccore_aclk_trex_ccore_g3d",
+	     "mout_ccore_aclk_ccore_g3d_800_user", CG_CTRL_VAL_ACLK_CCORE2, 2,
+	     0, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_ACEL_LH_MI_G3DX1_CCORETD,
+	     "gout_ccore_aclk_acel_lh_mi_g3dx1_ccoretd",
+	     "mout_ccore_aclk_ccore_g3d_800_user", CG_CTRL_VAL_ACLK_CCORE2, 1,
+	     0, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_ACEL_LH_MI_G3DX0_CCORETD,
+	     "gout_ccore_aclk_acel_lh_mi_g3dx0_ccoretd",
+	     "mout_ccore_aclk_ccore_g3d_800_user", CG_CTRL_VAL_ACLK_CCORE2, 0,
+	     0, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_ATB_APL_MNGS, "gout_ccore_aclk_atb_apl_mngs",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 7, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_XIU_CPX, "gout_ccore_aclk_xiu_cpx",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 6, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_CLEANY_CPDATA, "gout_ccore_aclk_cleany_cpdata",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 5, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_MI_CPDATA_CCORE,
+	     "gout_ccore_aclk_axi_lh_mi_cpdata_ccore",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_MI_IMEMX_CCORETD,
+	     "gout_ccore_aclk_axi_lh_mi_imemx_ccoretd",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 3,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_MI_AUDX_CCORETD,
+	     "gout_ccore_aclk_axi_lh_mi_audx_ccoretd",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 2,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_AS_MI_MNGSCS_CCORETD,
+	     "gout_ccore_aclk_axi_as_mi_mngscs_ccoretd",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_CCORE, "gout_ccore_aclk_trex_ccore",
+	     "mout_ccore_aclk_ccore_528_user", CG_CTRL_VAL_ACLK_CCORE3, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_CMU, "gout_ccore_pclk_cmu",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 30,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_HPM_APBIF, "gout_ccore_pclk_hpm_apbif",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 29,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_SCI, "gout_ccore_pclk_sci",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 28, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_GPIO_CCORE, "gout_ccore_pclk_gpio_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 27, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_S_MAILBOX, "gout_ccore_pclk_s_mailbox",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 26, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_MAILBOX, "gout_ccore_pclk_mailbox",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 25, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_SYSREG_CCORE, "gout_ccore_pclk_sysreg_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 24, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_GPIO_APBIF_ALIVE,
+	     "gout_ccore_pclk_gpio_apbif_alive",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 23,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_SCI_PPC_WRAPPER,
+	     "gout_ccore_pclk_sci_ppc_wrapper",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 22, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_VT_MON_APB, "gout_ccore_pclk_vt_mon_apb",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 21, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_PMU_CCORE, "gout_ccore_pclk_pmu_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 20, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_PMU_APBIF, "gout_ccore_pclk_pmu_apbif",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 19,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_CMU_TOPC_APBIF,
+	     "gout_ccore_pclk_cmu_topc_apbif", "mout_ccore_aclk_ccore_132_user",
+	     CG_CTRL_VAL_ACLK_CCORE4, 18, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_AXI2APB_CORESIGHT,
+	     "gout_ccore_pclk_axi2apb_coresight",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 17,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_AXI2APB_TREX_P_CCORE,
+	     "gout_ccore_pclk_axi2apb_trex_p_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 16,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_AXI2APB_TREX_CCORE,
+	     "gout_ccore_pclk_axi2apb_trex_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 15,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_AXI2APB_CCORE, "gout_ccore_pclk_axi2apb_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 14,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_CCORE_PCLK_TREX_P_CCORE, "gout_ccore_pclk_trex_p_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 13, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_TREX_CCORE, "gout_ccore_pclk_trex_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 12, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_BDU, "gout_ccore_pclk_bdu",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 11, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_MIF3P,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_mif3p",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 10, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_MIF2P,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_mif2p",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 9, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_MIF1P,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_mif1p",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 8, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_MIF0P,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_mif0p",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 7, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_G3DP,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_g3dp",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 6, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_LH_SI_CCORETP_AUDX,
+	     "gout_ccore_aclk_axi_lh_si_ccoretp_audx",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 5, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_AS_SI_CCORETP_APL,
+	     "gout_ccore_aclk_axi_as_si_ccoretp_apl",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 4, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_AXI_AS_SI_CCORETP_MNGS,
+	     "gout_ccore_aclk_axi_as_si_ccoretp_mngs",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 3, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_APB_AS_MI_CCORETP_MNGSCS,
+	     "gout_ccore_aclk_apb_as_mi_ccoretp_mngscs",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 2, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_APB_AS_MI_MNGSCS_CCOREBDU,
+	     "gout_ccore_aclk_apb_as_mi_mngscs_ccorebdu",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 1, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_ACLK_TREX_P_CCORE, "gout_ccore_aclk_trex_p_ccore",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE4, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_APBASYNC_BAT_AP,
+	     "gout_ccore_pclk_apbasync_bat_ap",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE_AP, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_APBASYNC_BAT_CP,
+	     "gout_ccore_pclk_apbasync_bat_cp",
+	     "mout_ccore_aclk_ccore_132_user", CG_CTRL_VAL_ACLK_CCORE_CP, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_HSI2C_BAT_AP, "gout_ccore_pclk_hsi2c_bat_ap",
+	     "mout_ccore_pclk_ccore_66_user", CG_CTRL_VAL_PCLK_CCORE_AP, 1, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_HSI2C, "gout_ccore_pclk_hsi2c",
+	     "mout_ccore_pclk_ccore_66_user", CG_CTRL_VAL_PCLK_CCORE_AP, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_HSI2C_BAT_CP, "gout_ccore_pclk_hsi2c_bat_cp",
+	     "mout_ccore_pclk_ccore_66_user", CG_CTRL_VAL_PCLK_CCORE_CP, 1, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_PCLK_HSI2C_CP, "gout_ccore_pclk_hsi2c_cp",
+	     "mout_ccore_pclk_ccore_66_user", CG_CTRL_VAL_PCLK_CCORE_CP, 0, 0,
+	     0),
+	GATE(CLK_GOUT_CCORE_SCLK_PROMISE, "gout_ccore_sclk_promise",
+	     "dout_ccore_sclk_hpm_ccore", CG_CTRL_VAL_SCLK_HPM_CCORE, 0,
+	     CLK_IGNORE_UNUSED, 0),
+};
+
+static const struct samsung_cmu_info ccore_cmu_info __initconst = {
+	.mux_clks		= ccore_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(ccore_mux_clks),
+	.div_clks		= ccore_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(ccore_div_clks),
+	.gate_clks		= ccore_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(ccore_gate_clks),
+	.nr_clk_ids		= CCORE_NR_CLK,
+	.clk_regs		= ccore_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(ccore_clk_regs),
+};
+
+/* ---- CMU_DISP0 ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_DISP0 (0x13AD0000) */
+#define DISP_PLL_LOCK						0x0000
+#define DISP_PLL_CON0						0x0100
+#define DISP_PLL_CON1						0x0104
+#define DISP_PLL_FREQ_DET					0x010C
+#define CLK_CON_MUX_DISP_PLL					0x0200
+#define CLK_CON_MUX_ACLK_DISP0_0_400_USER			0x0204
+#define CLK_CON_MUX_ACLK_DISP0_1_400_USER			0x0208
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_USER		0x020C
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_USER		0x0210
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_USER		0x0214
+#define CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_USER			0x0218
+#define CLK_CON_MUX_PHYCLK_HDMIPHY_PIXEL_CLKO_USER		0x021C
+#define CLK_CON_MUX_PHYCLK_HDMIPHY_TMDS_CLKO_USER		0x0220
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY0_RXCLKESC0_USER		0x0224
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP0	0x0228
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER		0x022C
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY1_RXCLKESC0_USER		0x0230
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP0	0x0234
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER		0x0238
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY2_RXCLKESC0_USER		0x023C
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP0	0x0240
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER		0x0244
+#define CLK_CON_MUX_PHYCLK_DPPHY_CH0_TXD_CLK_USER		0x0248
+#define CLK_CON_MUX_PHYCLK_DPPHY_CH1_TXD_CLK_USER		0x024C
+#define CLK_CON_MUX_PHYCLK_DPPHY_CH2_TXD_CLK_USER		0x0250
+#define CLK_CON_MUX_PHYCLK_DPPHY_CH3_TXD_CLK_USER		0x0254
+#define CLK_CON_MUX_ACLK_DISP0_1_400_DISP0			0x0258
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_DISP0		0x025C
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_DISP0		0x0260
+#define CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_DISP0		0x0264
+#define CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_DISP0			0x0268
+#define CLK_CON_DIV_PCLK_DISP0_0_133				0x0400
+#define CLK_CON_DIV_SCLK_DECON0_ECLK0				0x0404
+#define CLK_CON_DIV_SCLK_DECON0_VCLK0				0x0408
+#define CLK_CON_DIV_SCLK_DECON0_VCLK1				0x040C
+#define CLK_CON_DIV_PHYCLK_HDMIPHY_PIXEL_CLKO			0x0410
+#define CLK_CON_DIV_PHYCLK_HDMIPHY_TMDS_20B_CLKO		0x0414
+#define CLK_CON_DSM_DIV_M_SCLK_HDMI_AUDIO			0x0500
+#define CLK_CON_DSM_DIV_N_SCLK_HDMI_AUDIO			0x0504
+#define CLK_STAT_MUX_DISP_PLL					0x0600
+#define CLK_STAT_MUX_ACLK_DISP0_0_400_USER			0x0604
+#define CLK_STAT_MUX_ACLK_DISP0_1_400_USER			0x0608
+#define CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_USER			0x060C
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_USER		0x0610
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_USER		0x0614
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_USER		0x0618
+#define CLK_STAT_MUX_PHYCLK_HDMIPHY_PIXEL_CLKO_USER		0x061C
+#define CLK_STAT_MUX_PHYCLK_HDMIPHY_TMDS_CLKO_USER		0x0620
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY0_RXCLKESC0_USER		0x0624
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP0	0x0628
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER		0x062C
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY1_RXCLKESC0_USER		0x0630
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP0	0x0634
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER		0x0638
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY2_RXCLKESC0_USER		0x063C
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP0	0x0640
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER		0x0644
+#define CLK_STAT_MUX_PHYCLK_DPPHY_CH0_TXD_CLK_USER		0x0648
+#define CLK_STAT_MUX_PHYCLK_DPPHY_CH1_TXD_CLK_USER		0x064C
+#define CLK_STAT_MUX_PHYCLK_DPPHY_CH2_TXD_CLK_USER		0x0650
+#define CLK_STAT_MUX_PHYCLK_DPPHY_CH3_TXD_CLK_USER		0x0654
+#define CLK_STAT_MUX_ACLK_DISP0_1_400_DISP0			0x0658
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_DISP0		0x065C
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_DISP0		0x0660
+#define CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_DISP0		0x0664
+#define CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_DISP0		0x0668
+#define CG_CTRL_VAL_ACLK_DISP0_0_400				0x0800
+#define CG_CTRL_VAL_ACLK_DISP0_1_400				0x0804
+#define CG_CTRL_VAL_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0		0x0808
+#define CG_CTRL_VAL_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1		0x080C
+#define CG_CTRL_VAL_PCLK_DISP0_0_133				0x0820
+#define CG_CTRL_VAL_PCLK_DISP0_0_133_HPM_APBIF_DISP0		0x0824
+#define CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_DECON0		0x0828
+#define CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_VPP0		0x082C
+#define CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0		0x0830
+#define CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1		0x0834
+#define CG_CTRL_VAL_SCLK_DISP1_400				0x0840
+#define CG_CTRL_VAL_SCLK_DECON0_ECLK0				0x0844
+#define CG_CTRL_VAL_SCLK_DECON0_VCLK0				0x0848
+#define CG_CTRL_VAL_SCLK_DECON0_VCLK1				0x084C
+#define CG_CTRL_VAL_SCLK_HDMI_AUDIO				0x0850
+#define CG_CTRL_VAL_SCLK_DISP0_PROMISE				0x0854
+#define CG_CTRL_VAL_PHYCLK_HDMIPHY				0x0858
+#define CG_CTRL_VAL_PHYCLK_MIPIDPHY0				0x085C
+#define CG_CTRL_VAL_PHYCLK_MIPIDPHY1				0x0860
+#define CG_CTRL_VAL_PHYCLK_MIPIDPHY2				0x0864
+#define CG_CTRL_VAL_PHYCLK_DPPHY				0x0868
+#define CG_CTRL_VAL_OSCCLK					0x086C
+#define CLKOUT_CMU_DISP0					0x0C00
+#define CLKOUT_CMU_DISP0_DIV_STAT				0x0C04
+#define DISP0_SFR_IGNORE_REQ_SYSCLK				0x0D04
+#define CMU_DISP0_SPARE0					0x0D08
+#define CMU_DISP0_SPARE1					0x0D0C
+#define CG_CTRL_MAN_ACLK_DISP0_0_400				0x1800
+#define CG_CTRL_MAN_ACLK_DISP0_1_400				0x1804
+#define CG_CTRL_MAN_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0		0x1808
+#define CG_CTRL_MAN_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1		0x180C
+#define CG_CTRL_MAN_PCLK_DISP0_0_133				0x1820
+#define CG_CTRL_MAN_PCLK_DISP0_0_133_HPM_APBIF_DISP0		0x1824
+#define CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_DECON0		0x1828
+#define CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_VPP0		0x182C
+#define CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0		0x1830
+#define CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1		0x1834
+#define CG_CTRL_MAN_SCLK_DISP1_400				0x1840
+#define CG_CTRL_MAN_SCLK_DECON0_ECLK0				0x1844
+#define CG_CTRL_MAN_SCLK_DECON0_VCLK0				0x1848
+#define CG_CTRL_MAN_SCLK_DECON0_VCLK1				0x184C
+#define CG_CTRL_MAN_SCLK_HDMI_AUDIO				0x1850
+#define CG_CTRL_MAN_SCLK_DISP0_PROMISE				0x1854
+#define CG_CTRL_MAN_PHYCLK_HDMIPHY				0x1858
+#define CG_CTRL_MAN_PHYCLK_MIPIDPHY0				0x185C
+#define CG_CTRL_MAN_PHYCLK_MIPIDPHY1				0x1860
+#define CG_CTRL_MAN_PHYCLK_MIPIDPHY2				0x1864
+#define CG_CTRL_MAN_PHYCLK_DPPHY				0x1868
+#define CG_CTRL_MAN_OSCCLK					0x186C
+#define CG_CTRL_STAT_ACLK_DISP0_0_400				0x1C00
+#define CG_CTRL_STAT_ACLK_DISP0_1_400				0x1C04
+#define CG_CTRL_STAT_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0	0x1C08
+#define CG_CTRL_STAT_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1	0x1C0C
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_0				0x1C20
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_1				0x1C24
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_2				0x1C28
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_HPM_APBIF_DISP0		0x1C2C
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_DECON0		0x1C30
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_VPP0		0x1C34
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0	0x1C38
+#define CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1	0x1C3C
+#define CG_CTRL_STAT_SCLK_DISP1_400				0x1C40
+#define CG_CTRL_STAT_SCLK_DECON0_ECLK0				0x1C44
+#define CG_CTRL_STAT_SCLK_DECON0_VCLK0				0x1C48
+#define CG_CTRL_STAT_SCLK_DECON0_VCLK1				0x1C4C
+#define CG_CTRL_STAT_SCLK_HDMI_AUDIO				0x1C50
+#define CG_CTRL_STAT_SCLK_DISP0_PROMISE				0x1C54
+#define CG_CTRL_STAT_PHYCLK_HDMIPHY				0x1C58
+#define CG_CTRL_STAT_PHYCLK_MIPIDPHY0				0x1C5C
+#define CG_CTRL_STAT_PHYCLK_MIPIDPHY1				0x1C60
+#define CG_CTRL_STAT_PHYCLK_MIPIDPHY2				0x1C64
+#define CG_CTRL_STAT_PHYCLK_DPPHY				0x1C68
+#define CG_CTRL_STAT_OSCCLK					0x1C6C
+#define QCH_CTRL_AXI_LH_ASYNC_MI_DISP0SFR			0x2000
+#define QCH_CTRL_CMU_DISP0					0x2004
+#define QCH_CTRL_PMU_DISP0					0x2008
+#define QCH_CTRL_SYSREG_DISP0					0x200C
+#define QCH_CTRL_DECON0						0x2010
+#define QCH_CTRL_VPP0						0x2014
+#define QCH_CTRL_VPP0_G0					0x2014
+#define QCH_CTRL_VPP0_G1					0x2018
+#define QCH_CTRL_DSIM0						0x2020
+#define QCH_CTRL_DSIM1						0x2024
+#define QCH_CTRL_DSIM2						0x2028
+#define QCH_CTRL_HDMI						0x202C
+#define QCH_CTRL_DP						0x2030
+#define QCH_CTRL_PPMU_DISP0_0					0x2034
+#define QCH_CTRL_PPMU_DISP0_1					0x203C
+#define QCH_CTRL_SMMU_DISP0_0					0x2040
+#define QCH_CTRL_SMMU_DISP0_1					0x2044
+#define QCH_CTRL_SFW_DISP0_0					0x2048
+#define QCH_CTRL_SFW_DISP0_1					0x204C
+#define QCH_CTRL_LH_ASYNC_SI_R_TOP_DISP				0x2050
+#define QCH_CTRL_LH_ASYNC_SI_TOP_DISP				0x2054
+#define QSTATE_CTRL_DSIM0					0x240C
+#define QSTATE_CTRL_DSIM1					0x2410
+#define QSTATE_CTRL_DSIM2					0x2414
+#define QSTATE_CTRL_HDMI					0x2418
+#define QSTATE_CTRL_HDMI_AUDIO					0x241C
+#define QSTATE_CTRL_DP						0x2420
+#define QSTATE_CTRL_DISP0_MUX					0x2424
+#define QSTATE_CTRL_HDMI_PHY					0x2428
+#define QSTATE_CTRL_DISP1_400					0x2434
+#define QSTATE_CTRL_DECON0					0x2438
+#define QSTATE_CTRL_HPM_APBIF_DISP0				0x2444
+#define QSTATE_CTRL_PROMISE_DISP0				0x2448
+#define QSTATE_CTRL_DPTX_PHY					0x2484
+#define QSTATE_CTRL_MIPI_DPHY_M1S0				0x2488
+#define QSTATE_CTRL_MIPI_DPHY_M4S0				0x248C
+#define QSTATE_CTRL_MIPI_DPHY_M4S4				0x2490
+
+static const unsigned long disp0_clk_regs[] __initconst = {
+	DISP_PLL_LOCK,
+	DISP_PLL_CON0,
+	DISP_PLL_CON1,
+	DISP_PLL_FREQ_DET,
+	CLK_CON_MUX_DISP_PLL,
+	CLK_CON_MUX_ACLK_DISP0_0_400_USER,
+	CLK_CON_MUX_ACLK_DISP0_1_400_USER,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_USER,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_USER,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_USER,
+	CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_USER,
+	CLK_CON_MUX_PHYCLK_HDMIPHY_PIXEL_CLKO_USER,
+	CLK_CON_MUX_PHYCLK_HDMIPHY_TMDS_CLKO_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY0_RXCLKESC0_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP0,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY1_RXCLKESC0_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP0,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY2_RXCLKESC0_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP0,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER,
+	CLK_CON_MUX_PHYCLK_DPPHY_CH0_TXD_CLK_USER,
+	CLK_CON_MUX_PHYCLK_DPPHY_CH1_TXD_CLK_USER,
+	CLK_CON_MUX_PHYCLK_DPPHY_CH2_TXD_CLK_USER,
+	CLK_CON_MUX_PHYCLK_DPPHY_CH3_TXD_CLK_USER,
+	CLK_CON_MUX_ACLK_DISP0_1_400_DISP0,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_DISP0,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_DISP0,
+	CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_DISP0,
+	CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_DISP0,
+	CLK_CON_DIV_PCLK_DISP0_0_133,
+	CLK_CON_DIV_SCLK_DECON0_ECLK0,
+	CLK_CON_DIV_SCLK_DECON0_VCLK0,
+	CLK_CON_DIV_SCLK_DECON0_VCLK1,
+	CLK_CON_DIV_PHYCLK_HDMIPHY_PIXEL_CLKO,
+	CLK_CON_DIV_PHYCLK_HDMIPHY_TMDS_20B_CLKO,
+	CLK_CON_DSM_DIV_M_SCLK_HDMI_AUDIO,
+	CLK_CON_DSM_DIV_N_SCLK_HDMI_AUDIO,
+	CLK_STAT_MUX_DISP_PLL,
+	CLK_STAT_MUX_ACLK_DISP0_0_400_USER,
+	CLK_STAT_MUX_ACLK_DISP0_1_400_USER,
+	CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_USER,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_USER,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_USER,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_USER,
+	CLK_STAT_MUX_PHYCLK_HDMIPHY_PIXEL_CLKO_USER,
+	CLK_STAT_MUX_PHYCLK_HDMIPHY_TMDS_CLKO_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY0_RXCLKESC0_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP0,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY1_RXCLKESC0_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP0,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY2_RXCLKESC0_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP0,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER,
+	CLK_STAT_MUX_PHYCLK_DPPHY_CH0_TXD_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_DPPHY_CH1_TXD_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_DPPHY_CH2_TXD_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_DPPHY_CH3_TXD_CLK_USER,
+	CLK_STAT_MUX_ACLK_DISP0_1_400_DISP0,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_ECLK0_DISP0,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK0_DISP0,
+	CLK_STAT_MUX_SCLK_DISP0_DECON0_VCLK1_DISP0,
+	CLK_STAT_MUX_SCLK_DISP0_HDMI_AUDIO_DISP0,
+	CG_CTRL_VAL_ACLK_DISP0_0_400,
+	CG_CTRL_VAL_ACLK_DISP0_1_400,
+	CG_CTRL_VAL_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0,
+	CG_CTRL_VAL_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1,
+	CG_CTRL_VAL_PCLK_DISP0_0_133,
+	CG_CTRL_VAL_PCLK_DISP0_0_133_HPM_APBIF_DISP0,
+	CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_DECON0,
+	CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_VPP0,
+	CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0,
+	CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1,
+	CG_CTRL_VAL_SCLK_DISP1_400,
+	CG_CTRL_VAL_SCLK_DECON0_ECLK0,
+	CG_CTRL_VAL_SCLK_DECON0_VCLK0,
+	CG_CTRL_VAL_SCLK_DECON0_VCLK1,
+	CG_CTRL_VAL_SCLK_HDMI_AUDIO,
+	CG_CTRL_VAL_SCLK_DISP0_PROMISE,
+	CG_CTRL_VAL_PHYCLK_HDMIPHY,
+	CG_CTRL_VAL_PHYCLK_MIPIDPHY0,
+	CG_CTRL_VAL_PHYCLK_MIPIDPHY1,
+	CG_CTRL_VAL_PHYCLK_MIPIDPHY2,
+	CG_CTRL_VAL_PHYCLK_DPPHY,
+	CG_CTRL_VAL_OSCCLK,
+	CLKOUT_CMU_DISP0,
+	CLKOUT_CMU_DISP0_DIV_STAT,
+	DISP0_SFR_IGNORE_REQ_SYSCLK,
+	CMU_DISP0_SPARE0,
+	CMU_DISP0_SPARE1,
+	CG_CTRL_MAN_ACLK_DISP0_0_400,
+	CG_CTRL_MAN_ACLK_DISP0_1_400,
+	CG_CTRL_MAN_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0,
+	CG_CTRL_MAN_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1,
+	CG_CTRL_MAN_PCLK_DISP0_0_133,
+	CG_CTRL_MAN_PCLK_DISP0_0_133_HPM_APBIF_DISP0,
+	CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_DECON0,
+	CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_VPP0,
+	CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0,
+	CG_CTRL_MAN_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1,
+	CG_CTRL_MAN_SCLK_DISP1_400,
+	CG_CTRL_MAN_SCLK_DECON0_ECLK0,
+	CG_CTRL_MAN_SCLK_DECON0_VCLK0,
+	CG_CTRL_MAN_SCLK_DECON0_VCLK1,
+	CG_CTRL_MAN_SCLK_HDMI_AUDIO,
+	CG_CTRL_MAN_SCLK_DISP0_PROMISE,
+	CG_CTRL_MAN_PHYCLK_HDMIPHY,
+	CG_CTRL_MAN_PHYCLK_MIPIDPHY0,
+	CG_CTRL_MAN_PHYCLK_MIPIDPHY1,
+	CG_CTRL_MAN_PHYCLK_MIPIDPHY2,
+	CG_CTRL_MAN_PHYCLK_DPPHY,
+	CG_CTRL_MAN_OSCCLK,
+	CG_CTRL_STAT_ACLK_DISP0_0_400,
+	CG_CTRL_STAT_ACLK_DISP0_1_400,
+	CG_CTRL_STAT_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0,
+	CG_CTRL_STAT_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_0,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_1,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_2,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_HPM_APBIF_DISP0,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_DECON0,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_VPP0,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0,
+	CG_CTRL_STAT_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1,
+	CG_CTRL_STAT_SCLK_DISP1_400,
+	CG_CTRL_STAT_SCLK_DECON0_ECLK0,
+	CG_CTRL_STAT_SCLK_DECON0_VCLK0,
+	CG_CTRL_STAT_SCLK_DECON0_VCLK1,
+	CG_CTRL_STAT_SCLK_HDMI_AUDIO,
+	CG_CTRL_STAT_SCLK_DISP0_PROMISE,
+	CG_CTRL_STAT_PHYCLK_HDMIPHY,
+	CG_CTRL_STAT_PHYCLK_MIPIDPHY0,
+	CG_CTRL_STAT_PHYCLK_MIPIDPHY1,
+	CG_CTRL_STAT_PHYCLK_MIPIDPHY2,
+	CG_CTRL_STAT_PHYCLK_DPPHY,
+	CG_CTRL_STAT_OSCCLK,
+	QCH_CTRL_AXI_LH_ASYNC_MI_DISP0SFR,
+	QCH_CTRL_CMU_DISP0,
+	QCH_CTRL_PMU_DISP0,
+	QCH_CTRL_SYSREG_DISP0,
+	QCH_CTRL_DECON0,
+	QCH_CTRL_VPP0,
+	QCH_CTRL_VPP0_G0,
+	QCH_CTRL_VPP0_G1,
+	QCH_CTRL_DSIM0,
+	QCH_CTRL_DSIM1,
+	QCH_CTRL_DSIM2,
+	QCH_CTRL_HDMI,
+	QCH_CTRL_DP,
+	QCH_CTRL_PPMU_DISP0_0,
+	QCH_CTRL_PPMU_DISP0_1,
+	QCH_CTRL_SMMU_DISP0_0,
+	QCH_CTRL_SMMU_DISP0_1,
+	QCH_CTRL_SFW_DISP0_0,
+	QCH_CTRL_SFW_DISP0_1,
+	QCH_CTRL_LH_ASYNC_SI_R_TOP_DISP,
+	QCH_CTRL_LH_ASYNC_SI_TOP_DISP,
+	QSTATE_CTRL_DSIM0,
+	QSTATE_CTRL_DSIM1,
+	QSTATE_CTRL_DSIM2,
+	QSTATE_CTRL_HDMI,
+	QSTATE_CTRL_HDMI_AUDIO,
+	QSTATE_CTRL_DP,
+	QSTATE_CTRL_DISP0_MUX,
+	QSTATE_CTRL_HDMI_PHY,
+	QSTATE_CTRL_DISP1_400,
+	QSTATE_CTRL_DECON0,
+	QSTATE_CTRL_HPM_APBIF_DISP0,
+	QSTATE_CTRL_PROMISE_DISP0,
+	QSTATE_CTRL_DPTX_PHY,
+	QSTATE_CTRL_MIPI_DPHY_M1S0,
+	QSTATE_CTRL_MIPI_DPHY_M4S0,
+	QSTATE_CTRL_MIPI_DPHY_M4S4,
+};
+
+static const struct samsung_pll_rate_table disp0_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 134333333U, 248, 6, 3),
+	PLL_35XX_RATE(26 * MHZ, 126000000U, 504, 13, 3),
+	PLL_35XX_RATE(26 * MHZ, 71000000U, 568, 13, 4),
+	PLL_35XX_RATE(26 * MHZ, 63000000U, 504, 13, 4),
+	PLL_35XX_RATE(26 * MHZ, 62500000U, 500, 13, 4),
+	PLL_35XX_RATE(26 * MHZ, 50000000U, 400, 13, 4),
+	PLL_35XX_RATE(26 * MHZ, 42000000U, 336, 13, 4),
+};
+
+static const struct samsung_pll_clock disp0_pll_clks[] __initconst = {
+	PLL(pll_141xx, CLK_FOUT_DISP_PLL, "fout_disp_pll", "oscclk", DISP_PLL_LOCK, DISP_PLL_CON0,
+	    disp0_pll_rates),
+};
+
+PNAME(disp0_mux_disp_pll_p)				= { "oscclk",
+							    "fout_disp_pll" };
+PNAME(disp0_mux_aclk_disp0_0_400_user_p)		= { "oscclk",
+							    "gout_top_aclk_disp0_0_400" };
+PNAME(disp0_mux_aclk_disp0_1_400_user_p)		= { "oscclk",
+							    "gout_top_aclk_disp0_1_400" };
+PNAME(disp0_mux_sclk_disp0_decon0_eclk0_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp0_decon0_eclk0" };
+PNAME(disp0_mux_sclk_disp0_decon0_vclk0_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp0_decon0_vclk0" };
+PNAME(disp0_mux_sclk_disp0_decon0_vclk1_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp0_decon0_vclk1" };
+PNAME(disp0_mux_sclk_disp0_hdmi_audio_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp0_hdmi_audio" };
+PNAME(disp0_mux_phyclk_hdmiphy_pixel_clko_user_p)	= { "oscclk",
+							    "phyclk_hdmiphy_pixel_clko_phy" };
+PNAME(disp0_mux_phyclk_hdmiphy_tmds_clko_user_p)	= { "oscclk",
+							    "phyclk_hdmiphy_tmds_clko_phy" };
+PNAME(disp0_mux_phyclk_mipidphy0_rxclkesc0_user_p)	= { "oscclk",
+							    "phyclk_mipidphy0_rxclkesc0_phy" };
+PNAME(disp0_mux_phyclk_mipidphy0_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy0_bitclkdiv2_phy" };
+PNAME(disp0_mux_phyclk_mipidphy0_bitclkdiv8_user_p)	= { "oscclk",
+							    "phyclk_mipidphy0_bitclkdiv8_phy" };
+PNAME(disp0_mux_phyclk_mipidphy1_rxclkesc0_user_p)	= { "oscclk",
+							    "phyclk_mipidphy1_rxclkesc0_phy" };
+PNAME(disp0_mux_phyclk_mipidphy1_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy1_bitclkdiv2_phy" };
+PNAME(disp0_mux_phyclk_mipidphy1_bitclkdiv8_user_p)	= { "oscclk",
+							    "phyclk_mipidphy1_bitclkdiv8_phy" };
+PNAME(disp0_mux_phyclk_mipidphy2_rxclkesc0_user_p)	= { "oscclk",
+							    "phyclk_mipidphy2_rxclkesc0_phy" };
+PNAME(disp0_mux_phyclk_mipidphy2_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy2_bitclkdiv2_phy" };
+PNAME(disp0_mux_phyclk_mipidphy2_bitclkdiv8_user_p)	= { "oscclk",
+							    "phyclk_mipidphy2_bitclkdiv8_phy" };
+PNAME(disp0_mux_phyclk_dpphy_ch0_txd_clk_user_p)	= { "oscclk",
+							    "phyclk_dpphy_ch0_txd_clk_phy" };
+PNAME(disp0_mux_phyclk_dpphy_ch1_txd_clk_user_p)	= { "oscclk",
+							    "phyclk_dpphy_ch1_txd_clk_phy" };
+PNAME(disp0_mux_phyclk_dpphy_ch2_txd_clk_user_p)	= { "oscclk",
+							    "phyclk_dpphy_ch2_txd_clk_phy" };
+PNAME(disp0_mux_phyclk_dpphy_ch3_txd_clk_user_p)	= { "oscclk",
+							    "phyclk_dpphy_ch3_txd_clk_phy" };
+PNAME(disp0_mux_aclk_disp0_1_400_p)			= { "mout_disp0_aclk_disp0_0_400_user",
+							    "mout_disp0_aclk_disp0_1_400_user" };
+PNAME(disp0_mux_sclk_disp0_decon0_eclk0_p)		= {
+	"mout_disp0_sclk_disp0_decon0_eclk0_user",
+	"mout_disp0_disp_pll",
+	"mout_disp0_phyclk_mipidphy0_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy1_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy2_bitclkdiv2_user" };
+PNAME(disp0_mux_sclk_disp0_decon0_vclk0_p)		= {
+	"mout_disp0_sclk_disp0_decon0_vclk0_user",
+	"mout_disp0_disp_pll",
+	"mout_disp0_phyclk_mipidphy0_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy1_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy2_bitclkdiv2_user" };
+PNAME(disp0_mux_sclk_disp0_decon0_vclk1_p)		= {
+	"mout_disp0_sclk_disp0_decon0_vclk1_user",
+	"mout_disp0_disp_pll",
+	"mout_disp0_phyclk_mipidphy0_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy1_bitclkdiv2_user",
+	"mout_disp0_phyclk_mipidphy2_bitclkdiv2_user" };
+PNAME(disp0_mux_sclk_disp0_hdmi_audio_p)		= {
+	"mout_disp0_phyclk_hdmiphy_tmds_clko_user",
+	"mout_disp0_sclk_disp0_hdmi_audio_user" };
+
+static const struct samsung_fixed_rate_clock disp0_fixed_clks[] __initconst = {
+	FRATE(CLK_PHYCLK_MIPIDPHY0_BITCLKDIV2_PHY,
+	      "phyclk_mipidphy0_bitclkdiv2_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY1_BITCLKDIV2_PHY,
+	      "phyclk_mipidphy1_bitclkdiv2_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY2_BITCLKDIV2_PHY,
+	      "phyclk_mipidphy2_bitclkdiv2_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_HDMIPHY_PIXEL_CLKO_PHY,
+	      "phyclk_hdmiphy_pixel_clko_phy", NULL, 0, 300000000),
+	FRATE(CLK_PHYCLK_HDMIPHY_TMDS_CLKO_PHY, "phyclk_hdmiphy_tmds_clko_phy",
+	      NULL, 0, 300000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY0_RXCLKESC0_PHY,
+	      "phyclk_mipidphy0_rxclkesc0_phy", NULL, 0, 20000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8_PHY,
+	      "phyclk_mipidphy0_bitclkdiv8_phy", NULL, 0, 187500000),
+	FRATE(CLK_PHYCLK_MIPIDPHY1_RXCLKESC0_PHY,
+	      "phyclk_mipidphy1_rxclkesc0_phy", NULL, 0, 20000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY1_BITCLKDIV8_PHY,
+	      "phyclk_mipidphy1_bitclkdiv8_phy", NULL, 0, 187500000),
+	FRATE(CLK_PHYCLK_MIPIDPHY2_RXCLKESC0_PHY,
+	      "phyclk_mipidphy2_rxclkesc0_phy", NULL, 0, 20000000),
+	FRATE(CLK_PHYCLK_MIPIDPHY2_BITCLKDIV8_PHY,
+	      "phyclk_mipidphy2_bitclkdiv8_phy", NULL, 0, 187500000),
+	FRATE(CLK_PHYCLK_DPPHY_CH0_TXD_CLK_PHY, "phyclk_dpphy_ch0_txd_clk_phy",
+	      NULL, 0, 270000000),
+	FRATE(CLK_PHYCLK_DPPHY_CH1_TXD_CLK_PHY, "phyclk_dpphy_ch1_txd_clk_phy",
+	      NULL, 0, 270000000),
+	FRATE(CLK_PHYCLK_DPPHY_CH2_TXD_CLK_PHY, "phyclk_dpphy_ch2_txd_clk_phy",
+	      NULL, 0, 270000000),
+	FRATE(CLK_PHYCLK_DPPHY_CH3_TXD_CLK_PHY, "phyclk_dpphy_ch3_txd_clk_phy",
+	      NULL, 0, 270000000),
+};
+
+static const struct samsung_mux_clock disp0_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_DISP0_DISP_PLL, "mout_disp0_disp_pll",
+	    disp0_mux_disp_pll_p, CLK_CON_MUX_DISP_PLL, 12, 1),
+	MUX(CLK_MOUT_DISP0_ACLK_DISP0_0_400_USER,
+	    "mout_disp0_aclk_disp0_0_400_user",
+	    disp0_mux_aclk_disp0_0_400_user_p,
+	    CLK_CON_MUX_ACLK_DISP0_0_400_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_ACLK_DISP0_1_400_USER,
+	    "mout_disp0_aclk_disp0_1_400_user",
+	    disp0_mux_aclk_disp0_1_400_user_p,
+	    CLK_CON_MUX_ACLK_DISP0_1_400_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_ECLK0_USER,
+	    "mout_disp0_sclk_disp0_decon0_eclk0_user",
+	    disp0_mux_sclk_disp0_decon0_eclk0_user_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_VCLK0_USER,
+	    "mout_disp0_sclk_disp0_decon0_vclk0_user",
+	    disp0_mux_sclk_disp0_decon0_vclk0_user_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_VCLK1_USER,
+	    "mout_disp0_sclk_disp0_decon0_vclk1_user",
+	    disp0_mux_sclk_disp0_decon0_vclk1_user_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_HDMI_AUDIO_USER,
+	    "mout_disp0_sclk_disp0_hdmi_audio_user",
+	    disp0_mux_sclk_disp0_hdmi_audio_user_p,
+	    CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_HDMIPHY_PIXEL_CLKO_USER,
+	    "mout_disp0_phyclk_hdmiphy_pixel_clko_user",
+	    disp0_mux_phyclk_hdmiphy_pixel_clko_user_p,
+	    CLK_CON_MUX_PHYCLK_HDMIPHY_PIXEL_CLKO_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_HDMIPHY_TMDS_CLKO_USER,
+	    "mout_disp0_phyclk_hdmiphy_tmds_clko_user",
+	    disp0_mux_phyclk_hdmiphy_tmds_clko_user_p,
+	    CLK_CON_MUX_PHYCLK_HDMIPHY_TMDS_CLKO_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY0_RXCLKESC0_USER,
+	    "mout_disp0_phyclk_mipidphy0_rxclkesc0_user",
+	    disp0_mux_phyclk_mipidphy0_rxclkesc0_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY0_RXCLKESC0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER,
+	    "mout_disp0_phyclk_mipidphy0_bitclkdiv2_user",
+	    disp0_mux_phyclk_mipidphy0_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP0, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER,
+	    "mout_disp0_phyclk_mipidphy0_bitclkdiv8_user",
+	    disp0_mux_phyclk_mipidphy0_bitclkdiv8_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV8_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY1_RXCLKESC0_USER,
+	    "mout_disp0_phyclk_mipidphy1_rxclkesc0_user",
+	    disp0_mux_phyclk_mipidphy1_rxclkesc0_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY1_RXCLKESC0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER,
+	    "mout_disp0_phyclk_mipidphy1_bitclkdiv2_user",
+	    disp0_mux_phyclk_mipidphy1_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP0, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER,
+	    "mout_disp0_phyclk_mipidphy1_bitclkdiv8_user",
+	    disp0_mux_phyclk_mipidphy1_bitclkdiv8_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV8_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY2_RXCLKESC0_USER,
+	    "mout_disp0_phyclk_mipidphy2_rxclkesc0_user",
+	    disp0_mux_phyclk_mipidphy2_rxclkesc0_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY2_RXCLKESC0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER,
+	    "mout_disp0_phyclk_mipidphy2_bitclkdiv2_user",
+	    disp0_mux_phyclk_mipidphy2_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP0, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER,
+	    "mout_disp0_phyclk_mipidphy2_bitclkdiv8_user",
+	    disp0_mux_phyclk_mipidphy2_bitclkdiv8_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV8_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_DPPHY_CH0_TXD_CLK_USER,
+	    "mout_disp0_phyclk_dpphy_ch0_txd_clk_user",
+	    disp0_mux_phyclk_dpphy_ch0_txd_clk_user_p,
+	    CLK_CON_MUX_PHYCLK_DPPHY_CH0_TXD_CLK_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_DPPHY_CH1_TXD_CLK_USER,
+	    "mout_disp0_phyclk_dpphy_ch1_txd_clk_user",
+	    disp0_mux_phyclk_dpphy_ch1_txd_clk_user_p,
+	    CLK_CON_MUX_PHYCLK_DPPHY_CH1_TXD_CLK_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_DPPHY_CH2_TXD_CLK_USER,
+	    "mout_disp0_phyclk_dpphy_ch2_txd_clk_user",
+	    disp0_mux_phyclk_dpphy_ch2_txd_clk_user_p,
+	    CLK_CON_MUX_PHYCLK_DPPHY_CH2_TXD_CLK_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_PHYCLK_DPPHY_CH3_TXD_CLK_USER,
+	    "mout_disp0_phyclk_dpphy_ch3_txd_clk_user",
+	    disp0_mux_phyclk_dpphy_ch3_txd_clk_user_p,
+	    CLK_CON_MUX_PHYCLK_DPPHY_CH3_TXD_CLK_USER, 12, 1),
+	MUX(CLK_MOUT_DISP0_ACLK_DISP0_1_400, "mout_disp0_aclk_disp0_1_400",
+	    disp0_mux_aclk_disp0_1_400_p, CLK_CON_MUX_ACLK_DISP0_1_400_DISP0,
+	    12, 1),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_ECLK0,
+	    "mout_disp0_sclk_disp0_decon0_eclk0",
+	    disp0_mux_sclk_disp0_decon0_eclk0_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_ECLK0_DISP0, 12, 3),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_VCLK0,
+	    "mout_disp0_sclk_disp0_decon0_vclk0",
+	    disp0_mux_sclk_disp0_decon0_vclk0_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK0_DISP0, 12, 3),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_DECON0_VCLK1,
+	    "mout_disp0_sclk_disp0_decon0_vclk1",
+	    disp0_mux_sclk_disp0_decon0_vclk1_p,
+	    CLK_CON_MUX_SCLK_DISP0_DECON0_VCLK1_DISP0, 12, 3),
+	MUX(CLK_MOUT_DISP0_SCLK_DISP0_HDMI_AUDIO,
+	    "mout_disp0_sclk_disp0_hdmi_audio",
+	    disp0_mux_sclk_disp0_hdmi_audio_p,
+	    CLK_CON_MUX_SCLK_DISP0_HDMI_AUDIO_DISP0, 12, 1),
+};
+
+static const struct samsung_div_clock disp0_div_clks[] __initconst = {
+	DIV(CLK_DOUT_DISP0_PCLK_DISP0_0_133, "dout_disp0_pclk_disp0_0_133",
+	    "mout_disp0_aclk_disp0_0_400_user", CLK_CON_DIV_PCLK_DISP0_0_133, 0,
+	    3),
+	DIV(CLK_DOUT_DISP0_SCLK_DECON0_ECLK0, "dout_disp0_sclk_decon0_eclk0",
+	    "mout_disp0_sclk_disp0_decon0_eclk0", CLK_CON_DIV_SCLK_DECON0_ECLK0,
+	    0, 3),
+	DIV(CLK_DOUT_DISP0_SCLK_DECON0_VCLK0, "dout_disp0_sclk_decon0_vclk0",
+	    "mout_disp0_sclk_disp0_decon0_vclk0", CLK_CON_DIV_SCLK_DECON0_VCLK0,
+	    0, 3),
+	DIV(CLK_DOUT_DISP0_SCLK_DECON0_VCLK1, "dout_disp0_sclk_decon0_vclk1",
+	    "mout_disp0_sclk_disp0_decon0_vclk1", CLK_CON_DIV_SCLK_DECON0_VCLK1,
+	    0, 3),
+	DIV(CLK_DOUT_DISP0_PHYCLK_HDMIPHY_PIXEL_CLKO,
+	    "dout_disp0_phyclk_hdmiphy_pixel_clko",
+	    "mout_disp0_phyclk_hdmiphy_pixel_clko_user",
+	    CLK_CON_DIV_PHYCLK_HDMIPHY_PIXEL_CLKO, 0, 1),
+	DIV(CLK_DOUT_DISP0_PHYCLK_HDMIPHY_TMDS_20B_CLKO,
+	    "dout_disp0_phyclk_hdmiphy_tmds_20b_clko",
+	    "mout_disp0_phyclk_hdmiphy_tmds_clko_user",
+	    CLK_CON_DIV_PHYCLK_HDMIPHY_TMDS_20B_CLKO, 0, 1),
+};
+
+static const struct samsung_gate_clock disp0_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_DISP0_ACLK_PPMU_DISP0_0, "gout_disp0_aclk_ppmu_disp0_0",
+	     "mout_disp0_aclk_disp0_0_400_user", CG_CTRL_VAL_ACLK_DISP0_0_400,
+	     5, 0, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_SMMU_DISP0_0, "gout_disp0_aclk_smmu_disp0_0",
+	     "mout_disp0_aclk_disp0_0_400_user", CG_CTRL_VAL_ACLK_DISP0_0_400,
+	     3, 0, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_XIU_DISP0_0, "gout_disp0_aclk_xiu_disp0_0",
+	     "mout_disp0_aclk_disp0_0_400_user", CG_CTRL_VAL_ACLK_DISP0_0_400,
+	     2, 0, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_LH_ASYNC_SI_R_TOP_DISP,
+	     "gout_disp0_aclk_lh_async_si_r_top_disp",
+	     "mout_disp0_aclk_disp0_0_400_user", CG_CTRL_VAL_ACLK_DISP0_0_400,
+	     1, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_VPP0_ACLK_0, "gout_disp0_aclk_vpp0_aclk_0",
+	     "mout_disp0_aclk_disp0_0_400_user", CG_CTRL_VAL_ACLK_DISP0_0_400,
+	     0, 0, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_PPMU_DISP0_1, "gout_disp0_aclk_ppmu_disp0_1",
+	     "mout_disp0_aclk_disp0_1_400", CG_CTRL_VAL_ACLK_DISP0_1_400, 5, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_ACLK_SMMU_DISP0_1, "gout_disp0_aclk_smmu_disp0_1",
+	     "mout_disp0_aclk_disp0_1_400", CG_CTRL_VAL_ACLK_DISP0_1_400, 3, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_ACLK_XIU_DISP0_1, "gout_disp0_aclk_xiu_disp0_1",
+	     "mout_disp0_aclk_disp0_1_400", CG_CTRL_VAL_ACLK_DISP0_1_400, 2, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_ACLK_LH_ASYNC_SI_TOP_DISP,
+	     "gout_disp0_aclk_lh_async_si_top_disp",
+	     "mout_disp0_aclk_disp0_1_400", CG_CTRL_VAL_ACLK_DISP0_1_400, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_VPP0_ACLK_1, "gout_disp0_aclk_vpp0_aclk_1",
+	     "mout_disp0_aclk_disp0_1_400", CG_CTRL_VAL_ACLK_DISP0_1_400, 0, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_ACLK_SFW_DISP0_0, "gout_disp0_aclk_sfw_disp0_0",
+	     "mout_disp0_aclk_disp0_0_400_user",
+	     CG_CTRL_VAL_ACLK_DISP0_0_400_SECURE_SFW_DISP0_0, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_SFW_DISP0_1, "gout_disp0_aclk_sfw_disp0_1",
+	     "mout_disp0_aclk_disp0_1_400",
+	     CG_CTRL_VAL_ACLK_DISP0_1_400_SECURE_SFW_DISP0_1, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP0_PCLK_VPP0_1, "gout_disp0_pclk_vpp0_1",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 19, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_SMMU_DISP0_1, "gout_disp0_pclk_smmu_disp0_1",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 18, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_SMMU_DISP0_0, "gout_disp0_pclk_smmu_disp0_0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 17, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_PPMU_DISP0_1, "gout_disp0_pclk_ppmu_disp0_1",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 16, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_PPMU_DISP0_0, "gout_disp0_pclk_ppmu_disp0_0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 15, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_HDMI_PHY, "gout_disp0_pclk_hdmi_phy",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 14, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DISP0_MUX, "gout_disp0_pclk_disp0_mux",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 13, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DP, "gout_disp0_pclk_dp",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 12, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_HDMI_AUDIO, "gout_disp0_pclk_hdmi_audio",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 11, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_HDMI, "gout_disp0_pclk_hdmi",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 10, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DSIM2, "gout_disp0_pclk_dsim2",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 9, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DSIM1, "gout_disp0_pclk_dsim1",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 8, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DSIM0, "gout_disp0_pclk_dsim0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 7, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_SYSREG_DISP0, "gout_disp0_pclk_sysreg_disp0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 6, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_PMU_DISP0, "gout_disp0_pclk_pmu_disp0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP0_PCLK_CMU_DISP0, "gout_disp0_pclk_cmu_disp0",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 4,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_XIU_DISP0SFRX, "gout_disp0_aclk_xiu_disp0sfrx",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 3,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_AXI2APB_DISP0_1P,
+	     "gout_disp0_aclk_axi2apb_disp0_1p", "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133, 2, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_AXI2APB_DISP0_0P,
+	     "gout_disp0_aclk_axi2apb_disp0_0p", "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133, 1, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_ACLK_AXI_LH_ASYNC_MI_DISP0SFR,
+	     "gout_disp0_aclk_axi_lh_async_mi_disp0sfr",
+	     "dout_disp0_pclk_disp0_0_133", CG_CTRL_VAL_PCLK_DISP0_0_133, 0, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_HPM_APBIF_DISP0,
+	     "gout_disp0_pclk_hpm_apbif_disp0", "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133_HPM_APBIF_DISP0, 0, CLK_IGNORE_UNUSED,
+	     0),
+	GATE(CLK_GOUT_DISP0_PCLK_DECON0, "gout_disp0_pclk_decon0",
+	     "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_DECON0, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PCLK_VPP0_0, "gout_disp0_pclk_vpp0_0",
+	     "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_VPP0, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PCLK_SFW_DISP0_0, "gout_disp0_pclk_sfw_disp0_0",
+	     "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_0, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_PCLK_SFW_DISP0_1, "gout_disp0_pclk_sfw_disp0_1",
+	     "dout_disp0_pclk_disp0_0_133",
+	     CG_CTRL_VAL_PCLK_DISP0_0_133_SECURE_SFW_DISP0_1, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_DISP1_400, "gout_disp0_sclk_disp1_400",
+	     "mout_disp0_disp_pll", CG_CTRL_VAL_SCLK_DISP1_400, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_DECON0_ECLK0, "gout_disp0_sclk_decon0_eclk0",
+	     "dout_disp0_sclk_decon0_eclk0", CG_CTRL_VAL_SCLK_DECON0_ECLK0, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_DECON0_VCLK0, "gout_disp0_sclk_decon0_vclk0",
+	     "dout_disp0_sclk_decon0_vclk0", CG_CTRL_VAL_SCLK_DECON0_VCLK0, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_DECON0_VCLK1, "gout_disp0_sclk_decon0_vclk1",
+	     "dout_disp0_sclk_decon0_vclk1", CG_CTRL_VAL_SCLK_DECON0_VCLK1, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_HDMI_AUDIO, "gout_disp0_sclk_hdmi_audio",
+	     "mout_disp0_sclk_disp0_hdmi_audio", CG_CTRL_VAL_SCLK_HDMI_AUDIO, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP0_SCLK_PROMISE_DISP0, "gout_disp0_sclk_promise_disp0",
+	     "gout_top_sclk_promise_disp", CG_CTRL_VAL_SCLK_DISP0_PROMISE, 0, 0,
+	     0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_HDMIPHY_TMDS_20B_CLKO,
+	     "gout_disp0_phyclk_hdmiphy_tmds_20b_clko",
+	     "dout_disp0_phyclk_hdmiphy_tmds_20b_clko",
+	     CG_CTRL_VAL_PHYCLK_HDMIPHY, 2, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_HDMIPHY_TMDS_10B_CLKO,
+	     "gout_disp0_phyclk_hdmiphy_tmds_10b_clko",
+	     "mout_disp0_phyclk_hdmiphy_tmds_clko_user",
+	     CG_CTRL_VAL_PHYCLK_HDMIPHY, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_HDMIPHY_PIXEL_CLKO,
+	     "gout_disp0_phyclk_hdmiphy_pixel_clko",
+	     "dout_disp0_phyclk_hdmiphy_pixel_clko", CG_CTRL_VAL_PHYCLK_HDMIPHY,
+	     0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY0_BITCLKDIV8,
+	     "gout_disp0_phyclk_mipidphy0_bitclkdiv8",
+	     "mout_disp0_phyclk_mipidphy0_bitclkdiv8_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY0, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY0_RXCLKESC0,
+	     "gout_disp0_phyclk_mipidphy0_rxclkesc0",
+	     "mout_disp0_phyclk_mipidphy0_rxclkesc0_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY0, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY1_BITCLKDIV8,
+	     "gout_disp0_phyclk_mipidphy1_bitclkdiv8",
+	     "mout_disp0_phyclk_mipidphy1_bitclkdiv8_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY1, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY1_RXCLKESC0,
+	     "gout_disp0_phyclk_mipidphy1_rxclkesc0",
+	     "mout_disp0_phyclk_mipidphy1_rxclkesc0_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY1, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY2_BITCLKDIV8,
+	     "gout_disp0_phyclk_mipidphy2_bitclkdiv8",
+	     "mout_disp0_phyclk_mipidphy2_bitclkdiv8_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY2, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_MIPIDPHY2_RXCLKESC0,
+	     "gout_disp0_phyclk_mipidphy2_rxclkesc0",
+	     "mout_disp0_phyclk_mipidphy2_rxclkesc0_user",
+	     CG_CTRL_VAL_PHYCLK_MIPIDPHY2, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_DPPHY_CH3_TXD_CLK,
+	     "gout_disp0_phyclk_dpphy_ch3_txd_clk",
+	     "mout_disp0_phyclk_dpphy_ch3_txd_clk_user",
+	     CG_CTRL_VAL_PHYCLK_DPPHY, 3, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_DPPHY_CH2_TXD_CLK,
+	     "gout_disp0_phyclk_dpphy_ch2_txd_clk",
+	     "mout_disp0_phyclk_dpphy_ch2_txd_clk_user",
+	     CG_CTRL_VAL_PHYCLK_DPPHY, 2, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_DPPHY_CH1_TXD_CLK,
+	     "gout_disp0_phyclk_dpphy_ch1_txd_clk",
+	     "mout_disp0_phyclk_dpphy_ch1_txd_clk_user",
+	     CG_CTRL_VAL_PHYCLK_DPPHY, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_PHYCLK_DPPHY_CH0_TXD_CLK,
+	     "gout_disp0_phyclk_dpphy_ch0_txd_clk",
+	     "mout_disp0_phyclk_dpphy_ch0_txd_clk_user",
+	     CG_CTRL_VAL_PHYCLK_DPPHY, 0, 0, 0),
+	GATE(CLK_GOUT_DISP0_OSCCLK_I_MIPI_DPHY_M4S4_M_XI,
+	     "gout_disp0_oscclk_i_mipi_dphy_m4s4_m_xi", "oscclk",
+	     CG_CTRL_VAL_OSCCLK, 4, 0, 0),
+	GATE(CLK_GOUT_DISP0_OSCCLK_I_MIPI_DPHY_M4S0_M_XI,
+	     "gout_disp0_oscclk_i_mipi_dphy_m4s0_m_xi", "oscclk",
+	     CG_CTRL_VAL_OSCCLK, 3, 0, 0),
+	GATE(CLK_GOUT_DISP0_OSCCLK_I_MIPI_DPHY_M1S0_M_XI,
+	     "gout_disp0_oscclk_i_mipi_dphy_m1s0_m_xi", "oscclk",
+	     CG_CTRL_VAL_OSCCLK, 2, 0, 0),
+	GATE(CLK_GOUT_DISP0_OSCCLK_I_DPTX_PHY_I_REF_CLK_24M,
+	     "gout_disp0_oscclk_i_dptx_phy_i_ref_clk_24m", "oscclk",
+	     CG_CTRL_VAL_OSCCLK, 1, 0, 0),
+	GATE(CLK_GOUT_DISP0_OSCCLK_DP_I_CLK_24M,
+	     "gout_disp0_oscclk_dp_i_clk_24m", "oscclk", CG_CTRL_VAL_OSCCLK, 0,
+	     0, 0),
+};
+
+static const struct samsung_cmu_info disp0_cmu_info __initconst = {
+	.pll_clks		= disp0_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(disp0_pll_clks),
+	.mux_clks		= disp0_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(disp0_mux_clks),
+	.div_clks		= disp0_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(disp0_div_clks),
+	.gate_clks		= disp0_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(disp0_gate_clks),
+	.fixed_clks		= disp0_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(disp0_fixed_clks),
+	.nr_clk_ids		= DISP0_NR_CLK,
+	.clk_regs		= disp0_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(disp0_clk_regs),
+};
+
+/* ---- CMU_DISP1 ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_DISP1 (0x13F00000) */
+#define CLK_CON_MUX_ACLK_DISP1_0_400_USER			0x0200
+#define CLK_CON_MUX_ACLK_DISP1_1_400_USER			0x0204
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_USER		0x0208
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_USER		0x020C
+#define CLK_CON_MUX_SCLK_DISP1_600_USER				0x0210
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP1	0x0214
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP1	0x0218
+#define CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP1	0x021C
+#define CLK_CON_MUX_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER	0x0220
+#define CLK_CON_MUX_ACLK_DISP1_1_400_DISP1			0x0224
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_DISP1		0x0228
+#define CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_DISP1		0x022C
+#define CLK_CON_MUX_SCLK_DECON1_ECLK1				0x0230
+#define CLK_CON_DIV_PCLK_DISP1_0_133				0x0400
+#define CLK_CON_DIV_SCLK_DECON1_ECLK0				0x0404
+#define CLK_CON_DIV_SCLK_DECON1_ECLK1				0x0408
+#define CLK_STAT_MUX_ACLK_DISP1_0_400_USER			0x0600
+#define CLK_STAT_MUX_ACLK_DISP1_1_400_USER			0x0604
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_USER		0x0608
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_USER		0x060C
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP1	0x0610
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP1	0x0614
+#define CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP1	0x0618
+#define CLK_STAT_MUX_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER	0x061C
+#define CLK_STAT_MUX_SCLK_DISP1_600_USER			0x0620
+#define CLK_STAT_MUX_ACLK_DISP1_1_400_DISP1			0x0624
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_DISP1		0x0628
+#define CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_DISP1		0x062C
+#define CLK_STAT_MUX_SCLK_DECON1_ECLK1				0x0630
+#define CG_CTRL_VAL_ACLK_DISP1_0_400				0x0800
+#define CG_CTRL_VAL_ACLK_DISP1_1_400				0x0804
+#define CG_CTRL_VAL_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0		0x0808
+#define CG_CTRL_VAL_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1		0x080C
+#define CG_CTRL_VAL_PCLK_DISP1_0_133				0x0820
+#define CG_CTRL_VAL_PCLK_DISP1_0_133_HPM_APBIF_DISP1		0x0824
+#define CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0		0x0828
+#define CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1		0x082C
+#define CG_CTRL_VAL_SCLK_DECON1_ECLK_0				0x0840
+#define CG_CTRL_VAL_SCLK_DECON1_ECLK_1				0x0844
+#define CG_CTRL_VAL_SCLK_DISP1_PROMISE				0x0848
+#define CLKOUT_CMU_DISP1					0x0C00
+#define CLKOUT_CMU_DISP1_DIV_STAT				0x0C04
+#define DISP1_SFR_IGNORE_REQ_SYSCLK				0x0D04
+#define CMU_DISP1_SPARE0					0x0D08
+#define CMU_DISP1_SPARE1					0x0D0C
+#define CG_CTRL_MAN_ACLK_DISP1_0_400				0x1800
+#define CG_CTRL_MAN_ACLK_DISP1_1_400				0x1804
+#define CG_CTRL_MAN_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0		0x1808
+#define CG_CTRL_MAN_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1		0x180C
+#define CG_CTRL_MAN_PCLK_DISP1_0_133				0x1820
+#define CG_CTRL_MAN_PCLK_DISP1_0_133_HPM_APBIF_DISP1		0x1824
+#define CG_CTRL_MAN_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0		0x1828
+#define CG_CTRL_MAN_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1		0x182C
+#define CG_CTRL_MAN_SCLK_DECON1_ECLK_0				0x1840
+#define CG_CTRL_MAN_SCLK_DECON1_ECLK_1				0x1844
+#define CG_CTRL_MAN_SCLK_DISP1_PROMISE				0x1848
+#define CG_CTRL_STAT_ACLK_DISP1_0_400				0x1C00
+#define CG_CTRL_STAT_ACLK_DISP1_1_400				0x1C04
+#define CG_CTRL_STAT_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0	0x1C08
+#define CG_CTRL_STAT_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1	0x1C0C
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_0				0x1C20
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_1				0x1C24
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_2				0x1C28
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_HPM_APBIF_DISP1		0x1C2C
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0	0x1C30
+#define CG_CTRL_STAT_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1	0x1C34
+#define CG_CTRL_STAT_SCLK_DECON1_ECLK_0				0x1C40
+#define CG_CTRL_STAT_SCLK_DECON1_ECLK_1				0x1C44
+#define CG_CTRL_STAT_SCLK_DISP1_PROMISE				0x1C48
+#define QCH_CTRL_AXI_LH_ASYNC_MI_DISP1SFR			0x2000
+#define QCH_CTRL_CMU_DISP1					0x2004
+#define QCH_CTRL_PMU_DISP1					0x2008
+#define QCH_CTRL_SYSREG_DISP1					0x200C
+#define QCH_CTRL_VPP1						0x2010
+#define QCH_CTRL_VPP1_G2					0x2010
+#define QCH_CTRL_VPP1_G3					0x2014
+#define QCH_CTRL_DECON1_PCLK_0					0x201C
+#define QCH_CTRL_DECON1_PCLK_1					0x2020
+#define QCH_CTRL_PPMU_DISP1_0					0x2028
+#define QCH_CTRL_PPMU_DISP1_1					0x202C
+#define QCH_CTRL_SMMU_DISP1_0					0x2030
+#define QCH_CTRL_SMMU_DISP1_1					0x2034
+#define QCH_CTRL_SFW_DISP1_0					0x2038
+#define QCH_CTRL_SFW_DISP1_1					0x203C
+#define QCH_CTRL_AXI_LH_ASYNC_SI_DISP1_0			0x2040
+#define QCH_CTRL_AXI_LH_ASYNC_SI_DISP1_1			0x2044
+#define QSTATE_CTRL_DECON1_ECLK_0				0x240C
+#define QSTATE_CTRL_DECON1_ECLK_1				0x2410
+#define QSTATE_CTRL_HPM_APBIF_DISP1				0x241C
+#define QSTATE_CTRL_PROMISE_DISP1				0x2420
+
+static const unsigned long disp1_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_DISP1_0_400_USER,
+	CLK_CON_MUX_ACLK_DISP1_1_400_USER,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_USER,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_USER,
+	CLK_CON_MUX_SCLK_DISP1_600_USER,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP1,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP1,
+	CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP1,
+	CLK_CON_MUX_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER,
+	CLK_CON_MUX_ACLK_DISP1_1_400_DISP1,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_DISP1,
+	CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_DISP1,
+	CLK_CON_MUX_SCLK_DECON1_ECLK1,
+	CLK_CON_DIV_PCLK_DISP1_0_133,
+	CLK_CON_DIV_SCLK_DECON1_ECLK0,
+	CLK_CON_DIV_SCLK_DECON1_ECLK1,
+	CLK_STAT_MUX_ACLK_DISP1_0_400_USER,
+	CLK_STAT_MUX_ACLK_DISP1_1_400_USER,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_USER,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_USER,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP1,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP1,
+	CLK_STAT_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP1,
+	CLK_STAT_MUX_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER,
+	CLK_STAT_MUX_SCLK_DISP1_600_USER,
+	CLK_STAT_MUX_ACLK_DISP1_1_400_DISP1,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK0_DISP1,
+	CLK_STAT_MUX_SCLK_DISP1_DECON1_ECLK1_DISP1,
+	CLK_STAT_MUX_SCLK_DECON1_ECLK1,
+	CG_CTRL_VAL_ACLK_DISP1_0_400,
+	CG_CTRL_VAL_ACLK_DISP1_1_400,
+	CG_CTRL_VAL_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0,
+	CG_CTRL_VAL_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1,
+	CG_CTRL_VAL_PCLK_DISP1_0_133,
+	CG_CTRL_VAL_PCLK_DISP1_0_133_HPM_APBIF_DISP1,
+	CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0,
+	CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1,
+	CG_CTRL_VAL_SCLK_DECON1_ECLK_0,
+	CG_CTRL_VAL_SCLK_DECON1_ECLK_1,
+	CG_CTRL_VAL_SCLK_DISP1_PROMISE,
+	CLKOUT_CMU_DISP1,
+	CLKOUT_CMU_DISP1_DIV_STAT,
+	DISP1_SFR_IGNORE_REQ_SYSCLK,
+	CMU_DISP1_SPARE0,
+	CMU_DISP1_SPARE1,
+	CG_CTRL_MAN_ACLK_DISP1_0_400,
+	CG_CTRL_MAN_ACLK_DISP1_1_400,
+	CG_CTRL_MAN_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0,
+	CG_CTRL_MAN_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1,
+	CG_CTRL_MAN_PCLK_DISP1_0_133,
+	CG_CTRL_MAN_PCLK_DISP1_0_133_HPM_APBIF_DISP1,
+	CG_CTRL_MAN_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0,
+	CG_CTRL_MAN_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1,
+	CG_CTRL_MAN_SCLK_DECON1_ECLK_0,
+	CG_CTRL_MAN_SCLK_DECON1_ECLK_1,
+	CG_CTRL_MAN_SCLK_DISP1_PROMISE,
+	CG_CTRL_STAT_ACLK_DISP1_0_400,
+	CG_CTRL_STAT_ACLK_DISP1_1_400,
+	CG_CTRL_STAT_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0,
+	CG_CTRL_STAT_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_0,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_1,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_2,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_HPM_APBIF_DISP1,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0,
+	CG_CTRL_STAT_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1,
+	CG_CTRL_STAT_SCLK_DECON1_ECLK_0,
+	CG_CTRL_STAT_SCLK_DECON1_ECLK_1,
+	CG_CTRL_STAT_SCLK_DISP1_PROMISE,
+	QCH_CTRL_AXI_LH_ASYNC_MI_DISP1SFR,
+	QCH_CTRL_CMU_DISP1,
+	QCH_CTRL_PMU_DISP1,
+	QCH_CTRL_SYSREG_DISP1,
+	QCH_CTRL_VPP1,
+	QCH_CTRL_VPP1_G2,
+	QCH_CTRL_VPP1_G3,
+	QCH_CTRL_DECON1_PCLK_0,
+	QCH_CTRL_DECON1_PCLK_1,
+	QCH_CTRL_PPMU_DISP1_0,
+	QCH_CTRL_PPMU_DISP1_1,
+	QCH_CTRL_SMMU_DISP1_0,
+	QCH_CTRL_SMMU_DISP1_1,
+	QCH_CTRL_SFW_DISP1_0,
+	QCH_CTRL_SFW_DISP1_1,
+	QCH_CTRL_AXI_LH_ASYNC_SI_DISP1_0,
+	QCH_CTRL_AXI_LH_ASYNC_SI_DISP1_1,
+	QSTATE_CTRL_DECON1_ECLK_0,
+	QSTATE_CTRL_DECON1_ECLK_1,
+	QSTATE_CTRL_HPM_APBIF_DISP1,
+	QSTATE_CTRL_PROMISE_DISP1,
+};
+
+PNAME(disp1_mux_aclk_disp1_0_400_user_p)		= { "oscclk",
+							    "gout_top_aclk_disp1_0_400" };
+PNAME(disp1_mux_aclk_disp1_1_400_user_p)		= { "oscclk",
+							    "gout_top_aclk_disp1_1_400" };
+PNAME(disp1_mux_sclk_disp1_decon1_eclk0_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp1_decon1_eclk0" };
+PNAME(disp1_mux_sclk_disp1_decon1_eclk1_user_p)		= { "oscclk",
+							    "gout_top_sclk_disp1_decon1_eclk1" };
+PNAME(disp1_mux_sclk_disp1_600_user_p)			= { "oscclk",
+							    "gout_disp0_sclk_disp1_400" };
+PNAME(disp1_mux_phyclk_mipidphy0_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy0_bitclkdiv2_phy" };
+PNAME(disp1_mux_phyclk_mipidphy1_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy1_bitclkdiv2_phy" };
+PNAME(disp1_mux_phyclk_mipidphy2_bitclkdiv2_user_p)	= { "oscclk",
+							    "phyclk_mipidphy2_bitclkdiv2_phy" };
+PNAME(disp1_mux_phyclk_disp1_hdmiphy_pixel_clko_user_p)	= {
+	"oscclk",
+	"phyclk_disp1_hdmiphy_pixel_clko_phy" };
+PNAME(disp1_mux_aclk_disp1_1_400_p)			= { "mout_disp1_aclk_disp1_0_400_user",
+							    "mout_disp1_aclk_disp1_1_400_user" };
+PNAME(disp1_mux_sclk_disp1_decon1_eclk0_p)		= {
+	"mout_disp1_sclk_disp1_decon1_eclk0_user",
+	"oscclk",
+	"mout_disp1_sclk_disp1_600_user",
+	"mout_disp1_phyclk_mipidphy0_bitclkdiv2_user",
+	"mout_disp1_phyclk_mipidphy1_bitclkdiv2_user",
+	"mout_disp1_phyclk_mipidphy2_bitclkdiv2_user" };
+PNAME(disp1_mux_sclk_disp1_decon1_eclk1_p)		= {
+	"mout_disp1_sclk_disp1_decon1_eclk1_user",
+	"oscclk",
+	"mout_disp1_sclk_disp1_600_user" };
+PNAME(disp1_mux_sclk_decon1_eclk1_p)			= {
+	"dout_disp1_sclk_decon1_eclk1",
+	"mout_disp1_phyclk_disp1_hdmiphy_pixel_clko_user" };
+
+static const struct samsung_fixed_rate_clock disp1_fixed_clks[] __initconst = {
+	FRATE(CLK_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_PHY,
+	      "phyclk_disp1_hdmiphy_pixel_clko_phy", NULL, 0, 0),
+};
+
+static const struct samsung_mux_clock disp1_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_DISP1_ACLK_DISP1_0_400_USER,
+	    "mout_disp1_aclk_disp1_0_400_user",
+	    disp1_mux_aclk_disp1_0_400_user_p,
+	    CLK_CON_MUX_ACLK_DISP1_0_400_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_ACLK_DISP1_1_400_USER,
+	    "mout_disp1_aclk_disp1_1_400_user",
+	    disp1_mux_aclk_disp1_1_400_user_p,
+	    CLK_CON_MUX_ACLK_DISP1_1_400_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_SCLK_DISP1_DECON1_ECLK0_USER,
+	    "mout_disp1_sclk_disp1_decon1_eclk0_user",
+	    disp1_mux_sclk_disp1_decon1_eclk0_user_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_SCLK_DISP1_DECON1_ECLK1_USER,
+	    "mout_disp1_sclk_disp1_decon1_eclk1_user",
+	    disp1_mux_sclk_disp1_decon1_eclk1_user_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_SCLK_DISP1_600_USER,
+	    "mout_disp1_sclk_disp1_600_user", disp1_mux_sclk_disp1_600_user_p,
+	    CLK_CON_MUX_SCLK_DISP1_600_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER,
+	    "mout_disp1_phyclk_mipidphy0_bitclkdiv2_user",
+	    disp1_mux_phyclk_mipidphy0_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY0_BITCLKDIV2_USER_DISP1, 12, 1),
+	MUX(CLK_MOUT_DISP1_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER,
+	    "mout_disp1_phyclk_mipidphy1_bitclkdiv2_user",
+	    disp1_mux_phyclk_mipidphy1_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY1_BITCLKDIV2_USER_DISP1, 12, 1),
+	MUX(CLK_MOUT_DISP1_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER,
+	    "mout_disp1_phyclk_mipidphy2_bitclkdiv2_user",
+	    disp1_mux_phyclk_mipidphy2_bitclkdiv2_user_p,
+	    CLK_CON_MUX_PHYCLK_MIPIDPHY2_BITCLKDIV2_USER_DISP1, 12, 1),
+	MUX(CLK_MOUT_DISP1_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER,
+	    "mout_disp1_phyclk_disp1_hdmiphy_pixel_clko_user",
+	    disp1_mux_phyclk_disp1_hdmiphy_pixel_clko_user_p,
+	    CLK_CON_MUX_PHYCLK_DISP1_HDMIPHY_PIXEL_CLKO_USER, 12, 1),
+	MUX(CLK_MOUT_DISP1_ACLK_DISP1_1_400, "mout_disp1_aclk_disp1_1_400",
+	    disp1_mux_aclk_disp1_1_400_p, CLK_CON_MUX_ACLK_DISP1_1_400_DISP1,
+	    12, 1),
+	MUX(CLK_MOUT_DISP1_SCLK_DISP1_DECON1_ECLK0,
+	    "mout_disp1_sclk_disp1_decon1_eclk0",
+	    disp1_mux_sclk_disp1_decon1_eclk0_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK0_DISP1, 12, 3),
+	MUX(CLK_MOUT_DISP1_SCLK_DISP1_DECON1_ECLK1,
+	    "mout_disp1_sclk_disp1_decon1_eclk1",
+	    disp1_mux_sclk_disp1_decon1_eclk1_p,
+	    CLK_CON_MUX_SCLK_DISP1_DECON1_ECLK1_DISP1, 12, 2),
+	MUX(CLK_MOUT_DISP1_SCLK_DECON1_ECLK1, "mout_disp1_sclk_decon1_eclk1",
+	    disp1_mux_sclk_decon1_eclk1_p, CLK_CON_MUX_SCLK_DECON1_ECLK1, 12,
+	    1),
+};
+
+static const struct samsung_div_clock disp1_div_clks[] __initconst = {
+	DIV(CLK_DOUT_DISP1_PCLK_DISP1_0_133, "dout_disp1_pclk_disp1_0_133",
+	    "mout_disp1_aclk_disp1_0_400_user", CLK_CON_DIV_PCLK_DISP1_0_133, 0,
+	    3),
+	DIV(CLK_DOUT_DISP1_SCLK_DECON1_ECLK0, "dout_disp1_sclk_decon1_eclk0",
+	    "mout_disp1_sclk_disp1_decon1_eclk0", CLK_CON_DIV_SCLK_DECON1_ECLK0,
+	    0, 3),
+	DIV(CLK_DOUT_DISP1_SCLK_DECON1_ECLK1, "dout_disp1_sclk_decon1_eclk1",
+	    "mout_disp1_sclk_disp1_decon1_eclk1", CLK_CON_DIV_SCLK_DECON1_ECLK1,
+	    0, 3),
+};
+
+static const struct samsung_gate_clock disp1_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_DISP1_ACLK_XIU_DISP1X0, "gout_disp1_aclk_xiu_disp1x0",
+	     "mout_disp1_aclk_disp1_0_400_user", CG_CTRL_VAL_ACLK_DISP1_0_400,
+	     5, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_AXI_LH_ASYNC_SI_DISP1_0,
+	     "gout_disp1_aclk_axi_lh_async_si_disp1_0",
+	     "mout_disp1_aclk_disp1_0_400_user", CG_CTRL_VAL_ACLK_DISP1_0_400,
+	     4, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_PPMU_DISP1_0, "gout_disp1_aclk_ppmu_disp1_0",
+	     "mout_disp1_aclk_disp1_0_400_user", CG_CTRL_VAL_ACLK_DISP1_0_400,
+	     3, 0, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_SMMU_DISP1_0, "gout_disp1_aclk_smmu_disp1_0",
+	     "mout_disp1_aclk_disp1_0_400_user", CG_CTRL_VAL_ACLK_DISP1_0_400,
+	     1, 0, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_VPP1_0, "gout_disp1_aclk_vpp1_0",
+	     "mout_disp1_aclk_disp1_0_400_user", CG_CTRL_VAL_ACLK_DISP1_0_400,
+	     0, 0, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_XIU_DISP1X1, "gout_disp1_aclk_xiu_disp1x1",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 6, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_AXI_LH_ASYNC_SI_DISP1_1,
+	     "gout_disp1_aclk_axi_lh_async_si_disp1_1",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 5, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_QE_DISP1_WDMA, "gout_disp1_aclk_qe_disp1_wdma",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 4, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_PPMU_DISP1_1, "gout_disp1_aclk_ppmu_disp1_1",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 3, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_SMMU_DISP1_1, "gout_disp1_aclk_smmu_disp1_1",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 1, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_VPP1_1, "gout_disp1_aclk_vpp1_1",
+	     "mout_disp1_aclk_disp1_1_400", CG_CTRL_VAL_ACLK_DISP1_1_400, 0, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_SFW_DISP1_0, "gout_disp1_aclk_sfw_disp1_0",
+	     "mout_disp1_aclk_disp1_0_400_user",
+	     CG_CTRL_VAL_ACLK_DISP1_0_400_SECURE_SFW_DISP1_0, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_SFW_DISP1_1, "gout_disp1_aclk_sfw_disp1_1",
+	     "mout_disp1_aclk_disp1_1_400",
+	     CG_CTRL_VAL_ACLK_DISP1_1_400_SECURE_SFW_DISP1_1, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_PCLK_VPP1_1, "gout_disp1_pclk_vpp1_1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 15, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_DECON1_1, "gout_disp1_pclk_decon1_1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 14, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_DECON1_0, "gout_disp1_pclk_decon1_0",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 13, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_QE_DISP1_WDMA, "gout_disp1_pclk_qe_disp1_wdma",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 12, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_PPMU_DISP1_1, "gout_disp1_pclk_ppmu_disp1_1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 11, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_PPMU_DISP1_0, "gout_disp1_pclk_ppmu_disp1_0",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 10, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_SMMU_DISP1_1, "gout_disp1_pclk_smmu_disp1_1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 9, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_SMMU_DISP1_0, "gout_disp1_pclk_smmu_disp1_0",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 8, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_SYSREG_DISP1, "gout_disp1_pclk_sysreg_disp1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 7, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_PMU_DISP1, "gout_disp1_pclk_pmu_disp1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 6,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP1_PCLK_CMU_DISP1, "gout_disp1_pclk_cmu_disp1",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_DISP1_PCLK_VPP1_0, "gout_disp1_pclk_vpp1_0",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 4, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_AXI2APB_DISP1_1X,
+	     "gout_disp1_aclk_axi2apb_disp1_1x", "dout_disp1_pclk_disp1_0_133",
+	     CG_CTRL_VAL_PCLK_DISP1_0_133, 3, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_AXI2APB_DISP1_0X,
+	     "gout_disp1_aclk_axi2apb_disp1_0x", "dout_disp1_pclk_disp1_0_133",
+	     CG_CTRL_VAL_PCLK_DISP1_0_133, 2, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_ACLK_XIU_DISP1SFRX, "gout_disp1_aclk_xiu_disp1sfrx",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 1, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_ACLK_AXI_LH_ASYNC_MI_DISP1SFR,
+	     "gout_disp1_aclk_axi_lh_async_mi_disp1sfr",
+	     "dout_disp1_pclk_disp1_0_133", CG_CTRL_VAL_PCLK_DISP1_0_133, 0, 0,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_HPM_APBIF_DISP1,
+	     "gout_disp1_pclk_hpm_apbif_disp1", "dout_disp1_pclk_disp1_0_133",
+	     CG_CTRL_VAL_PCLK_DISP1_0_133_HPM_APBIF_DISP1, 0, CLK_IGNORE_UNUSED,
+	     0),
+	GATE(CLK_GOUT_DISP1_PCLK_SFW_DISP1_0, "gout_disp1_pclk_sfw_disp1_0",
+	     "dout_disp1_pclk_disp1_0_133",
+	     CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_0, 10,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_PCLK_SFW_DISP1_1, "gout_disp1_pclk_sfw_disp1_1",
+	     "dout_disp1_pclk_disp1_0_133",
+	     CG_CTRL_VAL_PCLK_DISP1_0_133_SECURE_SFW_DISP1_1, 11,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_DISP1_SCLK_DECON1_ECLK_0, "gout_disp1_sclk_decon1_eclk_0",
+	     "dout_disp1_sclk_decon1_eclk0", CG_CTRL_VAL_SCLK_DECON1_ECLK_0, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP1_SCLK_DECON1_ECLK_1, "gout_disp1_sclk_decon1_eclk_1",
+	     "dout_disp1_sclk_decon1_eclk1", CG_CTRL_VAL_SCLK_DECON1_ECLK_1, 0,
+	     0, 0),
+	GATE(CLK_GOUT_DISP1_SCLK_PROMISE_DISP1, "gout_disp1_sclk_promise_disp1",
+	     "gout_top_sclk_promise_disp", CG_CTRL_VAL_SCLK_DISP1_PROMISE, 0, 0,
+	     0),
+};
+
+static const struct samsung_cmu_info disp1_cmu_info __initconst = {
+	.mux_clks		= disp1_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(disp1_mux_clks),
+	.div_clks		= disp1_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(disp1_div_clks),
+	.gate_clks		= disp1_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(disp1_gate_clks),
+	.fixed_clks		= disp1_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(disp1_fixed_clks),
+	.nr_clk_ids		= DISP1_NR_CLK,
+	.clk_regs		= disp1_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(disp1_clk_regs),
+};
+
+/* ---- CMU_FSYS0 ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_FSYS0 (0x10E90000) */
+#define CLK_CON_MUX_ACLK_FSYS0_200_USER				0x0200
+#define CLK_CON_MUX_SCLK_FSYS0_USBDRD30_USER			0x0204
+#define CLK_CON_MUX_SCLK_FSYS0_MMC0_USER			0x0208
+#define CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER		0x020C
+#define CLK_CON_MUX_SCLK_FSYS0_24M_USER				0x0210
+#define CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER	0x0214
+#define CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER	0x0218
+#define CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER	0x021C
+#define CLK_CON_MUX_PHYCLK_UFS_TX0_SYMBOL_USER			0x0220
+#define CLK_CON_MUX_PHYCLK_UFS_RX0_SYMBOL_USER			0x0224
+#define CLK_CON_MUX_PHYCLK_USBHOST20_PHYCLOCK_USER		0x0228
+#define CLK_CON_MUX_PHYCLK_USBHOST20_FREECLK_USER		0x022C
+#define CLK_CON_MUX_PHYCLK_USBHOST20_CLK48MOHCI_USER		0x0230
+#define CLK_CON_MUX_PHYCLK_USBHOST20PHY_REF_CLK			0x0234
+#define CLK_CON_MUX_PHYCLK_UFS_RX_PWM_CLK_USER			0x0238
+#define CLK_CON_MUX_PHYCLK_UFS_TX_PWM_CLK_USER			0x023C
+#define CLK_CON_MUX_PHYCLK_UFS_REFCLK_OUT_SOC_USER		0x0240
+#define CLK_STAT_MUX_ACLK_FSYS0_200_USER			0x0600
+#define CLK_STAT_MUX_SCLK_FSYS0_USBDRD30_USER			0x0604
+#define CLK_STAT_MUX_SCLK_FSYS0_MMC0_USER			0x0608
+#define CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER		0x060C
+#define CLK_STAT_MUX_SCLK_FSYS0_24M_USER			0x0610
+#define CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER	0x0614
+#define CLK_STAT_MUX_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER	0x0618
+#define CLK_STAT_MUX_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER	0x061C
+#define CLK_STAT_MUX_PHYCLK_UFS_TX0_SYMBOL_USER			0x0620
+#define CLK_STAT_MUX_PHYCLK_UFS_RX0_SYMBOL_USER			0x0624
+#define CLK_STAT_MUX_PHYCLK_USBHOST20_PHYCLOCK_USER		0x0628
+#define CLK_STAT_MUX_PHYCLK_USBHOST20_FREECLK_USER		0x062C
+#define CLK_STAT_MUX_PHYCLK_USBHOST20_CLK48MOHCI_USER		0x0630
+#define CLK_STAT_MUX_PHYCLK_USBHOST20PHY_REF_CLK		0x0634
+#define CLK_STAT_MUX_PHYCLK_UFS_RX_PWM_CLK_USER			0x0638
+#define CLK_STAT_MUX_PHYCLK_UFS_TX_PWM_CLK_USER			0x063C
+#define CLK_STAT_MUX_PHYCLK_UFS_REFCLK_OUT_SOC_USER		0x0640
+#define CG_CTRL_VAL_ACLK_FSYS0_200				0x0800
+#define CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS0			0x0820
+#define CG_CTRL_VAL_SCLK_USBDRD30_SUSPEND_CLK			0x0840
+#define CG_CTRL_VAL_SCLK_MMC0					0x0844
+#define CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED			0x0848
+#define CG_CTRL_VAL_SCLK_USBDRD30_REF_CLK			0x084C
+#define CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PHYCLOCK		0x0850
+#define CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK		0x0854
+#define CG_CTRL_VAL_PHYCLK_UFS_TX0_SYMBOL			0x0858
+#define CG_CTRL_VAL_PHYCLK_UFS_RX0_SYMBOL			0x085C
+#define CG_CTRL_VAL_PHYCLK_USBHOST20_PHYCLOCK			0x0860
+#define CG_CTRL_VAL_SCLK_USBHOST20_REF_CLK			0x0864
+#define CG_CTRL_VAL_PHYCLK_USBHOST20_FREECLK			0x0864
+#define CG_CTRL_VAL_PHYCLK_USBHOST20_CLK48MOHCI			0x0868
+#define CG_CTRL_VAL_PHYCLK_UFS_RX_PWM_CLK			0x086C
+#define CG_CTRL_VAL_PHYCLK_UFS_TX_PWM_CLK			0x0870
+#define CG_CTRL_VAL_PHYCLK_UFS_REFCLK_OUT_SOC			0x0874
+#define CG_CTRL_VAL_SCLK_PROMISE_FSYS0				0x0878
+#define CG_CTRL_VAL_SCLK_USBHOST20PHY_REF_CLK			0x087C
+#define CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED_CFG			0x0880
+#define CLKOUT_CMU_FSYS0					0x0C00
+#define CLKOUT_CMU_FSYS0_DIV_STAT				0x0C04
+#define FSYS0_SFR_IGNORE_REQ_SYSCLK				0x0D04
+#define CMU_FSYS0_SPARE0					0x0D08
+#define CMU_FSYS0_SPARE1					0x0D0C
+#define CG_CTRL_MAN_ACLK_FSYS0_200				0x1800
+#define CG_CTRL_MAN_PCLK_HPM_APBIF_FSYS0			0x1820
+#define CG_CTRL_MAN_SCLK_USBDRD30_SUSPEND_CLK			0x1840
+#define CG_CTRL_MAN_SCLK_MMC0					0x1844
+#define CG_CTRL_MAN_SCLK_UFSUNIPRO_EMBEDDED			0x1848
+#define CG_CTRL_MAN_SCLK_USBDRD30_REF_CLK			0x184C
+#define CG_CTRL_MAN_PHYCLK_USBDRD30_UDRD30_PHYCLOCK		0x1850
+#define CG_CTRL_MAN_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK		0x1854
+#define CG_CTRL_MAN_PHYCLK_UFS_TX0_SYMBOL			0x1858
+#define CG_CTRL_MAN_PHYCLK_UFS_RX0_SYMBOL			0x185C
+#define CG_CTRL_MAN_PHYCLK_USBHOST20_PHYCLOCK			0x1860
+#define CG_CTRL_MAN_PHYCLK_USBHOST20_FREECLK			0x1864
+#define CG_CTRL_MAN_PHYCLK_USBHOST20_CLK48MOHCI			0x1868
+#define CG_CTRL_MAN_PHYCLK_UFS_RX_PWM_CLK			0x186C
+#define CG_CTRL_MAN_PHYCLK_UFS_TX_PWM_CLK			0x1870
+#define CG_CTRL_MAN_PHYCLK_UFS_REFCLK_OUT_SOC			0x1874
+#define CG_CTRL_MAN_SCLK_USBHOST20_REF_CLK			0x1864
+#define CG_CTRL_MAN_SCLK_PROMISE_FSYS0				0x1878
+#define CG_CTRL_MAN_SCLK_USBHOST20PHY_REF_CLK			0x187C
+#define CG_CTRL_MAN_SCLK_UFSUNIPRO_EMBEDDED_CFG			0x1880
+#define CG_CTRL_STAT_ACLK_FSYS0_200_0				0x1C00
+#define CG_CTRL_STAT_ACLK_FSYS0_200_1				0x1C04
+#define CG_CTRL_STAT_ACLK_FSYS0_200_2				0x1C08
+#define CG_CTRL_STAT_ACLK_FSYS0_200_3				0x1C0C
+#define CG_CTRL_STAT_ACLK_FSYS0_200_4				0x1C10
+#define CG_CTRL_STAT_PCLK_HPM_APBIF_FSYS0			0x1C20
+#define CG_CTRL_STAT_SCLK_USBDRD30_SUSPEND_CLK			0x1C40
+#define CG_CTRL_STAT_SCLK_MMC0					0x1C44
+#define CG_CTRL_STAT_SCLK_UFSUNIPRO_EMBEDDED			0x1C48
+#define CG_CTRL_STAT_SCLK_USBDRD30_REF_CLK			0x1C4C
+#define CG_CTRL_STAT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK		0x1C50
+#define CG_CTRL_STAT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK		0x1C54
+#define CG_CTRL_STAT_PHYCLK_UFS_TX0_SYMBOL			0x1C58
+#define CG_CTRL_STAT_PHYCLK_UFS_RX0_SYMBOL			0x1C5C
+#define CG_CTRL_STAT_PHYCLK_USBHOST20_PHYCLOCK			0x1C60
+#define CG_CTRL_STAT_PHYCLK_USBHOST20_FREECLK			0x1C64
+#define CG_CTRL_STAT_PHYCLK_USBHOST20_CLK48MOHCI		0x1C68
+#define CG_CTRL_STAT_PHYCLK_UFS_RX_PWM_CLK			0x1C6C
+#define CG_CTRL_STAT_PHYCLK_UFS_TX_PWM_CLK			0x1C70
+#define CG_CTRL_STAT_PHYCLK_UFS_REFCLK_OUT_SOC			0x1C74
+#define CG_CTRL_STAT_SCLK_PROMISE_FSYS0				0x1C78
+#define CG_CTRL_STAT_SCLK_USBHOST20PHY_REF_CLK			0x1C7C
+#define CG_CTRL_STAT_SCLK_UFSUNIPRO_EMBEDDED_CFG		0x1C80
+#define QCH_CTRL_AXI_LH_ASYNC_MI_TOP_FSYS0			0x2000
+#define QCH_CTRL_AXI_LH_ASYNC_MI_ETR_USB_FSYS0			0x2004
+#define QCH_CTRL_ETR_USB_FSYS0_ACLK				0x2008
+#define QCH_CTRL_ETR_USB_FSYS0_PCLK				0x200C
+#define QCH_CTRL_CMU_FSYS0					0x2010
+#define QCH_CTRL_PMU_FSYS0					0x2014
+#define QCH_CTRL_SYSREG_FSYS0					0x2018
+#define QCH_CTRL_USBDRD30					0x201C
+#define QCH_CTRL_MMC0						0x2020
+#define QCH_CTRL_UFS_LINK_EMBEDDED				0x2024
+#define QCH_CTRL_USBHOST20					0x2028
+#define QCH_CTRL_PDMA0						0x202C
+#define QCH_CTRL_PDMAS						0x2034
+#define QCH_CTRL_PPMU_FSYS0					0x2038
+#define QCH_CTRL_ACEL_LH_ASYNC_SI_TOP_FSYS0			0x203C
+#define QCH_CTRL_USBDRD30_PHYCTRL				0x2040
+#define QCH_CTRL_USBHOST20_PHYCTRL				0x2044
+#define QSTATE_CTRL_USBDRD30					0x2400
+#define QSTATE_CTRL_UFS_LINK_EMBEDDED				0x2404
+#define QSTATE_CTRL_USBHOST20					0x2408
+#define QSTATE_CTRL_USBHOST20_PHY				0x240C
+#define QSTATE_CTRL_GPIO_FSYS0					0x2410
+#define QSTATE_CTRL_HPM_APBIF_FSYS0				0x2414
+#define QSTATE_CTRL_PROMISE_FSYS0				0x2418
+
+static const unsigned long fsys0_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_FSYS0_200_USER,
+	CLK_CON_MUX_SCLK_FSYS0_USBDRD30_USER,
+	CLK_CON_MUX_SCLK_FSYS0_MMC0_USER,
+	CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER,
+	CLK_CON_MUX_SCLK_FSYS0_24M_USER,
+	CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER,
+	CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER,
+	CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_TX0_SYMBOL_USER,
+	CLK_CON_MUX_PHYCLK_UFS_RX0_SYMBOL_USER,
+	CLK_CON_MUX_PHYCLK_USBHOST20_PHYCLOCK_USER,
+	CLK_CON_MUX_PHYCLK_USBHOST20_FREECLK_USER,
+	CLK_CON_MUX_PHYCLK_USBHOST20_CLK48MOHCI_USER,
+	CLK_CON_MUX_PHYCLK_USBHOST20PHY_REF_CLK,
+	CLK_CON_MUX_PHYCLK_UFS_RX_PWM_CLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_TX_PWM_CLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_REFCLK_OUT_SOC_USER,
+	CLK_STAT_MUX_ACLK_FSYS0_200_USER,
+	CLK_STAT_MUX_SCLK_FSYS0_USBDRD30_USER,
+	CLK_STAT_MUX_SCLK_FSYS0_MMC0_USER,
+	CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER,
+	CLK_STAT_MUX_SCLK_FSYS0_24M_USER,
+	CLK_STAT_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER,
+	CLK_STAT_MUX_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER,
+	CLK_STAT_MUX_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_TX0_SYMBOL_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_RX0_SYMBOL_USER,
+	CLK_STAT_MUX_PHYCLK_USBHOST20_PHYCLOCK_USER,
+	CLK_STAT_MUX_PHYCLK_USBHOST20_FREECLK_USER,
+	CLK_STAT_MUX_PHYCLK_USBHOST20_CLK48MOHCI_USER,
+	CLK_STAT_MUX_PHYCLK_USBHOST20PHY_REF_CLK,
+	CLK_STAT_MUX_PHYCLK_UFS_RX_PWM_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_TX_PWM_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_REFCLK_OUT_SOC_USER,
+	CG_CTRL_VAL_ACLK_FSYS0_200,
+	CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS0,
+	CG_CTRL_VAL_SCLK_USBDRD30_SUSPEND_CLK,
+	CG_CTRL_VAL_SCLK_MMC0,
+	CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED,
+	CG_CTRL_VAL_SCLK_USBDRD30_REF_CLK,
+	CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PHYCLOCK,
+	CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK,
+	CG_CTRL_VAL_PHYCLK_UFS_TX0_SYMBOL,
+	CG_CTRL_VAL_PHYCLK_UFS_RX0_SYMBOL,
+	CG_CTRL_VAL_PHYCLK_USBHOST20_PHYCLOCK,
+	CG_CTRL_VAL_SCLK_USBHOST20_REF_CLK,
+	CG_CTRL_VAL_PHYCLK_USBHOST20_FREECLK,
+	CG_CTRL_VAL_PHYCLK_USBHOST20_CLK48MOHCI,
+	CG_CTRL_VAL_PHYCLK_UFS_RX_PWM_CLK,
+	CG_CTRL_VAL_PHYCLK_UFS_TX_PWM_CLK,
+	CG_CTRL_VAL_PHYCLK_UFS_REFCLK_OUT_SOC,
+	CG_CTRL_VAL_SCLK_PROMISE_FSYS0,
+	CG_CTRL_VAL_SCLK_USBHOST20PHY_REF_CLK,
+	CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED_CFG,
+	CLKOUT_CMU_FSYS0,
+	CLKOUT_CMU_FSYS0_DIV_STAT,
+	FSYS0_SFR_IGNORE_REQ_SYSCLK,
+	CMU_FSYS0_SPARE0,
+	CMU_FSYS0_SPARE1,
+	CG_CTRL_MAN_ACLK_FSYS0_200,
+	CG_CTRL_MAN_PCLK_HPM_APBIF_FSYS0,
+	CG_CTRL_MAN_SCLK_USBDRD30_SUSPEND_CLK,
+	CG_CTRL_MAN_SCLK_MMC0,
+	CG_CTRL_MAN_SCLK_UFSUNIPRO_EMBEDDED,
+	CG_CTRL_MAN_SCLK_USBDRD30_REF_CLK,
+	CG_CTRL_MAN_PHYCLK_USBDRD30_UDRD30_PHYCLOCK,
+	CG_CTRL_MAN_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK,
+	CG_CTRL_MAN_PHYCLK_UFS_TX0_SYMBOL,
+	CG_CTRL_MAN_PHYCLK_UFS_RX0_SYMBOL,
+	CG_CTRL_MAN_PHYCLK_USBHOST20_PHYCLOCK,
+	CG_CTRL_MAN_PHYCLK_USBHOST20_FREECLK,
+	CG_CTRL_MAN_PHYCLK_USBHOST20_CLK48MOHCI,
+	CG_CTRL_MAN_PHYCLK_UFS_RX_PWM_CLK,
+	CG_CTRL_MAN_PHYCLK_UFS_TX_PWM_CLK,
+	CG_CTRL_MAN_PHYCLK_UFS_REFCLK_OUT_SOC,
+	CG_CTRL_MAN_SCLK_USBHOST20_REF_CLK,
+	CG_CTRL_MAN_SCLK_PROMISE_FSYS0,
+	CG_CTRL_MAN_SCLK_USBHOST20PHY_REF_CLK,
+	CG_CTRL_MAN_SCLK_UFSUNIPRO_EMBEDDED_CFG,
+	CG_CTRL_STAT_ACLK_FSYS0_200_0,
+	CG_CTRL_STAT_ACLK_FSYS0_200_1,
+	CG_CTRL_STAT_ACLK_FSYS0_200_2,
+	CG_CTRL_STAT_ACLK_FSYS0_200_3,
+	CG_CTRL_STAT_ACLK_FSYS0_200_4,
+	CG_CTRL_STAT_PCLK_HPM_APBIF_FSYS0,
+	CG_CTRL_STAT_SCLK_USBDRD30_SUSPEND_CLK,
+	CG_CTRL_STAT_SCLK_MMC0,
+	CG_CTRL_STAT_SCLK_UFSUNIPRO_EMBEDDED,
+	CG_CTRL_STAT_SCLK_USBDRD30_REF_CLK,
+	CG_CTRL_STAT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK,
+	CG_CTRL_STAT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK,
+	CG_CTRL_STAT_PHYCLK_UFS_TX0_SYMBOL,
+	CG_CTRL_STAT_PHYCLK_UFS_RX0_SYMBOL,
+	CG_CTRL_STAT_PHYCLK_USBHOST20_PHYCLOCK,
+	CG_CTRL_STAT_PHYCLK_USBHOST20_FREECLK,
+	CG_CTRL_STAT_PHYCLK_USBHOST20_CLK48MOHCI,
+	CG_CTRL_STAT_PHYCLK_UFS_RX_PWM_CLK,
+	CG_CTRL_STAT_PHYCLK_UFS_TX_PWM_CLK,
+	CG_CTRL_STAT_PHYCLK_UFS_REFCLK_OUT_SOC,
+	CG_CTRL_STAT_SCLK_PROMISE_FSYS0,
+	CG_CTRL_STAT_SCLK_USBHOST20PHY_REF_CLK,
+	CG_CTRL_STAT_SCLK_UFSUNIPRO_EMBEDDED_CFG,
+	QCH_CTRL_AXI_LH_ASYNC_MI_TOP_FSYS0,
+	QCH_CTRL_AXI_LH_ASYNC_MI_ETR_USB_FSYS0,
+	QCH_CTRL_ETR_USB_FSYS0_ACLK,
+	QCH_CTRL_ETR_USB_FSYS0_PCLK,
+	QCH_CTRL_CMU_FSYS0,
+	QCH_CTRL_PMU_FSYS0,
+	QCH_CTRL_SYSREG_FSYS0,
+	QCH_CTRL_USBDRD30,
+	QCH_CTRL_MMC0,
+	QCH_CTRL_UFS_LINK_EMBEDDED,
+	QCH_CTRL_USBHOST20,
+	QCH_CTRL_PDMA0,
+	QCH_CTRL_PDMAS,
+	QCH_CTRL_PPMU_FSYS0,
+	QCH_CTRL_ACEL_LH_ASYNC_SI_TOP_FSYS0,
+	QCH_CTRL_USBDRD30_PHYCTRL,
+	QCH_CTRL_USBHOST20_PHYCTRL,
+	QSTATE_CTRL_USBDRD30,
+	QSTATE_CTRL_UFS_LINK_EMBEDDED,
+	QSTATE_CTRL_USBHOST20,
+	QSTATE_CTRL_USBHOST20_PHY,
+	QSTATE_CTRL_GPIO_FSYS0,
+	QSTATE_CTRL_HPM_APBIF_FSYS0,
+	QSTATE_CTRL_PROMISE_FSYS0,
+};
+
+PNAME(fsys0_mux_aclk_fsys0_200_user_p)				= { "oscclk",
+								    "gout_top_aclk_fsys0_200" };
+PNAME(fsys0_mux_sclk_fsys0_usbdrd30_user_p)			= {
+	"oscclk",
+	"gout_top_sclk_fsys0_usbdrd30" };
+PNAME(fsys0_mux_sclk_fsys0_mmc0_user_p)				= { "oscclk",
+								    "gout_top_sclk_fsys0_mmc0" };
+PNAME(fsys0_mux_sclk_fsys0_ufsunipro_embedded_user_p)		= {
+	"oscclk",
+	"gout_top_sclk_fsys0_ufsunipro20" };
+PNAME(fsys0_mux_sclk_fsys0_24m_user_p)				= {
+	"oscclk",
+	"gout_top_sclk_fsys0_phy_24m" };
+PNAME(fsys0_mux_sclk_fsys0_ufsunipro_embedded_cfg_user_p)	= {
+	"oscclk",
+	"gout_top_sclk_fsys0_ufsunipro_cfg" };
+PNAME(fsys0_mux_phyclk_usbdrd30_udrd30_phyclock_user_p)		= {
+	"oscclk",
+	"phyclk_usbdrd30_udrd30_phyclock_phy" };
+PNAME(fsys0_mux_phyclk_usbdrd30_udrd30_pipe_pclk_user_p)	= {
+	"oscclk",
+	"phyclk_usbdrd30_udrd30_pipe_pclk_phy" };
+PNAME(fsys0_mux_phyclk_ufs_tx0_symbol_user_p)			= { "oscclk",
+								    "phyclk_ufs_tx0_symbol_phy" };
+PNAME(fsys0_mux_phyclk_ufs_rx0_symbol_user_p)			= { "oscclk",
+								    "phyclk_ufs_rx0_symbol_phy" };
+PNAME(fsys0_mux_phyclk_usbhost20_phyclock_user_p)		= {
+	"oscclk",
+	"phyclk_usbhost20_phyclock_phy" };
+PNAME(fsys0_mux_phyclk_usbhost20phy_ref_clk_p)			= {
+	"mout_fsys0_sclk_fsys0_24m_user",
+	"phyclk_usb30_12mohci" };
+
+static const struct samsung_fixed_rate_clock fsys0_fixed_clks[] __initconst = {
+	FRATE(CLK_PHYCLK_USB30_12MOHCI, "phyclk_usb30_12mohci", NULL, 0,
+	      30000000),
+	FRATE(CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY,
+	      "phyclk_usbdrd30_udrd30_phyclock_phy", NULL, 0, 60000000),
+	FRATE(CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY,
+	      "phyclk_usbdrd30_udrd30_pipe_pclk_phy", NULL, 0, 125000000),
+	FRATE(CLK_PHYCLK_UFS_TX0_SYMBOL_PHY, "phyclk_ufs_tx0_symbol_phy", NULL,
+	      0, 300000000),
+	FRATE(CLK_PHYCLK_UFS_RX0_SYMBOL_PHY, "phyclk_ufs_rx0_symbol_phy", NULL,
+	      0, 300000000),
+	FRATE(CLK_PHYCLK_USBHOST20_PHYCLOCK_PHY,
+	      "phyclk_usbhost20_phyclock_phy", NULL, 0, 30000000),
+};
+
+static const struct samsung_mux_clock fsys0_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_FSYS0_ACLK_FSYS0_200_USER,
+	    "mout_fsys0_aclk_fsys0_200_user", fsys0_mux_aclk_fsys0_200_user_p,
+	    CLK_CON_MUX_ACLK_FSYS0_200_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_SCLK_FSYS0_USBDRD30_USER,
+	    "mout_fsys0_sclk_fsys0_usbdrd30_user",
+	    fsys0_mux_sclk_fsys0_usbdrd30_user_p,
+	    CLK_CON_MUX_SCLK_FSYS0_USBDRD30_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_SCLK_FSYS0_MMC0_USER,
+	    "mout_fsys0_sclk_fsys0_mmc0_user", fsys0_mux_sclk_fsys0_mmc0_user_p,
+	    CLK_CON_MUX_SCLK_FSYS0_MMC0_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER,
+	    "mout_fsys0_sclk_fsys0_ufsunipro_embedded_user",
+	    fsys0_mux_sclk_fsys0_ufsunipro_embedded_user_p,
+	    CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_SCLK_FSYS0_24M_USER,
+	    "mout_fsys0_sclk_fsys0_24m_user", fsys0_mux_sclk_fsys0_24m_user_p,
+	    CLK_CON_MUX_SCLK_FSYS0_24M_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER,
+	    "mout_fsys0_sclk_fsys0_ufsunipro_embedded_cfg_user",
+	    fsys0_mux_sclk_fsys0_ufsunipro_embedded_cfg_user_p,
+	    CLK_CON_MUX_SCLK_FSYS0_UFSUNIPRO_EMBEDDED_CFG_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER,
+	    "mout_fsys0_phyclk_usbdrd30_udrd30_phyclock_user",
+	    fsys0_mux_phyclk_usbdrd30_udrd30_phyclock_user_p,
+	    CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER,
+	    "mout_fsys0_phyclk_usbdrd30_udrd30_pipe_pclk_user",
+	    fsys0_mux_phyclk_usbdrd30_udrd30_pipe_pclk_user_p,
+	    CLK_CON_MUX_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_UFS_TX0_SYMBOL_USER,
+	    "mout_fsys0_phyclk_ufs_tx0_symbol_user",
+	    fsys0_mux_phyclk_ufs_tx0_symbol_user_p,
+	    CLK_CON_MUX_PHYCLK_UFS_TX0_SYMBOL_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_UFS_RX0_SYMBOL_USER,
+	    "mout_fsys0_phyclk_ufs_rx0_symbol_user",
+	    fsys0_mux_phyclk_ufs_rx0_symbol_user_p,
+	    CLK_CON_MUX_PHYCLK_UFS_RX0_SYMBOL_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_USBHOST20_PHYCLOCK_USER,
+	    "mout_fsys0_phyclk_usbhost20_phyclock_user",
+	    fsys0_mux_phyclk_usbhost20_phyclock_user_p,
+	    CLK_CON_MUX_PHYCLK_USBHOST20_PHYCLOCK_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS0_PHYCLK_USBHOST20PHY_REF_CLK,
+	    "mout_fsys0_phyclk_usbhost20phy_ref_clk",
+	    fsys0_mux_phyclk_usbhost20phy_ref_clk_p,
+	    CLK_CON_MUX_PHYCLK_USBHOST20PHY_REF_CLK, 12, 1),
+};
+
+static const struct samsung_gate_clock fsys0_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI2ACEL_FSYS0X,
+	     "gout_fsys0_aclk_axi2acel_fsys0x",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 31,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_CMU_FSYS0, "gout_fsys0_pclk_cmu_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 30,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_GPIO_FSYS0, "gout_fsys0_pclk_gpio_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 29,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_SYSREG_FSYS0, "gout_fsys0_pclk_sysreg_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 28,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_PPMU_FSYS0, "gout_fsys0_pclk_ppmu_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 27,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_PMU_FSYS0, "gout_fsys0_pclk_pmu_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 26,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_ETR_USB_FSYS0, "gout_fsys0_pclk_etr_usb_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 25,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_HCLK_USBHOST20, "gout_fsys0_hclk_usbhost20",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 24,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI_US_USBHS_FSYS0X,
+	     "gout_fsys0_aclk_axi_us_usbhs_fsys0x",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 21,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_ETR_USB_FSYS0, "gout_fsys0_aclk_etr_usb_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 20,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_UFS_LINK_EMBEDDED,
+	     "gout_fsys0_aclk_ufs_link_embedded",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 19,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_USBDRD30, "gout_fsys0_aclk_usbdrd30",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 18,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_MMC0, "gout_fsys0_aclk_mmc0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 17,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_PDMAS, "gout_fsys0_aclk_pdmas",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 16,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_PDMA0, "gout_fsys0_aclk_pdma0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 15,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_PPMU_FSYS0, "gout_fsys0_aclk_ppmu_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 14,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_XIU_FSYS0SFRX, "gout_fsys0_aclk_xiu_fsys0sfrx",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 13,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI_US_USBDRD30X_FSYS0X,
+	     "gout_fsys0_aclk_axi_us_usbdrd30x_fsys0x",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 12,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI_US_PDMAX_FSYS0X,
+	     "gout_fsys0_aclk_axi_us_pdmax_fsys0x",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 11,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI2AHB_FSYS0H,
+	     "gout_fsys0_aclk_axi2ahb_fsys0h", "mout_fsys0_aclk_fsys0_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS0_200, 10, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI2AHB_USBDRD30H,
+	     "gout_fsys0_aclk_axi2ahb_usbdrd30h",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 9,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI_LH_ASYNC_MI_ETR_USB_FSYS0,
+	     "gout_fsys0_aclk_axi_lh_async_mi_etr_usb_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 8, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_ACLK_XIU_PDMAX, "gout_fsys0_aclk_xiu_pdmax",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 7, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_ACLK_XIU_USBX, "gout_fsys0_aclk_xiu_usbx",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 6, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_ACLK_XIU_EMBEDDEDX, "gout_fsys0_aclk_xiu_embeddedx",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 5, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_ACLK_XIU_FSYS0X, "gout_fsys0_aclk_xiu_fsys0x",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 4, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI2APB_FSYS0P,
+	     "gout_fsys0_aclk_axi2apb_fsys0p", "mout_fsys0_aclk_fsys0_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS0_200, 3, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AHB_BRIDGE_FSYS0H,
+	     "gout_fsys0_aclk_ahb_bridge_fsys0h",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 2,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_AXI_LH_ASYNC_MI_TOP_FSYS0,
+	     "gout_fsys0_aclk_axi_lh_async_mi_top_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 1,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_ACLK_ACEL_LH_ASYNC_SI_TOP_FSYS0,
+	     "gout_fsys0_aclk_acel_lh_async_si_top_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_ACLK_FSYS0_200, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_PCLK_HPM_APBIF_FSYS0,
+	     "gout_fsys0_pclk_hpm_apbif_fsys0",
+	     "mout_fsys0_aclk_fsys0_200_user", CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS0,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_USBDRD30_SUSPEND_CLK,
+	     "gout_fsys0_sclk_usbdrd30_suspend_clk",
+	     "mout_fsys0_sclk_fsys0_usbdrd30_user",
+	     CG_CTRL_VAL_SCLK_USBDRD30_SUSPEND_CLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_MMC0, "gout_fsys0_sclk_mmc0",
+	     "mout_fsys0_sclk_fsys0_mmc0_user", CG_CTRL_VAL_SCLK_MMC0, 0,
+	     CLK_SET_RATE_PARENT, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_UFSUNIPRO_EMBEDDED,
+	     "gout_fsys0_sclk_ufsunipro_embedded",
+	     "mout_fsys0_sclk_fsys0_ufsunipro_embedded_user",
+	     CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_USBDRD30_REF_CLK,
+	     "gout_fsys0_sclk_usbdrd30_ref_clk",
+	     "mout_fsys0_sclk_fsys0_usbdrd30_user",
+	     CG_CTRL_VAL_SCLK_USBDRD30_REF_CLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_PHYCLK_USBDRD30_UDRD30_PHYCLOCK,
+	     "gout_fsys0_phyclk_usbdrd30_udrd30_phyclock",
+	     "mout_fsys0_phyclk_usbdrd30_udrd30_phyclock_user",
+	     CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PHYCLOCK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK,
+	     "gout_fsys0_phyclk_usbdrd30_udrd30_pipe_pclk",
+	     "mout_fsys0_phyclk_usbdrd30_udrd30_pipe_pclk_user",
+	     CG_CTRL_VAL_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_PHYCLK_UFS_TX0_SYMBOL,
+	     "gout_fsys0_phyclk_ufs_tx0_symbol",
+	     "mout_fsys0_phyclk_ufs_tx0_symbol_user",
+	     CG_CTRL_VAL_PHYCLK_UFS_TX0_SYMBOL, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_PHYCLK_UFS_RX0_SYMBOL,
+	     "gout_fsys0_phyclk_ufs_rx0_symbol",
+	     "mout_fsys0_phyclk_ufs_rx0_symbol_user",
+	     CG_CTRL_VAL_PHYCLK_UFS_RX0_SYMBOL, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_PHYCLK_USBHOST20_PHYCLOCK,
+	     "gout_fsys0_phyclk_usbhost20_phyclock",
+	     "mout_fsys0_phyclk_usbhost20_phyclock_user",
+	     CG_CTRL_VAL_PHYCLK_USBHOST20_PHYCLOCK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_PROMISE_FSYS0, "gout_fsys0_sclk_promise_fsys0",
+	     "gout_top_sclk_promise_int", CG_CTRL_VAL_SCLK_PROMISE_FSYS0, 0, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS0_SCLK_USBHOST20PHY_REF_CLK,
+	     "gout_fsys0_sclk_usbhost20phy_ref_clk",
+	     "mout_fsys0_phyclk_usbhost20phy_ref_clk",
+	     CG_CTRL_VAL_SCLK_USBHOST20PHY_REF_CLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_UFSUNIPRO_EMBEDDED_CFG,
+	     "gout_fsys0_sclk_ufsunipro_embedded_cfg",
+	     "mout_fsys0_sclk_fsys0_ufsunipro_embedded_cfg_user",
+	     CG_CTRL_VAL_SCLK_UFSUNIPRO_EMBEDDED_CFG, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS0_SCLK_USBHOST20_REF_CLK,
+	     "gout_fsys0_sclk_usbhost20_ref_clk",
+	     "mout_fsys0_sclk_fsys0_usbdrd30_user",
+	     CG_CTRL_VAL_SCLK_USBHOST20_REF_CLK, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info fsys0_cmu_info __initconst = {
+	.mux_clks		= fsys0_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(fsys0_mux_clks),
+	.gate_clks		= fsys0_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(fsys0_gate_clks),
+	.fixed_clks		= fsys0_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(fsys0_fixed_clks),
+	.nr_clk_ids		= FSYS0_NR_CLK,
+	.clk_regs		= fsys0_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(fsys0_clk_regs),
+};
+
+/* ---- CMU_FSYS1 ---------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_FSYS1 (0x156E0000) */
+#define PCIE_PLL_LOCK						0x0000
+#define PCIE_PLL_CON0						0x0100
+#define PCIE_PLL_CON1						0x0104
+#define CLK_CON_MUX_ACLK_FSYS1_200_USER				0x0200
+#define CLK_CON_MUX_SCLK_FSYS1_MMC2_USER			0x0204
+#define CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER		0x020C
+#define CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER	0x0210
+#define CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY_USER			0x0214
+#define CLK_CON_MUX_PCIE_PLL					0x0218
+#define CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER	0x0220
+#define CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER	0x0224
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI0_TX0_USER			0x0230
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI0_RX0_USER			0x0234
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI1_TX0_USER			0x0238
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI1_RX0_USER			0x023C
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER		0x0240
+#define CLK_CON_MUX_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER		0x0244
+#define CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK_USER	0x0248
+#define CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK_USER	0x024C
+#define CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC_USER	0x0250
+#define CLK_CON_DIV_PCLK_COMBO_PHY_WIFI				0x0400
+#define CLK_STAT_MUX_ACLK_FSYS1_200_USER			0x0600
+#define CLK_STAT_MUX_SCLK_FSYS1_MMC2_USER			0x0604
+#define CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER		0x060C
+#define CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER	0x0610
+#define CLK_STAT_MUX_SCLK_FSYS1_PCIE_PHY_USER			0x0614
+#define CLK_STAT_MUX_PCIE_PLL					0x0618
+#define CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER	0x0620
+#define CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER	0x0624
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_TX0_USER			0x0630
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_RX0_USER			0x0634
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_TX0_USER			0x0638
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_RX0_USER			0x063C
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER		0x0640
+#define CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER		0x0644
+#define CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK_USER	0x0648
+#define CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK_USER	0x064C
+#define CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC_USER	0x0650
+#define CG_CTRL_VAL_ACLK_FSYS1_200				0x0800
+#define CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS1			0x0820
+#define CG_CTRL_VAL_PCLK_COMBO_PHY_WIFI				0x0824
+#define CG_CTRL_VAL_SCLK_MMC2					0x0840
+#define CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD			0x0844
+#define CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD_CFG			0x0848
+#define CG_CTRL_VAL_SCLK_FSYS1_PCIE0_PHY			0x084C
+#define CG_CTRL_VAL_SCLK_FSYS1_PCIE1_PHY			0x0850
+#define CG_CTRL_VAL_SCLK_PCIE_LINK_WIFI0			0x0854
+#define CG_CTRL_VAL_SCLK_PCIE_LINK_WIFI1			0x0858
+#define CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL		0x085C
+#define CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL		0x0860
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_TX0			0x086C
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_RX0			0x0870
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_TX0			0x0874
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_RX0			0x0878
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_DIG_REFCLK		0x087C
+#define CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_DIG_REFCLK		0x0880
+#define CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK		0x0884
+#define CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK		0x0888
+#define CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC	0x088C
+#define CG_CTRL_VAL_SCLK_PROMISE_FSYS1				0x0890
+#define CLKOUT_CMU_FSYS1					0x0C00
+#define CLKOUT_CMU_FSYS1_DIV_STAT				0x0C04
+#define FSYS1_SFR_IGNORE_REQ_SYSCLK				0x0D04
+#define CMU_FSYS1_SPARE0					0x0D08
+#define CMU_FSYS1_SPARE1					0x0D0C
+#define CG_CTRL_MAN_ACLK_FSYS1_200				0x1800
+#define CG_CTRL_MAN_PCLK_HPM_APBIF_FSYS1			0x1820
+#define CG_CTRL_MAN_PCLK_COMBO_PHY_WIFI				0x1824
+#define CG_CTRL_MAN_SCLK_MMC2					0x1840
+#define CG_CTRL_MAN_SCLK_UFSUNIPRO_SDCARD			0x1844
+#define CG_CTRL_MAN_SCLK_UFSUNIPRO_SDCARD_CFG			0x1848
+#define CG_CTRL_MAN_SCLK_FSYS1_PCIE0_PHY			0x184C
+#define CG_CTRL_MAN_SCLK_FSYS1_PCIE1_PHY			0x1850
+#define CG_CTRL_MAN_SCLK_PCIE_LINK_WIFI0			0x1854
+#define CG_CTRL_MAN_SCLK_PCIE_LINK_WIFI1			0x1858
+#define CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL		0x185C
+#define CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL		0x1860
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_TX0			0x186C
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_RX0			0x1870
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_TX0			0x1874
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_RX0			0x1878
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_DIG_REFCLK		0x187C
+#define CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_DIG_REFCLK		0x1880
+#define CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK		0x1884
+#define CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK		0x1888
+#define CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC	0x188C
+#define CG_CTRL_MAN_SCLK_PROMISE_FSYS1				0x1890
+#define CG_CTRL_STAT_ACLK_FSYS1_200_0				0x1C00
+#define CG_CTRL_STAT_ACLK_FSYS1_200_1				0x1C04
+#define CG_CTRL_STAT_ACLK_FSYS1_200_2				0x1C08
+#define CG_CTRL_STAT_ACLK_FSYS1_200_3				0x1C0C
+#define CG_CTRL_STAT_ACLK_FSYS1_200_4				0x1C10
+#define CG_CTRL_STAT_PCLK_HPM_APBIF_FSYS1			0x1C20
+#define CG_CTRL_STAT_PCLK_COMBO_PHY_WIFI			0x1C24
+#define CG_CTRL_STAT_SCLK_MMC2					0x1C40
+#define CG_CTRL_STAT_SCLK_UFSUNIPRO_SDCARD			0x1C44
+#define CG_CTRL_STAT_SCLK_UFSUNIPRO_SDCARD_CFG			0x1C48
+#define CG_CTRL_STAT_SCLK_FSYS1_PCIE0_PHY			0x1C4C
+#define CG_CTRL_STAT_SCLK_FSYS1_PCIE1_PHY			0x1C50
+#define CG_CTRL_STAT_SCLK_PCIE_LINK_WIFI0			0x1C54
+#define CG_CTRL_STAT_SCLK_PCIE_LINK_WIFI1			0x1C58
+#define CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL		0x1C5C
+#define CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL		0x1C60
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_TX0			0x1C6C
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_RX0			0x1C70
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_TX0			0x1C74
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_RX0			0x1C78
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_DIG_REFCLK		0x1C7C
+#define CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_DIG_REFCLK		0x1C80
+#define CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK		0x1C84
+#define CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK		0x1C88
+#define CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC	0x1C8C
+#define CG_CTRL_STAT_SCLK_PROMISE_FSYS1				0x1C90
+#define QCH_CTRL_AXI_LH_ASYNC_MI_TOP_FSYS1			0x2000
+#define QCH_CTRL_CMU_FSYS1					0x2004
+#define QCH_CTRL_PMU_FSYS1					0x2008
+#define QCH_CTRL_SYSREG_FSYS1					0x200C
+#define QCH_CTRL_MMC2						0x2010
+#define QCH_CTRL_UFS_LINK_SDCARD				0x2014
+#define QCH_CTRL_PPMU_FSYS1					0x2018
+#define QCH_CTRL_ACEL_LH_ASYNC_SI_TOP_FSYS1			0x201C
+#define QCH_CTRL_PCIE_RC_LINK_WIFI0_SLV				0x2020
+#define QCH_CTRL_PCIE_RC_LINK_WIFI0_DBI				0x2024
+#define QCH_CTRL_PCIE_RC_LINK_WIFI1_SLV				0x2028
+#define QCH_CTRL_PCIE_RC_LINK_WIFI1_DBI				0x202C
+#define QSTATE_CTRL_SROMC_FSYS1					0x241C
+#define QSTATE_CTRL_GPIO_FSYS1					0x2420
+#define QSTATE_CTRL_HPM_APBIF_FSYS1				0x2424
+#define QSTATE_CTRL_PROMISE_FSYS1				0x2428
+#define QSTATE_CTRL_PCIE_RC_LINK_WIFI0				0x242C
+#define QSTATE_CTRL_PCIE_RC_LINK_WIFI1				0x2430
+#define QSTATE_CTRL_PCIE_PCS_WIFI0				0x2434
+#define QSTATE_CTRL_PCIE_PCS_WIFI1				0x2438
+#define QSTATE_CTRL_PCIE_PHY_FSYS1_WIFI0			0x243C
+#define QSTATE_CTRL_PCIE_PHY_FSYS1_WIFI1			0x2440
+#define QSTATE_CTRL_UFS_LINK_SDCARD				0x2444
+
+static const unsigned long fsys1_clk_regs[] __initconst = {
+	PCIE_PLL_LOCK,
+	PCIE_PLL_CON0,
+	PCIE_PLL_CON1,
+	CLK_CON_MUX_ACLK_FSYS1_200_USER,
+	CLK_CON_MUX_SCLK_FSYS1_MMC2_USER,
+	CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER,
+	CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER,
+	CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY_USER,
+	CLK_CON_MUX_PCIE_PLL,
+	CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER,
+	CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI0_TX0_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI0_RX0_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI1_TX0_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI1_RX0_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER,
+	CLK_CON_MUX_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK_USER,
+	CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC_USER,
+	CLK_CON_DIV_PCLK_COMBO_PHY_WIFI,
+	CLK_STAT_MUX_ACLK_FSYS1_200_USER,
+	CLK_STAT_MUX_SCLK_FSYS1_MMC2_USER,
+	CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER,
+	CLK_STAT_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER,
+	CLK_STAT_MUX_SCLK_FSYS1_PCIE_PHY_USER,
+	CLK_STAT_MUX_PCIE_PLL,
+	CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_TX0_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_RX0_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_TX0_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_RX0_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER,
+	CLK_STAT_MUX_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK_USER,
+	CLK_STAT_MUX_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC_USER,
+	CG_CTRL_VAL_ACLK_FSYS1_200,
+	CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS1,
+	CG_CTRL_VAL_PCLK_COMBO_PHY_WIFI,
+	CG_CTRL_VAL_SCLK_MMC2,
+	CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD,
+	CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD_CFG,
+	CG_CTRL_VAL_SCLK_FSYS1_PCIE0_PHY,
+	CG_CTRL_VAL_SCLK_FSYS1_PCIE1_PHY,
+	CG_CTRL_VAL_SCLK_PCIE_LINK_WIFI0,
+	CG_CTRL_VAL_SCLK_PCIE_LINK_WIFI1,
+	CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL,
+	CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_TX0,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_RX0,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_TX0,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_RX0,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_DIG_REFCLK,
+	CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_DIG_REFCLK,
+	CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK,
+	CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK,
+	CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC,
+	CG_CTRL_VAL_SCLK_PROMISE_FSYS1,
+	CLKOUT_CMU_FSYS1,
+	CLKOUT_CMU_FSYS1_DIV_STAT,
+	FSYS1_SFR_IGNORE_REQ_SYSCLK,
+	CMU_FSYS1_SPARE0,
+	CMU_FSYS1_SPARE1,
+	CG_CTRL_MAN_ACLK_FSYS1_200,
+	CG_CTRL_MAN_PCLK_HPM_APBIF_FSYS1,
+	CG_CTRL_MAN_PCLK_COMBO_PHY_WIFI,
+	CG_CTRL_MAN_SCLK_MMC2,
+	CG_CTRL_MAN_SCLK_UFSUNIPRO_SDCARD,
+	CG_CTRL_MAN_SCLK_UFSUNIPRO_SDCARD_CFG,
+	CG_CTRL_MAN_SCLK_FSYS1_PCIE0_PHY,
+	CG_CTRL_MAN_SCLK_FSYS1_PCIE1_PHY,
+	CG_CTRL_MAN_SCLK_PCIE_LINK_WIFI0,
+	CG_CTRL_MAN_SCLK_PCIE_LINK_WIFI1,
+	CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL,
+	CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_TX0,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_RX0,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_TX0,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_RX0,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI0_DIG_REFCLK,
+	CG_CTRL_MAN_PHYCLK_PCIE_WIFI1_DIG_REFCLK,
+	CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK,
+	CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK,
+	CG_CTRL_MAN_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC,
+	CG_CTRL_MAN_SCLK_PROMISE_FSYS1,
+	CG_CTRL_STAT_ACLK_FSYS1_200_0,
+	CG_CTRL_STAT_ACLK_FSYS1_200_1,
+	CG_CTRL_STAT_ACLK_FSYS1_200_2,
+	CG_CTRL_STAT_ACLK_FSYS1_200_3,
+	CG_CTRL_STAT_ACLK_FSYS1_200_4,
+	CG_CTRL_STAT_PCLK_HPM_APBIF_FSYS1,
+	CG_CTRL_STAT_PCLK_COMBO_PHY_WIFI,
+	CG_CTRL_STAT_SCLK_MMC2,
+	CG_CTRL_STAT_SCLK_UFSUNIPRO_SDCARD,
+	CG_CTRL_STAT_SCLK_UFSUNIPRO_SDCARD_CFG,
+	CG_CTRL_STAT_SCLK_FSYS1_PCIE0_PHY,
+	CG_CTRL_STAT_SCLK_FSYS1_PCIE1_PHY,
+	CG_CTRL_STAT_SCLK_PCIE_LINK_WIFI0,
+	CG_CTRL_STAT_SCLK_PCIE_LINK_WIFI1,
+	CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL,
+	CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_TX0,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_RX0,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_TX0,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_RX0,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI0_DIG_REFCLK,
+	CG_CTRL_STAT_PHYCLK_PCIE_WIFI1_DIG_REFCLK,
+	CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_RX_PWM_CLK,
+	CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_TX_PWM_CLK,
+	CG_CTRL_STAT_PHYCLK_UFS_LINK_SDCARD_REFCLK_OUT_SOC,
+	CG_CTRL_STAT_SCLK_PROMISE_FSYS1,
+	QCH_CTRL_AXI_LH_ASYNC_MI_TOP_FSYS1,
+	QCH_CTRL_CMU_FSYS1,
+	QCH_CTRL_PMU_FSYS1,
+	QCH_CTRL_SYSREG_FSYS1,
+	QCH_CTRL_MMC2,
+	QCH_CTRL_UFS_LINK_SDCARD,
+	QCH_CTRL_PPMU_FSYS1,
+	QCH_CTRL_ACEL_LH_ASYNC_SI_TOP_FSYS1,
+	QCH_CTRL_PCIE_RC_LINK_WIFI0_SLV,
+	QCH_CTRL_PCIE_RC_LINK_WIFI0_DBI,
+	QCH_CTRL_PCIE_RC_LINK_WIFI1_SLV,
+	QCH_CTRL_PCIE_RC_LINK_WIFI1_DBI,
+	QSTATE_CTRL_SROMC_FSYS1,
+	QSTATE_CTRL_GPIO_FSYS1,
+	QSTATE_CTRL_HPM_APBIF_FSYS1,
+	QSTATE_CTRL_PROMISE_FSYS1,
+	QSTATE_CTRL_PCIE_RC_LINK_WIFI0,
+	QSTATE_CTRL_PCIE_RC_LINK_WIFI1,
+	QSTATE_CTRL_PCIE_PCS_WIFI0,
+	QSTATE_CTRL_PCIE_PCS_WIFI1,
+	QSTATE_CTRL_PCIE_PHY_FSYS1_WIFI0,
+	QSTATE_CTRL_PCIE_PHY_FSYS1_WIFI1,
+	QSTATE_CTRL_UFS_LINK_SDCARD,
+};
+
+static const struct samsung_pll_rate_table pcie_pll_rates[] __initconst = {
+	PLL_36XX_RATE(26 * MHZ, 100000000U, 800, 13, 4, 0),
+};
+
+static const struct samsung_pll_clock fsys1_pll_clks[] __initconst = {
+	PLL(pll_1431x, CLK_FOUT_PCIE_PLL, "fout_pcie_pll", "oscclk",
+	    PCIE_PLL_LOCK, PCIE_PLL_CON0, pcie_pll_rates),
+};
+
+PNAME(fsys1_mux_aclk_fsys1_200_user_p)				= { "oscclk",
+								    "gout_top_aclk_fsys1_200" };
+PNAME(fsys1_mux_sclk_fsys1_mmc2_user_p)				= { "oscclk",
+								    "gout_top_sclk_fsys1_mmc2" };
+PNAME(fsys1_mux_sclk_fsys1_ufsunipro_sdcard_user_p)		= {
+	"oscclk",
+	"gout_top_sclk_fsys1_ufsunipro20" };
+PNAME(fsys1_mux_sclk_fsys1_ufsunipro_sdcard_cfg_user_p)		= {
+	"oscclk",
+	"gout_top_sclk_fsys1_ufsunipro_cfg" };
+PNAME(fsys1_mux_sclk_fsys1_pcie_phy_user_p)			= {
+	"oscclk",
+	"gout_top_sclk_fsys1_pcie_phy" };
+PNAME(fsys1_mux_pcie_pll_p)					= { "oscclk",
+								    "fout_pcie_pll" };
+PNAME(fsys1_mux_phyclk_ufs_link_sdcard_tx0_symbol_user_p)	= {
+	"oscclk",
+	"phyclk_ufs_link_sdcard_tx0_symbol_phy" };
+PNAME(fsys1_mux_phyclk_ufs_link_sdcard_rx0_symbol_user_p)	= {
+	"oscclk",
+	"phyclk_ufs_link_sdcard_rx0_symbol_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi0_tx0_user_p)			= { "oscclk",
+								    "phyclk_pcie_wifi0_tx0_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi0_rx0_user_p)			= { "oscclk",
+								    "phyclk_pcie_wifi0_rx0_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi1_tx0_user_p)			= { "oscclk",
+								    "phyclk_pcie_wifi1_tx0_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi1_rx0_user_p)			= { "oscclk",
+								    "phyclk_pcie_wifi1_rx0_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi0_dig_refclk_user_p)		= {
+	"oscclk",
+	"phyclk_pcie_wifi0_dig_refclk_phy" };
+PNAME(fsys1_mux_phyclk_pcie_wifi1_dig_refclk_user_p)		= {
+	"oscclk",
+	"phyclk_pcie_wifi1_dig_refclk_phy" };
+
+static const struct samsung_fixed_rate_clock fsys1_fixed_clks[] __initconst = {
+	FRATE(CLK_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_PHY,
+	      "phyclk_ufs_link_sdcard_tx0_symbol_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_PHY,
+	      "phyclk_ufs_link_sdcard_rx0_symbol_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI0_TX0_PHY, "phyclk_pcie_wifi0_tx0_phy", NULL,
+	      0, 30000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI0_RX0_PHY, "phyclk_pcie_wifi0_rx0_phy", NULL,
+	      0, 30000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI1_TX0_PHY, "phyclk_pcie_wifi1_tx0_phy", NULL,
+	      0, 250000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI1_RX0_PHY, "phyclk_pcie_wifi1_rx0_phy", NULL,
+	      0, 250000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI0_DIG_REFCLK_PHY,
+	      "phyclk_pcie_wifi0_dig_refclk_phy", NULL, 0, 30000000),
+	FRATE(CLK_PHYCLK_PCIE_WIFI1_DIG_REFCLK_PHY,
+	      "phyclk_pcie_wifi1_dig_refclk_phy", NULL, 0, 30000000),
+};
+
+static const struct samsung_mux_clock fsys1_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_FSYS1_ACLK_FSYS1_200_USER,
+	    "mout_fsys1_aclk_fsys1_200_user", fsys1_mux_aclk_fsys1_200_user_p,
+	    CLK_CON_MUX_ACLK_FSYS1_200_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_SCLK_FSYS1_MMC2_USER,
+	    "mout_fsys1_sclk_fsys1_mmc2_user", fsys1_mux_sclk_fsys1_mmc2_user_p,
+	    CLK_CON_MUX_SCLK_FSYS1_MMC2_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER,
+	    "mout_fsys1_sclk_fsys1_ufsunipro_sdcard_user",
+	    fsys1_mux_sclk_fsys1_ufsunipro_sdcard_user_p,
+	    CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER,
+	    "mout_fsys1_sclk_fsys1_ufsunipro_sdcard_cfg_user",
+	    fsys1_mux_sclk_fsys1_ufsunipro_sdcard_cfg_user_p,
+	    CLK_CON_MUX_SCLK_FSYS1_UFSUNIPRO_SDCARD_CFG_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_SCLK_FSYS1_PCIE_PHY_USER,
+	    "mout_fsys1_sclk_fsys1_pcie_phy_user",
+	    fsys1_mux_sclk_fsys1_pcie_phy_user_p,
+	    CLK_CON_MUX_SCLK_FSYS1_PCIE_PHY_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PCIE_PLL, "mout_fsys1_pcie_pll",
+	    fsys1_mux_pcie_pll_p, CLK_CON_MUX_PCIE_PLL, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER,
+	    "mout_fsys1_phyclk_ufs_link_sdcard_tx0_symbol_user",
+	    fsys1_mux_phyclk_ufs_link_sdcard_tx0_symbol_user_p,
+	    CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER,
+	    "mout_fsys1_phyclk_ufs_link_sdcard_rx0_symbol_user",
+	    fsys1_mux_phyclk_ufs_link_sdcard_rx0_symbol_user_p,
+	    CLK_CON_MUX_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI0_TX0_USER,
+	    "mout_fsys1_phyclk_pcie_wifi0_tx0_user",
+	    fsys1_mux_phyclk_pcie_wifi0_tx0_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI0_TX0_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI0_RX0_USER,
+	    "mout_fsys1_phyclk_pcie_wifi0_rx0_user",
+	    fsys1_mux_phyclk_pcie_wifi0_rx0_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI0_RX0_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI1_TX0_USER,
+	    "mout_fsys1_phyclk_pcie_wifi1_tx0_user",
+	    fsys1_mux_phyclk_pcie_wifi1_tx0_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI1_TX0_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI1_RX0_USER,
+	    "mout_fsys1_phyclk_pcie_wifi1_rx0_user",
+	    fsys1_mux_phyclk_pcie_wifi1_rx0_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI1_RX0_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER,
+	    "mout_fsys1_phyclk_pcie_wifi0_dig_refclk_user",
+	    fsys1_mux_phyclk_pcie_wifi0_dig_refclk_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI0_DIG_REFCLK_USER, 12, 1),
+	MUX(CLK_MOUT_FSYS1_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER,
+	    "mout_fsys1_phyclk_pcie_wifi1_dig_refclk_user",
+	    fsys1_mux_phyclk_pcie_wifi1_dig_refclk_user_p,
+	    CLK_CON_MUX_PHYCLK_PCIE_WIFI1_DIG_REFCLK_USER, 12, 1),
+};
+
+static const struct samsung_div_clock fsys1_div_clks[] __initconst = {
+	DIV(CLK_DOUT_FSYS1_PCLK_COMBO_PHY_WIFI,
+	    "dout_fsys1_pclk_combo_phy_wifi", "mout_fsys1_aclk_fsys1_200_user",
+	    CLK_CON_DIV_PCLK_COMBO_PHY_WIFI, 0, 2),
+};
+
+static const struct samsung_gate_clock fsys1_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_FSYS1_ACLK_AXI2ACEL_FSYS1X,
+	     "gout_fsys1_aclk_axi2acel_fsys1x",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 31,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_CMU_FSYS1, "gout_fsys1_pclk_cmu_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 30,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_COMBO_PHY_PCS_PCLK_WIFI1,
+	     "gout_fsys1_aclk_combo_phy_pcs_pclk_wifi1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 29,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_COMBO_PHY_PCS_PCLK_WIFI0,
+	     "gout_fsys1_aclk_combo_phy_pcs_pclk_wifi0",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 28,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_PMU_FSYS1, "gout_fsys1_pclk_pmu_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 26,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_PPMU_FSYS1, "gout_fsys1_pclk_ppmu_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 25,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_GPIO_FSYS1, "gout_fsys1_pclk_gpio_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 24,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_SYSREG_FSYS1, "gout_fsys1_pclk_sysreg_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 23,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_SROMC_FSYS1, "gout_fsys1_aclk_sromc_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 22,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_PCIE_WIFI1, "gout_fsys1_pclk_pcie_wifi1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 21,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI1_DBI,
+	     "gout_fsys1_aclk_pcie_wifi1_dbi", "mout_fsys1_aclk_fsys1_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS1_200, 20, 0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI1_SLV,
+	     "gout_fsys1_aclk_pcie_wifi1_slv", "mout_fsys1_aclk_fsys1_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS1_200, 19, 0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI1_MSTR,
+	     "gout_fsys1_aclk_pcie_wifi1_mstr",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 18,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AHB2AXI_PCIE_WIFI1,
+	     "gout_fsys1_aclk_ahb2axi_pcie_wifi1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 17,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_PCIE_WIFI0, "gout_fsys1_pclk_pcie_wifi0",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 16,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI0_DBI,
+	     "gout_fsys1_aclk_pcie_wifi0_dbi", "mout_fsys1_aclk_fsys1_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS1_200, 15, 0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI0_SLV,
+	     "gout_fsys1_aclk_pcie_wifi0_slv", "mout_fsys1_aclk_fsys1_200_user",
+	     CG_CTRL_VAL_ACLK_FSYS1_200, 14, 0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PCIE_WIFI0_MSTR,
+	     "gout_fsys1_aclk_pcie_wifi0_mstr",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 13,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AHB2AXI_PCIE_WIFI0,
+	     "gout_fsys1_aclk_ahb2axi_pcie_wifi0",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 12,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_PPMU_FSYS1, "gout_fsys1_aclk_ppmu_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 11,
+	     0, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AHB_BRIDGE_FSYS1_S4,
+	     "gout_fsys1_aclk_ahb_bridge_fsys1_s4",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 10,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AXI2AHB_FSYS1_S4,
+	     "gout_fsys1_aclk_axi2ahb_fsys1_s4",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 9,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AXI2APB_FSYS1_S1,
+	     "gout_fsys1_aclk_axi2apb_fsys1_s1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 8,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AXI2AHB_FSYS1_S0,
+	     "gout_fsys1_aclk_axi2ahb_fsys1_s0",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 7,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_FSYS1_ACLK_XIU_FSYS1SFRX, "gout_fsys1_aclk_xiu_fsys1sfrx",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 6, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_XIU_SDCARDX, "gout_fsys1_aclk_xiu_sdcardx",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 5, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_XIU_FSYS1X, "gout_fsys1_aclk_xiu_fsys1x",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 4, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_AXI_LH_ASYNC_MI_TOP_FSYS1,
+	     "gout_fsys1_aclk_axi_lh_async_mi_top_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 3, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_ACEL_LH_ASYNC_SI_TOP_FSYS1,
+	     "gout_fsys1_aclk_acel_lh_async_si_top_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 2, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_UFS_LINK_SDCARD,
+	     "gout_fsys1_aclk_ufs_link_sdcard",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 1, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_ACLK_MMC2, "gout_fsys1_aclk_mmc2",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_ACLK_FSYS1_200, 0, 0,
+	     0),
+	GATE(CLK_GOUT_FSYS1_PCLK_HPM_APBIF_FSYS1,
+	     "gout_fsys1_pclk_hpm_apbif_fsys1",
+	     "mout_fsys1_aclk_fsys1_200_user", CG_CTRL_VAL_PCLK_HPM_APBIF_FSYS1,
+	     0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_COMBO_PHY_WIFI1,
+	     "gout_fsys1_pclk_combo_phy_wifi1",
+	     "dout_fsys1_pclk_combo_phy_wifi", CG_CTRL_VAL_PCLK_COMBO_PHY_WIFI,
+	     1, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PCLK_COMBO_PHY_WIFI0,
+	     "gout_fsys1_pclk_combo_phy_wifi0",
+	     "dout_fsys1_pclk_combo_phy_wifi", CG_CTRL_VAL_PCLK_COMBO_PHY_WIFI,
+	     0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_SCLK_MMC2, "gout_fsys1_sclk_mmc2",
+	     "mout_fsys1_sclk_fsys1_mmc2_user", CG_CTRL_VAL_SCLK_MMC2, 0,
+	     CLK_SET_RATE_PARENT, 0),
+	GATE(CLK_GOUT_FSYS1_SCLK_UFSUNIPRO_SDCARD,
+	     "gout_fsys1_sclk_ufsunipro_sdcard",
+	     "mout_fsys1_sclk_fsys1_ufsunipro_sdcard_user",
+	     CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_SCLK_UFSUNIPRO_SDCARD_CFG,
+	     "gout_fsys1_sclk_ufsunipro_sdcard_cfg",
+	     "mout_fsys1_sclk_fsys1_ufsunipro_sdcard_cfg_user",
+	     CG_CTRL_VAL_SCLK_UFSUNIPRO_SDCARD_CFG, 0, 0, 0),
+	/* reading CG_CTRL_VAL_SCLK_PCIE_LINK_WIFI{0,1} causes an abort */
+	GATE(CLK_GOUT_FSYS1_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL,
+	     "gout_fsys1_phyclk_ufs_link_sdcard_tx0_symbol",
+	     "mout_fsys1_phyclk_ufs_link_sdcard_tx0_symbol_user",
+	     CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_TX0_SYMBOL, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL,
+	     "gout_fsys1_phyclk_ufs_link_sdcard_rx0_symbol",
+	     "mout_fsys1_phyclk_ufs_link_sdcard_rx0_symbol_user",
+	     CG_CTRL_VAL_PHYCLK_UFS_LINK_SDCARD_RX0_SYMBOL, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI0_TX0,
+	     "gout_fsys1_phyclk_pcie_wifi0_tx0",
+	     "mout_fsys1_phyclk_pcie_wifi0_tx0_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_TX0, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI0_RX0,
+	     "gout_fsys1_phyclk_pcie_wifi0_rx0",
+	     "mout_fsys1_phyclk_pcie_wifi0_rx0_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_RX0, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI1_TX0,
+	     "gout_fsys1_phyclk_pcie_wifi1_tx0",
+	     "mout_fsys1_phyclk_pcie_wifi1_tx0_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_TX0, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI1_RX0,
+	     "gout_fsys1_phyclk_pcie_wifi1_rx0",
+	     "mout_fsys1_phyclk_pcie_wifi1_rx0_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_RX0, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI0_DIG_REFCLK,
+	     "gout_fsys1_phyclk_pcie_wifi0_dig_refclk",
+	     "mout_fsys1_phyclk_pcie_wifi0_dig_refclk_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI0_DIG_REFCLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_PHYCLK_PCIE_WIFI1_DIG_REFCLK,
+	     "gout_fsys1_phyclk_pcie_wifi1_dig_refclk",
+	     "mout_fsys1_phyclk_pcie_wifi1_dig_refclk_user",
+	     CG_CTRL_VAL_PHYCLK_PCIE_WIFI1_DIG_REFCLK, 0, 0, 0),
+	GATE(CLK_GOUT_FSYS1_SCLK_PROMISE_FSYS1, "gout_fsys1_sclk_promise_fsys1",
+	     "gout_top_sclk_promise_int", CG_CTRL_VAL_SCLK_PROMISE_FSYS1, 0, 0,
+	     0),
+};
+
+static const struct samsung_cmu_info fsys1_cmu_info __initconst = {
+	.pll_clks		= fsys1_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(fsys1_pll_clks),
+	.mux_clks		= fsys1_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(fsys1_mux_clks),
+	.div_clks		= fsys1_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(fsys1_div_clks),
+	.gate_clks		= fsys1_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(fsys1_gate_clks),
+	.fixed_clks		= fsys1_fixed_clks,
+	.nr_fixed_clks		= ARRAY_SIZE(fsys1_fixed_clks),
+	.nr_clk_ids		= FSYS1_NR_CLK,
+	.clk_regs		= fsys1_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(fsys1_clk_regs),
+};
+
+/* ---- CMU_G3D ------------------------------------------------------------ */
+
+/* Register Offset definitions for CMU_G3D (0x14AA0000) */
+#define CLK_CON_MUX_G3D_PLL_USER	0x0200
+#define CLK_CON_MUX_BUS_PLL_USER_G3D	0x0204
+#define CLK_CON_MUX_G3D			0x020C
+#define CLK_CON_MUX_ACLK_G3D		0x0210
+#define CLK_CON_MUX_PCLK_G3D		0x0214
+#define CLK_CON_DIV_ACLK_G3D		0x0400
+#define CLK_CON_DIV_PCLK_G3D		0x0404
+#define CLK_CON_DIV_SCLK_HPM_G3D	0x0408
+#define CLK_CON_DIV_SCLK_ATE_G3D	0x040C
+#define CLK_STAT_MUX_G3D_PLL_USER	0x0600
+#define CLK_STAT_MUX_BUS_PLL_USER_G3D	0x0604
+#define CLK_STAT_MUX_G3D		0x060C
+#define CLK_STAT_MUX_ACLK_G3D		0x0610
+#define CLK_STAT_MUX_PCLK_G3D		0x0614
+#define CLK_ENABLE_ACLK_G3D		0x0800
+#define CLK_ENABLE_ACLK_G3D_BUS		0x0804
+#define CLK_ENABLE_PCLK_G3D		0x0900
+#define CLK_ENABLE_SCLK_HPM_G3D		0x0A00
+#define CLK_ENABLE_SCLK_ATE_G3D		0x0A04
+#define CLKOUT_CMU_G3D			0x0C00
+#define CLKOUT_CMU_G3D_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_G3D		0x0E00
+#define G3D_SFR_IGNORE_REQ_SYSCLK	0x0F28
+#define CLK_STOPCTRL_G3D		0x1000
+#define CMU_G3D_SPARE0			0x1100
+#define CMU_G3D_SPARE1			0x1104
+
+static const unsigned long g3d_clk_regs[] __initconst = {
+	CLK_CON_MUX_G3D_PLL_USER,
+	CLK_CON_MUX_BUS_PLL_USER_G3D,
+	CLK_CON_MUX_G3D,
+	CLK_CON_MUX_ACLK_G3D,
+	CLK_CON_MUX_PCLK_G3D,
+	CLK_CON_DIV_ACLK_G3D,
+	CLK_CON_DIV_PCLK_G3D,
+	CLK_CON_DIV_SCLK_HPM_G3D,
+	CLK_CON_DIV_SCLK_ATE_G3D,
+	CLK_STAT_MUX_G3D_PLL_USER,
+	CLK_STAT_MUX_BUS_PLL_USER_G3D,
+	CLK_STAT_MUX_G3D,
+	CLK_STAT_MUX_ACLK_G3D,
+	CLK_STAT_MUX_PCLK_G3D,
+	CLK_ENABLE_ACLK_G3D,
+	CLK_ENABLE_ACLK_G3D_BUS,
+	CLK_ENABLE_PCLK_G3D,
+	CLK_ENABLE_SCLK_HPM_G3D,
+	CLK_ENABLE_SCLK_ATE_G3D,
+	CLKOUT_CMU_G3D,
+	CLKOUT_CMU_G3D_DIV_STAT,
+	CLK_ENABLE_PDN_G3D,
+	G3D_SFR_IGNORE_REQ_SYSCLK,
+	CLK_STOPCTRL_G3D,
+	CMU_G3D_SPARE0,
+	CMU_G3D_SPARE1,
+};
+
+PNAME(g3d_mux_g3d_pll_user_p)	= { "oscclk", "fout_g3d_pll" };
+PNAME(g3d_mux_bus_pll_user_p)	= { "oscclk", "gout_top_sclk_bus_pll_g3d" };
+PNAME(g3d_mux_g3d_p)		= { "mout_g3d_g3d_pll_user",
+				    "mout_g3d_bus_pll_user" };
+
+static const struct samsung_mux_clock g3d_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_G3D_G3D_PLL_USER, "mout_g3d_g3d_pll_user",
+	    g3d_mux_g3d_pll_user_p, CLK_CON_MUX_G3D_PLL_USER, 12, 1),
+	MUX(CLK_MOUT_G3D_BUS_PLL_USER, "mout_g3d_bus_pll_user",
+	    g3d_mux_bus_pll_user_p, CLK_CON_MUX_BUS_PLL_USER_G3D, 12, 1),
+	MUX(CLK_MOUT_G3D_G3D, "mout_g3d_g3d", g3d_mux_g3d_p, CLK_CON_MUX_G3D,
+	    12, 1),
+};
+
+static const struct samsung_div_clock g3d_div_clks[] __initconst = {
+	DIV(CLK_DOUT_G3D_ACLK_G3D, "dout_g3d_aclk_g3d", "mout_g3d_g3d",
+	    CLK_CON_DIV_ACLK_G3D, 0, 3),
+	DIV(CLK_DOUT_G3D_PCLK_G3D, "dout_g3d_pclk_g3d", "dout_g3d_aclk_g3d",
+	    CLK_CON_DIV_PCLK_G3D, 0, 3),
+	DIV(CLK_DOUT_G3D_SCLK_HPM_G3D, "dout_g3d_sclk_hpm_g3d", "mout_g3d_g3d",
+	    CLK_CON_DIV_SCLK_HPM_G3D, 0, 2),
+	DIV(CLK_DOUT_G3D_SCLK_ATE_G3D, "dout_g3d_sclk_ate_g3d", "mout_g3d_g3d",
+	    CLK_CON_DIV_SCLK_ATE_G3D, 0, 4),
+};
+
+static const struct samsung_gate_clock g3d_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_G3D_ACLK_G3D, "gout_g3d_aclk_g3d", "dout_g3d_aclk_g3d",
+	     CLK_ENABLE_ACLK_G3D, 0, 0, 0),
+	GATE(CLK_GOUT_G3D_ACLK_GRAY_DEC, "gout_g3d_aclk_gray_dec",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 10,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_ACLK_SFW100_ACEL_G3D1,
+	     "gout_g3d_aclk_sfw100_acel_g3d1", "dout_g3d_aclk_g3d",
+	     CLK_ENABLE_ACLK_G3D_BUS, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_ACLK_SFW100_ACEL_G3D0,
+	     "gout_g3d_aclk_sfw100_acel_g3d0", "dout_g3d_aclk_g3d",
+	     CLK_ENABLE_ACLK_G3D_BUS, 8, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_ACLK_XIU_G3D, "gout_g3d_aclk_xiu_g3d",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 7, CLK_IS_CRITICAL,
+	     0),
+	GATE(CLK_GOUT_G3D_ACLK_PPMU_G3D1, "gout_g3d_aclk_ppmu_g3d1",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 6,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_ACLK_PPMU_G3D0, "gout_g3d_aclk_ppmu_g3d0",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_ACLK_ASYNCAPBM_G3D, "gout_g3d_aclk_asyncapbm_g3d",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 4, CLK_IS_CRITICAL,
+	     0),
+	GATE(CLK_GOUT_G3D_ACLK_ASYNCAXI_G3D, "gout_g3d_aclk_asyncaxi_g3d",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 3, CLK_IS_CRITICAL,
+	     0),
+	GATE(CLK_GOUT_G3D_ACLK_AXI_DS_G3D, "gout_g3d_aclk_axi_ds_g3d",
+	     "dout_g3d_aclk_g3d", CLK_ENABLE_ACLK_G3D_BUS, 2, CLK_IS_CRITICAL,
+	     0),
+	GATE(CLK_GOUT_G3D_ACLK_ACEL_LH_ASYNC_SI_G3D1,
+	     "gout_g3d_aclk_acel_lh_async_si_g3d1", "dout_g3d_aclk_g3d",
+	     CLK_ENABLE_ACLK_G3D_BUS, 1, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_ACLK_ACEL_LH_ASYNC_SI_G3D0,
+	     "gout_g3d_aclk_acel_lh_async_si_g3d0", "dout_g3d_aclk_g3d",
+	     CLK_ENABLE_ACLK_G3D_BUS, 0, CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_PCLK_SFW100_ACEL_G3D1,
+	     "gout_g3d_pclk_sfw100_acel_g3d1", "dout_g3d_pclk_g3d",
+	     CLK_ENABLE_PCLK_G3D, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_PCLK_SFW100_ACEL_G3D0,
+	     "gout_g3d_pclk_sfw100_acel_g3d0", "dout_g3d_pclk_g3d",
+	     CLK_ENABLE_PCLK_G3D, 8, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_PCLK_HPM_G3D, "gout_g3d_pclk_hpm_g3d",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 7,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_PCLK_PPMU_G3D1, "gout_g3d_pclk_ppmu_g3d1",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 6,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_PCLK_PPMU_G3D0, "gout_g3d_pclk_ppmu_g3d0",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_PCLK_PMU_G3D, "gout_g3d_pclk_pmu_g3d",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 4,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_ACLK_ASYNCAPBS_G3D, "gout_g3d_aclk_asyncapbs_g3d",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 3, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_PCLK_SYSREG_G3D, "gout_g3d_pclk_sysreg_g3d",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 2, 0, 0),
+	GATE(CLK_GOUT_G3D_ACLK_AXI2APB_G3DP, "gout_g3d_aclk_axi2apb_g3dp",
+	     "dout_g3d_pclk_g3d", CLK_ENABLE_PCLK_G3D, 1, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_ACLK_AXI_LH_ASYNC_MI_G3DP,
+	     "gout_g3d_aclk_axi_lh_async_mi_g3dp", "dout_g3d_pclk_g3d",
+	     CLK_ENABLE_PCLK_G3D, 0, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_SCLK_HPM2_G3D, "gout_g3d_sclk_hpm2_g3d",
+	     "dout_g3d_sclk_hpm_g3d", CLK_ENABLE_SCLK_HPM_G3D, 2,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_SCLK_HPM1_G3D, "gout_g3d_sclk_hpm1_g3d",
+	     "dout_g3d_sclk_hpm_g3d", CLK_ENABLE_SCLK_HPM_G3D, 1,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_SCLK_HPM0_G3D, "gout_g3d_sclk_hpm0_g3d",
+	     "dout_g3d_sclk_hpm_g3d", CLK_ENABLE_SCLK_HPM_G3D, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_G3D_SCLK_AXI_LH_ASYNC_SI_G3DIRAM,
+	     "gout_g3d_sclk_axi_lh_async_si_g3diram", "dout_g3d_sclk_ate_g3d",
+	     CLK_ENABLE_SCLK_ATE_G3D, 1, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_G3D_SCLK_ASYNCAXI_G3D, "gout_g3d_sclk_asyncaxi_g3d",
+	     "dout_g3d_sclk_ate_g3d", CLK_ENABLE_SCLK_ATE_G3D, 0,
+	     CLK_IS_CRITICAL, 0),
+};
+
+static const struct samsung_cmu_info g3d_cmu_info __initconst = {
+	.mux_clks		= g3d_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(g3d_mux_clks),
+	.div_clks		= g3d_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(g3d_div_clks),
+	.gate_clks		= g3d_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(g3d_gate_clks),
+	.nr_clk_ids		= G3D_NR_CLK,
+	.clk_regs		= g3d_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(g3d_clk_regs),
+};
+
+/* ---- CMU_MIF0 ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_MIF0 (0x10850000) */
+#define MIF0_PLL_LOCK				0x0000
+#define MIF0_PLL_CON0				0x0100
+#define MIF0_PLL_CON1				0x0104
+#define MIF0_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_MIF0_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_USER_MIF0		0x0204
+#define CLK_CON_MUX_ACLK_MIF0_PLL		0x0208
+#define CLK_CON_MUX_PCLK_MIF0			0x0210
+#define CLK_CON_MUX_SCLK_HPM_MIF0		0x0214
+#define CLK_CON_MUX_PCLK_SMC_MIF0		0x0218
+#define CLK_CON_DIV_PCLK_MIF0			0x0400
+#define CLK_CON_DIV_PCLK_SMC_MIF0		0x0404
+#define CLK_CON_DIV_SCLK_HPM_MIF0		0x0408
+#define CLK_STAT_MUX_MIF0_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_USER_MIF0		0x0604
+#define CLK_STAT_MUX_ACLK_MIF0_PLL		0x0608
+#define CLK_STAT_MUX_PCLK_MIF0			0x0610
+#define CLK_STAT_MUX_SCLK_HPM_MIF0		0x0614
+#define CLK_STAT_MUX_PCLK_SMC_MIF0		0x0618
+#define CLK_ENABLE_ACLK_MIF0			0x0800
+#define CLK_ENABLE_PCLK_MIF0			0x0900
+#define CLK_ENABLE_ACLK_MIF0_SECURE_DREX_TZ	0x0904
+#define CLK_ENABLE_SCLK_HPM_MIF0		0x0A00
+#define CLK_ENABLE_SCLK_RCLK_DREX_MIF0		0x0A04
+#define CG_CTRL_VAL_PCLK_MIF0			0x0900
+#define CG_CTRL_VAL_SCLK_HPM_MIF0		0x0A00
+#define CG_CTRL_VAL_SCLK_RCLK_DREX0		0x0A04
+#define CG_CTRL_VAL_DDRPHY0			0x0A08
+#define CLKOUT_CMU_MIF0				0x0C00
+#define CLKOUT_CMU_MIF0_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_MIF0			0x0E00
+#define MIF0_SFR_IGNORE_REQ_SYSCLK		0x0F28
+#define PSCDC_CTRL_MIF0				0x1000
+#define CLK_STOPCTRL_MIF0			0x1004
+#define CMU_MIF0_SPARE0				0x1100
+#define CMU_MIF0_SPARE1				0x1104
+#define CG_CTRL_MAN_PCLK_MIF0			0x1900
+#define CG_CTRL_MAN_SCLK_HPM_MIF0		0x1A00
+#define CG_CTRL_MAN_SCLK_RCLK_DREX0		0x1A04
+#define CG_CTRL_MAN_DDRPHY0			0x1A08
+#define CG_CTRL_STAT_PCLK_MIF0_0		0x1D00
+#define CG_CTRL_STAT_PCLK_MIF0_1		0x1D04
+#define CG_CTRL_STAT_SCLK_HPM_MIF0		0x1E00
+#define CG_CTRL_STAT_SCLK_RCLK_DREX0		0x1E04
+#define CG_CTRL_STAT_DDRPHY0			0x1E08
+#define QCH_CTRL_LH_AXI_P_MIF0			0x2000
+#define QCH_CTRL_PMU_MIF0			0x2004
+#define QCH_CTRL_SYSREG_MIF0			0x2008
+#define QCH_CTRL_CMU_MIF0			0x200C
+#define QCH_CTRL_SMC_MIF0			0x2010
+#define QSTATE_CTRL_PROMISE_MIF0		0x2400
+#define QSTATE_CTRL_RCLK_DREX0			0x2404
+
+static const unsigned long mif0_clk_regs[] __initconst = {
+	MIF0_PLL_LOCK,
+	MIF0_PLL_CON0,
+	MIF0_PLL_CON1,
+	MIF0_PLL_FREQ_DET,
+	CLK_CON_MUX_MIF0_PLL,
+	CLK_CON_MUX_BUS_PLL_USER_MIF0,
+	CLK_CON_MUX_ACLK_MIF0_PLL,
+	CLK_CON_MUX_PCLK_MIF0,
+	CLK_CON_MUX_SCLK_HPM_MIF0,
+	CLK_CON_MUX_PCLK_SMC_MIF0,
+	CLK_CON_DIV_PCLK_MIF0,
+	CLK_CON_DIV_PCLK_SMC_MIF0,
+	CLK_CON_DIV_SCLK_HPM_MIF0,
+	CLK_STAT_MUX_MIF0_PLL,
+	CLK_STAT_MUX_BUS_PLL_USER_MIF0,
+	CLK_STAT_MUX_ACLK_MIF0_PLL,
+	CLK_STAT_MUX_PCLK_MIF0,
+	CLK_STAT_MUX_SCLK_HPM_MIF0,
+	CLK_STAT_MUX_PCLK_SMC_MIF0,
+	CLK_ENABLE_ACLK_MIF0,
+	CLK_ENABLE_PCLK_MIF0,
+	CLK_ENABLE_ACLK_MIF0_SECURE_DREX_TZ,
+	CLK_ENABLE_SCLK_HPM_MIF0,
+	CLK_ENABLE_SCLK_RCLK_DREX_MIF0,
+	CG_CTRL_VAL_PCLK_MIF0,
+	CG_CTRL_VAL_SCLK_HPM_MIF0,
+	CG_CTRL_VAL_SCLK_RCLK_DREX0,
+	CG_CTRL_VAL_DDRPHY0,
+	CLKOUT_CMU_MIF0,
+	CLKOUT_CMU_MIF0_DIV_STAT,
+	CLK_ENABLE_PDN_MIF0,
+	MIF0_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL_MIF0,
+	CLK_STOPCTRL_MIF0,
+	CMU_MIF0_SPARE0,
+	CMU_MIF0_SPARE1,
+	CG_CTRL_MAN_PCLK_MIF0,
+	CG_CTRL_MAN_SCLK_HPM_MIF0,
+	CG_CTRL_MAN_SCLK_RCLK_DREX0,
+	CG_CTRL_MAN_DDRPHY0,
+	CG_CTRL_STAT_PCLK_MIF0_0,
+	CG_CTRL_STAT_PCLK_MIF0_1,
+	CG_CTRL_STAT_SCLK_HPM_MIF0,
+	CG_CTRL_STAT_SCLK_RCLK_DREX0,
+	CG_CTRL_STAT_DDRPHY0,
+	QCH_CTRL_LH_AXI_P_MIF0,
+	QCH_CTRL_PMU_MIF0,
+	QCH_CTRL_SYSREG_MIF0,
+	QCH_CTRL_CMU_MIF0,
+	QCH_CTRL_SMC_MIF0,
+	QSTATE_CTRL_PROMISE_MIF0,
+	QSTATE_CTRL_RCLK_DREX0,
+};
+
+static const struct samsung_pll_rate_table mif_pll_rates[] __initconst = {
+	PLL_1419X_RATE(26 * MHZ, 3588000000U, 207, 3, 0),
+	PLL_1419X_RATE(26 * MHZ, 3432000000U, 198, 3, 0),
+	PLL_1419X_RATE(26 * MHZ, 3078400000U, 296, 5, 0),
+	PLL_1419X_RATE(26 * MHZ, 2704000000U, 156, 3, 0),
+	PLL_1419X_RATE(26 * MHZ, 2288000000U, 132, 3, 0),
+	PLL_1419X_RATE(26 * MHZ, 2028000000U, 117, 3, 0),
+	PLL_1419X_RATE(26 * MHZ, 1690000000U, 195, 3, 1),
+	PLL_1419X_RATE(26 * MHZ, 1352000000U, 156, 3, 1),
+	PLL_1419X_RATE(26 * MHZ, 1092000000U, 126, 3, 1),
+	PLL_1419X_RATE(26 * MHZ, 841750000U, 259, 4, 2),
+	PLL_1419X_RATE(26 * MHZ, 572000000U, 132, 3, 2),
+	PLL_1419X_RATE(26 * MHZ, 416000000U, 192, 3, 3),
+};
+
+static const struct samsung_pll_clock mif0_pll_clks[] __initconst = {
+	PLL(pll_1419x, CLK_FOUT_MIF0_PLL, "fout_mif0_pll", "oscclk",
+	    MIF0_PLL_LOCK, MIF0_PLL_CON0, mif_pll_rates),
+};
+
+PNAME(mif0_mux_mif_pll_p)	= { "oscclk", "fout_mif0_pll" };
+PNAME(mif0_mux_bus_pll_user_p)	= { "oscclk", "gout_top_sclk_bus_pll_mif" };
+PNAME(mif0_mux_aclk_mif_pll_p)	= { "mout_mif0_mif_pll",
+				    "mout_mif0_bus_pll_user" };
+PNAME(mif0_mux_pclk_mif_p)	= { "mout_mif0_aclk_mif_pll",
+				    "mif0_ff_aclk_mif_pll_div2",
+				    "mif0_ff_aclk_mif_pll_div4" };
+PNAME(mif0_mux_sclk_hpm_mif_p)	= { "mout_mif0_aclk_mif_pll",
+				    "mif0_ff_aclk_mif_pll_div2",
+				    "mif0_ff_aclk_mif_pll_div4" };
+PNAME(mif0_mux_pclk_smc_p)	= { "mout_mif0_aclk_mif_pll",
+				    "mif0_ff_aclk_mif_pll_div2",
+				    "mif0_ff_aclk_mif_pll_div4",
+				    "u_dfi_clk_gen_mif0" };
+
+static const struct samsung_mux_clock mif0_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_MIF0_MIF_PLL, "mout_mif0_mif_pll", mif0_mux_mif_pll_p,
+	    CLK_CON_MUX_MIF0_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF0_BUS_PLL_USER, "mout_mif0_bus_pll_user",
+	    mif0_mux_bus_pll_user_p, CLK_CON_MUX_BUS_PLL_USER_MIF0, 12, 1),
+	MUX(CLK_MOUT_MIF0_ACLK_MIF_PLL, "mout_mif0_aclk_mif_pll",
+	    mif0_mux_aclk_mif_pll_p, CLK_CON_MUX_ACLK_MIF0_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF0_PCLK_MIF, "mout_mif0_pclk_mif", mif0_mux_pclk_mif_p,
+	    CLK_CON_MUX_PCLK_MIF0, 12, 2),
+	MUX(CLK_MOUT_MIF0_SCLK_HPM_MIF, "mout_mif0_sclk_hpm_mif",
+	    mif0_mux_sclk_hpm_mif_p, CLK_CON_MUX_SCLK_HPM_MIF0, 12, 2),
+	MUX(CLK_MOUT_MIF0_PCLK_SMC, "mout_mif0_pclk_smc", mif0_mux_pclk_smc_p,
+	    CLK_CON_MUX_PCLK_SMC_MIF0, 12, 2),
+};
+
+static const struct samsung_div_clock mif0_div_clks[] __initconst = {
+	DIV(CLK_DOUT_MIF0_PCLK_MIF, "dout_mif0_pclk_mif", "mout_mif0_pclk_mif",
+	    CLK_CON_DIV_PCLK_MIF0, 0, 3),
+	DIV(CLK_DOUT_MIF0_SCLK_HPM_MIF, "dout_mif0_sclk_hpm_mif",
+	    "mout_mif0_sclk_hpm_mif", CLK_CON_DIV_SCLK_HPM_MIF0, 0, 2),
+	DIV(CLK_DOUT_MIF0_PCLK_SMC, "dout_mif0_pclk_smc", "mout_mif0_pclk_smc",
+	    CLK_CON_DIV_PCLK_SMC_MIF0, 0, 3),
+};
+
+static const
+struct samsung_fixed_factor_clock mif0_fixed_factor_clks[] __initconst = {
+	FFACTOR(CLK_MIF0_FF_ACLK_MIF_PLL_DIV2,
+		"mif0_ff_aclk_mif_pll_div2", "mout_mif0_aclk_mif_pll",
+		1, 2, 0),
+	FFACTOR(CLK_MIF0_FF_ACLK_MIF_PLL_DIV4,
+		"mif0_ff_aclk_mif_pll_div4", "mout_mif0_aclk_mif_pll",
+		1, 4, 0),
+	FFACTOR(CLK_U_DFI_CLK_GEN_MIF0, "u_dfi_clk_gen_mif0",
+		"mout_mif0_aclk_mif_pll", 1, 4, 0),
+};
+
+static const struct samsung_gate_clock mif0_gate_clks[] __initconst = {
+	/* reading CLK_ENABLE_ACLK_MIF0 causes an abort */
+	GATE(CLK_GOUT_MIF0_PCLK_SMC1, "gout_mif0_pclk_smc1",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_DMC_MISC, "gout_mif0_pclk_dmc_misc",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 8, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_PPC_DEBUG, "gout_mif0_pclk_ppc_debug",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 7, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_PPC_DVFS, "gout_mif0_pclk_ppc_dvfs",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 6, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_SYSREG_MIF, "gout_mif0_pclk_sysreg_mif",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 5, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_HPM, "gout_mif0_pclk_hpm", "dout_mif0_pclk_mif",
+	     CLK_ENABLE_PCLK_MIF0, 4, 0, 0),
+	GATE(CLK_GOUT_MIF0_ACLK_AXI_ASYNC, "gout_mif0_aclk_axi_async",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 3, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_MIFP, "gout_mif0_pclk_mifp",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 2, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_PMU_MIF, "gout_mif0_pclk_pmu_mif",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 1, 0, 0),
+	GATE(CLK_GOUT_MIF0_PCLK_LPDDR4PHY, "gout_mif0_pclk_lpddr4phy",
+	     "dout_mif0_pclk_mif", CLK_ENABLE_PCLK_MIF0, 0, CLK_IS_CRITICAL, 0),
+	/* reading CLK_ENABLE_ACLK_MIF0_SECURE_DREX_TZ causes an abort */
+	GATE(CLK_GOUT_MIF0_SCLK_PROMISE, "gout_mif0_sclk_promise",
+	     "dout_mif0_sclk_hpm_mif", CLK_ENABLE_SCLK_HPM_MIF0, 0, 0, 0),
+	GATE(CLK_GOUT_MIF0_RCLK_DREX, "gout_mif0_rclk_drex", "oscclk",
+	     CLK_ENABLE_SCLK_RCLK_DREX_MIF0, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info mif0_cmu_info __initconst = {
+	.pll_clks		= mif0_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(mif0_pll_clks),
+	.mux_clks		= mif0_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(mif0_mux_clks),
+	.div_clks		= mif0_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(mif0_div_clks),
+	.gate_clks		= mif0_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(mif0_gate_clks),
+	.fixed_factor_clks	= mif0_fixed_factor_clks,
+	.nr_fixed_factor_clks	= ARRAY_SIZE(mif0_fixed_factor_clks),
+	.nr_clk_ids		= MIF0_NR_CLK,
+	.clk_regs		= mif0_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(mif0_clk_regs),
+};
+
+/* ---- CMU_MIF1 ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_MIF1 (0x10950000) */
+#define MIF1_PLL_LOCK				0x0000
+#define MIF1_PLL_CON0				0x0100
+#define MIF1_PLL_CON1				0x0104
+#define MIF1_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_MIF1_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_USER_MIF1		0x0204
+#define CLK_CON_MUX_ACLK_MIF1_PLL		0x0208
+#define CLK_CON_MUX_PCLK_MIF1			0x0210
+#define CLK_CON_MUX_SCLK_HPM_MIF1		0x0214
+#define CLK_CON_MUX_PCLK_SMC_MIF1		0x0218
+#define CLK_CON_DIV_PCLK_MIF1			0x0400
+#define CLK_CON_DIV_PCLK_SMC_MIF1		0x0404
+#define CLK_CON_DIV_SCLK_HPM_MIF1		0x0408
+#define CLK_STAT_MUX_MIF1_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_USER_MIF1		0x0604
+#define CLK_STAT_MUX_ACLK_MIF1_PLL		0x0608
+#define CLK_STAT_MUX_PCLK_MIF1			0x0610
+#define CLK_STAT_MUX_SCLK_HPM_MIF1		0x0614
+#define CLK_STAT_MUX_PCLK_SMC_MIF1		0x0618
+#define CLK_ENABLE_ACLK_MIF1			0x0800
+#define CLK_ENABLE_PCLK_MIF1			0x0900
+#define CLK_ENABLE_ACLK_MIF1_SECURE_DREX_TZ	0x0904
+#define CLK_ENABLE_SCLK_HPM_MIF1		0x0A00
+#define CLK_ENABLE_SCLK_RCLK_DREX_MIF1		0x0A04
+#define CG_CTRL_VAL_PCLK_MIF1			0x0900
+#define CG_CTRL_VAL_SCLK_HPM_MIF1		0x0A00
+#define CG_CTRL_VAL_SCLK_RCLK_DREX1		0x0A04
+#define CG_CTRL_VAL_DDRPHY1			0x0A08
+#define CLKOUT_CMU_MIF1				0x0C00
+#define CLKOUT_CMU_MIF1_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_MIF1			0x0E00
+#define MIF1_SFR_IGNORE_REQ_SYSCLK		0x0F28
+#define PSCDC_CTRL_MIF1				0x1000
+#define CLK_STOPCTRL_MIF1			0x1004
+#define CMU_MIF1_SPARE0				0x1100
+#define CMU_MIF1_SPARE1				0x1104
+#define CG_CTRL_MAN_PCLK_MIF1			0x1900
+#define CG_CTRL_MAN_SCLK_HPM_MIF1		0x1A00
+#define CG_CTRL_MAN_SCLK_RCLK_DREX1		0x1A04
+#define CG_CTRL_MAN_DDRPHY1			0x1A08
+#define CG_CTRL_STAT_PCLK_MIF1_0		0x1D00
+#define CG_CTRL_STAT_PCLK_MIF1_1		0x1D04
+#define CG_CTRL_STAT_SCLK_HPM_MIF1		0x1E00
+#define CG_CTRL_STAT_SCLK_RCLK_DREX1		0x1E04
+#define CG_CTRL_STAT_DDRPHY1			0x1E08
+#define QCH_CTRL_LH_AXI_P_MIF1			0x2000
+#define QCH_CTRL_PMU_MIF1			0x2004
+#define QCH_CTRL_SYSREG_MIF1			0x2008
+#define QCH_CTRL_CMU_MIF1			0x200C
+#define QCH_CTRL_SMC_MIF1			0x2010
+#define QSTATE_CTRL_PROMISE_MIF1		0x2400
+#define QSTATE_CTRL_RCLK_DREX1			0x2404
+
+static const unsigned long mif1_clk_regs[] __initconst = {
+	MIF1_PLL_LOCK,
+	MIF1_PLL_CON0,
+	MIF1_PLL_CON1,
+	MIF1_PLL_FREQ_DET,
+	CLK_CON_MUX_MIF1_PLL,
+	CLK_CON_MUX_BUS_PLL_USER_MIF1,
+	CLK_CON_MUX_ACLK_MIF1_PLL,
+	CLK_CON_MUX_PCLK_MIF1,
+	CLK_CON_MUX_SCLK_HPM_MIF1,
+	CLK_CON_MUX_PCLK_SMC_MIF1,
+	CLK_CON_DIV_PCLK_MIF1,
+	CLK_CON_DIV_PCLK_SMC_MIF1,
+	CLK_CON_DIV_SCLK_HPM_MIF1,
+	CLK_STAT_MUX_MIF1_PLL,
+	CLK_STAT_MUX_BUS_PLL_USER_MIF1,
+	CLK_STAT_MUX_ACLK_MIF1_PLL,
+	CLK_STAT_MUX_PCLK_MIF1,
+	CLK_STAT_MUX_SCLK_HPM_MIF1,
+	CLK_STAT_MUX_PCLK_SMC_MIF1,
+	CLK_ENABLE_ACLK_MIF1,
+	CLK_ENABLE_PCLK_MIF1,
+	CLK_ENABLE_ACLK_MIF1_SECURE_DREX_TZ,
+	CLK_ENABLE_SCLK_HPM_MIF1,
+	CLK_ENABLE_SCLK_RCLK_DREX_MIF1,
+	CG_CTRL_VAL_PCLK_MIF1,
+	CG_CTRL_VAL_SCLK_HPM_MIF1,
+	CG_CTRL_VAL_SCLK_RCLK_DREX1,
+	CG_CTRL_VAL_DDRPHY1,
+	CLKOUT_CMU_MIF1,
+	CLKOUT_CMU_MIF1_DIV_STAT,
+	CLK_ENABLE_PDN_MIF1,
+	MIF1_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL_MIF1,
+	CLK_STOPCTRL_MIF1,
+	CMU_MIF1_SPARE0,
+	CMU_MIF1_SPARE1,
+	CG_CTRL_MAN_PCLK_MIF1,
+	CG_CTRL_MAN_SCLK_HPM_MIF1,
+	CG_CTRL_MAN_SCLK_RCLK_DREX1,
+	CG_CTRL_MAN_DDRPHY1,
+	CG_CTRL_STAT_PCLK_MIF1_0,
+	CG_CTRL_STAT_PCLK_MIF1_1,
+	CG_CTRL_STAT_SCLK_HPM_MIF1,
+	CG_CTRL_STAT_SCLK_RCLK_DREX1,
+	CG_CTRL_STAT_DDRPHY1,
+	QCH_CTRL_LH_AXI_P_MIF1,
+	QCH_CTRL_PMU_MIF1,
+	QCH_CTRL_SYSREG_MIF1,
+	QCH_CTRL_CMU_MIF1,
+	QCH_CTRL_SMC_MIF1,
+	QSTATE_CTRL_PROMISE_MIF1,
+	QSTATE_CTRL_RCLK_DREX1,
+};
+
+static const struct samsung_pll_clock mif1_pll_clks[] __initconst = {
+	PLL(pll_1419x, CLK_FOUT_MIF1_PLL, "fout_mif1_pll", "oscclk",
+	    MIF1_PLL_LOCK, MIF1_PLL_CON0, mif_pll_rates),
+};
+
+PNAME(mif1_mux_mif_pll_p)	= { "oscclk", "fout_mif1_pll" };
+PNAME(mif1_mux_bus_pll_user_p)	= { "oscclk", "gout_top_sclk_bus_pll_mif" };
+PNAME(mif1_mux_aclk_mif_pll_p)	= { "mout_mif1_mif_pll",
+				    "mout_mif1_bus_pll_user" };
+PNAME(mif1_mux_pclk_mif_p)	= { "mout_mif1_aclk_mif_pll",
+				    "mif1_ff_aclk_mif_pll_div2",
+				    "mif1_ff_aclk_mif_pll_div4" };
+PNAME(mif1_mux_sclk_hpm_mif_p)	= { "mout_mif1_aclk_mif_pll",
+				    "mif1_ff_aclk_mif_pll_div2",
+				    "mif1_ff_aclk_mif_pll_div4" };
+PNAME(mif1_mux_pclk_smc_p)	= { "mout_mif1_aclk_mif_pll",
+				    "mif1_ff_aclk_mif_pll_div2",
+				    "mif1_ff_aclk_mif_pll_div4",
+				    "u_dfi_clk_gen_mif1" };
+
+static const struct samsung_mux_clock mif1_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_MIF1_MIF_PLL, "mout_mif1_mif_pll", mif1_mux_mif_pll_p,
+	    CLK_CON_MUX_MIF1_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF1_BUS_PLL_USER, "mout_mif1_bus_pll_user",
+	    mif1_mux_bus_pll_user_p, CLK_CON_MUX_BUS_PLL_USER_MIF1, 12, 1),
+	MUX(CLK_MOUT_MIF1_ACLK_MIF_PLL, "mout_mif1_aclk_mif_pll",
+	    mif1_mux_aclk_mif_pll_p, CLK_CON_MUX_ACLK_MIF1_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF1_PCLK_MIF, "mout_mif1_pclk_mif", mif1_mux_pclk_mif_p,
+	    CLK_CON_MUX_PCLK_MIF1, 12, 2),
+	MUX(CLK_MOUT_MIF1_SCLK_HPM_MIF, "mout_mif1_sclk_hpm_mif",
+	    mif1_mux_sclk_hpm_mif_p, CLK_CON_MUX_SCLK_HPM_MIF1, 12, 2),
+	MUX(CLK_MOUT_MIF1_PCLK_SMC, "mout_mif1_pclk_smc", mif1_mux_pclk_smc_p,
+	    CLK_CON_MUX_PCLK_SMC_MIF1, 12, 2),
+};
+
+static const struct samsung_div_clock mif1_div_clks[] __initconst = {
+	DIV(CLK_DOUT_MIF1_PCLK_MIF, "dout_mif1_pclk_mif", "mout_mif1_pclk_mif",
+	    CLK_CON_DIV_PCLK_MIF1, 0, 3),
+	DIV(CLK_DOUT_MIF1_SCLK_HPM_MIF, "dout_mif1_sclk_hpm_mif",
+	    "mout_mif1_sclk_hpm_mif", CLK_CON_DIV_SCLK_HPM_MIF1, 0, 2),
+	DIV(CLK_DOUT_MIF1_PCLK_SMC, "dout_mif1_pclk_smc", "mout_mif1_pclk_smc",
+	    CLK_CON_DIV_PCLK_SMC_MIF1, 0, 3),
+};
+
+static const
+struct samsung_fixed_factor_clock mif1_fixed_factor_clks[] __initconst = {
+	FFACTOR(CLK_MIF1_FF_ACLK_MIF_PLL_DIV2,
+		"mif1_ff_aclk_mif_pll_div2", "mout_mif1_aclk_mif_pll",
+		1, 2, 0),
+	FFACTOR(CLK_MIF1_FF_ACLK_MIF_PLL_DIV4,
+		"mif1_ff_aclk_mif_pll_div4", "mout_mif1_aclk_mif_pll",
+		1, 4, 0),
+	FFACTOR(CLK_U_DFI_CLK_GEN_MIF1, "u_dfi_clk_gen_mif1",
+		"mout_mif1_aclk_mif_pll", 1, 4, 0),
+};
+
+static const struct samsung_gate_clock mif1_gate_clks[] __initconst = {
+	/* reading CLK_ENABLE_ACLK_MIF1 causes an abort */
+	GATE(CLK_GOUT_MIF1_PCLK_SMC1, "gout_mif1_pclk_smc1",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_DMC_MISC, "gout_mif1_pclk_dmc_misc",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 8, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_PPC_DEBUG, "gout_mif1_pclk_ppc_debug",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 7, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_PPC_DVFS, "gout_mif1_pclk_ppc_dvfs",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 6, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_SYSREG_MIF, "gout_mif1_pclk_sysreg_mif",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 5, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_HPM, "gout_mif1_pclk_hpm", "dout_mif1_pclk_mif",
+	     CLK_ENABLE_PCLK_MIF1, 4, 0, 0),
+	GATE(CLK_GOUT_MIF1_ACLK_AXI_ASYNC, "gout_mif1_aclk_axi_async",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 3, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_MIFP, "gout_mif1_pclk_mifp",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 2, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_PMU_MIF, "gout_mif1_pclk_pmu_mif",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 1, 0, 0),
+	GATE(CLK_GOUT_MIF1_PCLK_LPDDR4PHY, "gout_mif1_pclk_lpddr4phy",
+	     "dout_mif1_pclk_mif", CLK_ENABLE_PCLK_MIF1, 0, CLK_IS_CRITICAL, 0),
+	/* reading CLK_ENABLE_ACLK_MIF1_SECURE_DREX_TZ causes an abort */
+	GATE(CLK_GOUT_MIF1_SCLK_PROMISE, "gout_mif1_sclk_promise",
+	     "dout_mif1_sclk_hpm_mif", CLK_ENABLE_SCLK_HPM_MIF1, 0, 0, 0),
+	GATE(CLK_GOUT_MIF1_RCLK_DREX, "gout_mif1_rclk_drex", "oscclk",
+	     CLK_ENABLE_SCLK_RCLK_DREX_MIF1, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info mif1_cmu_info __initconst = {
+	.pll_clks		= mif1_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(mif1_pll_clks),
+	.mux_clks		= mif1_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(mif1_mux_clks),
+	.div_clks		= mif1_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(mif1_div_clks),
+	.gate_clks		= mif1_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(mif1_gate_clks),
+	.fixed_factor_clks	= mif1_fixed_factor_clks,
+	.nr_fixed_factor_clks	= ARRAY_SIZE(mif1_fixed_factor_clks),
+	.nr_clk_ids		= MIF1_NR_CLK,
+	.clk_regs		= mif1_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(mif1_clk_regs),
+};
+
+/* ---- CMU_MIF2 ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_MIF2 (0x10A50000) */
+#define MIF2_PLL_LOCK				0x0000
+#define MIF2_PLL_CON0				0x0100
+#define MIF2_PLL_CON1				0x0104
+#define MIF2_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_MIF2_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_USER_MIF2		0x0204
+#define CLK_CON_MUX_ACLK_MIF2_PLL		0x0208
+#define CLK_CON_MUX_PCLK_MIF2			0x0210
+#define CLK_CON_MUX_SCLK_HPM_MIF2		0x0214
+#define CLK_CON_MUX_PCLK_SMC_MIF2		0x0218
+#define CLK_CON_DIV_PCLK_MIF2			0x0400
+#define CLK_CON_DIV_PCLK_SMC_MIF2		0x0404
+#define CLK_CON_DIV_SCLK_HPM_MIF2		0x0408
+#define CLK_STAT_MUX_MIF2_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_USER_MIF2		0x0604
+#define CLK_STAT_MUX_ACLK_MIF2_PLL		0x0608
+#define CLK_STAT_MUX_PCLK_MIF2			0x0610
+#define CLK_STAT_MUX_SCLK_HPM_MIF2		0x0614
+#define CLK_STAT_MUX_PCLK_SMC_MIF2		0x0618
+#define CLK_ENABLE_ACLK_MIF2			0x0800
+#define CLK_ENABLE_PCLK_MIF2			0x0900
+#define CLK_ENABLE_ACLK_MIF2_SECURE_DREX_TZ	0x0904
+#define CLK_ENABLE_SCLK_HPM_MIF2		0x0A00
+#define CLK_ENABLE_SCLK_RCLK_DREX_MIF2		0x0A04
+#define CG_CTRL_VAL_PCLK_MIF2			0x0900
+#define CG_CTRL_VAL_SCLK_HPM_MIF2		0x0A00
+#define CG_CTRL_VAL_SCLK_RCLK_DREX2		0x0A04
+#define CG_CTRL_VAL_DDRPHY2			0x0A08
+#define CLKOUT_CMU_MIF2				0x0C00
+#define CLKOUT_CMU_MIF2_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_MIF2			0x0E00
+#define MIF2_SFR_IGNORE_REQ_SYSCLK		0x0F28
+#define PSCDC_CTRL_MIF2				0x1000
+#define CLK_STOPCTRL_MIF2			0x1004
+#define CMU_MIF2_SPARE0				0x1100
+#define CMU_MIF2_SPARE1				0x1104
+#define CG_CTRL_MAN_PCLK_MIF2			0x1900
+#define CG_CTRL_MAN_SCLK_HPM_MIF2		0x1A00
+#define CG_CTRL_MAN_SCLK_RCLK_DREX2		0x1A04
+#define CG_CTRL_MAN_DDRPHY2			0x1A08
+#define CG_CTRL_STAT_PCLK_MIF2_0		0x1D00
+#define CG_CTRL_STAT_PCLK_MIF2_1		0x1D04
+#define CG_CTRL_STAT_SCLK_HPM_MIF2		0x1E00
+#define CG_CTRL_STAT_SCLK_RCLK_DREX2		0x1E04
+#define CG_CTRL_STAT_DDRPHY2			0x1E08
+#define QCH_CTRL_LH_AXI_P_MIF2			0x2000
+#define QCH_CTRL_PMU_MIF2			0x2004
+#define QCH_CTRL_SYSREG_MIF2			0x2008
+#define QCH_CTRL_CMU_MIF2			0x200C
+#define QCH_CTRL_SMC_MIF2			0x2010
+#define QSTATE_CTRL_PROMISE_MIF2		0x2400
+#define QSTATE_CTRL_RCLK_DREX2			0x2404
+
+static const unsigned long mif2_clk_regs[] __initconst = {
+	MIF2_PLL_LOCK,
+	MIF2_PLL_CON0,
+	MIF2_PLL_CON1,
+	MIF2_PLL_FREQ_DET,
+	CLK_CON_MUX_MIF2_PLL,
+	CLK_CON_MUX_BUS_PLL_USER_MIF2,
+	CLK_CON_MUX_ACLK_MIF2_PLL,
+	CLK_CON_MUX_PCLK_MIF2,
+	CLK_CON_MUX_SCLK_HPM_MIF2,
+	CLK_CON_MUX_PCLK_SMC_MIF2,
+	CLK_CON_DIV_PCLK_MIF2,
+	CLK_CON_DIV_PCLK_SMC_MIF2,
+	CLK_CON_DIV_SCLK_HPM_MIF2,
+	CLK_STAT_MUX_MIF2_PLL,
+	CLK_STAT_MUX_BUS_PLL_USER_MIF2,
+	CLK_STAT_MUX_ACLK_MIF2_PLL,
+	CLK_STAT_MUX_PCLK_MIF2,
+	CLK_STAT_MUX_SCLK_HPM_MIF2,
+	CLK_STAT_MUX_PCLK_SMC_MIF2,
+	CLK_ENABLE_ACLK_MIF2,
+	CLK_ENABLE_PCLK_MIF2,
+	CLK_ENABLE_ACLK_MIF2_SECURE_DREX_TZ,
+	CLK_ENABLE_SCLK_HPM_MIF2,
+	CLK_ENABLE_SCLK_RCLK_DREX_MIF2,
+	CG_CTRL_VAL_PCLK_MIF2,
+	CG_CTRL_VAL_SCLK_HPM_MIF2,
+	CG_CTRL_VAL_SCLK_RCLK_DREX2,
+	CG_CTRL_VAL_DDRPHY2,
+	CLKOUT_CMU_MIF2,
+	CLKOUT_CMU_MIF2_DIV_STAT,
+	CLK_ENABLE_PDN_MIF2,
+	MIF2_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL_MIF2,
+	CLK_STOPCTRL_MIF2,
+	CMU_MIF2_SPARE0,
+	CMU_MIF2_SPARE1,
+	CG_CTRL_MAN_PCLK_MIF2,
+	CG_CTRL_MAN_SCLK_HPM_MIF2,
+	CG_CTRL_MAN_SCLK_RCLK_DREX2,
+	CG_CTRL_MAN_DDRPHY2,
+	CG_CTRL_STAT_PCLK_MIF2_0,
+	CG_CTRL_STAT_PCLK_MIF2_1,
+	CG_CTRL_STAT_SCLK_HPM_MIF2,
+	CG_CTRL_STAT_SCLK_RCLK_DREX2,
+	CG_CTRL_STAT_DDRPHY2,
+	QCH_CTRL_LH_AXI_P_MIF2,
+	QCH_CTRL_PMU_MIF2,
+	QCH_CTRL_SYSREG_MIF2,
+	QCH_CTRL_CMU_MIF2,
+	QCH_CTRL_SMC_MIF2,
+	QSTATE_CTRL_PROMISE_MIF2,
+	QSTATE_CTRL_RCLK_DREX2,
+};
+
+static const struct samsung_pll_clock mif2_pll_clks[] __initconst = {
+	PLL(pll_1419x, CLK_FOUT_MIF2_PLL, "fout_mif2_pll", "oscclk",
+	    MIF2_PLL_LOCK, MIF2_PLL_CON0, mif_pll_rates),
+};
+
+PNAME(mif2_mux_mif_pll_p)	= { "oscclk", "fout_mif2_pll" };
+PNAME(mif2_mux_bus_pll_user_p)	= { "oscclk", "gout_top_sclk_bus_pll_mif" };
+PNAME(mif2_mux_aclk_mif_pll_p)	= { "mout_mif2_mif_pll",
+				    "mout_mif2_bus_pll_user" };
+PNAME(mif2_mux_pclk_mif_p)	= { "mout_mif2_aclk_mif_pll",
+				    "mif2_ff_aclk_mif_pll_div2",
+				    "mif2_ff_aclk_mif_pll_div4" };
+PNAME(mif2_mux_sclk_hpm_mif_p)	= { "mout_mif2_aclk_mif_pll",
+				    "mif2_ff_aclk_mif_pll_div2",
+				    "mif2_ff_aclk_mif_pll_div4" };
+PNAME(mif2_mux_pclk_smc_p)	= { "mout_mif2_aclk_mif_pll",
+				    "mif2_ff_aclk_mif_pll_div2",
+				    "mif2_ff_aclk_mif_pll_div4",
+				    "u_dfi_clk_gen_mif2" };
+
+static const struct samsung_mux_clock mif2_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_MIF2_MIF_PLL, "mout_mif2_mif_pll", mif2_mux_mif_pll_p,
+	    CLK_CON_MUX_MIF2_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF2_BUS_PLL_USER, "mout_mif2_bus_pll_user",
+	    mif2_mux_bus_pll_user_p, CLK_CON_MUX_BUS_PLL_USER_MIF2, 12, 1),
+	MUX(CLK_MOUT_MIF2_ACLK_MIF_PLL, "mout_mif2_aclk_mif_pll",
+	    mif2_mux_aclk_mif_pll_p, CLK_CON_MUX_ACLK_MIF2_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF2_PCLK_MIF, "mout_mif2_pclk_mif", mif2_mux_pclk_mif_p,
+	    CLK_CON_MUX_PCLK_MIF2, 12, 2),
+	MUX(CLK_MOUT_MIF2_SCLK_HPM_MIF, "mout_mif2_sclk_hpm_mif",
+	    mif2_mux_sclk_hpm_mif_p, CLK_CON_MUX_SCLK_HPM_MIF2, 12, 2),
+	MUX(CLK_MOUT_MIF2_PCLK_SMC, "mout_mif2_pclk_smc", mif2_mux_pclk_smc_p,
+	    CLK_CON_MUX_PCLK_SMC_MIF2, 12, 2),
+};
+
+static const struct samsung_div_clock mif2_div_clks[] __initconst = {
+	DIV(CLK_DOUT_MIF2_PCLK_MIF, "dout_mif2_pclk_mif", "mout_mif2_pclk_mif",
+	    CLK_CON_DIV_PCLK_MIF2, 0, 3),
+	DIV(CLK_DOUT_MIF2_SCLK_HPM_MIF, "dout_mif2_sclk_hpm_mif",
+	    "mout_mif2_sclk_hpm_mif", CLK_CON_DIV_SCLK_HPM_MIF2, 0, 2),
+	DIV(CLK_DOUT_MIF2_PCLK_SMC, "dout_mif2_pclk_smc", "mout_mif2_pclk_smc",
+	    CLK_CON_DIV_PCLK_SMC_MIF2, 0, 3),
+};
+
+static const
+struct samsung_fixed_factor_clock mif2_fixed_factor_clks[] __initconst = {
+	FFACTOR(CLK_MIF2_FF_ACLK_MIF_PLL_DIV2,
+		"mif2_ff_aclk_mif_pll_div2", "mout_mif2_aclk_mif_pll",
+		1, 2, 0),
+	FFACTOR(CLK_MIF2_FF_ACLK_MIF_PLL_DIV4,
+		"mif2_ff_aclk_mif_pll_div4", "mout_mif2_aclk_mif_pll",
+		1, 4, 0),
+	FFACTOR(CLK_U_DFI_CLK_GEN_MIF2, "u_dfi_clk_gen_mif2",
+		"mout_mif2_aclk_mif_pll", 1, 4, 0),
+};
+
+static const struct samsung_gate_clock mif2_gate_clks[] __initconst = {
+	/* reading CLK_ENABLE_ACLK_MIF2 causes an abort */
+	GATE(CLK_GOUT_MIF2_PCLK_SMC1, "gout_mif2_pclk_smc1",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_DMC_MISC, "gout_mif2_pclk_dmc_misc",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 8, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_PPC_DEBUG, "gout_mif2_pclk_ppc_debug",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 7, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_PPC_DVFS, "gout_mif2_pclk_ppc_dvfs",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 6, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_SYSREG_MIF, "gout_mif2_pclk_sysreg_mif",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 5, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_HPM, "gout_mif2_pclk_hpm", "dout_mif2_pclk_mif",
+	     CLK_ENABLE_PCLK_MIF2, 4, 0, 0),
+	GATE(CLK_GOUT_MIF2_ACLK_AXI_ASYNC, "gout_mif2_aclk_axi_async",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 3, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_MIFP, "gout_mif2_pclk_mifp",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 2, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_PMU_MIF, "gout_mif2_pclk_pmu_mif",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 1, 0, 0),
+	GATE(CLK_GOUT_MIF2_PCLK_LPDDR4PHY, "gout_mif2_pclk_lpddr4phy",
+	     "dout_mif2_pclk_mif", CLK_ENABLE_PCLK_MIF2, 0, CLK_IS_CRITICAL, 0),
+	/* reading CLK_ENABLE_ACLK_MIF2_SECURE_DREX_TZ causes an abort */
+	GATE(CLK_GOUT_MIF2_SCLK_PROMISE, "gout_mif2_sclk_promise",
+	     "dout_mif2_sclk_hpm_mif", CLK_ENABLE_SCLK_HPM_MIF2, 0, 0, 0),
+	GATE(CLK_GOUT_MIF2_RCLK_DREX, "gout_mif2_rclk_drex", "oscclk",
+	     CLK_ENABLE_SCLK_RCLK_DREX_MIF2, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info mif2_cmu_info __initconst = {
+	.pll_clks		= mif2_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(mif2_pll_clks),
+	.mux_clks		= mif2_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(mif2_mux_clks),
+	.div_clks		= mif2_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(mif2_div_clks),
+	.gate_clks		= mif2_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(mif2_gate_clks),
+	.fixed_factor_clks	= mif2_fixed_factor_clks,
+	.nr_fixed_factor_clks	= ARRAY_SIZE(mif2_fixed_factor_clks),
+	.nr_clk_ids		= MIF2_NR_CLK,
+	.clk_regs		= mif2_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(mif2_clk_regs),
+};
+
+/* ---- CMU_MIF3 ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_MIF3 (0x10B50000) */
+#define MIF3_PLL_LOCK				0x0000
+#define MIF3_PLL_CON0				0x0100
+#define MIF3_PLL_CON1				0x0104
+#define MIF3_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_MIF3_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_USER_MIF3		0x0204
+#define CLK_CON_MUX_ACLK_MIF3_PLL		0x0208
+#define CLK_CON_MUX_PCLK_MIF3			0x0210
+#define CLK_CON_MUX_SCLK_HPM_MIF3		0x0214
+#define CLK_CON_MUX_PCLK_SMC_MIF3		0x0218
+#define CLK_CON_DIV_PCLK_MIF3			0x0400
+#define CLK_CON_DIV_PCLK_SMC_MIF3		0x0404
+#define CLK_CON_DIV_SCLK_HPM_MIF3		0x0408
+#define CLK_STAT_MUX_MIF3_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_USER_MIF3		0x0604
+#define CLK_STAT_MUX_ACLK_MIF3_PLL		0x0608
+#define CLK_STAT_MUX_PCLK_MIF3			0x0610
+#define CLK_STAT_MUX_SCLK_HPM_MIF3		0x0614
+#define CLK_STAT_MUX_PCLK_SMC_MIF3		0x0618
+#define CLK_ENABLE_ACLK_MIF3			0x0800
+#define CLK_ENABLE_PCLK_MIF3			0x0900
+#define CLK_ENABLE_ACLK_MIF3_SECURE_DREX_TZ	0x0904
+#define CLK_ENABLE_SCLK_HPM_MIF3		0x0A00
+#define CLK_ENABLE_SCLK_RCLK_DREX_MIF3		0x0A04
+#define CG_CTRL_VAL_PCLK_MIF3			0x0900
+#define CG_CTRL_VAL_SCLK_HPM_MIF3		0x0A00
+#define CG_CTRL_VAL_SCLK_RCLK_DREX3		0x0A04
+#define CG_CTRL_VAL_DDRPHY3			0x0A08
+#define CLKOUT_CMU_MIF3				0x0C00
+#define CLKOUT_CMU_MIF3_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_MIF3			0x0E00
+#define MIF3_SFR_IGNORE_REQ_SYSCLK		0x0F28
+#define PSCDC_CTRL_MIF3				0x1000
+#define CLK_STOPCTRL_MIF3			0x1004
+#define CMU_MIF3_SPARE0				0x1100
+#define CMU_MIF3_SPARE1				0x1104
+#define CG_CTRL_MAN_PCLK_MIF3			0x1900
+#define CG_CTRL_MAN_SCLK_HPM_MIF3		0x1A00
+#define CG_CTRL_MAN_SCLK_RCLK_DREX3		0x1A04
+#define CG_CTRL_MAN_DDRPHY3			0x1A08
+#define CG_CTRL_STAT_PCLK_MIF3_0		0x1D00
+#define CG_CTRL_STAT_PCLK_MIF3_1		0x1D04
+#define CG_CTRL_STAT_SCLK_HPM_MIF3		0x1E00
+#define CG_CTRL_STAT_SCLK_RCLK_DREX3		0x1E04
+#define CG_CTRL_STAT_DDRPHY3			0x1E08
+#define QCH_CTRL_LH_AXI_P_MIF3			0x2000
+#define QCH_CTRL_PMU_MIF3			0x2004
+#define QCH_CTRL_SYSREG_MIF3			0x2008
+#define QCH_CTRL_CMU_MIF3			0x200C
+#define QCH_CTRL_SMC_MIF3			0x2010
+#define QSTATE_CTRL_PROMISE_MIF3		0x2400
+#define QSTATE_CTRL_RCLK_DREX3			0x2404
+
+static const unsigned long mif3_clk_regs[] __initconst = {
+	MIF3_PLL_LOCK,
+	MIF3_PLL_CON0,
+	MIF3_PLL_CON1,
+	MIF3_PLL_FREQ_DET,
+	CLK_CON_MUX_MIF3_PLL,
+	CLK_CON_MUX_BUS_PLL_USER_MIF3,
+	CLK_CON_MUX_ACLK_MIF3_PLL,
+	CLK_CON_MUX_PCLK_MIF3,
+	CLK_CON_MUX_SCLK_HPM_MIF3,
+	CLK_CON_MUX_PCLK_SMC_MIF3,
+	CLK_CON_DIV_PCLK_MIF3,
+	CLK_CON_DIV_PCLK_SMC_MIF3,
+	CLK_CON_DIV_SCLK_HPM_MIF3,
+	CLK_STAT_MUX_MIF3_PLL,
+	CLK_STAT_MUX_BUS_PLL_USER_MIF3,
+	CLK_STAT_MUX_ACLK_MIF3_PLL,
+	CLK_STAT_MUX_PCLK_MIF3,
+	CLK_STAT_MUX_SCLK_HPM_MIF3,
+	CLK_STAT_MUX_PCLK_SMC_MIF3,
+	CLK_ENABLE_ACLK_MIF3,
+	CLK_ENABLE_PCLK_MIF3,
+	CLK_ENABLE_ACLK_MIF3_SECURE_DREX_TZ,
+	CLK_ENABLE_SCLK_HPM_MIF3,
+	CLK_ENABLE_SCLK_RCLK_DREX_MIF3,
+	CG_CTRL_VAL_PCLK_MIF3,
+	CG_CTRL_VAL_SCLK_HPM_MIF3,
+	CG_CTRL_VAL_SCLK_RCLK_DREX3,
+	CG_CTRL_VAL_DDRPHY3,
+	CLKOUT_CMU_MIF3,
+	CLKOUT_CMU_MIF3_DIV_STAT,
+	CLK_ENABLE_PDN_MIF3,
+	MIF3_SFR_IGNORE_REQ_SYSCLK,
+	PSCDC_CTRL_MIF3,
+	CLK_STOPCTRL_MIF3,
+	CMU_MIF3_SPARE0,
+	CMU_MIF3_SPARE1,
+	CG_CTRL_MAN_PCLK_MIF3,
+	CG_CTRL_MAN_SCLK_HPM_MIF3,
+	CG_CTRL_MAN_SCLK_RCLK_DREX3,
+	CG_CTRL_MAN_DDRPHY3,
+	CG_CTRL_STAT_PCLK_MIF3_0,
+	CG_CTRL_STAT_PCLK_MIF3_1,
+	CG_CTRL_STAT_SCLK_HPM_MIF3,
+	CG_CTRL_STAT_SCLK_RCLK_DREX3,
+	CG_CTRL_STAT_DDRPHY3,
+	QCH_CTRL_LH_AXI_P_MIF3,
+	QCH_CTRL_PMU_MIF3,
+	QCH_CTRL_SYSREG_MIF3,
+	QCH_CTRL_CMU_MIF3,
+	QCH_CTRL_SMC_MIF3,
+	QSTATE_CTRL_PROMISE_MIF3,
+	QSTATE_CTRL_RCLK_DREX3,
+};
+
+static const struct samsung_pll_clock mif3_pll_clks[] __initconst = {
+	PLL(pll_1419x, CLK_FOUT_MIF3_PLL, "fout_mif3_pll", "oscclk",
+	    MIF3_PLL_LOCK, MIF3_PLL_CON0, mif_pll_rates),
+};
+
+PNAME(mif3_mux_mif_pll_p)	= { "oscclk", "fout_mif3_pll" };
+PNAME(mif3_mux_bus_pll_user_p)	= { "oscclk", "gout_top_sclk_bus_pll_mif" };
+PNAME(mif3_mux_aclk_mif_pll_p)	= { "mout_mif3_mif_pll",
+				    "mout_mif3_bus_pll_user" };
+PNAME(mif3_mux_pclk_mif_p)	= { "mout_mif3_aclk_mif_pll",
+				    "mif3_ff_aclk_mif_pll_div2",
+				    "mif3_ff_aclk_mif_pll_div4" };
+PNAME(mif3_mux_sclk_hpm_mif_p)	= { "mout_mif3_aclk_mif_pll",
+				    "mif3_ff_aclk_mif_pll_div2",
+				    "mif3_ff_aclk_mif_pll_div4" };
+PNAME(mif3_mux_pclk_smc_p)	= { "mout_mif3_aclk_mif_pll",
+				    "mif3_ff_aclk_mif_pll_div2",
+				    "mif3_ff_aclk_mif_pll_div4",
+				    "u_dfi_clk_gen_mif3" };
+
+static const struct samsung_mux_clock mif3_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_MIF3_MIF_PLL, "mout_mif3_mif_pll", mif3_mux_mif_pll_p,
+	    CLK_CON_MUX_MIF3_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF3_BUS_PLL_USER, "mout_mif3_bus_pll_user",
+	    mif3_mux_bus_pll_user_p, CLK_CON_MUX_BUS_PLL_USER_MIF3, 12, 1),
+	MUX(CLK_MOUT_MIF3_ACLK_MIF_PLL, "mout_mif3_aclk_mif_pll",
+	    mif3_mux_aclk_mif_pll_p, CLK_CON_MUX_ACLK_MIF3_PLL, 12, 1),
+	MUX(CLK_MOUT_MIF3_PCLK_MIF, "mout_mif3_pclk_mif", mif3_mux_pclk_mif_p,
+	    CLK_CON_MUX_PCLK_MIF3, 12, 2),
+	MUX(CLK_MOUT_MIF3_SCLK_HPM_MIF, "mout_mif3_sclk_hpm_mif",
+	    mif3_mux_sclk_hpm_mif_p, CLK_CON_MUX_SCLK_HPM_MIF3, 12, 2),
+	MUX(CLK_MOUT_MIF3_PCLK_SMC, "mout_mif3_pclk_smc", mif3_mux_pclk_smc_p,
+	    CLK_CON_MUX_PCLK_SMC_MIF3, 12, 2),
+};
+
+static const struct samsung_div_clock mif3_div_clks[] __initconst = {
+	DIV(CLK_DOUT_MIF3_PCLK_MIF, "dout_mif3_pclk_mif", "mout_mif3_pclk_mif",
+	    CLK_CON_DIV_PCLK_MIF3, 0, 3),
+	DIV(CLK_DOUT_MIF3_SCLK_HPM_MIF, "dout_mif3_sclk_hpm_mif",
+	    "mout_mif3_sclk_hpm_mif", CLK_CON_DIV_SCLK_HPM_MIF3, 0, 2),
+	DIV(CLK_DOUT_MIF3_PCLK_SMC, "dout_mif3_pclk_smc", "mout_mif3_pclk_smc",
+	    CLK_CON_DIV_PCLK_SMC_MIF3, 0, 3),
+};
+
+static const
+struct samsung_fixed_factor_clock mif3_fixed_factor_clks[] __initconst = {
+	FFACTOR(CLK_MIF3_FF_ACLK_MIF_PLL_DIV2,
+		"mif3_ff_aclk_mif_pll_div2", "mout_mif3_aclk_mif_pll",
+		1, 2, 0),
+	FFACTOR(CLK_MIF3_FF_ACLK_MIF_PLL_DIV4,
+		"mif3_ff_aclk_mif_pll_div4", "mout_mif3_aclk_mif_pll",
+		1, 4, 0),
+	FFACTOR(CLK_U_DFI_CLK_GEN_MIF3, "u_dfi_clk_gen_mif3",
+		"mout_mif3_aclk_mif_pll", 1, 4, 0),
+};
+
+static const struct samsung_gate_clock mif3_gate_clks[] __initconst = {
+	/* reading CLK_ENABLE_ACLK_MIF3 causes an abort */
+	GATE(CLK_GOUT_MIF3_PCLK_SMC1, "gout_mif3_pclk_smc1",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 9, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_DMC_MISC, "gout_mif3_pclk_dmc_misc",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 8, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_PPC_DEBUG, "gout_mif3_pclk_ppc_debug",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 7, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_PPC_DVFS, "gout_mif3_pclk_ppc_dvfs",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 6, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_SYSREG_MIF, "gout_mif3_pclk_sysreg_mif",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 5, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_HPM, "gout_mif3_pclk_hpm", "dout_mif3_pclk_mif",
+	     CLK_ENABLE_PCLK_MIF3, 4, 0, 0),
+	GATE(CLK_GOUT_MIF3_ACLK_AXI_ASYNC, "gout_mif3_aclk_axi_async",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 3, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_MIFP, "gout_mif3_pclk_mifp",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 2, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_PMU_MIF, "gout_mif3_pclk_pmu_mif",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 1, 0, 0),
+	GATE(CLK_GOUT_MIF3_PCLK_LPDDR4PHY, "gout_mif3_pclk_lpddr4phy",
+	     "dout_mif3_pclk_mif", CLK_ENABLE_PCLK_MIF3, 0, CLK_IS_CRITICAL, 0),
+	/* reading CLK_ENABLE_ACLK_MIF3_SECURE_DREX_TZ causes an abort */
+	GATE(CLK_GOUT_MIF3_SCLK_PROMISE, "gout_mif3_sclk_promise",
+	     "dout_mif3_sclk_hpm_mif", CLK_ENABLE_SCLK_HPM_MIF3, 0, 0, 0),
+	GATE(CLK_GOUT_MIF3_RCLK_DREX, "gout_mif3_rclk_drex", "oscclk",
+	     CLK_ENABLE_SCLK_RCLK_DREX_MIF3, 0, 0, 0),
+};
+
+static const struct samsung_cmu_info mif3_cmu_info __initconst = {
+	.pll_clks		= mif3_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(mif3_pll_clks),
+	.mux_clks		= mif3_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(mif3_mux_clks),
+	.div_clks		= mif3_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(mif3_div_clks),
+	.gate_clks		= mif3_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(mif3_gate_clks),
+	.fixed_factor_clks	= mif3_fixed_factor_clks,
+	.nr_fixed_factor_clks	= ARRAY_SIZE(mif3_fixed_factor_clks),
+	.nr_clk_ids		= MIF3_NR_CLK,
+	.clk_regs		= mif3_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(mif3_clk_regs),
+};
+
+/* ---- CMU_MNGS ----------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_MNGS (0x11800000) */
+#define MNGS_PLL_LOCK				0x0000
+#define MNGS_PLL_CON0				0x0100
+#define MNGS_PLL_CON1				0x0104
+#define MNGS_PLL_FREQ_DET			0x010C
+#define CLK_CON_MUX_MNGS_PLL			0x0200
+#define CLK_CON_MUX_BUS_PLL_MNGS_USER		0x0204
+#define CLK_CON_MUX_MNGS			0x0208
+#define CLK_CON_DIV_MNGS			0x0400
+#define CLK_CON_DIV_ACLK_MNGS			0x0404
+#define CLK_CON_DIV_ATCLK_MNGS_CORE		0x0408
+#define CLK_CON_DIV_ATCLK_MNGS_SOC		0x040C
+#define CLK_CON_DIV_ATCLK_MNGS_CSSYS_TRACECLK	0x0410
+#define CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_CAM1	0x0414
+#define CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_AUD	0x0418
+#define CLK_CON_DIV_PCLK_DBG_MNGS		0x041C
+#define CLK_CON_DIV_PCLK_RUN_MONITOR		0x0420
+#define CLK_CON_DIV_PCLK_MNGS			0x0424
+#define CLK_CON_DIV_CNTCLK_MNGS			0x0428
+#define CLK_CON_DIV_MNGS_RUN_MONITOR		0x042C
+#define CLK_CON_DIV_SCLK_PROMISE_MNGS		0x0430
+#define CLK_CON_DIV_MNGS_PLL			0x0434
+#define CLK_STAT_MUX_MNGS_PLL			0x0600
+#define CLK_STAT_MUX_BUS_PLL_MNGS_USER		0x0604
+#define CLK_STAT_MUX_MNGS			0x0608
+#define CLK_ENABLE_ACLK_MNGS			0x0800
+#define CLK_ENABLE_ATCLK_MNGS_CORE		0x0804
+#define CLK_ENABLE_ATCLK_MNGS_SOC		0x0808
+#define CLK_ENABLE_ATCLK_MNGS_CSSYS_TRACECLK	0x080C
+#define CLK_ENABLE_ATCLK_MNGS_ASYNCATB_CAM1	0x0810
+#define CLK_ENABLE_ATCLK_MNGS_ASYNCATB_AUD	0x0814
+#define CLK_ENABLE_PCLK_DBG_MNGS		0x0900
+#define CLK_ENABLE_PCLK_MNGS			0x0904
+#define CLK_ENABLE_PCLK_HPM_MNGS		0x0908
+#define CLK_ENABLE_SCLK_MNGS			0x0A00
+#define CLK_ENABLE_SCLK_PROMISE_MNGS		0x0A04
+#define CLKOUT_CMU_MNGS				0x0C00
+#define CLKOUT_CMU_MNGS_DIV_STAT		0x0C04
+#define CLK_ENABLE_PDN_MNGS			0x0D00
+#define MNGS_SFR_IGNORE_REQ_SYSCLK		0x0D04
+#define CMU_MNGS_SPARE0				0x0D08
+#define CMU_MNGS_SPARE1				0x0D0C
+#define ARMCLK_STOPCTRL_MNGS			0x1000
+#define PWR_CTRL_MNGS				0x1020
+#define PWR_CTRL2_MNGS				0x1024
+#define PWR_CTRL3_MNGS				0x1028
+#define PWR_CTRL4_MNGS				0x102C
+#define INTR_SPREAD_ENABLE_MNGS			0x1080
+#define INTR_SPREAD_USE_STANDBYWFI_MNGS		0x1084
+#define INTR_SPREAD_BLOCKING_DURATION_MNGS	0x1088
+
+static const unsigned long mngs_clk_regs[] __initconst = {
+	MNGS_PLL_LOCK,
+	MNGS_PLL_CON0,
+	MNGS_PLL_CON1,
+	MNGS_PLL_FREQ_DET,
+	CLK_CON_MUX_MNGS_PLL,
+	CLK_CON_MUX_BUS_PLL_MNGS_USER,
+	CLK_CON_MUX_MNGS,
+	CLK_CON_DIV_MNGS,
+	CLK_CON_DIV_ACLK_MNGS,
+	CLK_CON_DIV_ATCLK_MNGS_CORE,
+	CLK_CON_DIV_ATCLK_MNGS_SOC,
+	CLK_CON_DIV_ATCLK_MNGS_CSSYS_TRACECLK,
+	CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_CAM1,
+	CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_AUD,
+	CLK_CON_DIV_PCLK_DBG_MNGS,
+	CLK_CON_DIV_PCLK_RUN_MONITOR,
+	CLK_CON_DIV_PCLK_MNGS,
+	CLK_CON_DIV_CNTCLK_MNGS,
+	CLK_CON_DIV_MNGS_RUN_MONITOR,
+	CLK_CON_DIV_SCLK_PROMISE_MNGS,
+	CLK_CON_DIV_MNGS_PLL,
+	CLK_STAT_MUX_MNGS_PLL,
+	CLK_STAT_MUX_BUS_PLL_MNGS_USER,
+	CLK_STAT_MUX_MNGS,
+	CLK_ENABLE_ACLK_MNGS,
+	CLK_ENABLE_ATCLK_MNGS_CORE,
+	CLK_ENABLE_ATCLK_MNGS_SOC,
+	CLK_ENABLE_ATCLK_MNGS_CSSYS_TRACECLK,
+	CLK_ENABLE_ATCLK_MNGS_ASYNCATB_CAM1,
+	CLK_ENABLE_ATCLK_MNGS_ASYNCATB_AUD,
+	CLK_ENABLE_PCLK_DBG_MNGS,
+	CLK_ENABLE_PCLK_MNGS,
+	CLK_ENABLE_PCLK_HPM_MNGS,
+	CLK_ENABLE_SCLK_MNGS,
+	CLK_ENABLE_SCLK_PROMISE_MNGS,
+	CLKOUT_CMU_MNGS,
+	CLKOUT_CMU_MNGS_DIV_STAT,
+	CLK_ENABLE_PDN_MNGS,
+	MNGS_SFR_IGNORE_REQ_SYSCLK,
+	CMU_MNGS_SPARE0,
+	CMU_MNGS_SPARE1,
+	ARMCLK_STOPCTRL_MNGS,
+	PWR_CTRL_MNGS,
+	PWR_CTRL2_MNGS,
+	PWR_CTRL3_MNGS,
+	PWR_CTRL4_MNGS,
+	INTR_SPREAD_ENABLE_MNGS,
+	INTR_SPREAD_USE_STANDBYWFI_MNGS,
+	INTR_SPREAD_BLOCKING_DURATION_MNGS,
+};
+
+static const struct samsung_pll_rate_table mngs_pll_rates[] __initconst = {
+	PLL_35XX_RATE(26 * MHZ, 3016000000U, 348, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2912000000U, 336, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2808000000U, 324, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2704000000U, 312, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2600000000U, 300, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2496000000U, 288, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2392000000U, 276, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2288000000U, 264, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2184000000U, 252, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 2080000000U, 240, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1976000000U, 228, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1872000000U, 216, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1768000000U, 204, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1664000000U, 192, 3, 0),
+	PLL_35XX_RATE(26 * MHZ, 1560000000U, 360, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 1456000000U, 336, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 1352000000U, 312, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 1248000000U, 288, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 1144000000U, 264, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 1040000000U, 240, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 936000000U, 216, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 832000000U, 192, 3, 1),
+	PLL_35XX_RATE(26 * MHZ, 728000000U, 336, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 624000000U, 288, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 520000000U, 240, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 416000000U, 192, 3, 2),
+	PLL_35XX_RATE(26 * MHZ, 312000000U, 288, 3, 3),
+	PLL_35XX_RATE(26 * MHZ, 208000000U, 192, 3, 3),
+};
+
+static const struct samsung_pll_clock mngs_pll_clks[] __initconst = {
+	PLL(pll_141xx, CLK_FOUT_MNGS_PLL, "fout_mngs_pll", "oscclk",
+	    MNGS_PLL_LOCK, MNGS_PLL_CON0, mngs_pll_rates),
+};
+
+PNAME(mngs_mux_mngs_pll_p)		= { "oscclk", "fout_mngs_pll" };
+PNAME(mngs_mux_bus_pll_mngs_user_p)	= { "oscclk",
+					    "gout_top_sclk_bus_pll_mngs" };
+PNAME(mngs_mux_mngs_p)			= { "mout_mngs_mngs_pll",
+					    "mout_mngs_bus_pll_mngs_user" };
+
+static const struct samsung_mux_clock mngs_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_MNGS_MNGS_PLL, "mout_mngs_mngs_pll", mngs_mux_mngs_pll_p,
+	    CLK_CON_MUX_MNGS_PLL, 12, 1),
+	MUX(CLK_MOUT_MNGS_BUS_PLL_MNGS_USER, "mout_mngs_bus_pll_mngs_user",
+	    mngs_mux_bus_pll_mngs_user_p, CLK_CON_MUX_BUS_PLL_MNGS_USER, 12, 1),
+	MUX(CLK_MOUT_MNGS_MNGS, "mout_mngs_mngs", mngs_mux_mngs_p,
+	    CLK_CON_MUX_MNGS, 12, 1),
+};
+
+static const struct samsung_div_clock mngs_div_clks[] __initconst = {
+	DIV(CLK_DOUT_MNGS_MNGS, "dout_mngs_mngs", "mout_mngs_mngs",
+	    CLK_CON_DIV_MNGS, 0, 6),
+	DIV(CLK_DOUT_MNGS_ACLK_MNGS, "dout_mngs_aclk_mngs", "dout_mngs_mngs",
+	    CLK_CON_DIV_ACLK_MNGS, 0, 4),
+	DIV(CLK_DOUT_MNGS_ATCLK_MNGS_CORE, "dout_mngs_atclk_mngs_core",
+	    "dout_mngs_mngs", CLK_CON_DIV_ATCLK_MNGS_CORE, 0, 4),
+	DIV(CLK_DOUT_MNGS_ATCLK_MNGS_SOC, "dout_mngs_atclk_mngs_soc",
+	    "dout_mngs_mngs", CLK_CON_DIV_ATCLK_MNGS_SOC, 0, 6),
+	DIV(CLK_DOUT_MNGS_ATCLK_MNGS_CSSYS_TRACECLK,
+	    "dout_mngs_atclk_mngs_cssys_traceclk", "dout_mngs_atclk_mngs_soc",
+	    CLK_CON_DIV_ATCLK_MNGS_CSSYS_TRACECLK, 0, 4),
+	DIV(CLK_DOUT_MNGS_ATCLK_MNGS_ASYNCATB_CAM1,
+	    "dout_mngs_atclk_mngs_asyncatb_cam1", "dout_mngs_atclk_mngs_soc",
+	    CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_CAM1, 0, 4),
+	DIV(CLK_DOUT_MNGS_ATCLK_MNGS_ASYNCATB_AUD,
+	    "dout_mngs_atclk_mngs_asyncatb_aud", "dout_mngs_atclk_mngs_soc",
+	    CLK_CON_DIV_ATCLK_MNGS_ASYNCATB_AUD, 0, 4),
+	DIV(CLK_DOUT_MNGS_PCLK_DBG_MNGS, "dout_mngs_pclk_dbg_mngs",
+	    "dout_mngs_mngs", CLK_CON_DIV_PCLK_DBG_MNGS, 0, 6),
+	DIV(CLK_DOUT_MNGS_PCLK_RUN_MONITOR, "dout_mngs_pclk_run_monitor",
+	    "dout_mngs_pclk_dbg_mngs", CLK_CON_DIV_PCLK_RUN_MONITOR, 0, 3),
+	DIV(CLK_DOUT_MNGS_PCLK_MNGS, "dout_mngs_pclk_mngs", "dout_mngs_mngs",
+	    CLK_CON_DIV_PCLK_MNGS, 0, 6),
+	DIV(CLK_DOUT_MNGS_CNTCLK_MNGS, "dout_mngs_cntclk_mngs",
+	    "dout_mngs_mngs", CLK_CON_DIV_CNTCLK_MNGS, 0, 4),
+	DIV(CLK_DOUT_MNGS_MNGS_RUN_MONITOR, "dout_mngs_mngs_run_monitor",
+	    "dout_mngs_mngs", CLK_CON_DIV_MNGS_RUN_MONITOR, 0, 3),
+	DIV(CLK_DOUT_MNGS_SCLK_PROMISE_MNGS, "dout_mngs_sclk_promise_mngs",
+	    "mout_mngs_mngs", CLK_CON_DIV_SCLK_PROMISE_MNGS, 0, 3),
+	DIV(CLK_DOUT_MNGS_MNGS_PLL, "dout_mngs_mngs_pll", "mout_mngs_mngs",
+	    CLK_CON_DIV_MNGS_PLL, 0, 3),
+};
+
+static const struct samsung_gate_clock mngs_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_MNGS_ACLK_ASYNCPACES_MNGS_SCI,
+	     "gout_mngs_aclk_asyncpaces_mngs_sci", "dout_mngs_aclk_mngs",
+	     CLK_ENABLE_ACLK_MNGS, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKS_ATB_MNGS3_CSSYS,
+	     "gout_mngs_atclks_atb_mngs3_cssys", "dout_mngs_atclk_mngs_core",
+	     CLK_ENABLE_ATCLK_MNGS_CORE, 3, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKS_ATB_MNGS2_CSSYS,
+	     "gout_mngs_atclks_atb_mngs2_cssys", "dout_mngs_atclk_mngs_core",
+	     CLK_ENABLE_ATCLK_MNGS_CORE, 2, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKS_ATB_MNGS1_CSSYS,
+	     "gout_mngs_atclks_atb_mngs1_cssys", "dout_mngs_atclk_mngs_core",
+	     CLK_ENABLE_ATCLK_MNGS_CORE, 1, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKS_ATB_MNGS0_CSSYS,
+	     "gout_mngs_atclks_atb_mngs0_cssys", "dout_mngs_atclk_mngs_core",
+	     CLK_ENABLE_ATCLK_MNGS_CORE, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_XIU_MNGSX_2X1, "gout_mngs_atclk_xiu_mngsx_2x1",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 16, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_STM_TXACTOR, "gout_mngs_atclk_stm_txactor",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 15, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_BDU_CSSYS, "gout_mngs_atclk_atb_bdu_cssys",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 14, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_AUD_CSSYS, "gout_mngs_atclk_atb_aud_cssys",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 13, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_CAM1_CSSYS,
+	     "gout_mngs_atclk_atb_cam1_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 12, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_APOLLO3_CSSYS,
+	     "gout_mngs_atclk_atb_apollo3_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 11, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_APOLLO2_CSSYS,
+	     "gout_mngs_atclk_atb_apollo2_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 10, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_APOLLO1_CSSYS,
+	     "gout_mngs_atclk_atb_apollo1_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 9, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ATB_APOLLO0_CSSYS,
+	     "gout_mngs_atclk_atb_apollo0_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 8, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKM_ATB_MNGS3_CSSYS,
+	     "gout_mngs_atclkm_atb_mngs3_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 7, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKM_ATB_MNGS2_CSSYS,
+	     "gout_mngs_atclkm_atb_mngs2_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 6, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKM_ATB_MNGS1_CSSYS,
+	     "gout_mngs_atclkm_atb_mngs1_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 5, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLKM_ATB_MNGS0_CSSYS,
+	     "gout_mngs_atclkm_atb_mngs0_cssys", "dout_mngs_atclk_mngs_soc",
+	     CLK_ENABLE_ATCLK_MNGS_SOC, 4, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ASYNCAHB_CSSYS_SSS_ACLK,
+	     "gout_mngs_atclk_asyncahb_cssys_sss_aclk",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 3, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ASYNCLHAXI_CSSYS_ETR_ACLK,
+	     "gout_mngs_atclk_asynclhaxi_cssys_etr_aclk",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 2, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_CSSYS_HCLK, "gout_mngs_atclk_cssys_hclk",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 1, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_CSSYS, "gout_mngs_atclk_cssys",
+	     "dout_mngs_atclk_mngs_soc", CLK_ENABLE_ATCLK_MNGS_SOC, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_CSSYS_TRACECLK,
+	     "gout_mngs_atclk_cssys_traceclk",
+	     "dout_mngs_atclk_mngs_cssys_traceclk",
+	     CLK_ENABLE_ATCLK_MNGS_CSSYS_TRACECLK, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ASYNCATB_CAM1, "gout_mngs_atclk_asyncatb_cam1",
+	     "dout_mngs_atclk_mngs_asyncatb_cam1",
+	     CLK_ENABLE_ATCLK_MNGS_ASYNCATB_CAM1, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_ATCLK_ASYNCATB_AUD, "gout_mngs_atclk_asyncatb_aud",
+	     "dout_mngs_atclk_mngs_asyncatb_aud",
+	     CLK_ENABLE_ATCLK_MNGS_ASYNCATB_AUD, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASAPBMST_CCORE_CSSYS,
+	     "gout_mngs_pclkdbg_asapbmst_ccore_cssys",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 11, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASAPBSLV_CSSYS_BDU,
+	     "gout_mngs_pclkdbg_asapbslv_cssys_bdu", "dout_mngs_pclk_dbg_mngs",
+	     CLK_ENABLE_PCLK_DBG_MNGS, 10, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASAPBSLV_CSSYS_CAM1,
+	     "gout_mngs_pclkdbg_asapbslv_cssys_cam1", "dout_mngs_pclk_dbg_mngs",
+	     CLK_ENABLE_PCLK_DBG_MNGS, 9, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASAPBSLV_CSSYS_AUD,
+	     "gout_mngs_pclkdbg_asapbslv_cssys_aud", "dout_mngs_pclk_dbg_mngs",
+	     CLK_ENABLE_PCLK_DBG_MNGS, 8, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASAPBSLV_CSSYS_APOLLO,
+	     "gout_mngs_pclkdbg_asapbslv_cssys_apollo",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 7, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_DUMP_PC_MNGS,
+	     "gout_mngs_pclkdbg_dump_pc_mngs", "dout_mngs_pclk_dbg_mngs",
+	     CLK_ENABLE_PCLK_DBG_MNGS, 6, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_SECJTAG, "gout_mngs_pclkdbg_secjtag",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 5, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_AXIAP, "gout_mngs_pclkdbg_axiap",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 4, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_CSSYS_CTMCLK,
+	     "gout_mngs_pclkdbg_cssys_ctmclk", "dout_mngs_pclk_dbg_mngs",
+	     CLK_ENABLE_PCLK_DBG_MNGS, 3, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_CSSYS, "gout_mngs_pclkdbg_cssys",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 2, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_MNGS, "gout_mngs_pclkdbg_mngs",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 1, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLKDBG_ASYNCDAPSLV, "gout_mngs_pclkdbg_asyncdapslv",
+	     "dout_mngs_pclk_dbg_mngs", CLK_ENABLE_PCLK_DBG_MNGS, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_SYSREG_MNGS, "gout_mngs_pclk_sysreg_mngs",
+	     "dout_mngs_pclk_mngs", CLK_ENABLE_PCLK_MNGS, 5, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_STM_TXACTOR, "gout_mngs_pclk_stm_txactor",
+	     "dout_mngs_pclk_mngs", CLK_ENABLE_PCLK_MNGS, 4, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_XIU_PERI_MNGS_ACLK,
+	     "gout_mngs_pclk_xiu_peri_mngs_aclk", "dout_mngs_pclk_mngs",
+	     CLK_ENABLE_PCLK_MNGS, 3, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_PMU_MNGS, "gout_mngs_pclk_pmu_mngs",
+	     "dout_mngs_pclk_mngs", CLK_ENABLE_PCLK_MNGS, 2, 0, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_XIU_MNGSSFRX_1X2,
+	     "gout_mngs_pclk_xiu_mngssfrx_1x2", "dout_mngs_pclk_mngs",
+	     CLK_ENABLE_PCLK_MNGS, 1, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_AXI2APB_MNGS_ACLK,
+	     "gout_mngs_pclk_axi2apb_mngs_aclk", "dout_mngs_pclk_mngs",
+	     CLK_ENABLE_PCLK_MNGS, 0, CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_MNGS_PCLK_HPM_MNGS, "gout_mngs_pclk_hpm_mngs",
+	     "dout_mngs_pclk_mngs", CLK_ENABLE_PCLK_HPM_MNGS, 0,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_MNGS_SCLK_MNGS, "gout_mngs_sclk_mngs", "dout_mngs_mngs",
+	     CLK_ENABLE_SCLK_MNGS, 0, 0, 0),
+	GATE(CLK_GOUT_MNGS_SCLK_PROMISE2_MNGS, "gout_mngs_sclk_promise2_mngs",
+	     "dout_mngs_sclk_promise_mngs", CLK_ENABLE_SCLK_PROMISE_MNGS, 2, 0,
+	     0),
+	GATE(CLK_GOUT_MNGS_SCLK_PROMISE1_MNGS, "gout_mngs_sclk_promise1_mngs",
+	     "dout_mngs_sclk_promise_mngs", CLK_ENABLE_SCLK_PROMISE_MNGS, 1, 0,
+	     0),
+	GATE(CLK_GOUT_MNGS_SCLK_PROMISE0_MNGS, "gout_mngs_sclk_promise0_mngs",
+	     "dout_mngs_sclk_promise_mngs", CLK_ENABLE_SCLK_PROMISE_MNGS, 0, 0,
+	     0),
+};
+
+static const struct samsung_cmu_info mngs_cmu_info __initconst = {
+	.pll_clks		= mngs_pll_clks,
+	.nr_pll_clks		= ARRAY_SIZE(mngs_pll_clks),
+	.mux_clks		= mngs_mux_clks,
+	.nr_mux_clks		= ARRAY_SIZE(mngs_mux_clks),
+	.div_clks		= mngs_div_clks,
+	.nr_div_clks		= ARRAY_SIZE(mngs_div_clks),
+	.gate_clks		= mngs_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(mngs_gate_clks),
+	.nr_clk_ids		= MNGS_NR_CLK,
+	.clk_regs		= mngs_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(mngs_clk_regs),
+};
+
+/* ---- CMU_PERIC0 --------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_PERIC0 (0x13610000) */
+#define CLK_CON_MUX_ACLK_PERIC0_66_USER		0x0200
+#define CLK_CON_MUX_SCLK_UART0_USER		0x0204
+#define CLK_STAT_MUX_ACLK_PERIC0_66_USER	0x0600
+#define CLK_STAT_MUX_SCLK_UART0_USER		0x0604
+#define CG_CTRL_VAL_ACLK_PERIC0_66		0x0800
+#define CG_CTRL_VAL_SCLK_UART0			0x0840
+#define CG_CTRL_VAL_SCLK_PWM			0x0844
+#define CLKOUT_CMU_PERIC0			0x0C00
+#define CLKOUT_CMU_PERIC0_DIV_STAT		0x0C04
+#define PERIC0_SFR_IGNORE_REQ_SYSCLK		0x0D04
+#define CMU_PERIC0_SPARE0			0x0D08
+#define CMU_PERIC0_SPARE1			0x0D0C
+#define CG_CTRL_MAN_ACLK_PERIC0_66		0x1800
+#define CG_CTRL_MAN_SCLK_UART0			0x1840
+#define CG_CTRL_MAN_SCLK_PWM			0x1844
+#define CG_CTRL_STAT_ACLK_PERIC0_66_0		0x1C00
+#define CG_CTRL_STAT_ACLK_PERIC0_66_1		0x1C04
+#define CG_CTRL_STAT_SCLK_UART0			0x1C40
+#define CG_CTRL_STAT_SCLK_PWM			0x1C44
+#define QCH_CTRL_AXILHASYNCM_PERIC0		0x2000
+#define QCH_CTRL_CMU_PERIC0			0x2004
+#define QCH_CTRL_PMU_PERIC0			0x2008
+#define QCH_CTRL_SYSREG_PERIC0			0x200C
+#define QSTATE_CTRL_GPIO_BUS0			0x2404
+#define QSTATE_CTRL_UART0			0x2408
+#define QSTATE_CTRL_ADCIF			0x240C
+#define QSTATE_CTRL_PWM				0x2410
+#define QSTATE_CTRL_HSI2C0			0x2414
+#define QSTATE_CTRL_HSI2C1			0x2418
+#define QSTATE_CTRL_HSI2C4			0x241C
+#define QSTATE_CTRL_HSI2C5			0x2420
+#define QSTATE_CTRL_HSI2C9			0x2424
+#define QSTATE_CTRL_HSI2C10			0x2428
+#define QSTATE_CTRL_HSI2C11			0x242C
+
+static const unsigned long peric0_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_PERIC0_66_USER,
+	CLK_CON_MUX_SCLK_UART0_USER,
+	CLK_STAT_MUX_ACLK_PERIC0_66_USER,
+	CLK_STAT_MUX_SCLK_UART0_USER,
+	CG_CTRL_VAL_ACLK_PERIC0_66,
+	CG_CTRL_VAL_SCLK_UART0,
+	CG_CTRL_VAL_SCLK_PWM,
+	CLKOUT_CMU_PERIC0,
+	CLKOUT_CMU_PERIC0_DIV_STAT,
+	PERIC0_SFR_IGNORE_REQ_SYSCLK,
+	CMU_PERIC0_SPARE0,
+	CMU_PERIC0_SPARE1,
+	CG_CTRL_MAN_ACLK_PERIC0_66,
+	CG_CTRL_MAN_SCLK_UART0,
+	CG_CTRL_MAN_SCLK_PWM,
+	CG_CTRL_STAT_ACLK_PERIC0_66_0,
+	CG_CTRL_STAT_ACLK_PERIC0_66_1,
+	CG_CTRL_STAT_SCLK_UART0,
+	CG_CTRL_STAT_SCLK_PWM,
+	QCH_CTRL_AXILHASYNCM_PERIC0,
+	QCH_CTRL_CMU_PERIC0,
+	QCH_CTRL_PMU_PERIC0,
+	QCH_CTRL_SYSREG_PERIC0,
+	QSTATE_CTRL_GPIO_BUS0,
+	QSTATE_CTRL_UART0,
+	QSTATE_CTRL_ADCIF,
+	QSTATE_CTRL_PWM,
+	QSTATE_CTRL_HSI2C0,
+	QSTATE_CTRL_HSI2C1,
+	QSTATE_CTRL_HSI2C4,
+	QSTATE_CTRL_HSI2C5,
+	QSTATE_CTRL_HSI2C9,
+	QSTATE_CTRL_HSI2C10,
+	QSTATE_CTRL_HSI2C11,
+};
+
+PNAME(peric0_mux_aclk_peric0_66_user_p)	= { "oscclk",
+					    "gout_top_aclk_peric0_66" };
+PNAME(peric0_mux_sclk_uart0_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric0_uart0" };
+
+static const struct samsung_mux_clock peric0_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_PERIC0_ACLK_PERIC0_66_USER,
+	    "mout_peric0_aclk_peric0_66_user", peric0_mux_aclk_peric0_66_user_p,
+	    CLK_CON_MUX_ACLK_PERIC0_66_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC0_SCLK_UART0_USER, "mout_peric0_sclk_uart0_user",
+	    peric0_mux_sclk_uart0_user_p, CLK_CON_MUX_SCLK_UART0_USER, 12, 1),
+};
+
+static const struct samsung_gate_clock peric0_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C11, "gout_peric0_pclk_hsi2c11",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 15,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C10, "gout_peric0_pclk_hsi2c10",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 14,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C9, "gout_peric0_pclk_hsi2c9",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 13,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C5, "gout_peric0_pclk_hsi2c5",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 12,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C4, "gout_peric0_pclk_hsi2c4",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 11,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C1, "gout_peric0_pclk_hsi2c1",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 10,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_HSI2C0, "gout_peric0_pclk_hsi2c0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 9,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_PWM, "gout_peric0_pclk_pwm",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 8,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_ADCIF, "gout_peric0_pclk_adcif",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 7,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_UART0, "gout_peric0_pclk_uart0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 6,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_GPIO_BUS0, "gout_peric0_pclk_gpio_bus0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 5,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_SYSREG_PERIC0,
+	     "gout_peric0_pclk_sysreg_peric0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 4,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_PMU_PERIC0, "gout_peric0_pclk_pmu_peric0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 3,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC0_PCLK_CMU_PERIC0, "gout_peric0_pclk_cmu_peric0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 2,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIC0_ACLK_AXI2APB_PERIC0P,
+	     "gout_peric0_aclk_axi2apb_peric0p",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC0_ACLK_AXILHASYNCM_PERIC0,
+	     "gout_peric0_aclk_axilhasyncm_peric0",
+	     "mout_peric0_aclk_peric0_66_user", CG_CTRL_VAL_ACLK_PERIC0_66, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC0_SCLK_UART0, "gout_peric0_sclk_uart0",
+	     "mout_peric0_sclk_uart0_user", CG_CTRL_VAL_SCLK_UART0, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC0_SCLK_PWM, "gout_peric0_sclk_pwm", "oscclk",
+	     CG_CTRL_VAL_SCLK_PWM, 0, 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),
+	.gate_clks		= peric0_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(peric0_gate_clks),
+	.nr_clk_ids		= PERIC0_NR_CLK,
+	.clk_regs		= peric0_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(peric0_clk_regs),
+};
+
+/* ---- CMU_PERIC1 --------------------------------------------------------- */
+
+/* Register Offset definitions for CMU_PERIC1 (0x14c80000) */
+#define CLK_CON_MUX_ACLK_PERIC1_66_USER		0x0200
+#define CLK_CON_MUX_SCLK_SPI0_USER		0x0204
+#define CLK_CON_MUX_SCLK_SPI1_USER		0x0208
+#define CLK_CON_MUX_SCLK_SPI2_USER		0x020C
+#define CLK_CON_MUX_SCLK_SPI3_USER		0x0210
+#define CLK_CON_MUX_SCLK_SPI4_USER		0x0214
+#define CLK_CON_MUX_SCLK_SPI5_USER		0x0218
+#define CLK_CON_MUX_SCLK_SPI6_USER		0x021C
+#define CLK_CON_MUX_SCLK_SPI7_USER		0x0220
+#define CLK_CON_MUX_SCLK_UART1_USER		0x0224
+#define CLK_CON_MUX_SCLK_UART2_USER		0x0228
+#define CLK_CON_MUX_SCLK_UART3_USER		0x022C
+#define CLK_CON_MUX_SCLK_UART4_USER		0x0230
+#define CLK_CON_MUX_SCLK_UART5_USER		0x0234
+#define CLK_STAT_MUX_ACLK_PERIC1_66_USER	0x0600
+#define CLK_STAT_MUX_SCLK_SPI0_USER		0x0604
+#define CLK_STAT_MUX_SCLK_SPI1_USER		0x0608
+#define CLK_STAT_MUX_SCLK_SPI2_USER		0x060C
+#define CLK_STAT_MUX_SCLK_SPI3_USER		0x0610
+#define CLK_STAT_MUX_SCLK_SPI4_USER		0x0614
+#define CLK_STAT_MUX_SCLK_SPI5_USER		0x0618
+#define CLK_STAT_MUX_SCLK_SPI6_USER		0x061C
+#define CLK_STAT_MUX_SCLK_SPI7_USER		0x0620
+#define CLK_STAT_MUX_SCLK_UART1_USER		0x0624
+#define CLK_STAT_MUX_SCLK_UART2_USER		0x0628
+#define CLK_STAT_MUX_SCLK_UART3_USER		0x062C
+#define CLK_STAT_MUX_SCLK_UART4_USER		0x0630
+#define CLK_STAT_MUX_SCLK_UART5_USER		0x0634
+#define CG_CTRL_VAL_ACLK_PERIC1_66		0x0800
+#define CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C	0x0804
+#define CG_CTRL_VAL_SCLK_SPI0			0x0840
+#define CG_CTRL_VAL_SCLK_SPI1			0x0844
+#define CG_CTRL_VAL_SCLK_SPI2			0x0848
+#define CG_CTRL_VAL_SCLK_SPI3			0x084C
+#define CG_CTRL_VAL_SCLK_SPI4			0x0850
+#define CG_CTRL_VAL_SCLK_SPI5			0x0854
+#define CG_CTRL_VAL_SCLK_SPI6			0x0858
+#define CG_CTRL_VAL_SCLK_SPI7			0x085C
+#define CG_CTRL_VAL_SCLK_UART1			0x0860
+#define CG_CTRL_VAL_SCLK_UART2			0x0864
+#define CG_CTRL_VAL_SCLK_UART3			0x0868
+#define CG_CTRL_VAL_SCLK_UART4			0x086C
+#define CG_CTRL_VAL_SCLK_UART5			0x0870
+#define CLKOUT_CMU_PERIC1			0x0C00
+#define CLKOUT_CMU_PERIC1_DIV_STAT		0x0C04
+#define PERIC1_SFR_IGNORE_REQ_SYSCLK		0x0D04
+#define CMU_PERIC1_SPARE0			0x0D08
+#define CMU_PERIC1_SPARE1			0x0D0C
+#define CG_CTRL_MAN_ACLK_PERIC1_66		0x1800
+#define CG_CTRL_MAN_ACLK_PERIC1_66_HSI2C	0x1804
+#define CG_CTRL_MAN_SCLK_SPI0			0x1840
+#define CG_CTRL_MAN_SCLK_SPI1			0x1844
+#define CG_CTRL_MAN_SCLK_SPI2			0x1848
+#define CG_CTRL_MAN_SCLK_SPI3			0x184C
+#define CG_CTRL_MAN_SCLK_SPI4			0x1850
+#define CG_CTRL_MAN_SCLK_SPI5			0x1854
+#define CG_CTRL_MAN_SCLK_SPI6			0x1858
+#define CG_CTRL_MAN_SCLK_SPI7			0x185C
+#define CG_CTRL_MAN_SCLK_UART1			0x1860
+#define CG_CTRL_MAN_SCLK_UART2			0x1864
+#define CG_CTRL_MAN_SCLK_UART3			0x1868
+#define CG_CTRL_MAN_SCLK_UART4			0x186C
+#define CG_CTRL_MAN_SCLK_UART5			0x1870
+#define CG_CTRL_STAT_ACLK_PERIC1_66_0		0x1C00
+#define CG_CTRL_STAT_ACLK_PERIC1_66_1		0x1C04
+#define CG_CTRL_STAT_ACLK_PERIC1_66_2		0x1C08
+#define CG_CTRL_STAT_ACLK_PERIC1_66_3		0x1C0C
+#define CG_CTRL_STAT_ACLK_PERIC1_66_HSI2C	0x1C10
+#define CG_CTRL_STAT_SCLK_SPI0			0x1C40
+#define CG_CTRL_STAT_SCLK_SPI1			0x1C44
+#define CG_CTRL_STAT_SCLK_SPI2			0x1C48
+#define CG_CTRL_STAT_SCLK_SPI3			0x1C4C
+#define CG_CTRL_STAT_SCLK_SPI4			0x1C50
+#define CG_CTRL_STAT_SCLK_SPI5			0x1C54
+#define CG_CTRL_STAT_SCLK_SPI6			0x1C58
+#define CG_CTRL_STAT_SCLK_SPI7			0x1C5C
+#define CG_CTRL_STAT_SCLK_UART1			0x1C60
+#define CG_CTRL_STAT_SCLK_UART2			0x1C64
+#define CG_CTRL_STAT_SCLK_UART3			0x1C68
+#define CG_CTRL_STAT_SCLK_UART4			0x1C6C
+#define CG_CTRL_STAT_SCLK_UART5			0x1C70
+#define QCH_CTRL_AXILHASYNCM_PERIC1		0x2000
+#define QCH_CTRL_CMU_PERIC1			0x2004
+#define QCH_CTRL_PMU_PERIC1			0x2008
+#define QCH_CTRL_SYSREG_PERIC1			0x200C
+#define QSTATE_CTRL_GPIO_PERIC1			0x2410
+#define QSTATE_CTRL_GPIO_NFC			0x2414
+#define QSTATE_CTRL_GPIO_TOUCH			0x2418
+#define QSTATE_CTRL_GPIO_FF			0x241C
+#define QSTATE_CTRL_GPIO_ESE			0x2420
+#define QSTATE_CTRL_UART1			0x2424
+#define QSTATE_CTRL_UART2			0x2428
+#define QSTATE_CTRL_UART3			0x242C
+#define QSTATE_CTRL_UART4			0x2430
+#define QSTATE_CTRL_UART5			0x2434
+#define QSTATE_CTRL_SPI0			0x2438
+#define QSTATE_CTRL_SPI1			0x243C
+#define QSTATE_CTRL_SPI2			0x2440
+#define QSTATE_CTRL_SPI3			0x2444
+#define QSTATE_CTRL_SPI4			0x2448
+#define QSTATE_CTRL_SPI5			0x244C
+#define QSTATE_CTRL_SPI6			0x2450
+#define QSTATE_CTRL_SPI7			0x2454
+#define QSTATE_CTRL_HSI2C2			0x2458
+#define QSTATE_CTRL_HSI2C3			0x245C
+#define QSTATE_CTRL_HSI2C6			0x2460
+#define QSTATE_CTRL_HSI2C7			0x2464
+#define QSTATE_CTRL_HSI2C8			0x2468
+#define QSTATE_CTRL_HSI2C12			0x246C
+#define QSTATE_CTRL_HSI2C13			0x2470
+#define QSTATE_CTRL_HSI2C14			0x2474
+
+static const unsigned long peric1_clk_regs[] __initconst = {
+	CLK_CON_MUX_ACLK_PERIC1_66_USER,
+	CLK_CON_MUX_SCLK_SPI0_USER,
+	CLK_CON_MUX_SCLK_SPI1_USER,
+	CLK_CON_MUX_SCLK_SPI2_USER,
+	CLK_CON_MUX_SCLK_SPI3_USER,
+	CLK_CON_MUX_SCLK_SPI4_USER,
+	CLK_CON_MUX_SCLK_SPI5_USER,
+	CLK_CON_MUX_SCLK_SPI6_USER,
+	CLK_CON_MUX_SCLK_SPI7_USER,
+	CLK_CON_MUX_SCLK_UART1_USER,
+	CLK_CON_MUX_SCLK_UART2_USER,
+	CLK_CON_MUX_SCLK_UART3_USER,
+	CLK_CON_MUX_SCLK_UART4_USER,
+	CLK_CON_MUX_SCLK_UART5_USER,
+	CLK_STAT_MUX_ACLK_PERIC1_66_USER,
+	CLK_STAT_MUX_SCLK_SPI0_USER,
+	CLK_STAT_MUX_SCLK_SPI1_USER,
+	CLK_STAT_MUX_SCLK_SPI2_USER,
+	CLK_STAT_MUX_SCLK_SPI3_USER,
+	CLK_STAT_MUX_SCLK_SPI4_USER,
+	CLK_STAT_MUX_SCLK_SPI5_USER,
+	CLK_STAT_MUX_SCLK_SPI6_USER,
+	CLK_STAT_MUX_SCLK_SPI7_USER,
+	CLK_STAT_MUX_SCLK_UART1_USER,
+	CLK_STAT_MUX_SCLK_UART2_USER,
+	CLK_STAT_MUX_SCLK_UART3_USER,
+	CLK_STAT_MUX_SCLK_UART4_USER,
+	CLK_STAT_MUX_SCLK_UART5_USER,
+	CG_CTRL_VAL_ACLK_PERIC1_66,
+	CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C,
+	CG_CTRL_VAL_SCLK_SPI0,
+	CG_CTRL_VAL_SCLK_SPI1,
+	CG_CTRL_VAL_SCLK_SPI2,
+	CG_CTRL_VAL_SCLK_SPI3,
+	CG_CTRL_VAL_SCLK_SPI4,
+	CG_CTRL_VAL_SCLK_SPI5,
+	CG_CTRL_VAL_SCLK_SPI6,
+	CG_CTRL_VAL_SCLK_SPI7,
+	CG_CTRL_VAL_SCLK_UART1,
+	CG_CTRL_VAL_SCLK_UART2,
+	CG_CTRL_VAL_SCLK_UART3,
+	CG_CTRL_VAL_SCLK_UART4,
+	CG_CTRL_VAL_SCLK_UART5,
+	CLKOUT_CMU_PERIC1,
+	CLKOUT_CMU_PERIC1_DIV_STAT,
+	PERIC1_SFR_IGNORE_REQ_SYSCLK,
+	CMU_PERIC1_SPARE0,
+	CMU_PERIC1_SPARE1,
+	CG_CTRL_MAN_ACLK_PERIC1_66,
+	CG_CTRL_MAN_ACLK_PERIC1_66_HSI2C,
+	CG_CTRL_MAN_SCLK_SPI0,
+	CG_CTRL_MAN_SCLK_SPI1,
+	CG_CTRL_MAN_SCLK_SPI2,
+	CG_CTRL_MAN_SCLK_SPI3,
+	CG_CTRL_MAN_SCLK_SPI4,
+	CG_CTRL_MAN_SCLK_SPI5,
+	CG_CTRL_MAN_SCLK_SPI6,
+	CG_CTRL_MAN_SCLK_SPI7,
+	CG_CTRL_MAN_SCLK_UART1,
+	CG_CTRL_MAN_SCLK_UART2,
+	CG_CTRL_MAN_SCLK_UART3,
+	CG_CTRL_MAN_SCLK_UART4,
+	CG_CTRL_MAN_SCLK_UART5,
+	CG_CTRL_STAT_ACLK_PERIC1_66_0,
+	CG_CTRL_STAT_ACLK_PERIC1_66_1,
+	CG_CTRL_STAT_ACLK_PERIC1_66_2,
+	CG_CTRL_STAT_ACLK_PERIC1_66_3,
+	CG_CTRL_STAT_ACLK_PERIC1_66_HSI2C,
+	CG_CTRL_STAT_SCLK_SPI0,
+	CG_CTRL_STAT_SCLK_SPI1,
+	CG_CTRL_STAT_SCLK_SPI2,
+	CG_CTRL_STAT_SCLK_SPI3,
+	CG_CTRL_STAT_SCLK_SPI4,
+	CG_CTRL_STAT_SCLK_SPI5,
+	CG_CTRL_STAT_SCLK_SPI6,
+	CG_CTRL_STAT_SCLK_SPI7,
+	CG_CTRL_STAT_SCLK_UART1,
+	CG_CTRL_STAT_SCLK_UART2,
+	CG_CTRL_STAT_SCLK_UART3,
+	CG_CTRL_STAT_SCLK_UART4,
+	CG_CTRL_STAT_SCLK_UART5,
+	QCH_CTRL_AXILHASYNCM_PERIC1,
+	QCH_CTRL_CMU_PERIC1,
+	QCH_CTRL_PMU_PERIC1,
+	QCH_CTRL_SYSREG_PERIC1,
+	QSTATE_CTRL_GPIO_PERIC1,
+	QSTATE_CTRL_GPIO_NFC,
+	QSTATE_CTRL_GPIO_TOUCH,
+	QSTATE_CTRL_GPIO_FF,
+	QSTATE_CTRL_GPIO_ESE,
+	QSTATE_CTRL_UART1,
+	QSTATE_CTRL_UART2,
+	QSTATE_CTRL_UART3,
+	QSTATE_CTRL_UART4,
+	QSTATE_CTRL_UART5,
+	QSTATE_CTRL_SPI0,
+	QSTATE_CTRL_SPI1,
+	QSTATE_CTRL_SPI2,
+	QSTATE_CTRL_SPI3,
+	QSTATE_CTRL_SPI4,
+	QSTATE_CTRL_SPI5,
+	QSTATE_CTRL_SPI6,
+	QSTATE_CTRL_SPI7,
+	QSTATE_CTRL_HSI2C2,
+	QSTATE_CTRL_HSI2C3,
+	QSTATE_CTRL_HSI2C6,
+	QSTATE_CTRL_HSI2C7,
+	QSTATE_CTRL_HSI2C8,
+	QSTATE_CTRL_HSI2C12,
+	QSTATE_CTRL_HSI2C13,
+	QSTATE_CTRL_HSI2C14,
+};
+
+PNAME(peric1_mux_aclk_peric1_66_user_p)	= { "oscclk",
+					    "gout_top_aclk_peric1_66" };
+PNAME(peric1_mux_sclk_spi0_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi0" };
+PNAME(peric1_mux_sclk_spi1_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi1" };
+PNAME(peric1_mux_sclk_spi2_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi2" };
+PNAME(peric1_mux_sclk_spi3_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi3" };
+PNAME(peric1_mux_sclk_spi4_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi4" };
+PNAME(peric1_mux_sclk_spi5_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi5" };
+PNAME(peric1_mux_sclk_spi6_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi6" };
+PNAME(peric1_mux_sclk_spi7_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_spi7" };
+PNAME(peric1_mux_sclk_uart1_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_uart1" };
+PNAME(peric1_mux_sclk_uart2_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_uart2" };
+PNAME(peric1_mux_sclk_uart3_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_uart3" };
+PNAME(peric1_mux_sclk_uart4_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_uart4" };
+PNAME(peric1_mux_sclk_uart5_user_p)	= { "oscclk",
+					    "gout_top_sclk_peric1_uart5" };
+
+static const struct samsung_mux_clock peric1_mux_clks[] __initconst = {
+	MUX(CLK_MOUT_PERIC1_ACLK_PERIC1_66_USER,
+	    "mout_peric1_aclk_peric1_66_user", peric1_mux_aclk_peric1_66_user_p,
+	    CLK_CON_MUX_ACLK_PERIC1_66_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI0_USER, "mout_peric1_sclk_spi0_user",
+	    peric1_mux_sclk_spi0_user_p, CLK_CON_MUX_SCLK_SPI0_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI1_USER, "mout_peric1_sclk_spi1_user",
+	    peric1_mux_sclk_spi1_user_p, CLK_CON_MUX_SCLK_SPI1_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI2_USER, "mout_peric1_sclk_spi2_user",
+	    peric1_mux_sclk_spi2_user_p, CLK_CON_MUX_SCLK_SPI2_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI3_USER, "mout_peric1_sclk_spi3_user",
+	    peric1_mux_sclk_spi3_user_p, CLK_CON_MUX_SCLK_SPI3_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI4_USER, "mout_peric1_sclk_spi4_user",
+	    peric1_mux_sclk_spi4_user_p, CLK_CON_MUX_SCLK_SPI4_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI5_USER, "mout_peric1_sclk_spi5_user",
+	    peric1_mux_sclk_spi5_user_p, CLK_CON_MUX_SCLK_SPI5_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI6_USER, "mout_peric1_sclk_spi6_user",
+	    peric1_mux_sclk_spi6_user_p, CLK_CON_MUX_SCLK_SPI6_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_SPI7_USER, "mout_peric1_sclk_spi7_user",
+	    peric1_mux_sclk_spi7_user_p, CLK_CON_MUX_SCLK_SPI7_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_UART1_USER, "mout_peric1_sclk_uart1_user",
+	    peric1_mux_sclk_uart1_user_p, CLK_CON_MUX_SCLK_UART1_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_UART2_USER, "mout_peric1_sclk_uart2_user",
+	    peric1_mux_sclk_uart2_user_p, CLK_CON_MUX_SCLK_UART2_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_UART3_USER, "mout_peric1_sclk_uart3_user",
+	    peric1_mux_sclk_uart3_user_p, CLK_CON_MUX_SCLK_UART3_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_UART4_USER, "mout_peric1_sclk_uart4_user",
+	    peric1_mux_sclk_uart4_user_p, CLK_CON_MUX_SCLK_UART4_USER, 12, 1),
+	MUX(CLK_MOUT_PERIC1_SCLK_UART5_USER, "mout_peric1_sclk_uart5_user",
+	    peric1_mux_sclk_uart5_user_p, CLK_CON_MUX_SCLK_UART5_USER, 12, 1),
+};
+
+static const struct samsung_gate_clock peric1_gate_clks[] __initconst = {
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI7, "gout_peric1_pclk_spi7",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 25,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI6, "gout_peric1_pclk_spi6",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 24,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI5, "gout_peric1_pclk_spi5",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 23,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI4, "gout_peric1_pclk_spi4",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 22,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI3, "gout_peric1_pclk_spi3",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 21,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI2, "gout_peric1_pclk_spi2",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 20,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI1, "gout_peric1_pclk_spi1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 19,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SPI0, "gout_peric1_pclk_spi0",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 18,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_UART5, "gout_peric1_pclk_uart5",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 17,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_UART4, "gout_peric1_pclk_uart4",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 16,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_UART3, "gout_peric1_pclk_uart3",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 15,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_UART2, "gout_peric1_pclk_uart2",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 14,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_UART1, "gout_peric1_pclk_uart1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 13,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_GPIO_ESE, "gout_peric1_pclk_gpio_ese",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 12,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_GPIO_FF, "gout_peric1_pclk_gpio_ff",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 11,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_GPIO_TOUCH, "gout_peric1_pclk_gpio_touch",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 10,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_GPIO_NFC, "gout_peric1_pclk_gpio_nfc",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 9,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_GPIO_PERIC1, "gout_peric1_pclk_gpio_peric1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 8,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_SYSREG_PERIC1,
+	     "gout_peric1_pclk_sysreg_peric1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 7,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_PMU_PERIC1, "gout_peric1_pclk_pmu_peric1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 6,
+	     0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_CMU_PERIC1, "gout_peric1_pclk_cmu_peric1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 5,
+	     CLK_IGNORE_UNUSED, 0),
+	GATE(CLK_GOUT_PERIC1_ACLK_AXI2APB_PERIC1_2P,
+	     "gout_peric1_aclk_axi2apb_peric1_2p",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 4,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC1_ACLK_AXI2APB_PERIC1_1P,
+	     "gout_peric1_aclk_axi2apb_peric1_1p",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 3,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC1_ACLK_AXI2APB_PERIC1_0P,
+	     "gout_peric1_aclk_axi2apb_peric1_0p",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 2,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC1_ACLK_XIU_PERIC1SFRX,
+	     "gout_peric1_aclk_xiu_peric1sfrx",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 1,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC1_ACLK_AXILHASYNCM_PERIC1,
+	     "gout_peric1_aclk_axilhasyncm_peric1",
+	     "mout_peric1_aclk_peric1_66_user", CG_CTRL_VAL_ACLK_PERIC1_66, 0,
+	     CLK_IS_CRITICAL, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C14, "gout_peric1_pclk_hsi2c14",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 7, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C13, "gout_peric1_pclk_hsi2c13",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 6, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C12, "gout_peric1_pclk_hsi2c12",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 5, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C8, "gout_peric1_pclk_hsi2c8",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 4, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C7, "gout_peric1_pclk_hsi2c7",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 3, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C6, "gout_peric1_pclk_hsi2c6",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 2, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C3, "gout_peric1_pclk_hsi2c3",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 1, 0, 0),
+	GATE(CLK_GOUT_PERIC1_PCLK_HSI2C2, "gout_peric1_pclk_hsi2c2",
+	     "mout_peric1_aclk_peric1_66_user",
+	     CG_CTRL_VAL_ACLK_PERIC1_66_HSI2C, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI0, "gout_peric1_sclk_spi0",
+	     "mout_peric1_sclk_spi0_user", CG_CTRL_VAL_SCLK_SPI0, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI1, "gout_peric1_sclk_spi1",
+	     "mout_peric1_sclk_spi1_user", CG_CTRL_VAL_SCLK_SPI1, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI2, "gout_peric1_sclk_spi2",
+	     "mout_peric1_sclk_spi2_user", CG_CTRL_VAL_SCLK_SPI2, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI3, "gout_peric1_sclk_spi3",
+	     "mout_peric1_sclk_spi3_user", CG_CTRL_VAL_SCLK_SPI3, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI4, "gout_peric1_sclk_spi4",
+	     "mout_peric1_sclk_spi4_user", CG_CTRL_VAL_SCLK_SPI4, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI5, "gout_peric1_sclk_spi5",
+	     "mout_peric1_sclk_spi5_user", CG_CTRL_VAL_SCLK_SPI5, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI6, "gout_peric1_sclk_spi6",
+	     "mout_peric1_sclk_spi6_user", CG_CTRL_VAL_SCLK_SPI6, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_SPI7, "gout_peric1_sclk_spi7",
+	     "mout_peric1_sclk_spi7_user", CG_CTRL_VAL_SCLK_SPI7, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_UART1, "gout_peric1_sclk_uart1",
+	     "mout_peric1_sclk_uart1_user", CG_CTRL_VAL_SCLK_UART1, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_UART2, "gout_peric1_sclk_uart2",
+	     "mout_peric1_sclk_uart2_user", CG_CTRL_VAL_SCLK_UART2, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_UART3, "gout_peric1_sclk_uart3",
+	     "mout_peric1_sclk_uart3_user", CG_CTRL_VAL_SCLK_UART3, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_UART4, "gout_peric1_sclk_uart4",
+	     "mout_peric1_sclk_uart4_user", CG_CTRL_VAL_SCLK_UART4, 0, 0, 0),
+	GATE(CLK_GOUT_PERIC1_SCLK_UART5, "gout_peric1_sclk_uart5",
+	     "mout_peric1_sclk_uart5_user", CG_CTRL_VAL_SCLK_UART5, 0, 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),
+	.gate_clks		= peric1_gate_clks,
+	.nr_gate_clks		= ARRAY_SIZE(peric1_gate_clks),
+	.nr_clk_ids		= PERIC1_NR_CLK,
+	.clk_regs		= peric1_clk_regs,
+	.nr_clk_regs		= ARRAY_SIZE(peric1_clk_regs),
+};
+
+static int __init exynos8890_cmu_probe(struct platform_device *pdev)
+{
+	const struct samsung_cmu_info *info;
+	struct device *dev = &pdev->dev;
+
+	info = of_device_get_match_data(dev);
+	exynos8890_init_clocks(dev->of_node, info);
+	samsung_cmu_register_one(dev->of_node, info);
+
+	return 0;
+}
+
+static const struct of_device_id exynos8890_cmu_of_match[] = {
+	{
+		.compatible = "samsung,exynos8890-cmu-apollo",
+		.data = &apollo_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-aud",
+		.data = &aud_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-bus0",
+		.data = &bus0_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-bus1",
+		.data = &bus1_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-ccore",
+		.data = &ccore_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-disp0",
+		.data = &disp0_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-disp1",
+		.data = &disp1_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-fsys0",
+		.data = &fsys0_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-fsys1",
+		.data = &fsys1_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-g3d",
+		.data = &g3d_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-mif0",
+		.data = &mif0_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-mif1",
+		.data = &mif1_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-mif2",
+		.data = &mif2_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-mif3",
+		.data = &mif3_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-mngs",
+		.data = &mngs_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-peric0",
+		.data = &peric0_cmu_info,
+	}, {
+		.compatible = "samsung,exynos8890-cmu-peric1",
+		.data = &peric1_cmu_info,
+	},
+	{ },
+};
+
+static struct platform_driver exynos8890_cmu_driver __refdata = {
+	.driver = {
+		.name = "exynos8890-cmu",
+		.of_match_table = exynos8890_cmu_of_match,
+		.suppress_bind_attrs = true,
+	},
+	.probe = exynos8890_cmu_probe,
+};
+
+static int __init exynos8890_cmu_init(void)
+{
+	return platform_driver_register(&exynos8890_cmu_driver);
+}
+core_initcall(exynos8890_cmu_init);
-- 
2.43.0
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Peng Fan 2 weeks, 3 days ago
On Sun, Sep 14, 2025 at 03:21:16PM +0300, Ivaylo Ivanov wrote:
>Introduce a clocks management driver for exynos8890, providing clocks
>for the peripherals of that SoC.
>
>As exynos8890 is the first SoC to have HWACG, it differs a bit from the

Hardware Auto Clock Gating(HWACG), if I understand correctly.

>newer SoCs. Q-channel and Q-state bits are separate registers, unlike
>the CLK_CON_GAT_* ones that feature HWACG bits in the same register
>that controls manual gating. Hence, don't use the clk-exynos-arm64
>helper, but implement logic that enforces manual gating according to
>how HWACG is implemented here.
>
>Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>---
> drivers/clk/samsung/Makefile         |    1 +
> drivers/clk/samsung/clk-exynos8890.c | 8695 ++++++++++++++++++++++++++
> 2 files changed, 8696 insertions(+)
> create mode 100644 drivers/clk/samsung/clk-exynos8890.c
>
>diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
>index b77fe288e..982dc7c64 100644
>--- a/drivers/clk/samsung/Makefile
>+++ b/drivers/clk/samsung/Makefile
>@@ -22,6 +22,7 @@ obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7870.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7885.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos850.o
>+obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8890.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8895.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos990.o
> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov9.o
>diff --git a/drivers/clk/samsung/clk-exynos8890.c b/drivers/clk/samsung/clk-exynos8890.c
>new file mode 100644
>index 000000000..670587bae
>--- /dev/null
>+++ b/drivers/clk/samsung/clk-exynos8890.c
>@@ -0,0 +1,8695 @@
>+// SPDX-License-Identifier: GPL-2.0-only
>+/*
>+ * Copyright (C) 2025 Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>+ * Author: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>+ *
>+ * Common Clock Framework support for Exynos8890 SoC.
>+ */
>+
>+#include <linux/clk-provider.h>
>+#include <linux/mod_devicetable.h>
>+#include <linux/of_address.h>
>+#include <linux/of.h>
>+#include <linux/platform_device.h>
>+
>+#include <dt-bindings/clock/samsung,exynos8890-cmu.h>
>+
>+#include "clk.h"
>+
>+/* NOTE: Must be equal to the last clock ID increased by one */
>+#define TOP_NR_CLK	(CLK_GOUT_TOP_SCLK_PROMISE_DISP + 1)
>+#define PERIS_NR_CLK	(CLK_GOUT_PERIS_SCLK_PROMISE_PERIS + 1)
>+#define APOLLO_NR_CLK	(CLK_GOUT_APOLLO_SCLK_PROMISE_APOLLO + 1)
>+#define AUD_NR_CLK	(CLK_GOUT_AUD_SCLK_I2S_BCLK + 1)
>+#define BUS0_NR_CLK	(CLK_GOUT_BUS0_ACLK_TREX_P_BUS0 + 1)
>+#define BUS1_NR_CLK	(CLK_GOUT_BUS1_ACLK_TREX_P_BUS1 + 1)
>+#define CCORE_NR_CLK	(CLK_GOUT_CCORE_SCLK_PROMISE + 1)
>+#define DISP0_NR_CLK	(CLK_GOUT_DISP0_OSCCLK_DP_I_CLK_24M + 1)
>+#define DISP1_NR_CLK	(CLK_GOUT_DISP1_SCLK_PROMISE_DISP1 + 1)
>+#define FSYS0_NR_CLK	(CLK_GOUT_FSYS0_SCLK_USBHOST20_REF_CLK + 1)
>+#define FSYS1_NR_CLK	(CLK_GOUT_FSYS1_SCLK_PROMISE_FSYS1 + 1)
>+#define G3D_NR_CLK	(CLK_GOUT_G3D_SCLK_ASYNCAXI_G3D + 1)
>+#define MIF0_NR_CLK	(CLK_GOUT_MIF0_RCLK_DREX + 1)
>+#define MIF1_NR_CLK	(CLK_GOUT_MIF1_RCLK_DREX + 1)
>+#define MIF2_NR_CLK	(CLK_GOUT_MIF2_RCLK_DREX + 1)
>+#define MIF3_NR_CLK	(CLK_GOUT_MIF3_RCLK_DREX + 1)
>+#define MNGS_NR_CLK	(CLK_GOUT_MNGS_SCLK_PROMISE0_MNGS + 1)
>+#define PERIC0_NR_CLK	(CLK_GOUT_PERIC0_SCLK_PWM + 1)
>+#define PERIC1_NR_CLK	(CLK_GOUT_PERIC1_SCLK_UART5 + 1)
>+
>+/*
>+ * As exynos8890 first introduced hwacg, cmu registers are mapped similarly
>+ * to exynos7, with the exception of the new q-state and q-ch registers that
>+ * can set the behavior of automatic gates.
>+ */
>+
>+/* decoded magic number from downstream */
>+#define QCH_EN_MASK		BIT(0)
>+#define QCH_MASK		(GENMASK(19, 16) | BIT(12))
>+#define QCH_DIS			(QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))

Nit: align code.

>+
>+/* q-channel registers offsets range */
>+#define QCH_OFF_START		0x2000
>+#define QCH_OFF_END		0x23ff
>+
>+/* q-state registers offsets range */
>+#define QSTATE_OFF_START	0x2400
>+#define QSTATE_OFF_END		0x2fff

Nit: Align.

>+
>+/* check if the register offset is a QCH register */
>+static bool is_qch_reg(unsigned long off)
>+{
>+	return off >= QCH_OFF_START && off <= QCH_OFF_END;
>+}
>+
>+/* check if the register offset is a QSTATE register */
>+static bool is_qstate_reg(unsigned long off)
>+{
>+	return off >= QSTATE_OFF_START && off <= QSTATE_OFF_END;
>+}
>+
>+static void __init exynos8890_init_clocks(struct device_node *np,
>+					  const struct samsung_cmu_info *cmu)
>+{
>+	const unsigned long *reg_offs = cmu->clk_regs;
>+	size_t reg_offs_len = cmu->nr_clk_regs;
>+	void __iomem *reg_base;
>+	size_t i;
>+
>+	reg_base = of_iomap(np, 0);
>+	if (!reg_base)
>+		panic("%s: failed to map registers\n", __func__);
>+
>+	for (i = 0; i < reg_offs_len; ++i) {
>+		void __iomem *reg = reg_base + reg_offs[i];
>+		u32 val;
>+
>+		if (is_qch_reg(reg_offs[i])) {
>+			val = QCH_DIS;
>+			writel(val, reg);
>+		} else if (is_qstate_reg(reg_offs[i])) {
>+			val = 0;
>+			writel(val, reg);
>+		}

This seems to disable qchannel and set qstate to 0 for disable HWACG.
If this is true, a comment is preferred.

>+	}
>+
>+	iounmap(reg_base);
>+}
>+
>+/* ---- CMU_TOP ------------------------------------------------------------- */
>+
>+#define MIF_CLK_CTRL1						0x1084
>+#define MIF_CLK_CTRL2						0x1088
>+#define MIF_CLK_CTRL3						0x108C
>+#define MIF_CLK_CTRL4						0x1090
>+#define ACD_PSCDC_CTRL_0					0x1094
>+#define ACD_PSCDC_CTRL_1					0x1098
>+#define ACD_PSCDC_STAT						0x109C
>+#define CMU_TOP_SPARE0						0x1100
>+#define CMU_TOP_SPARE1						0x1104
>+#define CMU_TOP_SPARE2						0x1108
>+#define CMU_TOP_SPARE3						0x110C

Some of the registers not aligned.

>+
[...]
>+static void __init exynos8890_cmu_top_init(struct device_node *np)
>+{
>+	exynos8890_init_clocks(np, &top_cmu_info);
>+	samsung_cmu_register_one(np, &top_cmu_info);
>+}
>+
>+/* Register CMU_TOP early, as it's a dependency for other early domains */
>+CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
>+	       exynos8890_cmu_top_init);

Not sure you need to run Android GKI, without module built, this platform
will not able to support GKI.

It would be better to update to use platform drivers.

>+
>+/* ---- CMU_PERIS ---------------------------------------------------------- */
>+
>+#define QSTATE_CTRL_TMU				0x2474
>+#define QSTATE_CTRL_CHIPID			0x2484
>+#define QSTATE_CTRL_PROMISE_PERIS		0x2488

Not aligned.

>+
>+
>+/* Register CMU_PERIS early, as it's needed for MCT timer */
>+CLK_OF_DECLARE(exynos8890_cmu_peris, "samsung,exynos8890-cmu-peris",
>+	       exynos8890_cmu_peris_init);

Same as above.

>+
>+/* ---- CMU_APOLLO --------------------------------------------------------- */
>+
>+/* Register Offset definitions for CMU_APOLLO (0x11900000) */
>+#define APOLLO_PLL_LOCK				0x0000
>+#define APOLLO_PLL_CON0				0x0100
>+#define APOLLO_PLL_CON1				0x0104
>+#define APOLLO_PLL_FREQ_DET			0x010C

Not align.

>+
>+#define CLKOUT_CMU_AUD			0x0D00
>+#define CLKOUT_CMU_AUD_DIV_STAT		0x0D04
>+#define CLK_ENABLE_PDN_AUD		0x0E00
>+#define AUD_SFR_IGNORE_REQ_SYSCLK	0x0F28

Ditto.

>+
>+#define QCH_CTRL_TREX_D_BUS1		0x2000
>+#define QCH_CTRL_FSYS0_D		0x2004
>+#define QCH_CTRL_MFC0_D			0x2008
>+#define QCH_CTRL_MFC1_D			0x200C
>+#define QCH_CTRL_MSCL0_D		0x2010

Ditto. Seems this was generated by tools, better to align all.

>+
>+
>+
>+static int __init exynos8890_cmu_init(void)
>+{
>+	return platform_driver_register(&exynos8890_cmu_driver);
>+}
>+core_initcall(exynos8890_cmu_init);

So early initcall. Not sure about this. But I think devlink or defer probe
could handle correctly for clock stuff. Not block the use of this, a
comment would be preferred.

Regards
Peng
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Ivaylo Ivanov 2 weeks, 3 days ago
On 9/15/25 10:49, Peng Fan wrote:
> On Sun, Sep 14, 2025 at 03:21:16PM +0300, Ivaylo Ivanov wrote:
>> Introduce a clocks management driver for exynos8890, providing clocks
>> for the peripherals of that SoC.
>>
>> As exynos8890 is the first SoC to have HWACG, it differs a bit from the
> Hardware Auto Clock Gating(HWACG), if I understand correctly.
>
>> newer SoCs. Q-channel and Q-state bits are separate registers, unlike
>> the CLK_CON_GAT_* ones that feature HWACG bits in the same register
>> that controls manual gating. Hence, don't use the clk-exynos-arm64
>> helper, but implement logic that enforces manual gating according to
>> how HWACG is implemented here.
>>
>> Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>> ---
>> drivers/clk/samsung/Makefile         |    1 +
>> drivers/clk/samsung/clk-exynos8890.c | 8695 ++++++++++++++++++++++++++
>> 2 files changed, 8696 insertions(+)
>> create mode 100644 drivers/clk/samsung/clk-exynos8890.c
>>
>> diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
>> index b77fe288e..982dc7c64 100644
>> --- a/drivers/clk/samsung/Makefile
>> +++ b/drivers/clk/samsung/Makefile
>> @@ -22,6 +22,7 @@ obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7870.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7885.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos850.o
>> +obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8890.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8895.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos990.o
>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov9.o
>> diff --git a/drivers/clk/samsung/clk-exynos8890.c b/drivers/clk/samsung/clk-exynos8890.c
>> new file mode 100644
>> index 000000000..670587bae
>> --- /dev/null
>> +++ b/drivers/clk/samsung/clk-exynos8890.c
>> @@ -0,0 +1,8695 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright (C) 2025 Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>> + * Author: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>> + *
>> + * Common Clock Framework support for Exynos8890 SoC.
>> + */
>> +
>> +#include <linux/clk-provider.h>
>> +#include <linux/mod_devicetable.h>
>> +#include <linux/of_address.h>
>> +#include <linux/of.h>
>> +#include <linux/platform_device.h>
>> +
>> +#include <dt-bindings/clock/samsung,exynos8890-cmu.h>
>> +
>> +#include "clk.h"
>> +
>> +/* NOTE: Must be equal to the last clock ID increased by one */
>> +#define TOP_NR_CLK	(CLK_GOUT_TOP_SCLK_PROMISE_DISP + 1)
>> +#define PERIS_NR_CLK	(CLK_GOUT_PERIS_SCLK_PROMISE_PERIS + 1)
>> +#define APOLLO_NR_CLK	(CLK_GOUT_APOLLO_SCLK_PROMISE_APOLLO + 1)
>> +#define AUD_NR_CLK	(CLK_GOUT_AUD_SCLK_I2S_BCLK + 1)
>> +#define BUS0_NR_CLK	(CLK_GOUT_BUS0_ACLK_TREX_P_BUS0 + 1)
>> +#define BUS1_NR_CLK	(CLK_GOUT_BUS1_ACLK_TREX_P_BUS1 + 1)
>> +#define CCORE_NR_CLK	(CLK_GOUT_CCORE_SCLK_PROMISE + 1)
>> +#define DISP0_NR_CLK	(CLK_GOUT_DISP0_OSCCLK_DP_I_CLK_24M + 1)
>> +#define DISP1_NR_CLK	(CLK_GOUT_DISP1_SCLK_PROMISE_DISP1 + 1)
>> +#define FSYS0_NR_CLK	(CLK_GOUT_FSYS0_SCLK_USBHOST20_REF_CLK + 1)
>> +#define FSYS1_NR_CLK	(CLK_GOUT_FSYS1_SCLK_PROMISE_FSYS1 + 1)
>> +#define G3D_NR_CLK	(CLK_GOUT_G3D_SCLK_ASYNCAXI_G3D + 1)
>> +#define MIF0_NR_CLK	(CLK_GOUT_MIF0_RCLK_DREX + 1)
>> +#define MIF1_NR_CLK	(CLK_GOUT_MIF1_RCLK_DREX + 1)
>> +#define MIF2_NR_CLK	(CLK_GOUT_MIF2_RCLK_DREX + 1)
>> +#define MIF3_NR_CLK	(CLK_GOUT_MIF3_RCLK_DREX + 1)
>> +#define MNGS_NR_CLK	(CLK_GOUT_MNGS_SCLK_PROMISE0_MNGS + 1)
>> +#define PERIC0_NR_CLK	(CLK_GOUT_PERIC0_SCLK_PWM + 1)
>> +#define PERIC1_NR_CLK	(CLK_GOUT_PERIC1_SCLK_UART5 + 1)
>> +
>> +/*
>> + * As exynos8890 first introduced hwacg, cmu registers are mapped similarly
>> + * to exynos7, with the exception of the new q-state and q-ch registers that
>> + * can set the behavior of automatic gates.
>> + */
>> +
>> +/* decoded magic number from downstream */
>> +#define QCH_EN_MASK		BIT(0)
>> +#define QCH_MASK		(GENMASK(19, 16) | BIT(12))
>> +#define QCH_DIS			(QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))
> Nit: align code.

Aligned in my editor, patch files offset each line with a single symbol
so formatting gets broken...

>
>> +
>> +/* q-channel registers offsets range */
>> +#define QCH_OFF_START		0x2000
>> +#define QCH_OFF_END		0x23ff
>> +
>> +/* q-state registers offsets range */
>> +#define QSTATE_OFF_START	0x2400
>> +#define QSTATE_OFF_END		0x2fff
> Nit: Align.

What?

>
>> +
>> +/* check if the register offset is a QCH register */
>> +static bool is_qch_reg(unsigned long off)
>> +{
>> +	return off >= QCH_OFF_START && off <= QCH_OFF_END;
>> +}
>> +
>> +/* check if the register offset is a QSTATE register */
>> +static bool is_qstate_reg(unsigned long off)
>> +{
>> +	return off >= QSTATE_OFF_START && off <= QSTATE_OFF_END;
>> +}
>> +
>> +static void __init exynos8890_init_clocks(struct device_node *np,
>> +					  const struct samsung_cmu_info *cmu)
>> +{
>> +	const unsigned long *reg_offs = cmu->clk_regs;
>> +	size_t reg_offs_len = cmu->nr_clk_regs;
>> +	void __iomem *reg_base;
>> +	size_t i;
>> +
>> +	reg_base = of_iomap(np, 0);
>> +	if (!reg_base)
>> +		panic("%s: failed to map registers\n", __func__);
>> +
>> +	for (i = 0; i < reg_offs_len; ++i) {
>> +		void __iomem *reg = reg_base + reg_offs[i];
>> +		u32 val;
>> +
>> +		if (is_qch_reg(reg_offs[i])) {
>> +			val = QCH_DIS;
>> +			writel(val, reg);
>> +		} else if (is_qstate_reg(reg_offs[i])) {
>> +			val = 0;
>> +			writel(val, reg);
>> +		}
> This seems to disable qchannel and set qstate to 0 for disable HWACG.
> If this is true, a comment is preferred.

I believe the "DIS" part is pretty self explanatory, no?

>
>> +	}
>> +
>> +	iounmap(reg_base);
>> +}
>> +
>> +/* ---- CMU_TOP ------------------------------------------------------------- */
>> +
>> +#define MIF_CLK_CTRL1						0x1084
>> +#define MIF_CLK_CTRL2						0x1088
>> +#define MIF_CLK_CTRL3						0x108C
>> +#define MIF_CLK_CTRL4						0x1090
>> +#define ACD_PSCDC_CTRL_0					0x1094
>> +#define ACD_PSCDC_CTRL_1					0x1098
>> +#define ACD_PSCDC_STAT						0x109C
>> +#define CMU_TOP_SPARE0						0x1100
>> +#define CMU_TOP_SPARE1						0x1104
>> +#define CMU_TOP_SPARE2						0x1108
>> +#define CMU_TOP_SPARE3						0x110C
> Some of the registers not aligned.

How are they not, they're aligned both in editors and the patch. Please elaborate.

>
>> +
> [...]
>> +static void __init exynos8890_cmu_top_init(struct device_node *np)
>> +{
>> +	exynos8890_init_clocks(np, &top_cmu_info);
>> +	samsung_cmu_register_one(np, &top_cmu_info);
>> +}
>> +
>> +/* Register CMU_TOP early, as it's a dependency for other early domains */
>> +CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
>> +	       exynos8890_cmu_top_init);
> Not sure you need to run Android GKI, without module built, this platform
> will not able to support GKI.
>
> It would be better to update to use platform drivers.

Same as what Krzysztof said, design choice accross all samsung clock drivers.

>
>> +
>> +/* ---- CMU_PERIS ---------------------------------------------------------- */
>> +
>> +#define QSTATE_CTRL_TMU				0x2474
>> +#define QSTATE_CTRL_CHIPID			0x2484
>> +#define QSTATE_CTRL_PROMISE_PERIS		0x2488
> Not aligned.
>
>> +
>> +
>> +/* Register CMU_PERIS early, as it's needed for MCT timer */
>> +CLK_OF_DECLARE(exynos8890_cmu_peris, "samsung,exynos8890-cmu-peris",
>> +	       exynos8890_cmu_peris_init);
> Same as above.
>
>> +
>> +/* ---- CMU_APOLLO --------------------------------------------------------- */
>> +
>> +/* Register Offset definitions for CMU_APOLLO (0x11900000) */
>> +#define APOLLO_PLL_LOCK				0x0000
>> +#define APOLLO_PLL_CON0				0x0100
>> +#define APOLLO_PLL_CON1				0x0104
>> +#define APOLLO_PLL_FREQ_DET			0x010C
> Not align.

Same as the other comments about alignment.

Best regards,
Ivaylo

>
> Regards
> Peng
>
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Peng Fan 2 weeks, 3 days ago
On Mon, Sep 15, 2025 at 11:59:47AM +0300, Ivaylo Ivanov wrote:
>On 9/15/25 10:49, Peng Fan wrote:
>> On Sun, Sep 14, 2025 at 03:21:16PM +0300, Ivaylo Ivanov wrote:
>>> Introduce a clocks management driver for exynos8890, providing clocks
>>> for the peripherals of that SoC.
>>>
>>> As exynos8890 is the first SoC to have HWACG, it differs a bit from the
>> Hardware Auto Clock Gating(HWACG), if I understand correctly.
>>
>>> newer SoCs. Q-channel and Q-state bits are separate registers, unlike
>>> the CLK_CON_GAT_* ones that feature HWACG bits in the same register
>>> that controls manual gating. Hence, don't use the clk-exynos-arm64
>>> helper, but implement logic that enforces manual gating according to
>>> how HWACG is implemented here.
>>>
>>> Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>>> ---
>>> drivers/clk/samsung/Makefile         |    1 +
>>> drivers/clk/samsung/clk-exynos8890.c | 8695 ++++++++++++++++++++++++++
>>> 2 files changed, 8696 insertions(+)
>>> create mode 100644 drivers/clk/samsung/clk-exynos8890.c
>>>
>>> diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
>>> index b77fe288e..982dc7c64 100644
>>> --- a/drivers/clk/samsung/Makefile
>>> +++ b/drivers/clk/samsung/Makefile
>>> @@ -22,6 +22,7 @@ obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7870.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7885.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos850.o
>>> +obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8890.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos8895.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos990.o
>>> obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov9.o
>>> diff --git a/drivers/clk/samsung/clk-exynos8890.c b/drivers/clk/samsung/clk-exynos8890.c
>>> new file mode 100644
>>> index 000000000..670587bae
>>> --- /dev/null
>>> +++ b/drivers/clk/samsung/clk-exynos8890.c
>>> @@ -0,0 +1,8695 @@
>>> +// SPDX-License-Identifier: GPL-2.0-only
>>> +/*
>>> + * Copyright (C) 2025 Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>>> + * Author: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
>>> + *
>>> + * Common Clock Framework support for Exynos8890 SoC.
>>> + */
>>> +
>>> +#include <linux/clk-provider.h>
>>> +#include <linux/mod_devicetable.h>
>>> +#include <linux/of_address.h>
>>> +#include <linux/of.h>
>>> +#include <linux/platform_device.h>
>>> +
>>> +#include <dt-bindings/clock/samsung,exynos8890-cmu.h>
>>> +
>>> +#include "clk.h"
>>> +
>>> +/* NOTE: Must be equal to the last clock ID increased by one */
>>> +#define TOP_NR_CLK	(CLK_GOUT_TOP_SCLK_PROMISE_DISP + 1)
>>> +#define PERIS_NR_CLK	(CLK_GOUT_PERIS_SCLK_PROMISE_PERIS + 1)
>>> +#define APOLLO_NR_CLK	(CLK_GOUT_APOLLO_SCLK_PROMISE_APOLLO + 1)
>>> +#define AUD_NR_CLK	(CLK_GOUT_AUD_SCLK_I2S_BCLK + 1)
>>> +#define BUS0_NR_CLK	(CLK_GOUT_BUS0_ACLK_TREX_P_BUS0 + 1)
>>> +#define BUS1_NR_CLK	(CLK_GOUT_BUS1_ACLK_TREX_P_BUS1 + 1)
>>> +#define CCORE_NR_CLK	(CLK_GOUT_CCORE_SCLK_PROMISE + 1)
>>> +#define DISP0_NR_CLK	(CLK_GOUT_DISP0_OSCCLK_DP_I_CLK_24M + 1)
>>> +#define DISP1_NR_CLK	(CLK_GOUT_DISP1_SCLK_PROMISE_DISP1 + 1)
>>> +#define FSYS0_NR_CLK	(CLK_GOUT_FSYS0_SCLK_USBHOST20_REF_CLK + 1)
>>> +#define FSYS1_NR_CLK	(CLK_GOUT_FSYS1_SCLK_PROMISE_FSYS1 + 1)
>>> +#define G3D_NR_CLK	(CLK_GOUT_G3D_SCLK_ASYNCAXI_G3D + 1)
>>> +#define MIF0_NR_CLK	(CLK_GOUT_MIF0_RCLK_DREX + 1)
>>> +#define MIF1_NR_CLK	(CLK_GOUT_MIF1_RCLK_DREX + 1)
>>> +#define MIF2_NR_CLK	(CLK_GOUT_MIF2_RCLK_DREX + 1)
>>> +#define MIF3_NR_CLK	(CLK_GOUT_MIF3_RCLK_DREX + 1)
>>> +#define MNGS_NR_CLK	(CLK_GOUT_MNGS_SCLK_PROMISE0_MNGS + 1)
>>> +#define PERIC0_NR_CLK	(CLK_GOUT_PERIC0_SCLK_PWM + 1)
>>> +#define PERIC1_NR_CLK	(CLK_GOUT_PERIC1_SCLK_UART5 + 1)
>>> +
>>> +/*
>>> + * As exynos8890 first introduced hwacg, cmu registers are mapped similarly
>>> + * to exynos7, with the exception of the new q-state and q-ch registers that
>>> + * can set the behavior of automatic gates.
>>> + */
>>> +
>>> +/* decoded magic number from downstream */
>>> +#define QCH_EN_MASK		BIT(0)
>>> +#define QCH_MASK		(GENMASK(19, 16) | BIT(12))
>>> +#define QCH_DIS			(QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))
>> Nit: align code.
>
>Aligned in my editor, patch files offset each line with a single symbol
>so formatting gets broken...

seems something broken in my mutt. Sorry for false alarm.

>> will not able to support GKI.
>>
>> It would be better to update to use platform drivers.
>
>Same as what Krzysztof said, design choice accross all samsung clock drivers.

Sure. No problem.

Regards
Peng
>
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Krzysztof Kozlowski 2 weeks, 3 days ago
On 15/09/2025 09:49, Peng Fan wrote:
> [...]
>> +static void __init exynos8890_cmu_top_init(struct device_node *np)
>> +{
>> +	exynos8890_init_clocks(np, &top_cmu_info);
>> +	samsung_cmu_register_one(np, &top_cmu_info);
>> +}
>> +
>> +/* Register CMU_TOP early, as it's a dependency for other early domains */
>> +CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
>> +	       exynos8890_cmu_top_init);
> 
> Not sure you need to run Android GKI, without module built, this platform
> will not able to support GKI.

Why would anyone worry about GKI? We develop mainline kernel, not
Android kernel.

This seems to be aligned with existing approach, no? What is different here?

Best regards,
Krzysztof
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Peng Fan 2 weeks, 3 days ago
On Mon, Sep 15, 2025 at 09:16:40AM +0200, Krzysztof Kozlowski wrote:
>On 15/09/2025 09:49, Peng Fan wrote:
>> [...]
>>> +static void __init exynos8890_cmu_top_init(struct device_node *np)
>>> +{
>>> +	exynos8890_init_clocks(np, &top_cmu_info);
>>> +	samsung_cmu_register_one(np, &top_cmu_info);
>>> +}
>>> +
>>> +/* Register CMU_TOP early, as it's a dependency for other early domains */
>>> +CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
>>> +	       exynos8890_cmu_top_init);
>> 
>> Not sure you need to run Android GKI, without module built, this platform
>> will not able to support GKI.
>
>Why would anyone worry about GKI? We develop mainline kernel, not
>Android kernel.

I understand this. But someone will have to update this to support module
built whether mainline or downstream tree, unless GKI is not in the plan.

>
>This seems to be aligned with existing approach, no? What is different here?

No objection from me. I just think supporting module built is a better method.

Regards,
Peng

>
>Best regards,
>Krzysztof
>
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by Krzysztof Kozlowski 2 weeks, 1 day ago
On 15/09/2025 13:30, Peng Fan wrote:
> On Mon, Sep 15, 2025 at 09:16:40AM +0200, Krzysztof Kozlowski wrote:
>> On 15/09/2025 09:49, Peng Fan wrote:
>>> [...]
>>>> +static void __init exynos8890_cmu_top_init(struct device_node *np)
>>>> +{
>>>> +	exynos8890_init_clocks(np, &top_cmu_info);
>>>> +	samsung_cmu_register_one(np, &top_cmu_info);
>>>> +}
>>>> +
>>>> +/* Register CMU_TOP early, as it's a dependency for other early domains */
>>>> +CLK_OF_DECLARE(exynos8890_cmu_top, "samsung,exynos8890-cmu-top",
>>>> +	       exynos8890_cmu_top_init);
>>>
>>> Not sure you need to run Android GKI, without module built, this platform
>>> will not able to support GKI.
>>
>> Why would anyone worry about GKI? We develop mainline kernel, not
>> Android kernel.
> 
> I understand this. But someone will have to update this to support module
> built whether mainline or downstream tree, unless GKI is not in the plan.

What Android, Windows or BSD people plan is outside of my scope. I am
happy if someone wants to make it fully modular and actually TESTS it,
so it works. It was not fully modular because of boot limitations long
time ago, which maybe are solved maybe not.

Best regards,
Krzysztof
Re: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
Posted by kernel test robot 2 weeks, 4 days ago
Hi Ivaylo,

kernel test robot noticed the following build errors:

[auto build test ERROR on krzk-dt/for-next]
[also build test ERROR on linus/master v6.17-rc5]
[cannot apply to krzk/for-next clk/clk-next next-20250912]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ivaylo-Ivanov/dt-bindings-clock-add-exynos8890-SoC/20250914-202302
base:   https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt.git for-next
patch link:    https://lore.kernel.org/r/20250914122116.2616801-6-ivo.ivanov.ivanov1%40gmail.com
patch subject: [PATCH v1 5/5] clk: samsung: introduce exynos8890 clock driver
config: csky-randconfig-001-20250914 (https://download.01.org/0day-ci/archive/20250914/202509142156.qb0htmwo-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250914/202509142156.qb0htmwo-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509142156.qb0htmwo-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/clk/samsung/clk-exynos8890.c: In function 'exynos8890_init_clocks':
>> drivers/clk/samsung/clk-exynos8890.c:49:45: error: implicit declaration of function 'FIELD_PREP' [-Wimplicit-function-declaration]
      49 | #define QCH_DIS                 (QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))
         |                                             ^~~~~~~~~~
   drivers/clk/samsung/clk-exynos8890.c:88:31: note: in expansion of macro 'QCH_DIS'
      88 |                         val = QCH_DIS;
         |                               ^~~~~~~


vim +/FIELD_PREP +49 drivers/clk/samsung/clk-exynos8890.c

    39	
    40	/*
    41	 * As exynos8890 first introduced hwacg, cmu registers are mapped similarly
    42	 * to exynos7, with the exception of the new q-state and q-ch registers that
    43	 * can set the behavior of automatic gates.
    44	 */
    45	
    46	/* decoded magic number from downstream */
    47	#define QCH_EN_MASK		BIT(0)
    48	#define QCH_MASK		(GENMASK(19, 16) | BIT(12))
  > 49	#define QCH_DIS			(QCH_MASK | FIELD_PREP(QCH_EN_MASK, 0))
    50	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki