162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2017-2022 Samsung Electronics Co., Ltd.
462306a36Sopenharmony_ci *             https://www.samsung.com
562306a36Sopenharmony_ci * Copyright (c) 2017-2022 Tesla, Inc.
662306a36Sopenharmony_ci *             https://www.tesla.com
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Common Clock Framework support for FSD SoC.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <linux/clk.h>
1262306a36Sopenharmony_ci#include <linux/clk-provider.h>
1362306a36Sopenharmony_ci#include <linux/init.h>
1462306a36Sopenharmony_ci#include <linux/kernel.h>
1562306a36Sopenharmony_ci#include <linux/of.h>
1662306a36Sopenharmony_ci#include <linux/platform_device.h>
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#include <dt-bindings/clock/fsd-clk.h>
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#include "clk.h"
2162306a36Sopenharmony_ci#include "clk-exynos-arm64.h"
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci/* Register Offset definitions for CMU_CMU (0x11c10000) */
2462306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED0			0x0
2562306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED1			0x4
2662306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED2			0x8
2762306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED3			0xc
2862306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED0				0x100
2962306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED1				0x120
3062306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED2				0x140
3162306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED3				0x160
3262306a36Sopenharmony_ci#define MUX_CMU_CIS0_CLKMUX				0x1000
3362306a36Sopenharmony_ci#define MUX_CMU_CIS1_CLKMUX				0x1004
3462306a36Sopenharmony_ci#define MUX_CMU_CIS2_CLKMUX				0x1008
3562306a36Sopenharmony_ci#define MUX_CMU_CPUCL_SWITCHMUX				0x100c
3662306a36Sopenharmony_ci#define MUX_CMU_FSYS1_ACLK_MUX				0x1014
3762306a36Sopenharmony_ci#define MUX_PLL_SHARED0_MUX				0x1020
3862306a36Sopenharmony_ci#define MUX_PLL_SHARED1_MUX				0x1024
3962306a36Sopenharmony_ci#define DIV_CMU_CIS0_CLK				0x1800
4062306a36Sopenharmony_ci#define DIV_CMU_CIS1_CLK				0x1804
4162306a36Sopenharmony_ci#define DIV_CMU_CIS2_CLK				0x1808
4262306a36Sopenharmony_ci#define DIV_CMU_CMU_ACLK				0x180c
4362306a36Sopenharmony_ci#define DIV_CMU_CPUCL_SWITCH				0x1810
4462306a36Sopenharmony_ci#define DIV_CMU_FSYS0_SHARED0DIV4			0x181c
4562306a36Sopenharmony_ci#define DIV_CMU_FSYS0_SHARED1DIV3			0x1820
4662306a36Sopenharmony_ci#define DIV_CMU_FSYS0_SHARED1DIV4			0x1824
4762306a36Sopenharmony_ci#define DIV_CMU_FSYS1_SHARED0DIV4			0x1828
4862306a36Sopenharmony_ci#define DIV_CMU_FSYS1_SHARED0DIV8			0x182c
4962306a36Sopenharmony_ci#define DIV_CMU_IMEM_ACLK				0x1834
5062306a36Sopenharmony_ci#define DIV_CMU_IMEM_DMACLK				0x1838
5162306a36Sopenharmony_ci#define DIV_CMU_IMEM_TCUCLK				0x183c
5262306a36Sopenharmony_ci#define DIV_CMU_PERIC_SHARED0DIV20			0x1844
5362306a36Sopenharmony_ci#define DIV_CMU_PERIC_SHARED0DIV3_TBUCLK		0x1848
5462306a36Sopenharmony_ci#define DIV_CMU_PERIC_SHARED1DIV36			0x184c
5562306a36Sopenharmony_ci#define DIV_CMU_PERIC_SHARED1DIV4_DMACLK		0x1850
5662306a36Sopenharmony_ci#define DIV_PLL_SHARED0_DIV2				0x1858
5762306a36Sopenharmony_ci#define DIV_PLL_SHARED0_DIV3				0x185c
5862306a36Sopenharmony_ci#define DIV_PLL_SHARED0_DIV4				0x1860
5962306a36Sopenharmony_ci#define DIV_PLL_SHARED0_DIV6				0x1864
6062306a36Sopenharmony_ci#define DIV_PLL_SHARED1_DIV3				0x1868
6162306a36Sopenharmony_ci#define DIV_PLL_SHARED1_DIV36				0x186c
6262306a36Sopenharmony_ci#define DIV_PLL_SHARED1_DIV4				0x1870
6362306a36Sopenharmony_ci#define DIV_PLL_SHARED1_DIV9				0x1874
6462306a36Sopenharmony_ci#define GAT_CMU_CIS0_CLKGATE				0x2000
6562306a36Sopenharmony_ci#define GAT_CMU_CIS1_CLKGATE				0x2004
6662306a36Sopenharmony_ci#define GAT_CMU_CIS2_CLKGATE				0x2008
6762306a36Sopenharmony_ci#define GAT_CMU_CPUCL_SWITCH_GATE			0x200c
6862306a36Sopenharmony_ci#define GAT_CMU_FSYS0_SHARED0DIV4_GATE			0x2018
6962306a36Sopenharmony_ci#define GAT_CMU_FSYS0_SHARED1DIV4_CLK			0x201c
7062306a36Sopenharmony_ci#define GAT_CMU_FSYS0_SHARED1DIV4_GATE			0x2020
7162306a36Sopenharmony_ci#define GAT_CMU_FSYS1_SHARED0DIV4_GATE			0x2024
7262306a36Sopenharmony_ci#define GAT_CMU_FSYS1_SHARED1DIV4_GATE			0x2028
7362306a36Sopenharmony_ci#define GAT_CMU_IMEM_ACLK_GATE				0x2030
7462306a36Sopenharmony_ci#define GAT_CMU_IMEM_DMACLK_GATE			0x2034
7562306a36Sopenharmony_ci#define GAT_CMU_IMEM_TCUCLK_GATE			0x2038
7662306a36Sopenharmony_ci#define GAT_CMU_PERIC_SHARED0DIVE3_TBUCLK_GATE		0x2040
7762306a36Sopenharmony_ci#define GAT_CMU_PERIC_SHARED0DIVE4_GATE			0x2044
7862306a36Sopenharmony_ci#define GAT_CMU_PERIC_SHARED1DIV4_DMACLK_GATE		0x2048
7962306a36Sopenharmony_ci#define GAT_CMU_PERIC_SHARED1DIVE4_GATE			0x204c
8062306a36Sopenharmony_ci#define GAT_CMU_CMU_CMU_IPCLKPORT_PCLK			0x2054
8162306a36Sopenharmony_ci#define GAT_CMU_AXI2APB_CMU_IPCLKPORT_ACLK		0x2058
8262306a36Sopenharmony_ci#define GAT_CMU_NS_BRDG_CMU_IPCLKPORT_CLK__PSOC_CMU__CLK_CMU	0x205c
8362306a36Sopenharmony_ci#define GAT_CMU_SYSREG_CMU_IPCLKPORT_PCLK		0x2060
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_cistatic const unsigned long cmu_clk_regs[] __initconst = {
8662306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_SHARED0,
8762306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_SHARED1,
8862306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_SHARED2,
8962306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_SHARED3,
9062306a36Sopenharmony_ci	PLL_CON0_PLL_SHARED0,
9162306a36Sopenharmony_ci	PLL_CON0_PLL_SHARED1,
9262306a36Sopenharmony_ci	PLL_CON0_PLL_SHARED2,
9362306a36Sopenharmony_ci	PLL_CON0_PLL_SHARED3,
9462306a36Sopenharmony_ci	MUX_CMU_CIS0_CLKMUX,
9562306a36Sopenharmony_ci	MUX_CMU_CIS1_CLKMUX,
9662306a36Sopenharmony_ci	MUX_CMU_CIS2_CLKMUX,
9762306a36Sopenharmony_ci	MUX_CMU_CPUCL_SWITCHMUX,
9862306a36Sopenharmony_ci	MUX_CMU_FSYS1_ACLK_MUX,
9962306a36Sopenharmony_ci	MUX_PLL_SHARED0_MUX,
10062306a36Sopenharmony_ci	MUX_PLL_SHARED1_MUX,
10162306a36Sopenharmony_ci	DIV_CMU_CIS0_CLK,
10262306a36Sopenharmony_ci	DIV_CMU_CIS1_CLK,
10362306a36Sopenharmony_ci	DIV_CMU_CIS2_CLK,
10462306a36Sopenharmony_ci	DIV_CMU_CMU_ACLK,
10562306a36Sopenharmony_ci	DIV_CMU_CPUCL_SWITCH,
10662306a36Sopenharmony_ci	DIV_CMU_FSYS0_SHARED0DIV4,
10762306a36Sopenharmony_ci	DIV_CMU_FSYS0_SHARED1DIV3,
10862306a36Sopenharmony_ci	DIV_CMU_FSYS0_SHARED1DIV4,
10962306a36Sopenharmony_ci	DIV_CMU_FSYS1_SHARED0DIV4,
11062306a36Sopenharmony_ci	DIV_CMU_FSYS1_SHARED0DIV8,
11162306a36Sopenharmony_ci	DIV_CMU_IMEM_ACLK,
11262306a36Sopenharmony_ci	DIV_CMU_IMEM_DMACLK,
11362306a36Sopenharmony_ci	DIV_CMU_IMEM_TCUCLK,
11462306a36Sopenharmony_ci	DIV_CMU_PERIC_SHARED0DIV20,
11562306a36Sopenharmony_ci	DIV_CMU_PERIC_SHARED0DIV3_TBUCLK,
11662306a36Sopenharmony_ci	DIV_CMU_PERIC_SHARED1DIV36,
11762306a36Sopenharmony_ci	DIV_CMU_PERIC_SHARED1DIV4_DMACLK,
11862306a36Sopenharmony_ci	DIV_PLL_SHARED0_DIV2,
11962306a36Sopenharmony_ci	DIV_PLL_SHARED0_DIV3,
12062306a36Sopenharmony_ci	DIV_PLL_SHARED0_DIV4,
12162306a36Sopenharmony_ci	DIV_PLL_SHARED0_DIV6,
12262306a36Sopenharmony_ci	DIV_PLL_SHARED1_DIV3,
12362306a36Sopenharmony_ci	DIV_PLL_SHARED1_DIV36,
12462306a36Sopenharmony_ci	DIV_PLL_SHARED1_DIV4,
12562306a36Sopenharmony_ci	DIV_PLL_SHARED1_DIV9,
12662306a36Sopenharmony_ci	GAT_CMU_CIS0_CLKGATE,
12762306a36Sopenharmony_ci	GAT_CMU_CIS1_CLKGATE,
12862306a36Sopenharmony_ci	GAT_CMU_CIS2_CLKGATE,
12962306a36Sopenharmony_ci	GAT_CMU_CPUCL_SWITCH_GATE,
13062306a36Sopenharmony_ci	GAT_CMU_FSYS0_SHARED0DIV4_GATE,
13162306a36Sopenharmony_ci	GAT_CMU_FSYS0_SHARED1DIV4_CLK,
13262306a36Sopenharmony_ci	GAT_CMU_FSYS0_SHARED1DIV4_GATE,
13362306a36Sopenharmony_ci	GAT_CMU_FSYS1_SHARED0DIV4_GATE,
13462306a36Sopenharmony_ci	GAT_CMU_FSYS1_SHARED1DIV4_GATE,
13562306a36Sopenharmony_ci	GAT_CMU_IMEM_ACLK_GATE,
13662306a36Sopenharmony_ci	GAT_CMU_IMEM_DMACLK_GATE,
13762306a36Sopenharmony_ci	GAT_CMU_IMEM_TCUCLK_GATE,
13862306a36Sopenharmony_ci	GAT_CMU_PERIC_SHARED0DIVE3_TBUCLK_GATE,
13962306a36Sopenharmony_ci	GAT_CMU_PERIC_SHARED0DIVE4_GATE,
14062306a36Sopenharmony_ci	GAT_CMU_PERIC_SHARED1DIV4_DMACLK_GATE,
14162306a36Sopenharmony_ci	GAT_CMU_PERIC_SHARED1DIVE4_GATE,
14262306a36Sopenharmony_ci	GAT_CMU_CMU_CMU_IPCLKPORT_PCLK,
14362306a36Sopenharmony_ci	GAT_CMU_AXI2APB_CMU_IPCLKPORT_ACLK,
14462306a36Sopenharmony_ci	GAT_CMU_NS_BRDG_CMU_IPCLKPORT_CLK__PSOC_CMU__CLK_CMU,
14562306a36Sopenharmony_ci	GAT_CMU_SYSREG_CMU_IPCLKPORT_PCLK,
14662306a36Sopenharmony_ci};
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_shared0_rate_table[] __initconst = {
14962306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 2000000000U, 250, 3, 0),
15062306a36Sopenharmony_ci};
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_shared1_rate_table[] __initconst = {
15362306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 2400000000U, 200, 2, 0),
15462306a36Sopenharmony_ci};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_shared2_rate_table[] __initconst = {
15762306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 2400000000U, 200, 2, 0),
15862306a36Sopenharmony_ci};
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_shared3_rate_table[] __initconst = {
16162306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 1800000000U, 150, 2, 0),
16262306a36Sopenharmony_ci};
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_cistatic const struct samsung_pll_clock cmu_pll_clks[] __initconst = {
16562306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_shared0", "fin_pll", PLL_LOCKTIME_PLL_SHARED0,
16662306a36Sopenharmony_ci	    PLL_CON0_PLL_SHARED0, pll_shared0_rate_table),
16762306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_shared1", "fin_pll", PLL_LOCKTIME_PLL_SHARED1,
16862306a36Sopenharmony_ci	    PLL_CON0_PLL_SHARED1, pll_shared1_rate_table),
16962306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_shared2", "fin_pll", PLL_LOCKTIME_PLL_SHARED2,
17062306a36Sopenharmony_ci	    PLL_CON0_PLL_SHARED2, pll_shared2_rate_table),
17162306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_shared3", "fin_pll", PLL_LOCKTIME_PLL_SHARED3,
17262306a36Sopenharmony_ci	    PLL_CON0_PLL_SHARED3, pll_shared3_rate_table),
17362306a36Sopenharmony_ci};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_CMU */
17662306a36Sopenharmony_ciPNAME(mout_cmu_shared0_pll_p) = { "fin_pll", "fout_pll_shared0" };
17762306a36Sopenharmony_ciPNAME(mout_cmu_shared1_pll_p) = { "fin_pll", "fout_pll_shared1" };
17862306a36Sopenharmony_ciPNAME(mout_cmu_shared2_pll_p) = { "fin_pll", "fout_pll_shared2" };
17962306a36Sopenharmony_ciPNAME(mout_cmu_shared3_pll_p) = { "fin_pll", "fout_pll_shared3" };
18062306a36Sopenharmony_ciPNAME(mout_cmu_cis0_clkmux_p) = { "fin_pll", "dout_cmu_pll_shared0_div4" };
18162306a36Sopenharmony_ciPNAME(mout_cmu_cis1_clkmux_p) = { "fin_pll", "dout_cmu_pll_shared0_div4" };
18262306a36Sopenharmony_ciPNAME(mout_cmu_cis2_clkmux_p) = { "fin_pll", "dout_cmu_pll_shared0_div4" };
18362306a36Sopenharmony_ciPNAME(mout_cmu_cpucl_switchmux_p) = { "mout_cmu_pll_shared2", "mout_cmu_pll_shared0_mux" };
18462306a36Sopenharmony_ciPNAME(mout_cmu_fsys1_aclk_mux_p) = { "dout_cmu_pll_shared0_div4", "fin_pll" };
18562306a36Sopenharmony_ciPNAME(mout_cmu_pll_shared0_mux_p) = { "fin_pll", "mout_cmu_pll_shared0" };
18662306a36Sopenharmony_ciPNAME(mout_cmu_pll_shared1_mux_p) = { "fin_pll", "mout_cmu_pll_shared1" };
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_cistatic const struct samsung_mux_clock cmu_mux_clks[] __initconst = {
18962306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared0", mout_cmu_shared0_pll_p, PLL_CON0_PLL_SHARED0, 4, 1),
19062306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared1", mout_cmu_shared1_pll_p, PLL_CON0_PLL_SHARED1, 4, 1),
19162306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared2", mout_cmu_shared2_pll_p, PLL_CON0_PLL_SHARED2, 4, 1),
19262306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared3", mout_cmu_shared3_pll_p, PLL_CON0_PLL_SHARED3, 4, 1),
19362306a36Sopenharmony_ci	MUX(0, "mout_cmu_cis0_clkmux", mout_cmu_cis0_clkmux_p, MUX_CMU_CIS0_CLKMUX, 0, 1),
19462306a36Sopenharmony_ci	MUX(0, "mout_cmu_cis1_clkmux", mout_cmu_cis1_clkmux_p, MUX_CMU_CIS1_CLKMUX, 0, 1),
19562306a36Sopenharmony_ci	MUX(0, "mout_cmu_cis2_clkmux", mout_cmu_cis2_clkmux_p, MUX_CMU_CIS2_CLKMUX, 0, 1),
19662306a36Sopenharmony_ci	MUX(0, "mout_cmu_cpucl_switchmux", mout_cmu_cpucl_switchmux_p,
19762306a36Sopenharmony_ci	    MUX_CMU_CPUCL_SWITCHMUX, 0, 1),
19862306a36Sopenharmony_ci	MUX(0, "mout_cmu_fsys1_aclk_mux", mout_cmu_fsys1_aclk_mux_p, MUX_CMU_FSYS1_ACLK_MUX, 0, 1),
19962306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared0_mux", mout_cmu_pll_shared0_mux_p, MUX_PLL_SHARED0_MUX, 0, 1),
20062306a36Sopenharmony_ci	MUX(0, "mout_cmu_pll_shared1_mux", mout_cmu_pll_shared1_mux_p, MUX_PLL_SHARED1_MUX, 0, 1),
20162306a36Sopenharmony_ci};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_cistatic const struct samsung_div_clock cmu_div_clks[] __initconst = {
20462306a36Sopenharmony_ci	DIV(0, "dout_cmu_cis0_clk", "cmu_cis0_clkgate", DIV_CMU_CIS0_CLK, 0, 4),
20562306a36Sopenharmony_ci	DIV(0, "dout_cmu_cis1_clk", "cmu_cis1_clkgate", DIV_CMU_CIS1_CLK, 0, 4),
20662306a36Sopenharmony_ci	DIV(0, "dout_cmu_cis2_clk", "cmu_cis2_clkgate", DIV_CMU_CIS2_CLK, 0, 4),
20762306a36Sopenharmony_ci	DIV(0, "dout_cmu_cmu_aclk", "dout_cmu_pll_shared1_div9", DIV_CMU_CMU_ACLK, 0, 4),
20862306a36Sopenharmony_ci	DIV(0, "dout_cmu_cpucl_switch", "cmu_cpucl_switch_gate", DIV_CMU_CPUCL_SWITCH, 0, 4),
20962306a36Sopenharmony_ci	DIV(DOUT_CMU_FSYS0_SHARED0DIV4, "dout_cmu_fsys0_shared0div4", "cmu_fsys0_shared0div4_gate",
21062306a36Sopenharmony_ci	    DIV_CMU_FSYS0_SHARED0DIV4, 0, 4),
21162306a36Sopenharmony_ci	DIV(0, "dout_cmu_fsys0_shared1div3", "cmu_fsys0_shared1div4_clk",
21262306a36Sopenharmony_ci	    DIV_CMU_FSYS0_SHARED1DIV3, 0, 4),
21362306a36Sopenharmony_ci	DIV(DOUT_CMU_FSYS0_SHARED1DIV4, "dout_cmu_fsys0_shared1div4", "cmu_fsys0_shared1div4_gate",
21462306a36Sopenharmony_ci	    DIV_CMU_FSYS0_SHARED1DIV4, 0, 4),
21562306a36Sopenharmony_ci	DIV(DOUT_CMU_FSYS1_SHARED0DIV4, "dout_cmu_fsys1_shared0div4", "cmu_fsys1_shared0div4_gate",
21662306a36Sopenharmony_ci	    DIV_CMU_FSYS1_SHARED0DIV4, 0, 4),
21762306a36Sopenharmony_ci	DIV(DOUT_CMU_FSYS1_SHARED0DIV8, "dout_cmu_fsys1_shared0div8", "cmu_fsys1_shared1div4_gate",
21862306a36Sopenharmony_ci	    DIV_CMU_FSYS1_SHARED0DIV8, 0, 4),
21962306a36Sopenharmony_ci	DIV(DOUT_CMU_IMEM_ACLK, "dout_cmu_imem_aclk", "cmu_imem_aclk_gate",
22062306a36Sopenharmony_ci	    DIV_CMU_IMEM_ACLK, 0, 4),
22162306a36Sopenharmony_ci	DIV(DOUT_CMU_IMEM_DMACLK, "dout_cmu_imem_dmaclk", "cmu_imem_dmaclk_gate",
22262306a36Sopenharmony_ci	    DIV_CMU_IMEM_DMACLK, 0, 4),
22362306a36Sopenharmony_ci	DIV(DOUT_CMU_IMEM_TCUCLK, "dout_cmu_imem_tcuclk", "cmu_imem_tcuclk_gate",
22462306a36Sopenharmony_ci	    DIV_CMU_IMEM_TCUCLK, 0, 4),
22562306a36Sopenharmony_ci	DIV(DOUT_CMU_PERIC_SHARED0DIV20, "dout_cmu_peric_shared0div20",
22662306a36Sopenharmony_ci	    "cmu_peric_shared0dive4_gate", DIV_CMU_PERIC_SHARED0DIV20, 0, 4),
22762306a36Sopenharmony_ci	DIV(DOUT_CMU_PERIC_SHARED0DIV3_TBUCLK, "dout_cmu_peric_shared0div3_tbuclk",
22862306a36Sopenharmony_ci	    "cmu_peric_shared0dive3_tbuclk_gate", DIV_CMU_PERIC_SHARED0DIV3_TBUCLK, 0, 4),
22962306a36Sopenharmony_ci	DIV(DOUT_CMU_PERIC_SHARED1DIV36, "dout_cmu_peric_shared1div36",
23062306a36Sopenharmony_ci	    "cmu_peric_shared1dive4_gate", DIV_CMU_PERIC_SHARED1DIV36, 0, 4),
23162306a36Sopenharmony_ci	DIV(DOUT_CMU_PERIC_SHARED1DIV4_DMACLK, "dout_cmu_peric_shared1div4_dmaclk",
23262306a36Sopenharmony_ci	    "cmu_peric_shared1div4_dmaclk_gate", DIV_CMU_PERIC_SHARED1DIV4_DMACLK, 0, 4),
23362306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared0_div2", "mout_cmu_pll_shared0_mux",
23462306a36Sopenharmony_ci	    DIV_PLL_SHARED0_DIV2, 0, 4),
23562306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared0_div3", "mout_cmu_pll_shared0_mux",
23662306a36Sopenharmony_ci	    DIV_PLL_SHARED0_DIV3, 0, 4),
23762306a36Sopenharmony_ci	DIV(DOUT_CMU_PLL_SHARED0_DIV4, "dout_cmu_pll_shared0_div4", "dout_cmu_pll_shared0_div2",
23862306a36Sopenharmony_ci	    DIV_PLL_SHARED0_DIV4, 0, 4),
23962306a36Sopenharmony_ci	DIV(DOUT_CMU_PLL_SHARED0_DIV6, "dout_cmu_pll_shared0_div6", "dout_cmu_pll_shared0_div3",
24062306a36Sopenharmony_ci	    DIV_PLL_SHARED0_DIV6, 0, 4),
24162306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared1_div3", "mout_cmu_pll_shared1_mux",
24262306a36Sopenharmony_ci	    DIV_PLL_SHARED1_DIV3, 0, 4),
24362306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared1_div36", "dout_cmu_pll_shared1_div9",
24462306a36Sopenharmony_ci	    DIV_PLL_SHARED1_DIV36, 0, 4),
24562306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared1_div4", "mout_cmu_pll_shared1_mux",
24662306a36Sopenharmony_ci	    DIV_PLL_SHARED1_DIV4, 0, 4),
24762306a36Sopenharmony_ci	DIV(0, "dout_cmu_pll_shared1_div9", "dout_cmu_pll_shared1_div3",
24862306a36Sopenharmony_ci	    DIV_PLL_SHARED1_DIV9, 0, 4),
24962306a36Sopenharmony_ci};
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_cistatic const struct samsung_gate_clock cmu_gate_clks[] __initconst = {
25262306a36Sopenharmony_ci	GATE(0, "cmu_cis0_clkgate", "mout_cmu_cis0_clkmux", GAT_CMU_CIS0_CLKGATE, 21,
25362306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
25462306a36Sopenharmony_ci	GATE(0, "cmu_cis1_clkgate", "mout_cmu_cis1_clkmux", GAT_CMU_CIS1_CLKGATE, 21,
25562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
25662306a36Sopenharmony_ci	GATE(0, "cmu_cis2_clkgate", "mout_cmu_cis2_clkmux", GAT_CMU_CIS2_CLKGATE, 21,
25762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
25862306a36Sopenharmony_ci	GATE(CMU_CPUCL_SWITCH_GATE, "cmu_cpucl_switch_gate", "mout_cmu_cpucl_switchmux",
25962306a36Sopenharmony_ci	     GAT_CMU_CPUCL_SWITCH_GATE, 21, CLK_IGNORE_UNUSED, 0),
26062306a36Sopenharmony_ci	GATE(GAT_CMU_FSYS0_SHARED0DIV4, "cmu_fsys0_shared0div4_gate", "dout_cmu_pll_shared0_div4",
26162306a36Sopenharmony_ci	     GAT_CMU_FSYS0_SHARED0DIV4_GATE, 21, CLK_IGNORE_UNUSED, 0),
26262306a36Sopenharmony_ci	GATE(0, "cmu_fsys0_shared1div4_clk", "dout_cmu_pll_shared1_div3",
26362306a36Sopenharmony_ci	     GAT_CMU_FSYS0_SHARED1DIV4_CLK, 21, CLK_IGNORE_UNUSED, 0),
26462306a36Sopenharmony_ci	GATE(0, "cmu_fsys0_shared1div4_gate", "dout_cmu_pll_shared1_div4",
26562306a36Sopenharmony_ci	     GAT_CMU_FSYS0_SHARED1DIV4_GATE, 21, CLK_IGNORE_UNUSED, 0),
26662306a36Sopenharmony_ci	GATE(0, "cmu_fsys1_shared0div4_gate", "mout_cmu_fsys1_aclk_mux",
26762306a36Sopenharmony_ci	     GAT_CMU_FSYS1_SHARED0DIV4_GATE, 21, CLK_IGNORE_UNUSED, 0),
26862306a36Sopenharmony_ci	GATE(0, "cmu_fsys1_shared1div4_gate", "dout_cmu_fsys1_shared0div4",
26962306a36Sopenharmony_ci	     GAT_CMU_FSYS1_SHARED1DIV4_GATE, 21, CLK_IGNORE_UNUSED, 0),
27062306a36Sopenharmony_ci	GATE(0, "cmu_imem_aclk_gate", "dout_cmu_pll_shared1_div9", GAT_CMU_IMEM_ACLK_GATE, 21,
27162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
27262306a36Sopenharmony_ci	GATE(0, "cmu_imem_dmaclk_gate", "mout_cmu_pll_shared1_mux", GAT_CMU_IMEM_DMACLK_GATE, 21,
27362306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
27462306a36Sopenharmony_ci	GATE(0, "cmu_imem_tcuclk_gate", "dout_cmu_pll_shared0_div3", GAT_CMU_IMEM_TCUCLK_GATE, 21,
27562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
27662306a36Sopenharmony_ci	GATE(0, "cmu_peric_shared0dive3_tbuclk_gate", "dout_cmu_pll_shared0_div3",
27762306a36Sopenharmony_ci	     GAT_CMU_PERIC_SHARED0DIVE3_TBUCLK_GATE, 21, CLK_IGNORE_UNUSED, 0),
27862306a36Sopenharmony_ci	GATE(0, "cmu_peric_shared0dive4_gate", "dout_cmu_pll_shared0_div4",
27962306a36Sopenharmony_ci	     GAT_CMU_PERIC_SHARED0DIVE4_GATE, 21, CLK_IGNORE_UNUSED, 0),
28062306a36Sopenharmony_ci	GATE(0, "cmu_peric_shared1div4_dmaclk_gate", "dout_cmu_pll_shared1_div4",
28162306a36Sopenharmony_ci	     GAT_CMU_PERIC_SHARED1DIV4_DMACLK_GATE, 21, CLK_IGNORE_UNUSED, 0),
28262306a36Sopenharmony_ci	GATE(0, "cmu_peric_shared1dive4_gate", "dout_cmu_pll_shared1_div36",
28362306a36Sopenharmony_ci	     GAT_CMU_PERIC_SHARED1DIVE4_GATE, 21, CLK_IGNORE_UNUSED, 0),
28462306a36Sopenharmony_ci	GATE(0, "cmu_uid_cmu_cmu_cmu_ipclkport_pclk", "dout_cmu_cmu_aclk",
28562306a36Sopenharmony_ci	     GAT_CMU_CMU_CMU_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
28662306a36Sopenharmony_ci	GATE(0, "cmu_uid_axi2apb_cmu_ipclkport_aclk", "dout_cmu_cmu_aclk",
28762306a36Sopenharmony_ci	     GAT_CMU_AXI2APB_CMU_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
28862306a36Sopenharmony_ci	GATE(0, "cmu_uid_ns_brdg_cmu_ipclkport_clk__psoc_cmu__clk_cmu", "dout_cmu_cmu_aclk",
28962306a36Sopenharmony_ci	     GAT_CMU_NS_BRDG_CMU_IPCLKPORT_CLK__PSOC_CMU__CLK_CMU, 21, CLK_IGNORE_UNUSED, 0),
29062306a36Sopenharmony_ci	GATE(0, "cmu_uid_sysreg_cmu_ipclkport_pclk", "dout_cmu_cmu_aclk",
29162306a36Sopenharmony_ci	     GAT_CMU_SYSREG_CMU_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
29262306a36Sopenharmony_ci};
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_cistatic const struct samsung_cmu_info cmu_cmu_info __initconst = {
29562306a36Sopenharmony_ci	.pll_clks		= cmu_pll_clks,
29662306a36Sopenharmony_ci	.nr_pll_clks		= ARRAY_SIZE(cmu_pll_clks),
29762306a36Sopenharmony_ci	.mux_clks		= cmu_mux_clks,
29862306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(cmu_mux_clks),
29962306a36Sopenharmony_ci	.div_clks		= cmu_div_clks,
30062306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(cmu_div_clks),
30162306a36Sopenharmony_ci	.gate_clks		= cmu_gate_clks,
30262306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(cmu_gate_clks),
30362306a36Sopenharmony_ci	.nr_clk_ids		= CMU_NR_CLK,
30462306a36Sopenharmony_ci	.clk_regs		= cmu_clk_regs,
30562306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(cmu_clk_regs),
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cistatic void __init fsd_clk_cmu_init(struct device_node *np)
30962306a36Sopenharmony_ci{
31062306a36Sopenharmony_ci	samsung_cmu_register_one(np, &cmu_cmu_info);
31162306a36Sopenharmony_ci}
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ciCLK_OF_DECLARE(fsd_clk_cmu, "tesla,fsd-clock-cmu", fsd_clk_cmu_init);
31462306a36Sopenharmony_ci
31562306a36Sopenharmony_ci/* Register Offset definitions for CMU_PERIC (0x14010000) */
31662306a36Sopenharmony_ci#define PLL_CON0_PERIC_DMACLK_MUX		0x100
31762306a36Sopenharmony_ci#define PLL_CON0_PERIC_EQOS_BUSCLK_MUX		0x120
31862306a36Sopenharmony_ci#define PLL_CON0_PERIC_PCLK_MUX			0x140
31962306a36Sopenharmony_ci#define PLL_CON0_PERIC_TBUCLK_MUX		0x160
32062306a36Sopenharmony_ci#define PLL_CON0_SPI_CLK			0x180
32162306a36Sopenharmony_ci#define PLL_CON0_SPI_PCLK			0x1a0
32262306a36Sopenharmony_ci#define PLL_CON0_UART_CLK			0x1c0
32362306a36Sopenharmony_ci#define PLL_CON0_UART_PCLK			0x1e0
32462306a36Sopenharmony_ci#define MUX_PERIC_EQOS_PHYRXCLK			0x1000
32562306a36Sopenharmony_ci#define DIV_EQOS_BUSCLK				0x1800
32662306a36Sopenharmony_ci#define DIV_PERIC_MCAN_CLK			0x1804
32762306a36Sopenharmony_ci#define DIV_RGMII_CLK				0x1808
32862306a36Sopenharmony_ci#define DIV_RII_CLK				0x180c
32962306a36Sopenharmony_ci#define DIV_RMII_CLK				0x1810
33062306a36Sopenharmony_ci#define DIV_SPI_CLK				0x1814
33162306a36Sopenharmony_ci#define DIV_UART_CLK				0x1818
33262306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I	0x2000
33362306a36Sopenharmony_ci#define GAT_GPIO_PERIC_IPCLKPORT_OSCCLK		0x2004
33462306a36Sopenharmony_ci#define GAT_PERIC_ADC0_IPCLKPORT_I_OSCCLK	0x2008
33562306a36Sopenharmony_ci#define GAT_PERIC_CMU_PERIC_IPCLKPORT_PCLK	0x200c
33662306a36Sopenharmony_ci#define GAT_PERIC_PWM0_IPCLKPORT_I_OSCCLK	0x2010
33762306a36Sopenharmony_ci#define GAT_PERIC_PWM1_IPCLKPORT_I_OSCCLK	0x2014
33862306a36Sopenharmony_ci#define GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKM	0x2018
33962306a36Sopenharmony_ci#define GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKS	0x201c
34062306a36Sopenharmony_ci#define GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKM	0x2020
34162306a36Sopenharmony_ci#define GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKS	0x2024
34262306a36Sopenharmony_ci#define GAT_AXI2APB_PERIC0_IPCLKPORT_ACLK	0x2028
34362306a36Sopenharmony_ci#define GAT_AXI2APB_PERIC1_IPCLKPORT_ACLK	0x202c
34462306a36Sopenharmony_ci#define GAT_AXI2APB_PERIC2_IPCLKPORT_ACLK	0x2030
34562306a36Sopenharmony_ci#define GAT_BUS_D_PERIC_IPCLKPORT_DMACLK	0x2034
34662306a36Sopenharmony_ci#define GAT_BUS_D_PERIC_IPCLKPORT_EQOSCLK	0x2038
34762306a36Sopenharmony_ci#define GAT_BUS_D_PERIC_IPCLKPORT_MAINCLK	0x203c
34862306a36Sopenharmony_ci#define GAT_BUS_P_PERIC_IPCLKPORT_EQOSCLK	0x2040
34962306a36Sopenharmony_ci#define GAT_BUS_P_PERIC_IPCLKPORT_MAINCLK	0x2044
35062306a36Sopenharmony_ci#define GAT_BUS_P_PERIC_IPCLKPORT_SMMUCLK	0x2048
35162306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_ACLK_I		0x204c
35262306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_CLK_RX_I		0x2050
35362306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_HCLK_I		0x2054
35462306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_RGMII_CLK_I	0x2058
35562306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_RII_CLK_I	0x205c
35662306a36Sopenharmony_ci#define GAT_EQOS_TOP_IPCLKPORT_RMII_CLK_I	0x2060
35762306a36Sopenharmony_ci#define GAT_GPIO_PERIC_IPCLKPORT_PCLK		0x2064
35862306a36Sopenharmony_ci#define GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_D	0x2068
35962306a36Sopenharmony_ci#define GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_P	0x206c
36062306a36Sopenharmony_ci#define GAT_PERIC_ADC0_IPCLKPORT_PCLK_S0	0x2070
36162306a36Sopenharmony_ci#define GAT_PERIC_DMA0_IPCLKPORT_ACLK		0x2074
36262306a36Sopenharmony_ci#define GAT_PERIC_DMA1_IPCLKPORT_ACLK		0x2078
36362306a36Sopenharmony_ci#define GAT_PERIC_I2C0_IPCLKPORT_I_PCLK		0x207c
36462306a36Sopenharmony_ci#define GAT_PERIC_I2C1_IPCLKPORT_I_PCLK		0x2080
36562306a36Sopenharmony_ci#define GAT_PERIC_I2C2_IPCLKPORT_I_PCLK		0x2084
36662306a36Sopenharmony_ci#define GAT_PERIC_I2C3_IPCLKPORT_I_PCLK		0x2088
36762306a36Sopenharmony_ci#define GAT_PERIC_I2C4_IPCLKPORT_I_PCLK		0x208c
36862306a36Sopenharmony_ci#define GAT_PERIC_I2C5_IPCLKPORT_I_PCLK		0x2090
36962306a36Sopenharmony_ci#define GAT_PERIC_I2C6_IPCLKPORT_I_PCLK		0x2094
37062306a36Sopenharmony_ci#define GAT_PERIC_I2C7_IPCLKPORT_I_PCLK		0x2098
37162306a36Sopenharmony_ci#define GAT_PERIC_MCAN0_IPCLKPORT_CCLK		0x209c
37262306a36Sopenharmony_ci#define GAT_PERIC_MCAN0_IPCLKPORT_PCLK		0x20a0
37362306a36Sopenharmony_ci#define GAT_PERIC_MCAN1_IPCLKPORT_CCLK		0x20a4
37462306a36Sopenharmony_ci#define GAT_PERIC_MCAN1_IPCLKPORT_PCLK		0x20a8
37562306a36Sopenharmony_ci#define GAT_PERIC_MCAN2_IPCLKPORT_CCLK		0x20ac
37662306a36Sopenharmony_ci#define GAT_PERIC_MCAN2_IPCLKPORT_PCLK		0x20b0
37762306a36Sopenharmony_ci#define GAT_PERIC_MCAN3_IPCLKPORT_CCLK		0x20b4
37862306a36Sopenharmony_ci#define GAT_PERIC_MCAN3_IPCLKPORT_PCLK		0x20b8
37962306a36Sopenharmony_ci#define GAT_PERIC_PWM0_IPCLKPORT_I_PCLK_S0	0x20bc
38062306a36Sopenharmony_ci#define GAT_PERIC_PWM1_IPCLKPORT_I_PCLK_S0	0x20c0
38162306a36Sopenharmony_ci#define GAT_PERIC_SMMU_IPCLKPORT_CCLK		0x20c4
38262306a36Sopenharmony_ci#define GAT_PERIC_SMMU_IPCLKPORT_PERIC_BCLK	0x20c8
38362306a36Sopenharmony_ci#define GAT_PERIC_SPI0_IPCLKPORT_I_PCLK		0x20cc
38462306a36Sopenharmony_ci#define GAT_PERIC_SPI0_IPCLKPORT_I_SCLK_SPI	0x20d0
38562306a36Sopenharmony_ci#define GAT_PERIC_SPI1_IPCLKPORT_I_PCLK		0x20d4
38662306a36Sopenharmony_ci#define GAT_PERIC_SPI1_IPCLKPORT_I_SCLK_SPI	0x20d8
38762306a36Sopenharmony_ci#define GAT_PERIC_SPI2_IPCLKPORT_I_PCLK		0x20dc
38862306a36Sopenharmony_ci#define GAT_PERIC_SPI2_IPCLKPORT_I_SCLK_SPI	0x20e0
38962306a36Sopenharmony_ci#define GAT_PERIC_TDM0_IPCLKPORT_HCLK_M		0x20e4
39062306a36Sopenharmony_ci#define GAT_PERIC_TDM0_IPCLKPORT_PCLK		0x20e8
39162306a36Sopenharmony_ci#define GAT_PERIC_TDM1_IPCLKPORT_HCLK_M		0x20ec
39262306a36Sopenharmony_ci#define GAT_PERIC_TDM1_IPCLKPORT_PCLK		0x20f0
39362306a36Sopenharmony_ci#define GAT_PERIC_UART0_IPCLKPORT_I_SCLK_UART	0x20f4
39462306a36Sopenharmony_ci#define GAT_PERIC_UART0_IPCLKPORT_PCLK		0x20f8
39562306a36Sopenharmony_ci#define GAT_PERIC_UART1_IPCLKPORT_I_SCLK_UART	0x20fc
39662306a36Sopenharmony_ci#define GAT_PERIC_UART1_IPCLKPORT_PCLK		0x2100
39762306a36Sopenharmony_ci#define GAT_SYSREG_PERI_IPCLKPORT_PCLK		0x2104
39862306a36Sopenharmony_ci
39962306a36Sopenharmony_cistatic const unsigned long peric_clk_regs[] __initconst = {
40062306a36Sopenharmony_ci	PLL_CON0_PERIC_DMACLK_MUX,
40162306a36Sopenharmony_ci	PLL_CON0_PERIC_EQOS_BUSCLK_MUX,
40262306a36Sopenharmony_ci	PLL_CON0_PERIC_PCLK_MUX,
40362306a36Sopenharmony_ci	PLL_CON0_PERIC_TBUCLK_MUX,
40462306a36Sopenharmony_ci	PLL_CON0_SPI_CLK,
40562306a36Sopenharmony_ci	PLL_CON0_SPI_PCLK,
40662306a36Sopenharmony_ci	PLL_CON0_UART_CLK,
40762306a36Sopenharmony_ci	PLL_CON0_UART_PCLK,
40862306a36Sopenharmony_ci	MUX_PERIC_EQOS_PHYRXCLK,
40962306a36Sopenharmony_ci	DIV_EQOS_BUSCLK,
41062306a36Sopenharmony_ci	DIV_PERIC_MCAN_CLK,
41162306a36Sopenharmony_ci	DIV_RGMII_CLK,
41262306a36Sopenharmony_ci	DIV_RII_CLK,
41362306a36Sopenharmony_ci	DIV_RMII_CLK,
41462306a36Sopenharmony_ci	DIV_SPI_CLK,
41562306a36Sopenharmony_ci	DIV_UART_CLK,
41662306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I,
41762306a36Sopenharmony_ci	GAT_GPIO_PERIC_IPCLKPORT_OSCCLK,
41862306a36Sopenharmony_ci	GAT_PERIC_ADC0_IPCLKPORT_I_OSCCLK,
41962306a36Sopenharmony_ci	GAT_PERIC_CMU_PERIC_IPCLKPORT_PCLK,
42062306a36Sopenharmony_ci	GAT_PERIC_PWM0_IPCLKPORT_I_OSCCLK,
42162306a36Sopenharmony_ci	GAT_PERIC_PWM1_IPCLKPORT_I_OSCCLK,
42262306a36Sopenharmony_ci	GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKM,
42362306a36Sopenharmony_ci	GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKS,
42462306a36Sopenharmony_ci	GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKM,
42562306a36Sopenharmony_ci	GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKS,
42662306a36Sopenharmony_ci	GAT_AXI2APB_PERIC0_IPCLKPORT_ACLK,
42762306a36Sopenharmony_ci	GAT_AXI2APB_PERIC1_IPCLKPORT_ACLK,
42862306a36Sopenharmony_ci	GAT_AXI2APB_PERIC2_IPCLKPORT_ACLK,
42962306a36Sopenharmony_ci	GAT_BUS_D_PERIC_IPCLKPORT_DMACLK,
43062306a36Sopenharmony_ci	GAT_BUS_D_PERIC_IPCLKPORT_EQOSCLK,
43162306a36Sopenharmony_ci	GAT_BUS_D_PERIC_IPCLKPORT_MAINCLK,
43262306a36Sopenharmony_ci	GAT_BUS_P_PERIC_IPCLKPORT_EQOSCLK,
43362306a36Sopenharmony_ci	GAT_BUS_P_PERIC_IPCLKPORT_MAINCLK,
43462306a36Sopenharmony_ci	GAT_BUS_P_PERIC_IPCLKPORT_SMMUCLK,
43562306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_ACLK_I,
43662306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_CLK_RX_I,
43762306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_HCLK_I,
43862306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_RGMII_CLK_I,
43962306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_RII_CLK_I,
44062306a36Sopenharmony_ci	GAT_EQOS_TOP_IPCLKPORT_RMII_CLK_I,
44162306a36Sopenharmony_ci	GAT_GPIO_PERIC_IPCLKPORT_PCLK,
44262306a36Sopenharmony_ci	GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_D,
44362306a36Sopenharmony_ci	GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_P,
44462306a36Sopenharmony_ci	GAT_PERIC_ADC0_IPCLKPORT_PCLK_S0,
44562306a36Sopenharmony_ci	GAT_PERIC_DMA0_IPCLKPORT_ACLK,
44662306a36Sopenharmony_ci	GAT_PERIC_DMA1_IPCLKPORT_ACLK,
44762306a36Sopenharmony_ci	GAT_PERIC_I2C0_IPCLKPORT_I_PCLK,
44862306a36Sopenharmony_ci	GAT_PERIC_I2C1_IPCLKPORT_I_PCLK,
44962306a36Sopenharmony_ci	GAT_PERIC_I2C2_IPCLKPORT_I_PCLK,
45062306a36Sopenharmony_ci	GAT_PERIC_I2C3_IPCLKPORT_I_PCLK,
45162306a36Sopenharmony_ci	GAT_PERIC_I2C4_IPCLKPORT_I_PCLK,
45262306a36Sopenharmony_ci	GAT_PERIC_I2C5_IPCLKPORT_I_PCLK,
45362306a36Sopenharmony_ci	GAT_PERIC_I2C6_IPCLKPORT_I_PCLK,
45462306a36Sopenharmony_ci	GAT_PERIC_I2C7_IPCLKPORT_I_PCLK,
45562306a36Sopenharmony_ci	GAT_PERIC_MCAN0_IPCLKPORT_CCLK,
45662306a36Sopenharmony_ci	GAT_PERIC_MCAN0_IPCLKPORT_PCLK,
45762306a36Sopenharmony_ci	GAT_PERIC_MCAN1_IPCLKPORT_CCLK,
45862306a36Sopenharmony_ci	GAT_PERIC_MCAN1_IPCLKPORT_PCLK,
45962306a36Sopenharmony_ci	GAT_PERIC_MCAN2_IPCLKPORT_CCLK,
46062306a36Sopenharmony_ci	GAT_PERIC_MCAN2_IPCLKPORT_PCLK,
46162306a36Sopenharmony_ci	GAT_PERIC_MCAN3_IPCLKPORT_CCLK,
46262306a36Sopenharmony_ci	GAT_PERIC_MCAN3_IPCLKPORT_PCLK,
46362306a36Sopenharmony_ci	GAT_PERIC_PWM0_IPCLKPORT_I_PCLK_S0,
46462306a36Sopenharmony_ci	GAT_PERIC_PWM1_IPCLKPORT_I_PCLK_S0,
46562306a36Sopenharmony_ci	GAT_PERIC_SMMU_IPCLKPORT_CCLK,
46662306a36Sopenharmony_ci	GAT_PERIC_SMMU_IPCLKPORT_PERIC_BCLK,
46762306a36Sopenharmony_ci	GAT_PERIC_SPI0_IPCLKPORT_I_PCLK,
46862306a36Sopenharmony_ci	GAT_PERIC_SPI0_IPCLKPORT_I_SCLK_SPI,
46962306a36Sopenharmony_ci	GAT_PERIC_SPI1_IPCLKPORT_I_PCLK,
47062306a36Sopenharmony_ci	GAT_PERIC_SPI1_IPCLKPORT_I_SCLK_SPI,
47162306a36Sopenharmony_ci	GAT_PERIC_SPI2_IPCLKPORT_I_PCLK,
47262306a36Sopenharmony_ci	GAT_PERIC_SPI2_IPCLKPORT_I_SCLK_SPI,
47362306a36Sopenharmony_ci	GAT_PERIC_TDM0_IPCLKPORT_HCLK_M,
47462306a36Sopenharmony_ci	GAT_PERIC_TDM0_IPCLKPORT_PCLK,
47562306a36Sopenharmony_ci	GAT_PERIC_TDM1_IPCLKPORT_HCLK_M,
47662306a36Sopenharmony_ci	GAT_PERIC_TDM1_IPCLKPORT_PCLK,
47762306a36Sopenharmony_ci	GAT_PERIC_UART0_IPCLKPORT_I_SCLK_UART,
47862306a36Sopenharmony_ci	GAT_PERIC_UART0_IPCLKPORT_PCLK,
47962306a36Sopenharmony_ci	GAT_PERIC_UART1_IPCLKPORT_I_SCLK_UART,
48062306a36Sopenharmony_ci	GAT_PERIC_UART1_IPCLKPORT_PCLK,
48162306a36Sopenharmony_ci	GAT_SYSREG_PERI_IPCLKPORT_PCLK,
48262306a36Sopenharmony_ci};
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_cistatic const struct samsung_fixed_rate_clock peric_fixed_clks[] __initconst = {
48562306a36Sopenharmony_ci	FRATE(PERIC_EQOS_PHYRXCLK, "eqos_phyrxclk", NULL, 0, 125000000),
48662306a36Sopenharmony_ci};
48762306a36Sopenharmony_ci
48862306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_PERIC */
48962306a36Sopenharmony_ciPNAME(mout_peric_dmaclk_p) = { "fin_pll", "cmu_peric_shared1div4_dmaclk_gate" };
49062306a36Sopenharmony_ciPNAME(mout_peric_eqos_busclk_p) = { "fin_pll", "dout_cmu_pll_shared0_div4" };
49162306a36Sopenharmony_ciPNAME(mout_peric_pclk_p) = { "fin_pll", "dout_cmu_peric_shared1div36" };
49262306a36Sopenharmony_ciPNAME(mout_peric_tbuclk_p) = { "fin_pll", "dout_cmu_peric_shared0div3_tbuclk" };
49362306a36Sopenharmony_ciPNAME(mout_peric_spi_clk_p) = { "fin_pll", "dout_cmu_peric_shared0div20" };
49462306a36Sopenharmony_ciPNAME(mout_peric_spi_pclk_p) = { "fin_pll", "dout_cmu_peric_shared1div36" };
49562306a36Sopenharmony_ciPNAME(mout_peric_uart_clk_p) = { "fin_pll", "dout_cmu_peric_shared1div4_dmaclk" };
49662306a36Sopenharmony_ciPNAME(mout_peric_uart_pclk_p) = { "fin_pll", "dout_cmu_peric_shared1div36" };
49762306a36Sopenharmony_ciPNAME(mout_peric_eqos_phyrxclk_p) = { "dout_peric_rgmii_clk", "eqos_phyrxclk" };
49862306a36Sopenharmony_ci
49962306a36Sopenharmony_cistatic const struct samsung_mux_clock peric_mux_clks[] __initconst = {
50062306a36Sopenharmony_ci	MUX(0, "mout_peric_dmaclk", mout_peric_dmaclk_p, PLL_CON0_PERIC_DMACLK_MUX, 4, 1),
50162306a36Sopenharmony_ci	MUX(0, "mout_peric_eqos_busclk", mout_peric_eqos_busclk_p,
50262306a36Sopenharmony_ci	    PLL_CON0_PERIC_EQOS_BUSCLK_MUX, 4, 1),
50362306a36Sopenharmony_ci	MUX(0, "mout_peric_pclk", mout_peric_pclk_p, PLL_CON0_PERIC_PCLK_MUX, 4, 1),
50462306a36Sopenharmony_ci	MUX(0, "mout_peric_tbuclk", mout_peric_tbuclk_p, PLL_CON0_PERIC_TBUCLK_MUX, 4, 1),
50562306a36Sopenharmony_ci	MUX(0, "mout_peric_spi_clk", mout_peric_spi_clk_p, PLL_CON0_SPI_CLK, 4, 1),
50662306a36Sopenharmony_ci	MUX(0, "mout_peric_spi_pclk", mout_peric_spi_pclk_p, PLL_CON0_SPI_PCLK, 4, 1),
50762306a36Sopenharmony_ci	MUX(0, "mout_peric_uart_clk", mout_peric_uart_clk_p, PLL_CON0_UART_CLK, 4, 1),
50862306a36Sopenharmony_ci	MUX(0, "mout_peric_uart_pclk", mout_peric_uart_pclk_p, PLL_CON0_UART_PCLK, 4, 1),
50962306a36Sopenharmony_ci	MUX(PERIC_EQOS_PHYRXCLK_MUX, "mout_peric_eqos_phyrxclk", mout_peric_eqos_phyrxclk_p,
51062306a36Sopenharmony_ci		MUX_PERIC_EQOS_PHYRXCLK, 0, 1),
51162306a36Sopenharmony_ci};
51262306a36Sopenharmony_ci
51362306a36Sopenharmony_cistatic const struct samsung_div_clock peric_div_clks[] __initconst = {
51462306a36Sopenharmony_ci	DIV(0, "dout_peric_eqos_busclk", "mout_peric_eqos_busclk", DIV_EQOS_BUSCLK, 0, 4),
51562306a36Sopenharmony_ci	DIV(0, "dout_peric_mcan_clk", "mout_peric_dmaclk", DIV_PERIC_MCAN_CLK, 0, 4),
51662306a36Sopenharmony_ci	DIV(PERIC_DOUT_RGMII_CLK, "dout_peric_rgmii_clk", "mout_peric_eqos_busclk",
51762306a36Sopenharmony_ci		DIV_RGMII_CLK, 0, 4),
51862306a36Sopenharmony_ci	DIV(0, "dout_peric_rii_clk", "dout_peric_rmii_clk", DIV_RII_CLK, 0, 4),
51962306a36Sopenharmony_ci	DIV(0, "dout_peric_rmii_clk", "dout_peric_rgmii_clk", DIV_RMII_CLK, 0, 4),
52062306a36Sopenharmony_ci	DIV(0, "dout_peric_spi_clk", "mout_peric_spi_clk", DIV_SPI_CLK, 0, 6),
52162306a36Sopenharmony_ci	DIV(0, "dout_peric_uart_clk", "mout_peric_uart_clk", DIV_UART_CLK, 0, 6),
52262306a36Sopenharmony_ci};
52362306a36Sopenharmony_ci
52462306a36Sopenharmony_cistatic const struct samsung_gate_clock peric_gate_clks[] __initconst = {
52562306a36Sopenharmony_ci	GATE(PERIC_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I, "peric_eqos_top_ipclkport_clk_ptp_ref_i",
52662306a36Sopenharmony_ci	     "fin_pll", GAT_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I, 21, CLK_IGNORE_UNUSED, 0),
52762306a36Sopenharmony_ci	GATE(0, "peric_gpio_peric_ipclkport_oscclk", "fin_pll", GAT_GPIO_PERIC_IPCLKPORT_OSCCLK,
52862306a36Sopenharmony_ci	     21, CLK_IGNORE_UNUSED, 0),
52962306a36Sopenharmony_ci	GATE(PERIC_PCLK_ADCIF, "peric_adc0_ipclkport_i_oscclk", "fin_pll",
53062306a36Sopenharmony_ci	     GAT_PERIC_ADC0_IPCLKPORT_I_OSCCLK, 21, CLK_IGNORE_UNUSED, 0),
53162306a36Sopenharmony_ci	GATE(0, "peric_cmu_peric_ipclkport_pclk", "mout_peric_pclk",
53262306a36Sopenharmony_ci	     GAT_PERIC_CMU_PERIC_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
53362306a36Sopenharmony_ci	GATE(0, "peric_pwm0_ipclkport_i_oscclk", "fin_pll", GAT_PERIC_PWM0_IPCLKPORT_I_OSCCLK, 21,
53462306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
53562306a36Sopenharmony_ci	GATE(0, "peric_pwm1_ipclkport_i_oscclk", "fin_pll", GAT_PERIC_PWM1_IPCLKPORT_I_OSCCLK, 21,
53662306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
53762306a36Sopenharmony_ci	GATE(0, "peric_async_apb_dma0_ipclkport_pclkm", "mout_peric_dmaclk",
53862306a36Sopenharmony_ci	     GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKM, 21, CLK_IGNORE_UNUSED, 0),
53962306a36Sopenharmony_ci	GATE(0, "peric_async_apb_dma0_ipclkport_pclks", "mout_peric_pclk",
54062306a36Sopenharmony_ci	     GAT_ASYNC_APB_DMA0_IPCLKPORT_PCLKS, 21, CLK_IGNORE_UNUSED, 0),
54162306a36Sopenharmony_ci	GATE(0, "peric_async_apb_dma1_ipclkport_pclkm", "mout_peric_dmaclk",
54262306a36Sopenharmony_ci	     GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKM, 21, CLK_IGNORE_UNUSED, 0),
54362306a36Sopenharmony_ci	GATE(0, "peric_async_apb_dma1_ipclkport_pclks", "mout_peric_pclk",
54462306a36Sopenharmony_ci	     GAT_ASYNC_APB_DMA1_IPCLKPORT_PCLKS, 21, CLK_IGNORE_UNUSED, 0),
54562306a36Sopenharmony_ci	GATE(0, "peric_axi2apb_peric0_ipclkport_aclk", "mout_peric_pclk",
54662306a36Sopenharmony_ci	     GAT_AXI2APB_PERIC0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
54762306a36Sopenharmony_ci	GATE(0, "peric_axi2apb_peric1_ipclkport_aclk", "mout_peric_pclk",
54862306a36Sopenharmony_ci	     GAT_AXI2APB_PERIC1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
54962306a36Sopenharmony_ci	GATE(0, "peric_axi2apb_peric2_ipclkport_aclk", "mout_peric_pclk",
55062306a36Sopenharmony_ci	     GAT_AXI2APB_PERIC2_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
55162306a36Sopenharmony_ci	GATE(0, "peric_bus_d_peric_ipclkport_dmaclk", "mout_peric_dmaclk",
55262306a36Sopenharmony_ci	     GAT_BUS_D_PERIC_IPCLKPORT_DMACLK, 21, CLK_IGNORE_UNUSED, 0),
55362306a36Sopenharmony_ci	GATE(PERIC_BUS_D_PERIC_IPCLKPORT_EQOSCLK, "peric_bus_d_peric_ipclkport_eqosclk",
55462306a36Sopenharmony_ci	     "dout_peric_eqos_busclk", GAT_BUS_D_PERIC_IPCLKPORT_EQOSCLK, 21, CLK_IGNORE_UNUSED, 0),
55562306a36Sopenharmony_ci	GATE(0, "peric_bus_d_peric_ipclkport_mainclk", "mout_peric_tbuclk",
55662306a36Sopenharmony_ci	     GAT_BUS_D_PERIC_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
55762306a36Sopenharmony_ci	GATE(PERIC_BUS_P_PERIC_IPCLKPORT_EQOSCLK, "peric_bus_p_peric_ipclkport_eqosclk",
55862306a36Sopenharmony_ci	     "dout_peric_eqos_busclk", GAT_BUS_P_PERIC_IPCLKPORT_EQOSCLK, 21, CLK_IGNORE_UNUSED, 0),
55962306a36Sopenharmony_ci	GATE(0, "peric_bus_p_peric_ipclkport_mainclk", "mout_peric_pclk",
56062306a36Sopenharmony_ci	     GAT_BUS_P_PERIC_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
56162306a36Sopenharmony_ci	GATE(0, "peric_bus_p_peric_ipclkport_smmuclk", "mout_peric_tbuclk",
56262306a36Sopenharmony_ci	     GAT_BUS_P_PERIC_IPCLKPORT_SMMUCLK, 21, CLK_IGNORE_UNUSED, 0),
56362306a36Sopenharmony_ci	GATE(PERIC_EQOS_TOP_IPCLKPORT_ACLK_I, "peric_eqos_top_ipclkport_aclk_i",
56462306a36Sopenharmony_ci	     "dout_peric_eqos_busclk", GAT_EQOS_TOP_IPCLKPORT_ACLK_I, 21, CLK_IGNORE_UNUSED, 0),
56562306a36Sopenharmony_ci	GATE(PERIC_EQOS_TOP_IPCLKPORT_CLK_RX_I, "peric_eqos_top_ipclkport_clk_rx_i",
56662306a36Sopenharmony_ci	     "mout_peric_eqos_phyrxclk", GAT_EQOS_TOP_IPCLKPORT_CLK_RX_I, 21, CLK_IGNORE_UNUSED, 0),
56762306a36Sopenharmony_ci	GATE(PERIC_EQOS_TOP_IPCLKPORT_HCLK_I, "peric_eqos_top_ipclkport_hclk_i",
56862306a36Sopenharmony_ci	     "dout_peric_eqos_busclk", GAT_EQOS_TOP_IPCLKPORT_HCLK_I, 21, CLK_IGNORE_UNUSED, 0),
56962306a36Sopenharmony_ci	GATE(PERIC_EQOS_TOP_IPCLKPORT_RGMII_CLK_I, "peric_eqos_top_ipclkport_rgmii_clk_i",
57062306a36Sopenharmony_ci	     "dout_peric_rgmii_clk", GAT_EQOS_TOP_IPCLKPORT_RGMII_CLK_I, 21, CLK_IGNORE_UNUSED, 0),
57162306a36Sopenharmony_ci	GATE(0, "peric_eqos_top_ipclkport_rii_clk_i", "dout_peric_rii_clk",
57262306a36Sopenharmony_ci	     GAT_EQOS_TOP_IPCLKPORT_RII_CLK_I, 21, CLK_IGNORE_UNUSED, 0),
57362306a36Sopenharmony_ci	GATE(0, "peric_eqos_top_ipclkport_rmii_clk_i", "dout_peric_rmii_clk",
57462306a36Sopenharmony_ci	     GAT_EQOS_TOP_IPCLKPORT_RMII_CLK_I, 21, CLK_IGNORE_UNUSED, 0),
57562306a36Sopenharmony_ci	GATE(0, "peric_gpio_peric_ipclkport_pclk", "mout_peric_pclk",
57662306a36Sopenharmony_ci	     GAT_GPIO_PERIC_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
57762306a36Sopenharmony_ci	GATE(0, "peric_ns_brdg_peric_ipclkport_clk__psoc_peric__clk_peric_d", "mout_peric_tbuclk",
57862306a36Sopenharmony_ci	     GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_D, 21, CLK_IGNORE_UNUSED, 0),
57962306a36Sopenharmony_ci	GATE(0, "peric_ns_brdg_peric_ipclkport_clk__psoc_peric__clk_peric_p", "mout_peric_pclk",
58062306a36Sopenharmony_ci	     GAT_NS_BRDG_PERIC_IPCLKPORT_CLK__PSOC_PERIC__CLK_PERIC_P, 21, CLK_IGNORE_UNUSED, 0),
58162306a36Sopenharmony_ci	GATE(0, "peric_adc0_ipclkport_pclk_s0", "mout_peric_pclk",
58262306a36Sopenharmony_ci	     GAT_PERIC_ADC0_IPCLKPORT_PCLK_S0, 21, CLK_IGNORE_UNUSED, 0),
58362306a36Sopenharmony_ci	GATE(PERIC_DMA0_IPCLKPORT_ACLK, "peric_dma0_ipclkport_aclk", "mout_peric_dmaclk",
58462306a36Sopenharmony_ci	     GAT_PERIC_DMA0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
58562306a36Sopenharmony_ci	GATE(PERIC_DMA1_IPCLKPORT_ACLK, "peric_dma1_ipclkport_aclk", "mout_peric_dmaclk",
58662306a36Sopenharmony_ci	     GAT_PERIC_DMA1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
58762306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C0, "peric_i2c0_ipclkport_i_pclk", "mout_peric_pclk",
58862306a36Sopenharmony_ci	     GAT_PERIC_I2C0_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
58962306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C1, "peric_i2c1_ipclkport_i_pclk", "mout_peric_pclk",
59062306a36Sopenharmony_ci	     GAT_PERIC_I2C1_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
59162306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C2, "peric_i2c2_ipclkport_i_pclk", "mout_peric_pclk",
59262306a36Sopenharmony_ci	     GAT_PERIC_I2C2_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
59362306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C3, "peric_i2c3_ipclkport_i_pclk", "mout_peric_pclk",
59462306a36Sopenharmony_ci	     GAT_PERIC_I2C3_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
59562306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C4, "peric_i2c4_ipclkport_i_pclk", "mout_peric_pclk",
59662306a36Sopenharmony_ci	     GAT_PERIC_I2C4_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
59762306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C5, "peric_i2c5_ipclkport_i_pclk", "mout_peric_pclk",
59862306a36Sopenharmony_ci	     GAT_PERIC_I2C5_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
59962306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C6, "peric_i2c6_ipclkport_i_pclk", "mout_peric_pclk",
60062306a36Sopenharmony_ci	     GAT_PERIC_I2C6_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
60162306a36Sopenharmony_ci	GATE(PERIC_PCLK_HSI2C7, "peric_i2c7_ipclkport_i_pclk", "mout_peric_pclk",
60262306a36Sopenharmony_ci	     GAT_PERIC_I2C7_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
60362306a36Sopenharmony_ci	GATE(PERIC_MCAN0_IPCLKPORT_CCLK, "peric_mcan0_ipclkport_cclk", "dout_peric_mcan_clk",
60462306a36Sopenharmony_ci	     GAT_PERIC_MCAN0_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
60562306a36Sopenharmony_ci	GATE(PERIC_MCAN0_IPCLKPORT_PCLK, "peric_mcan0_ipclkport_pclk", "mout_peric_pclk",
60662306a36Sopenharmony_ci	     GAT_PERIC_MCAN0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
60762306a36Sopenharmony_ci	GATE(PERIC_MCAN1_IPCLKPORT_CCLK, "peric_mcan1_ipclkport_cclk", "dout_peric_mcan_clk",
60862306a36Sopenharmony_ci	     GAT_PERIC_MCAN1_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
60962306a36Sopenharmony_ci	GATE(PERIC_MCAN1_IPCLKPORT_PCLK, "peric_mcan1_ipclkport_pclk", "mout_peric_pclk",
61062306a36Sopenharmony_ci	     GAT_PERIC_MCAN1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
61162306a36Sopenharmony_ci	GATE(PERIC_MCAN2_IPCLKPORT_CCLK, "peric_mcan2_ipclkport_cclk", "dout_peric_mcan_clk",
61262306a36Sopenharmony_ci	     GAT_PERIC_MCAN2_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
61362306a36Sopenharmony_ci	GATE(PERIC_MCAN2_IPCLKPORT_PCLK, "peric_mcan2_ipclkport_pclk", "mout_peric_pclk",
61462306a36Sopenharmony_ci	     GAT_PERIC_MCAN2_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
61562306a36Sopenharmony_ci	GATE(PERIC_MCAN3_IPCLKPORT_CCLK, "peric_mcan3_ipclkport_cclk", "dout_peric_mcan_clk",
61662306a36Sopenharmony_ci	     GAT_PERIC_MCAN3_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
61762306a36Sopenharmony_ci	GATE(PERIC_MCAN3_IPCLKPORT_PCLK, "peric_mcan3_ipclkport_pclk", "mout_peric_pclk",
61862306a36Sopenharmony_ci	     GAT_PERIC_MCAN3_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
61962306a36Sopenharmony_ci	GATE(PERIC_PWM0_IPCLKPORT_I_PCLK_S0, "peric_pwm0_ipclkport_i_pclk_s0", "mout_peric_pclk",
62062306a36Sopenharmony_ci	     GAT_PERIC_PWM0_IPCLKPORT_I_PCLK_S0, 21, CLK_IGNORE_UNUSED, 0),
62162306a36Sopenharmony_ci	GATE(PERIC_PWM1_IPCLKPORT_I_PCLK_S0, "peric_pwm1_ipclkport_i_pclk_s0", "mout_peric_pclk",
62262306a36Sopenharmony_ci	     GAT_PERIC_PWM1_IPCLKPORT_I_PCLK_S0, 21, CLK_IGNORE_UNUSED, 0),
62362306a36Sopenharmony_ci	GATE(0, "peric_smmu_ipclkport_cclk", "mout_peric_tbuclk",
62462306a36Sopenharmony_ci	     GAT_PERIC_SMMU_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
62562306a36Sopenharmony_ci	GATE(0, "peric_smmu_ipclkport_peric_bclk", "mout_peric_tbuclk",
62662306a36Sopenharmony_ci	     GAT_PERIC_SMMU_IPCLKPORT_PERIC_BCLK, 21, CLK_IGNORE_UNUSED, 0),
62762306a36Sopenharmony_ci	GATE(PERIC_PCLK_SPI0, "peric_spi0_ipclkport_i_pclk", "mout_peric_spi_pclk",
62862306a36Sopenharmony_ci	     GAT_PERIC_SPI0_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
62962306a36Sopenharmony_ci	GATE(PERIC_SCLK_SPI0, "peric_spi0_ipclkport_i_sclk_spi", "dout_peric_spi_clk",
63062306a36Sopenharmony_ci	     GAT_PERIC_SPI0_IPCLKPORT_I_SCLK_SPI, 21, CLK_IGNORE_UNUSED, 0),
63162306a36Sopenharmony_ci	GATE(PERIC_PCLK_SPI1, "peric_spi1_ipclkport_i_pclk", "mout_peric_spi_pclk",
63262306a36Sopenharmony_ci	     GAT_PERIC_SPI1_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
63362306a36Sopenharmony_ci	GATE(PERIC_SCLK_SPI1, "peric_spi1_ipclkport_i_sclk_spi", "dout_peric_spi_clk",
63462306a36Sopenharmony_ci	     GAT_PERIC_SPI1_IPCLKPORT_I_SCLK_SPI, 21, CLK_IGNORE_UNUSED, 0),
63562306a36Sopenharmony_ci	GATE(PERIC_PCLK_SPI2, "peric_spi2_ipclkport_i_pclk", "mout_peric_spi_pclk",
63662306a36Sopenharmony_ci	     GAT_PERIC_SPI2_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
63762306a36Sopenharmony_ci	GATE(PERIC_SCLK_SPI2, "peric_spi2_ipclkport_i_sclk_spi", "dout_peric_spi_clk",
63862306a36Sopenharmony_ci	     GAT_PERIC_SPI2_IPCLKPORT_I_SCLK_SPI, 21, CLK_IGNORE_UNUSED, 0),
63962306a36Sopenharmony_ci	GATE(PERIC_HCLK_TDM0, "peric_tdm0_ipclkport_hclk_m", "mout_peric_pclk",
64062306a36Sopenharmony_ci	     GAT_PERIC_TDM0_IPCLKPORT_HCLK_M, 21, CLK_IGNORE_UNUSED, 0),
64162306a36Sopenharmony_ci	GATE(PERIC_PCLK_TDM0, "peric_tdm0_ipclkport_pclk", "mout_peric_pclk",
64262306a36Sopenharmony_ci	     GAT_PERIC_TDM0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
64362306a36Sopenharmony_ci	GATE(PERIC_HCLK_TDM1, "peric_tdm1_ipclkport_hclk_m", "mout_peric_pclk",
64462306a36Sopenharmony_ci	     GAT_PERIC_TDM1_IPCLKPORT_HCLK_M, 21, CLK_IGNORE_UNUSED, 0),
64562306a36Sopenharmony_ci	GATE(PERIC_PCLK_TDM1, "peric_tdm1_ipclkport_pclk", "mout_peric_pclk",
64662306a36Sopenharmony_ci	     GAT_PERIC_TDM1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
64762306a36Sopenharmony_ci	GATE(PERIC_SCLK_UART0, "peric_uart0_ipclkport_i_sclk_uart", "dout_peric_uart_clk",
64862306a36Sopenharmony_ci	     GAT_PERIC_UART0_IPCLKPORT_I_SCLK_UART, 21, CLK_IGNORE_UNUSED, 0),
64962306a36Sopenharmony_ci	GATE(PERIC_PCLK_UART0, "peric_uart0_ipclkport_pclk", "mout_peric_uart_pclk",
65062306a36Sopenharmony_ci	     GAT_PERIC_UART0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
65162306a36Sopenharmony_ci	GATE(PERIC_SCLK_UART1, "peric_uart1_ipclkport_i_sclk_uart", "dout_peric_uart_clk",
65262306a36Sopenharmony_ci	     GAT_PERIC_UART1_IPCLKPORT_I_SCLK_UART, 21, CLK_IGNORE_UNUSED, 0),
65362306a36Sopenharmony_ci	GATE(PERIC_PCLK_UART1, "peric_uart1_ipclkport_pclk", "mout_peric_uart_pclk",
65462306a36Sopenharmony_ci	     GAT_PERIC_UART1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
65562306a36Sopenharmony_ci	GATE(0, "peric_sysreg_peri_ipclkport_pclk", "mout_peric_pclk",
65662306a36Sopenharmony_ci	     GAT_SYSREG_PERI_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
65762306a36Sopenharmony_ci};
65862306a36Sopenharmony_ci
65962306a36Sopenharmony_cistatic const struct samsung_cmu_info peric_cmu_info __initconst = {
66062306a36Sopenharmony_ci	.mux_clks		= peric_mux_clks,
66162306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(peric_mux_clks),
66262306a36Sopenharmony_ci	.div_clks		= peric_div_clks,
66362306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(peric_div_clks),
66462306a36Sopenharmony_ci	.gate_clks		= peric_gate_clks,
66562306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(peric_gate_clks),
66662306a36Sopenharmony_ci	.fixed_clks		= peric_fixed_clks,
66762306a36Sopenharmony_ci	.nr_fixed_clks		= ARRAY_SIZE(peric_fixed_clks),
66862306a36Sopenharmony_ci	.nr_clk_ids		= PERIC_NR_CLK,
66962306a36Sopenharmony_ci	.clk_regs		= peric_clk_regs,
67062306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(peric_clk_regs),
67162306a36Sopenharmony_ci	.clk_name		= "dout_cmu_pll_shared0_div4",
67262306a36Sopenharmony_ci};
67362306a36Sopenharmony_ci
67462306a36Sopenharmony_ci/* Register Offset definitions for CMU_FSYS0 (0x15010000) */
67562306a36Sopenharmony_ci#define PLL_CON0_CLKCMU_FSYS0_UNIPRO		0x100
67662306a36Sopenharmony_ci#define PLL_CON0_CLK_FSYS0_SLAVEBUSCLK		0x140
67762306a36Sopenharmony_ci#define PLL_CON0_EQOS_RGMII_125_MUX1		0x160
67862306a36Sopenharmony_ci#define DIV_CLK_UNIPRO				0x1800
67962306a36Sopenharmony_ci#define DIV_EQS_RGMII_CLK_125			0x1804
68062306a36Sopenharmony_ci#define DIV_PERIBUS_GRP				0x1808
68162306a36Sopenharmony_ci#define DIV_EQOS_RII_CLK2O5			0x180c
68262306a36Sopenharmony_ci#define DIV_EQOS_RMIICLK_25			0x1810
68362306a36Sopenharmony_ci#define DIV_PCIE_PHY_OSCCLK			0x1814
68462306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I	0x2004
68562306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I	0x2008
68662306a36Sopenharmony_ci#define GAT_FSYS0_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK	0x200c
68762306a36Sopenharmony_ci#define GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_OSCCLK	0x2010
68862306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_XO	0x2014
68962306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_IMMORTAL_CLK	0x2018
69062306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_AUX_CLK_SOC	0x201c
69162306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL24	0x2020
69262306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL26	0x2024
69362306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL24	0x2028
69462306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL26	0x202c
69562306a36Sopenharmony_ci#define GAT_FSYS0_AHBBR_FSYS0_IPCLKPORT_HCLK	0x2038
69662306a36Sopenharmony_ci#define GAT_FSYS0_AXI2APB_FSYS0_IPCLKPORT_ACLK	0x203c
69762306a36Sopenharmony_ci#define GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_MAINCLK	0x2040
69862306a36Sopenharmony_ci#define GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_PERICLK	0x2044
69962306a36Sopenharmony_ci#define GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_MAINCLK	0x2048
70062306a36Sopenharmony_ci#define GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_TCUCLK	0x204c
70162306a36Sopenharmony_ci#define GAT_FSYS0_CPE425_IPCLKPORT_ACLK		0x2050
70262306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I	0x2054
70362306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I	0x2058
70462306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I	0x205c
70562306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RII_CLK_I	0x2060
70662306a36Sopenharmony_ci#define GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RMII_CLK_I	0x2064
70762306a36Sopenharmony_ci#define GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_PCLK	0x2068
70862306a36Sopenharmony_ci#define GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D	0x206c
70962306a36Sopenharmony_ci#define GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D1	0x2070
71062306a36Sopenharmony_ci#define GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_P	0x2074
71162306a36Sopenharmony_ci#define GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_S	0x2078
71262306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_I_APB_PCLK	0x207c
71362306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_SYSPLL	0x2080
71462306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_APB_PCLK_0	0x2084
71562306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_DBI_ACLK_SOC	0x2088
71662306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_I_DRIVER_APB_CLK	0x208c
71762306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_MSTR_ACLK_SOC	0x2090
71862306a36Sopenharmony_ci#define GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_SLV_ACLK_SOC	0x2094
71962306a36Sopenharmony_ci#define GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_CCLK	0x2098
72062306a36Sopenharmony_ci#define GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_FSYS0_BCLK	0x209c
72162306a36Sopenharmony_ci#define GAT_FSYS0_SYSREG_FSYS0_IPCLKPORT_PCLK	0x20a0
72262306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_HCLK_BUS	0x20a4
72362306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_ACLK	0x20a8
72462306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_CLK_UNIPRO	0x20ac
72562306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_FMP_CLK	0x20b0
72662306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_HCLK_BUS	0x20b4
72762306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_ACLK	0x20b8
72862306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_CLK_UNIPRO	0x20bc
72962306a36Sopenharmony_ci#define GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_FMP_CLK	0x20c0
73062306a36Sopenharmony_ci#define GAT_FSYS0_RII_CLK_DIVGATE			0x20d4
73162306a36Sopenharmony_ci
73262306a36Sopenharmony_cistatic const unsigned long fsys0_clk_regs[] __initconst = {
73362306a36Sopenharmony_ci	PLL_CON0_CLKCMU_FSYS0_UNIPRO,
73462306a36Sopenharmony_ci	PLL_CON0_CLK_FSYS0_SLAVEBUSCLK,
73562306a36Sopenharmony_ci	PLL_CON0_EQOS_RGMII_125_MUX1,
73662306a36Sopenharmony_ci	DIV_CLK_UNIPRO,
73762306a36Sopenharmony_ci	DIV_EQS_RGMII_CLK_125,
73862306a36Sopenharmony_ci	DIV_PERIBUS_GRP,
73962306a36Sopenharmony_ci	DIV_EQOS_RII_CLK2O5,
74062306a36Sopenharmony_ci	DIV_EQOS_RMIICLK_25,
74162306a36Sopenharmony_ci	DIV_PCIE_PHY_OSCCLK,
74262306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I,
74362306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I,
74462306a36Sopenharmony_ci	GAT_FSYS0_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK,
74562306a36Sopenharmony_ci	GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_OSCCLK,
74662306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_XO,
74762306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_IMMORTAL_CLK,
74862306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_AUX_CLK_SOC,
74962306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL24,
75062306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL26,
75162306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL24,
75262306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL26,
75362306a36Sopenharmony_ci	GAT_FSYS0_AHBBR_FSYS0_IPCLKPORT_HCLK,
75462306a36Sopenharmony_ci	GAT_FSYS0_AXI2APB_FSYS0_IPCLKPORT_ACLK,
75562306a36Sopenharmony_ci	GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_MAINCLK,
75662306a36Sopenharmony_ci	GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_PERICLK,
75762306a36Sopenharmony_ci	GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_MAINCLK,
75862306a36Sopenharmony_ci	GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_TCUCLK,
75962306a36Sopenharmony_ci	GAT_FSYS0_CPE425_IPCLKPORT_ACLK,
76062306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I,
76162306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I,
76262306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I,
76362306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RII_CLK_I,
76462306a36Sopenharmony_ci	GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RMII_CLK_I,
76562306a36Sopenharmony_ci	GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_PCLK,
76662306a36Sopenharmony_ci	GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D,
76762306a36Sopenharmony_ci	GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D1,
76862306a36Sopenharmony_ci	GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_P,
76962306a36Sopenharmony_ci	GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_S,
77062306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_I_APB_PCLK,
77162306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_SYSPLL,
77262306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_APB_PCLK_0,
77362306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_DBI_ACLK_SOC,
77462306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_I_DRIVER_APB_CLK,
77562306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_MSTR_ACLK_SOC,
77662306a36Sopenharmony_ci	GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_SLV_ACLK_SOC,
77762306a36Sopenharmony_ci	GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_CCLK,
77862306a36Sopenharmony_ci	GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_FSYS0_BCLK,
77962306a36Sopenharmony_ci	GAT_FSYS0_SYSREG_FSYS0_IPCLKPORT_PCLK,
78062306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_HCLK_BUS,
78162306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_ACLK,
78262306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_CLK_UNIPRO,
78362306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_FMP_CLK,
78462306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_HCLK_BUS,
78562306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_ACLK,
78662306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_CLK_UNIPRO,
78762306a36Sopenharmony_ci	GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_FMP_CLK,
78862306a36Sopenharmony_ci	GAT_FSYS0_RII_CLK_DIVGATE,
78962306a36Sopenharmony_ci};
79062306a36Sopenharmony_ci
79162306a36Sopenharmony_cistatic const struct samsung_fixed_rate_clock fsys0_fixed_clks[] __initconst = {
79262306a36Sopenharmony_ci	FRATE(0, "pad_eqos0_phyrxclk", NULL, 0, 125000000),
79362306a36Sopenharmony_ci	FRATE(0, "i_mphy_refclk_ixtal26", NULL, 0, 26000000),
79462306a36Sopenharmony_ci	FRATE(0, "xtal_clk_pcie_phy", NULL, 0, 100000000),
79562306a36Sopenharmony_ci};
79662306a36Sopenharmony_ci
79762306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_FSYS0 */
79862306a36Sopenharmony_ciPNAME(mout_fsys0_clkcmu_fsys0_unipro_p) = { "fin_pll", "dout_cmu_pll_shared0_div6" };
79962306a36Sopenharmony_ciPNAME(mout_fsys0_clk_fsys0_slavebusclk_p) = { "fin_pll", "dout_cmu_fsys0_shared1div4" };
80062306a36Sopenharmony_ciPNAME(mout_fsys0_eqos_rgmii_125_mux1_p) = { "fin_pll", "dout_cmu_fsys0_shared0div4" };
80162306a36Sopenharmony_ci
80262306a36Sopenharmony_cistatic const struct samsung_mux_clock fsys0_mux_clks[] __initconst = {
80362306a36Sopenharmony_ci	MUX(0, "mout_fsys0_clkcmu_fsys0_unipro", mout_fsys0_clkcmu_fsys0_unipro_p,
80462306a36Sopenharmony_ci	    PLL_CON0_CLKCMU_FSYS0_UNIPRO, 4, 1),
80562306a36Sopenharmony_ci	MUX(0, "mout_fsys0_clk_fsys0_slavebusclk", mout_fsys0_clk_fsys0_slavebusclk_p,
80662306a36Sopenharmony_ci	    PLL_CON0_CLK_FSYS0_SLAVEBUSCLK, 4, 1),
80762306a36Sopenharmony_ci	MUX(0, "mout_fsys0_eqos_rgmii_125_mux1", mout_fsys0_eqos_rgmii_125_mux1_p,
80862306a36Sopenharmony_ci	    PLL_CON0_EQOS_RGMII_125_MUX1, 4, 1),
80962306a36Sopenharmony_ci};
81062306a36Sopenharmony_ci
81162306a36Sopenharmony_cistatic const struct samsung_div_clock fsys0_div_clks[] __initconst = {
81262306a36Sopenharmony_ci	DIV(0, "dout_fsys0_clk_unipro", "mout_fsys0_clkcmu_fsys0_unipro", DIV_CLK_UNIPRO, 0, 4),
81362306a36Sopenharmony_ci	DIV(0, "dout_fsys0_eqs_rgmii_clk_125", "mout_fsys0_eqos_rgmii_125_mux1",
81462306a36Sopenharmony_ci	    DIV_EQS_RGMII_CLK_125, 0, 4),
81562306a36Sopenharmony_ci	DIV(FSYS0_DOUT_FSYS0_PERIBUS_GRP, "dout_fsys0_peribus_grp",
81662306a36Sopenharmony_ci	    "mout_fsys0_clk_fsys0_slavebusclk", DIV_PERIBUS_GRP, 0, 4),
81762306a36Sopenharmony_ci	DIV(0, "dout_fsys0_eqos_rii_clk2o5", "fsys0_rii_clk_divgate", DIV_EQOS_RII_CLK2O5, 0, 4),
81862306a36Sopenharmony_ci	DIV(0, "dout_fsys0_eqos_rmiiclk_25", "mout_fsys0_eqos_rgmii_125_mux1",
81962306a36Sopenharmony_ci	    DIV_EQOS_RMIICLK_25, 0, 5),
82062306a36Sopenharmony_ci	DIV(0, "dout_fsys0_pcie_phy_oscclk", "mout_fsys0_eqos_rgmii_125_mux1",
82162306a36Sopenharmony_ci	    DIV_PCIE_PHY_OSCCLK, 0, 4),
82262306a36Sopenharmony_ci};
82362306a36Sopenharmony_ci
82462306a36Sopenharmony_cistatic const struct samsung_gate_clock fsys0_gate_clks[] __initconst = {
82562306a36Sopenharmony_ci	GATE(FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I, "fsys0_eqos_top0_ipclkport_clk_rx_i",
82662306a36Sopenharmony_ci	     "pad_eqos0_phyrxclk", GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I, 21,
82762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
82862306a36Sopenharmony_ci	GATE(PCIE_SUBCTRL_INST0_AUX_CLK_SOC,
82962306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_fsd_pcie_sub_ctrl_inst_0_aux_clk_soc", "fin_pll",
83062306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_AUX_CLK_SOC, 21,
83162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
83262306a36Sopenharmony_ci	GATE(0, "fsys0_fsys0_cmu_fsys0_ipclkport_pclk", "dout_fsys0_peribus_grp",
83362306a36Sopenharmony_ci	     GAT_FSYS0_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
83462306a36Sopenharmony_ci	GATE(0,
83562306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_pcieg3_phy_x4_inst_0_pll_refclk_from_xo",
83662306a36Sopenharmony_ci	     "xtal_clk_pcie_phy",
83762306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_XO, 21,
83862306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
83962306a36Sopenharmony_ci	GATE(UFS0_MPHY_REFCLK_IXTAL24, "fsys0_ufs_top0_ipclkport_i_mphy_refclk_ixtal24",
84062306a36Sopenharmony_ci	     "i_mphy_refclk_ixtal26", GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL24, 21,
84162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
84262306a36Sopenharmony_ci	GATE(UFS0_MPHY_REFCLK_IXTAL26, "fsys0_ufs_top0_ipclkport_i_mphy_refclk_ixtal26",
84362306a36Sopenharmony_ci	     "i_mphy_refclk_ixtal26", GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_MPHY_REFCLK_IXTAL26, 21,
84462306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
84562306a36Sopenharmony_ci	GATE(UFS1_MPHY_REFCLK_IXTAL24, "fsys0_ufs_top1_ipclkport_i_mphy_refclk_ixtal24",
84662306a36Sopenharmony_ci	     "i_mphy_refclk_ixtal26", GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL24, 21,
84762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
84862306a36Sopenharmony_ci	GATE(UFS1_MPHY_REFCLK_IXTAL26, "fsys0_ufs_top1_ipclkport_i_mphy_refclk_ixtal26",
84962306a36Sopenharmony_ci	     "i_mphy_refclk_ixtal26", GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_MPHY_REFCLK_IXTAL26, 21,
85062306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
85162306a36Sopenharmony_ci	GATE(0, "fsys0_ahbbr_fsys0_ipclkport_hclk", "dout_fsys0_peribus_grp",
85262306a36Sopenharmony_ci	     GAT_FSYS0_AHBBR_FSYS0_IPCLKPORT_HCLK, 21, CLK_IGNORE_UNUSED, 0),
85362306a36Sopenharmony_ci	GATE(0, "fsys0_axi2apb_fsys0_ipclkport_aclk", "dout_fsys0_peribus_grp",
85462306a36Sopenharmony_ci	     GAT_FSYS0_AXI2APB_FSYS0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
85562306a36Sopenharmony_ci	GATE(0, "fsys0_bus_d_fsys0_ipclkport_mainclk", "mout_fsys0_clk_fsys0_slavebusclk",
85662306a36Sopenharmony_ci	     GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
85762306a36Sopenharmony_ci	GATE(0, "fsys0_bus_d_fsys0_ipclkport_periclk", "dout_fsys0_peribus_grp",
85862306a36Sopenharmony_ci	     GAT_FSYS0_BUS_D_FSYS0_IPCLKPORT_PERICLK, 21, CLK_IGNORE_UNUSED, 0),
85962306a36Sopenharmony_ci	GATE(0, "fsys0_bus_p_fsys0_ipclkport_mainclk", "dout_fsys0_peribus_grp",
86062306a36Sopenharmony_ci	     GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
86162306a36Sopenharmony_ci	GATE(0, "fsys0_bus_p_fsys0_ipclkport_tcuclk", "mout_fsys0_eqos_rgmii_125_mux1",
86262306a36Sopenharmony_ci	     GAT_FSYS0_BUS_P_FSYS0_IPCLKPORT_TCUCLK, 21, CLK_IGNORE_UNUSED, 0),
86362306a36Sopenharmony_ci	GATE(0, "fsys0_cpe425_ipclkport_aclk", "mout_fsys0_clk_fsys0_slavebusclk",
86462306a36Sopenharmony_ci	     GAT_FSYS0_CPE425_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
86562306a36Sopenharmony_ci	GATE(FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I, "fsys0_eqos_top0_ipclkport_aclk_i",
86662306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp", GAT_FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I, 21,
86762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
86862306a36Sopenharmony_ci	GATE(FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I, "fsys0_eqos_top0_ipclkport_hclk_i",
86962306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp", GAT_FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I, 21,
87062306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
87162306a36Sopenharmony_ci	GATE(FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I, "fsys0_eqos_top0_ipclkport_rgmii_clk_i",
87262306a36Sopenharmony_ci	      "dout_fsys0_eqs_rgmii_clk_125", GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I, 21,
87362306a36Sopenharmony_ci	      CLK_IGNORE_UNUSED, 0),
87462306a36Sopenharmony_ci	GATE(0, "fsys0_eqos_top0_ipclkport_rii_clk_i", "dout_fsys0_eqos_rii_clk2o5",
87562306a36Sopenharmony_ci	     GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RII_CLK_I, 21, CLK_IGNORE_UNUSED, 0),
87662306a36Sopenharmony_ci	GATE(0, "fsys0_eqos_top0_ipclkport_rmii_clk_i", "dout_fsys0_eqos_rmiiclk_25",
87762306a36Sopenharmony_ci	     GAT_FSYS0_EQOS_TOP0_IPCLKPORT_RMII_CLK_I, 21, CLK_IGNORE_UNUSED, 0),
87862306a36Sopenharmony_ci	GATE(0, "fsys0_gpio_fsys0_ipclkport_pclk", "dout_fsys0_peribus_grp",
87962306a36Sopenharmony_ci	     GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
88062306a36Sopenharmony_ci	GATE(0, "fsys0_gpio_fsys0_ipclkport_oscclk", "fin_pll",
88162306a36Sopenharmony_ci	     GAT_FSYS0_GPIO_FSYS0_IPCLKPORT_OSCCLK, 21, CLK_IGNORE_UNUSED, 0),
88262306a36Sopenharmony_ci	GATE(0, "fsys0_ns_brdg_fsys0_ipclkport_clk__psoc_fsys0__clk_fsys0_d",
88362306a36Sopenharmony_ci	     "mout_fsys0_clk_fsys0_slavebusclk",
88462306a36Sopenharmony_ci	     GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D, 21,
88562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
88662306a36Sopenharmony_ci	GATE(0, "fsys0_ns_brdg_fsys0_ipclkport_clk__psoc_fsys0__clk_fsys0_d1",
88762306a36Sopenharmony_ci	     "mout_fsys0_eqos_rgmii_125_mux1",
88862306a36Sopenharmony_ci	     GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_D1, 21,
88962306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
89062306a36Sopenharmony_ci	GATE(0, "fsys0_ns_brdg_fsys0_ipclkport_clk__psoc_fsys0__clk_fsys0_p",
89162306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp",
89262306a36Sopenharmony_ci	     GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_P, 21,
89362306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
89462306a36Sopenharmony_ci	GATE(0, "fsys0_ns_brdg_fsys0_ipclkport_clk__psoc_fsys0__clk_fsys0_s",
89562306a36Sopenharmony_ci	     "mout_fsys0_clk_fsys0_slavebusclk",
89662306a36Sopenharmony_ci	     GAT_FSYS0_NS_BRDG_FSYS0_IPCLKPORT_CLK__PSOC_FSYS0__CLK_FSYS0_S, 21,
89762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
89862306a36Sopenharmony_ci	GATE(0, "fsys0_pcie_top_ipclkport_pcieg3_phy_x4_inst_0_i_apb_pclk",
89962306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp",
90062306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_I_APB_PCLK, 21,
90162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
90262306a36Sopenharmony_ci	GATE(0,
90362306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_pcieg3_phy_x4_inst_0_pll_refclk_from_syspll",
90462306a36Sopenharmony_ci	     "dout_fsys0_pcie_phy_oscclk",
90562306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_PCIEG3_PHY_X4_INST_0_PLL_REFCLK_FROM_SYSPLL,
90662306a36Sopenharmony_ci	     21, CLK_IGNORE_UNUSED, 0),
90762306a36Sopenharmony_ci	GATE(0, "fsys0_pcie_top_ipclkport_pipe_pal_inst_0_i_apb_pclk_0", "dout_fsys0_peribus_grp",
90862306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_APB_PCLK_0, 21, CLK_IGNORE_UNUSED, 0),
90962306a36Sopenharmony_ci	GATE(0, "fsys0_pcie_top_ipclkport_pipe_pal_inst_0_i_immortal_clk", "fin_pll",
91062306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_PIPE_PAL_INST_0_I_IMMORTAL_CLK, 21, CLK_IGNORE_UNUSED, 0),
91162306a36Sopenharmony_ci	GATE(PCIE_SUBCTRL_INST0_DBI_ACLK_SOC,
91262306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_fsd_pcie_sub_ctrl_inst_0_dbi_aclk_soc",
91362306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp",
91462306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_DBI_ACLK_SOC, 21,
91562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
91662306a36Sopenharmony_ci	GATE(0, "fsys0_pcie_top_ipclkport_fsd_pcie_sub_ctrl_inst_0_i_driver_apb_clk",
91762306a36Sopenharmony_ci	     "dout_fsys0_peribus_grp",
91862306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_I_DRIVER_APB_CLK, 21,
91962306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
92062306a36Sopenharmony_ci	GATE(PCIE_SUBCTRL_INST0_MSTR_ACLK_SOC,
92162306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_fsd_pcie_sub_ctrl_inst_0_mstr_aclk_soc",
92262306a36Sopenharmony_ci	     "mout_fsys0_clk_fsys0_slavebusclk",
92362306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_MSTR_ACLK_SOC, 21,
92462306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
92562306a36Sopenharmony_ci	GATE(PCIE_SUBCTRL_INST0_SLV_ACLK_SOC,
92662306a36Sopenharmony_ci	     "fsys0_pcie_top_ipclkport_fsd_pcie_sub_ctrl_inst_0_slv_aclk_soc",
92762306a36Sopenharmony_ci	     "mout_fsys0_clk_fsys0_slavebusclk",
92862306a36Sopenharmony_ci	     GAT_FSYS0_PCIE_TOP_IPCLKPORT_FSD_PCIE_SUB_CTRL_INST_0_SLV_ACLK_SOC, 21,
92962306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
93062306a36Sopenharmony_ci	GATE(0, "fsys0_smmu_fsys0_ipclkport_cclk", "mout_fsys0_eqos_rgmii_125_mux1",
93162306a36Sopenharmony_ci	     GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_CCLK, 21, CLK_IGNORE_UNUSED, 0),
93262306a36Sopenharmony_ci	GATE(0, "fsys0_smmu_fsys0_ipclkport_fsys0_bclk", "mout_fsys0_clk_fsys0_slavebusclk",
93362306a36Sopenharmony_ci	     GAT_FSYS0_SMMU_FSYS0_IPCLKPORT_FSYS0_BCLK, 21, CLK_IGNORE_UNUSED, 0),
93462306a36Sopenharmony_ci	GATE(0, "fsys0_sysreg_fsys0_ipclkport_pclk", "dout_fsys0_peribus_grp",
93562306a36Sopenharmony_ci	     GAT_FSYS0_SYSREG_FSYS0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
93662306a36Sopenharmony_ci	GATE(UFS0_TOP0_HCLK_BUS, "fsys0_ufs_top0_ipclkport_hclk_bus", "dout_fsys0_peribus_grp",
93762306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP0_IPCLKPORT_HCLK_BUS, 21, CLK_IGNORE_UNUSED, 0),
93862306a36Sopenharmony_ci	GATE(UFS0_TOP0_ACLK, "fsys0_ufs_top0_ipclkport_i_aclk", "dout_fsys0_peribus_grp",
93962306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
94062306a36Sopenharmony_ci	GATE(UFS0_TOP0_CLK_UNIPRO, "fsys0_ufs_top0_ipclkport_i_clk_unipro", "dout_fsys0_clk_unipro",
94162306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_CLK_UNIPRO, 21, CLK_IGNORE_UNUSED, 0),
94262306a36Sopenharmony_ci	GATE(UFS0_TOP0_FMP_CLK, "fsys0_ufs_top0_ipclkport_i_fmp_clk", "dout_fsys0_peribus_grp",
94362306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP0_IPCLKPORT_I_FMP_CLK, 21, CLK_IGNORE_UNUSED, 0),
94462306a36Sopenharmony_ci	GATE(UFS1_TOP1_HCLK_BUS, "fsys0_ufs_top1_ipclkport_hclk_bus", "dout_fsys0_peribus_grp",
94562306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP1_IPCLKPORT_HCLK_BUS, 21, CLK_IGNORE_UNUSED, 0),
94662306a36Sopenharmony_ci	GATE(UFS1_TOP1_ACLK, "fsys0_ufs_top1_ipclkport_i_aclk", "dout_fsys0_peribus_grp",
94762306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
94862306a36Sopenharmony_ci	GATE(UFS1_TOP1_CLK_UNIPRO, "fsys0_ufs_top1_ipclkport_i_clk_unipro", "dout_fsys0_clk_unipro",
94962306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_CLK_UNIPRO, 21, CLK_IGNORE_UNUSED, 0),
95062306a36Sopenharmony_ci	GATE(UFS1_TOP1_FMP_CLK, "fsys0_ufs_top1_ipclkport_i_fmp_clk", "dout_fsys0_peribus_grp",
95162306a36Sopenharmony_ci	     GAT_FSYS0_UFS_TOP1_IPCLKPORT_I_FMP_CLK, 21, CLK_IGNORE_UNUSED, 0),
95262306a36Sopenharmony_ci	GATE(0, "fsys0_rii_clk_divgate", "dout_fsys0_eqos_rmiiclk_25", GAT_FSYS0_RII_CLK_DIVGATE,
95362306a36Sopenharmony_ci	     21, CLK_IGNORE_UNUSED, 0),
95462306a36Sopenharmony_ci	GATE(FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I, "fsys0_eqos_top0_ipclkport_clk_ptp_ref_i",
95562306a36Sopenharmony_ci	     "fin_pll", GAT_FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I, 21, CLK_IGNORE_UNUSED, 0),
95662306a36Sopenharmony_ci};
95762306a36Sopenharmony_ci
95862306a36Sopenharmony_cistatic const struct samsung_cmu_info fsys0_cmu_info __initconst = {
95962306a36Sopenharmony_ci	.mux_clks		= fsys0_mux_clks,
96062306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(fsys0_mux_clks),
96162306a36Sopenharmony_ci	.div_clks		= fsys0_div_clks,
96262306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(fsys0_div_clks),
96362306a36Sopenharmony_ci	.gate_clks		= fsys0_gate_clks,
96462306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(fsys0_gate_clks),
96562306a36Sopenharmony_ci	.fixed_clks		= fsys0_fixed_clks,
96662306a36Sopenharmony_ci	.nr_fixed_clks		= ARRAY_SIZE(fsys0_fixed_clks),
96762306a36Sopenharmony_ci	.nr_clk_ids		= FSYS0_NR_CLK,
96862306a36Sopenharmony_ci	.clk_regs		= fsys0_clk_regs,
96962306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(fsys0_clk_regs),
97062306a36Sopenharmony_ci	.clk_name		= "dout_cmu_fsys0_shared1div4",
97162306a36Sopenharmony_ci};
97262306a36Sopenharmony_ci
97362306a36Sopenharmony_ci/* Register Offset definitions for CMU_FSYS1 (0x16810000) */
97462306a36Sopenharmony_ci#define PLL_CON0_ACLK_FSYS1_BUSP_MUX			0x100
97562306a36Sopenharmony_ci#define PLL_CON0_PCLKL_FSYS1_BUSP_MUX			0x180
97662306a36Sopenharmony_ci#define DIV_CLK_FSYS1_PHY0_OSCCLK			0x1800
97762306a36Sopenharmony_ci#define DIV_CLK_FSYS1_PHY1_OSCCLK			0x1804
97862306a36Sopenharmony_ci#define GAT_FSYS1_CMU_FSYS1_IPCLKPORT_PCLK	0x2000
97962306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_AUXCLK		0x2004
98062306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_SOC_REF_CLK	0x2008
98162306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK1_IPCLKPORT_AUXCLK		0x200c
98262306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_XTAL	0x202c
98362306a36Sopenharmony_ci#define GAT_FSYS1_PHY0_OSCCLLK				0x2034
98462306a36Sopenharmony_ci#define GAT_FSYS1_PHY1_OSCCLK				0x2038
98562306a36Sopenharmony_ci#define GAT_FSYS1_AXI2APB_FSYS1_IPCLKPORT_ACLK		0x203c
98662306a36Sopenharmony_ci#define GAT_FSYS1_BUS_D0_FSYS1_IPCLKPORT_MAINCLK	0x2040
98762306a36Sopenharmony_ci#define GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_M250CLK	0x2048
98862306a36Sopenharmony_ci#define GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_MAINCLK	0x204c
98962306a36Sopenharmony_ci#define GAT_FSYS1_CPE425_0_FSYS1_IPCLKPORT_ACLK		0x2054
99062306a36Sopenharmony_ci#define GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_D0	0x205c
99162306a36Sopenharmony_ci#define GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_S0	0x2064
99262306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_DBI_ACLK		0x206c
99362306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_APB_CLK	0x2070
99462306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_DRIVER_APB_CLK	0x2074
99562306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_MSTR_ACLK	0x2078
99662306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK0_IPCLKPORT_SLV_ACLK		0x207c
99762306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK1_IPCLKPORT_DBI_ACLK		0x2080
99862306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK1_IPCLKPORT_I_DRIVER_APB_CLK	0x2084
99962306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK1_IPCLKPORT_MSTR_ACLK	0x2088
100062306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_LINK1_IPCLKPORT_SLV_ACLK		0x208c
100162306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_APB_CLK		0x20a4
100262306a36Sopenharmony_ci#define GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_SOC_PLL	0x20a8
100362306a36Sopenharmony_ci#define GAT_FSYS1_SYSREG_FSYS1_IPCLKPORT_PCLK		0x20b4
100462306a36Sopenharmony_ci#define GAT_FSYS1_TBU0_FSYS1_IPCLKPORT_ACLK		0x20b8
100562306a36Sopenharmony_ci
100662306a36Sopenharmony_cistatic const unsigned long fsys1_clk_regs[] __initconst = {
100762306a36Sopenharmony_ci	PLL_CON0_ACLK_FSYS1_BUSP_MUX,
100862306a36Sopenharmony_ci	PLL_CON0_PCLKL_FSYS1_BUSP_MUX,
100962306a36Sopenharmony_ci	DIV_CLK_FSYS1_PHY0_OSCCLK,
101062306a36Sopenharmony_ci	DIV_CLK_FSYS1_PHY1_OSCCLK,
101162306a36Sopenharmony_ci	GAT_FSYS1_CMU_FSYS1_IPCLKPORT_PCLK,
101262306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_AUXCLK,
101362306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_SOC_REF_CLK,
101462306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK1_IPCLKPORT_AUXCLK,
101562306a36Sopenharmony_ci	GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_XTAL,
101662306a36Sopenharmony_ci	GAT_FSYS1_PHY0_OSCCLLK,
101762306a36Sopenharmony_ci	GAT_FSYS1_PHY1_OSCCLK,
101862306a36Sopenharmony_ci	GAT_FSYS1_AXI2APB_FSYS1_IPCLKPORT_ACLK,
101962306a36Sopenharmony_ci	GAT_FSYS1_BUS_D0_FSYS1_IPCLKPORT_MAINCLK,
102062306a36Sopenharmony_ci	GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_M250CLK,
102162306a36Sopenharmony_ci	GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_MAINCLK,
102262306a36Sopenharmony_ci	GAT_FSYS1_CPE425_0_FSYS1_IPCLKPORT_ACLK,
102362306a36Sopenharmony_ci	GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_D0,
102462306a36Sopenharmony_ci	GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_S0,
102562306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_DBI_ACLK,
102662306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_APB_CLK,
102762306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_DRIVER_APB_CLK,
102862306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_MSTR_ACLK,
102962306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK0_IPCLKPORT_SLV_ACLK,
103062306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK1_IPCLKPORT_DBI_ACLK,
103162306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK1_IPCLKPORT_I_DRIVER_APB_CLK,
103262306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK1_IPCLKPORT_MSTR_ACLK,
103362306a36Sopenharmony_ci	GAT_FSYS1_PCIE_LINK1_IPCLKPORT_SLV_ACLK,
103462306a36Sopenharmony_ci	GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_APB_CLK,
103562306a36Sopenharmony_ci	GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_SOC_PLL,
103662306a36Sopenharmony_ci	GAT_FSYS1_SYSREG_FSYS1_IPCLKPORT_PCLK,
103762306a36Sopenharmony_ci	GAT_FSYS1_TBU0_FSYS1_IPCLKPORT_ACLK,
103862306a36Sopenharmony_ci};
103962306a36Sopenharmony_ci
104062306a36Sopenharmony_cistatic const struct samsung_fixed_rate_clock fsys1_fixed_clks[] __initconst = {
104162306a36Sopenharmony_ci	FRATE(0, "clk_fsys1_phy0_ref", NULL, 0, 100000000),
104262306a36Sopenharmony_ci	FRATE(0, "clk_fsys1_phy1_ref", NULL, 0, 100000000),
104362306a36Sopenharmony_ci};
104462306a36Sopenharmony_ci
104562306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_FSYS1 */
104662306a36Sopenharmony_ciPNAME(mout_fsys1_pclkl_fsys1_busp_mux_p) = { "fin_pll", "dout_cmu_fsys1_shared0div8" };
104762306a36Sopenharmony_ciPNAME(mout_fsys1_aclk_fsys1_busp_mux_p) = { "fin_pll", "dout_cmu_fsys1_shared0div4" };
104862306a36Sopenharmony_ci
104962306a36Sopenharmony_cistatic const struct samsung_mux_clock fsys1_mux_clks[] __initconst = {
105062306a36Sopenharmony_ci	MUX(0, "mout_fsys1_pclkl_fsys1_busp_mux", mout_fsys1_pclkl_fsys1_busp_mux_p,
105162306a36Sopenharmony_ci	    PLL_CON0_PCLKL_FSYS1_BUSP_MUX, 4, 1),
105262306a36Sopenharmony_ci	MUX(0, "mout_fsys1_aclk_fsys1_busp_mux", mout_fsys1_aclk_fsys1_busp_mux_p,
105362306a36Sopenharmony_ci	    PLL_CON0_ACLK_FSYS1_BUSP_MUX, 4, 1),
105462306a36Sopenharmony_ci};
105562306a36Sopenharmony_ci
105662306a36Sopenharmony_cistatic const struct samsung_div_clock fsys1_div_clks[] __initconst = {
105762306a36Sopenharmony_ci	DIV(0, "dout_fsys1_clk_fsys1_phy0_oscclk", "fsys1_phy0_osccllk",
105862306a36Sopenharmony_ci	    DIV_CLK_FSYS1_PHY0_OSCCLK, 0, 4),
105962306a36Sopenharmony_ci	DIV(0, "dout_fsys1_clk_fsys1_phy1_oscclk", "fsys1_phy1_oscclk",
106062306a36Sopenharmony_ci	    DIV_CLK_FSYS1_PHY1_OSCCLK, 0, 4),
106162306a36Sopenharmony_ci};
106262306a36Sopenharmony_ci
106362306a36Sopenharmony_cistatic const struct samsung_gate_clock fsys1_gate_clks[] __initconst = {
106462306a36Sopenharmony_ci	GATE(0, "fsys1_cmu_fsys1_ipclkport_pclk", "mout_fsys1_pclkl_fsys1_busp_mux",
106562306a36Sopenharmony_ci	     GAT_FSYS1_CMU_FSYS1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
106662306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_phy0_ipclkport_i_ref_xtal", "clk_fsys1_phy0_ref",
106762306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_XTAL, 21, CLK_IGNORE_UNUSED, 0),
106862306a36Sopenharmony_ci	GATE(0, "fsys1_phy0_osccllk", "mout_fsys1_aclk_fsys1_busp_mux",
106962306a36Sopenharmony_ci	     GAT_FSYS1_PHY0_OSCCLLK, 21, CLK_IGNORE_UNUSED, 0),
107062306a36Sopenharmony_ci	GATE(0, "fsys1_phy1_oscclk", "mout_fsys1_aclk_fsys1_busp_mux",
107162306a36Sopenharmony_ci	     GAT_FSYS1_PHY1_OSCCLK, 21, CLK_IGNORE_UNUSED, 0),
107262306a36Sopenharmony_ci	GATE(0, "fsys1_axi2apb_fsys1_ipclkport_aclk", "mout_fsys1_pclkl_fsys1_busp_mux",
107362306a36Sopenharmony_ci	     GAT_FSYS1_AXI2APB_FSYS1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
107462306a36Sopenharmony_ci	GATE(0, "fsys1_bus_d0_fsys1_ipclkport_mainclk", "mout_fsys1_aclk_fsys1_busp_mux",
107562306a36Sopenharmony_ci	     GAT_FSYS1_BUS_D0_FSYS1_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
107662306a36Sopenharmony_ci	GATE(0, "fsys1_bus_s0_fsys1_ipclkport_m250clk", "mout_fsys1_pclkl_fsys1_busp_mux",
107762306a36Sopenharmony_ci	     GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_M250CLK, 21, CLK_IGNORE_UNUSED, 0),
107862306a36Sopenharmony_ci	GATE(0, "fsys1_bus_s0_fsys1_ipclkport_mainclk", "mout_fsys1_aclk_fsys1_busp_mux",
107962306a36Sopenharmony_ci	     GAT_FSYS1_BUS_S0_FSYS1_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
108062306a36Sopenharmony_ci	GATE(0, "fsys1_cpe425_0_fsys1_ipclkport_aclk", "mout_fsys1_aclk_fsys1_busp_mux",
108162306a36Sopenharmony_ci	     GAT_FSYS1_CPE425_0_FSYS1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
108262306a36Sopenharmony_ci	GATE(0, "fsys1_ns_brdg_fsys1_ipclkport_clk__psoc_fsys1__clk_fsys1_d0",
108362306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux",
108462306a36Sopenharmony_ci	     GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_D0, 21,
108562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
108662306a36Sopenharmony_ci	GATE(0, "fsys1_ns_brdg_fsys1_ipclkport_clk__psoc_fsys1__clk_fsys1_s0",
108762306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux",
108862306a36Sopenharmony_ci	     GAT_FSYS1_NS_BRDG_FSYS1_IPCLKPORT_CLK__PSOC_FSYS1__CLK_FSYS1_S0, 21,
108962306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
109062306a36Sopenharmony_ci	GATE(PCIE_LINK0_IPCLKPORT_DBI_ACLK, "fsys1_pcie_link0_ipclkport_dbi_aclk",
109162306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK0_IPCLKPORT_DBI_ACLK, 21,
109262306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
109362306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_link0_ipclkport_i_apb_clk", "mout_fsys1_pclkl_fsys1_busp_mux",
109462306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_APB_CLK, 21, CLK_IGNORE_UNUSED, 0),
109562306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_link0_ipclkport_i_soc_ref_clk", "fin_pll",
109662306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_SOC_REF_CLK, 21, CLK_IGNORE_UNUSED, 0),
109762306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_link0_ipclkport_i_driver_apb_clk", "mout_fsys1_pclkl_fsys1_busp_mux",
109862306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK0_IPCLKPORT_I_DRIVER_APB_CLK, 21, CLK_IGNORE_UNUSED, 0),
109962306a36Sopenharmony_ci	GATE(PCIE_LINK0_IPCLKPORT_MSTR_ACLK, "fsys1_pcie_link0_ipclkport_mstr_aclk",
110062306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK0_IPCLKPORT_MSTR_ACLK, 21,
110162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
110262306a36Sopenharmony_ci	GATE(PCIE_LINK0_IPCLKPORT_SLV_ACLK, "fsys1_pcie_link0_ipclkport_slv_aclk",
110362306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK0_IPCLKPORT_SLV_ACLK, 21,
110462306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
110562306a36Sopenharmony_ci	GATE(PCIE_LINK1_IPCLKPORT_DBI_ACLK, "fsys1_pcie_link1_ipclkport_dbi_aclk",
110662306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK1_IPCLKPORT_DBI_ACLK, 21,
110762306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
110862306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_link1_ipclkport_i_driver_apb_clk", "mout_fsys1_pclkl_fsys1_busp_mux",
110962306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK1_IPCLKPORT_I_DRIVER_APB_CLK, 21, CLK_IGNORE_UNUSED, 0),
111062306a36Sopenharmony_ci	GATE(PCIE_LINK1_IPCLKPORT_MSTR_ACLK, "fsys1_pcie_link1_ipclkport_mstr_aclk",
111162306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK1_IPCLKPORT_MSTR_ACLK, 21,
111262306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
111362306a36Sopenharmony_ci	GATE(PCIE_LINK1_IPCLKPORT_SLV_ACLK, "fsys1_pcie_link1_ipclkport_slv_aclk",
111462306a36Sopenharmony_ci	     "mout_fsys1_aclk_fsys1_busp_mux", GAT_FSYS1_PCIE_LINK1_IPCLKPORT_SLV_ACLK, 21,
111562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
111662306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_phy0_ipclkport_i_apb_clk", "mout_fsys1_pclkl_fsys1_busp_mux",
111762306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_APB_CLK, 21, CLK_IGNORE_UNUSED, 0),
111862306a36Sopenharmony_ci	GATE(PCIE_LINK0_IPCLKPORT_AUX_ACLK, "fsys1_pcie_link0_ipclkport_auxclk", "fin_pll",
111962306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK0_IPCLKPORT_AUXCLK, 21, CLK_IGNORE_UNUSED, 0),
112062306a36Sopenharmony_ci	GATE(PCIE_LINK1_IPCLKPORT_AUX_ACLK, "fsys1_pcie_link1_ipclkport_auxclk", "fin_pll",
112162306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_LINK1_IPCLKPORT_AUXCLK, 21, CLK_IGNORE_UNUSED, 0),
112262306a36Sopenharmony_ci	GATE(0, "fsys1_pcie_phy0_ipclkport_i_ref_soc_pll", "dout_fsys1_clk_fsys1_phy0_oscclk",
112362306a36Sopenharmony_ci	     GAT_FSYS1_PCIE_PHY0_IPCLKPORT_I_REF_SOC_PLL, 21, CLK_IGNORE_UNUSED, 0),
112462306a36Sopenharmony_ci	GATE(0, "fsys1_sysreg_fsys1_ipclkport_pclk", "mout_fsys1_pclkl_fsys1_busp_mux",
112562306a36Sopenharmony_ci	     GAT_FSYS1_SYSREG_FSYS1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
112662306a36Sopenharmony_ci	GATE(0, "fsys1_tbu0_fsys1_ipclkport_aclk", "mout_fsys1_aclk_fsys1_busp_mux",
112762306a36Sopenharmony_ci	     GAT_FSYS1_TBU0_FSYS1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
112862306a36Sopenharmony_ci};
112962306a36Sopenharmony_ci
113062306a36Sopenharmony_cistatic const struct samsung_cmu_info fsys1_cmu_info __initconst = {
113162306a36Sopenharmony_ci	.mux_clks		= fsys1_mux_clks,
113262306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(fsys1_mux_clks),
113362306a36Sopenharmony_ci	.div_clks		= fsys1_div_clks,
113462306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(fsys1_div_clks),
113562306a36Sopenharmony_ci	.gate_clks		= fsys1_gate_clks,
113662306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(fsys1_gate_clks),
113762306a36Sopenharmony_ci	.fixed_clks		= fsys1_fixed_clks,
113862306a36Sopenharmony_ci	.nr_fixed_clks		= ARRAY_SIZE(fsys1_fixed_clks),
113962306a36Sopenharmony_ci	.nr_clk_ids		= FSYS1_NR_CLK,
114062306a36Sopenharmony_ci	.clk_regs		= fsys1_clk_regs,
114162306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(fsys1_clk_regs),
114262306a36Sopenharmony_ci	.clk_name		= "dout_cmu_fsys1_shared0div4",
114362306a36Sopenharmony_ci};
114462306a36Sopenharmony_ci
114562306a36Sopenharmony_ci/* Register Offset definitions for CMU_IMEM (0x10010000) */
114662306a36Sopenharmony_ci#define PLL_CON0_CLK_IMEM_ACLK				0x100
114762306a36Sopenharmony_ci#define PLL_CON0_CLK_IMEM_INTMEMCLK			0x120
114862306a36Sopenharmony_ci#define PLL_CON0_CLK_IMEM_TCUCLK			0x140
114962306a36Sopenharmony_ci#define DIV_OSCCLK_IMEM_TMUTSCLK			0x1800
115062306a36Sopenharmony_ci#define GAT_IMEM_IMEM_CMU_IMEM_IPCLKPORT_PCLK		0x2000
115162306a36Sopenharmony_ci#define GAT_IMEM_MCT_IPCLKPORT_OSCCLK__ALO		0x2004
115262306a36Sopenharmony_ci#define GAT_IMEM_OTP_CON_TOP_IPCLKPORT_I_OSCCLK		0x2008
115362306a36Sopenharmony_ci#define GAT_IMEM_RSTNSYNC_OSCCLK_IPCLKPORT_CLK		0x200c
115462306a36Sopenharmony_ci#define GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK		0x2010
115562306a36Sopenharmony_ci#define GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK_TS		0x2014
115662306a36Sopenharmony_ci#define GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK		0x2018
115762306a36Sopenharmony_ci#define GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK_TS		0x201c
115862306a36Sopenharmony_ci#define GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK		0x2020
115962306a36Sopenharmony_ci#define GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK_TS		0x2024
116062306a36Sopenharmony_ci#define GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK			0x2028
116162306a36Sopenharmony_ci#define GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK_TS		0x202c
116262306a36Sopenharmony_ci#define GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK		0x2030
116362306a36Sopenharmony_ci#define GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK_TS		0x2034
116462306a36Sopenharmony_ci#define GAT_IMEM_WDT0_IPCLKPORT_CLK			0x2038
116562306a36Sopenharmony_ci#define GAT_IMEM_WDT1_IPCLKPORT_CLK			0x203c
116662306a36Sopenharmony_ci#define GAT_IMEM_WDT2_IPCLKPORT_CLK			0x2040
116762306a36Sopenharmony_ci#define GAT_IMEM_ADM_AXI4ST_I0_IMEM_IPCLKPORT_ACLKM	0x2044
116862306a36Sopenharmony_ci#define GAT_IMEM_ADM_AXI4ST_I1_IMEM_IPCLKPORT_ACLKM	0x2048
116962306a36Sopenharmony_ci#define GAT_IMEM_ADM_AXI4ST_I2_IMEM_IPCLKPORT_ACLKM	0x204c
117062306a36Sopenharmony_ci#define GAT_IMEM_ADS_AXI4ST_I0_IMEM_IPCLKPORT_ACLKS	0x2050
117162306a36Sopenharmony_ci#define GAT_IMEM_ADS_AXI4ST_I1_IMEM_IPCLKPORT_ACLKS	0x2054
117262306a36Sopenharmony_ci#define GAT_IMEM_ADS_AXI4ST_I2_IMEM_IPCLKPORT_ACLKS	0x2058
117362306a36Sopenharmony_ci#define GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKM		0x205c
117462306a36Sopenharmony_ci#define GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKS		0x2060
117562306a36Sopenharmony_ci#define GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKM		0x2064
117662306a36Sopenharmony_ci#define GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKS		0x2068
117762306a36Sopenharmony_ci#define GAT_IMEM_AXI2APB_IMEMP0_IPCLKPORT_ACLK		0x206c
117862306a36Sopenharmony_ci#define GAT_IMEM_AXI2APB_IMEMP1_IPCLKPORT_ACLK		0x2070
117962306a36Sopenharmony_ci#define GAT_IMEM_BUS_D_IMEM_IPCLKPORT_MAINCLK		0x2074
118062306a36Sopenharmony_ci#define GAT_IMEM_BUS_P_IMEM_IPCLKPORT_MAINCLK		0x2078
118162306a36Sopenharmony_ci#define GAT_IMEM_BUS_P_IMEM_IPCLKPORT_PERICLK		0x207c
118262306a36Sopenharmony_ci#define GAT_IMEM_BUS_P_IMEM_IPCLKPORT_TCUCLK		0x2080
118362306a36Sopenharmony_ci#define GAT_IMEM_DMA0_IPCLKPORT_ACLK			0x2084
118462306a36Sopenharmony_ci#define GAT_IMEM_DMA1_IPCLKPORT_ACLK			0x2088
118562306a36Sopenharmony_ci#define GAT_IMEM_GIC500_INPUT_SYNC_IPCLKPORT_CLK	0x208c
118662306a36Sopenharmony_ci#define GAT_IMEM_GIC_IPCLKPORT_CLK			0x2090
118762306a36Sopenharmony_ci#define GAT_IMEM_INTMEM_IPCLKPORT_ACLK			0x2094
118862306a36Sopenharmony_ci#define GAT_IMEM_MAILBOX_SCS_CA72_IPCLKPORT_PCLK	0x2098
118962306a36Sopenharmony_ci#define GAT_IMEM_MAILBOX_SMS_CA72_IPCLKPORT_PCLK	0x209c
119062306a36Sopenharmony_ci#define GAT_IMEM_MCT_IPCLKPORT_PCLK			0x20a0
119162306a36Sopenharmony_ci#define GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_D	0x20a4
119262306a36Sopenharmony_ci#define GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_TCU	0x20a8
119362306a36Sopenharmony_ci#define GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSOC_IMEM__CLK_IMEM_P	0x20ac
119462306a36Sopenharmony_ci#define GAT_IMEM_OTP_CON_TOP_IPCLKPORT_PCLK		0x20b0
119562306a36Sopenharmony_ci#define GAT_IMEM_RSTNSYNC_ACLK_IPCLKPORT_CLK		0x20b4
119662306a36Sopenharmony_ci#define GAT_IMEM_RSTNSYNC_INTMEMCLK_IPCLKPORT_CLK	0x20b8
119762306a36Sopenharmony_ci#define GAT_IMEM_RSTNSYNC_TCUCLK_IPCLKPORT_CLK		0x20bc
119862306a36Sopenharmony_ci#define GAT_IMEM_SFRIF_TMU0_IMEM_IPCLKPORT_PCLK		0x20c0
119962306a36Sopenharmony_ci#define GAT_IMEM_SFRIF_TMU1_IMEM_IPCLKPORT_PCLK		0x20c4
120062306a36Sopenharmony_ci#define GAT_IMEM_SYSREG_IMEM_IPCLKPORT_PCLK		0x20c8
120162306a36Sopenharmony_ci#define GAT_IMEM_TBU_IMEM_IPCLKPORT_ACLK		0x20cc
120262306a36Sopenharmony_ci#define GAT_IMEM_TCU_IPCLKPORT_ACLK			0x20d0
120362306a36Sopenharmony_ci#define GAT_IMEM_WDT0_IPCLKPORT_PCLK			0x20d4
120462306a36Sopenharmony_ci#define GAT_IMEM_WDT1_IPCLKPORT_PCLK			0x20d8
120562306a36Sopenharmony_ci#define GAT_IMEM_WDT2_IPCLKPORT_PCLK			0x20dc
120662306a36Sopenharmony_ci
120762306a36Sopenharmony_cistatic const unsigned long imem_clk_regs[] __initconst = {
120862306a36Sopenharmony_ci	PLL_CON0_CLK_IMEM_ACLK,
120962306a36Sopenharmony_ci	PLL_CON0_CLK_IMEM_INTMEMCLK,
121062306a36Sopenharmony_ci	PLL_CON0_CLK_IMEM_TCUCLK,
121162306a36Sopenharmony_ci	DIV_OSCCLK_IMEM_TMUTSCLK,
121262306a36Sopenharmony_ci	GAT_IMEM_IMEM_CMU_IMEM_IPCLKPORT_PCLK,
121362306a36Sopenharmony_ci	GAT_IMEM_MCT_IPCLKPORT_OSCCLK__ALO,
121462306a36Sopenharmony_ci	GAT_IMEM_OTP_CON_TOP_IPCLKPORT_I_OSCCLK,
121562306a36Sopenharmony_ci	GAT_IMEM_RSTNSYNC_OSCCLK_IPCLKPORT_CLK,
121662306a36Sopenharmony_ci	GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK,
121762306a36Sopenharmony_ci	GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK_TS,
121862306a36Sopenharmony_ci	GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK,
121962306a36Sopenharmony_ci	GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK_TS,
122062306a36Sopenharmony_ci	GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK,
122162306a36Sopenharmony_ci	GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK_TS,
122262306a36Sopenharmony_ci	GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK,
122362306a36Sopenharmony_ci	GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK_TS,
122462306a36Sopenharmony_ci	GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK,
122562306a36Sopenharmony_ci	GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK_TS,
122662306a36Sopenharmony_ci	GAT_IMEM_WDT0_IPCLKPORT_CLK,
122762306a36Sopenharmony_ci	GAT_IMEM_WDT1_IPCLKPORT_CLK,
122862306a36Sopenharmony_ci	GAT_IMEM_WDT2_IPCLKPORT_CLK,
122962306a36Sopenharmony_ci	GAT_IMEM_ADM_AXI4ST_I0_IMEM_IPCLKPORT_ACLKM,
123062306a36Sopenharmony_ci	GAT_IMEM_ADM_AXI4ST_I1_IMEM_IPCLKPORT_ACLKM,
123162306a36Sopenharmony_ci	GAT_IMEM_ADM_AXI4ST_I2_IMEM_IPCLKPORT_ACLKM,
123262306a36Sopenharmony_ci	GAT_IMEM_ADS_AXI4ST_I0_IMEM_IPCLKPORT_ACLKS,
123362306a36Sopenharmony_ci	GAT_IMEM_ADS_AXI4ST_I1_IMEM_IPCLKPORT_ACLKS,
123462306a36Sopenharmony_ci	GAT_IMEM_ADS_AXI4ST_I2_IMEM_IPCLKPORT_ACLKS,
123562306a36Sopenharmony_ci	GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKM,
123662306a36Sopenharmony_ci	GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKS,
123762306a36Sopenharmony_ci	GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKM,
123862306a36Sopenharmony_ci	GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKS,
123962306a36Sopenharmony_ci	GAT_IMEM_AXI2APB_IMEMP0_IPCLKPORT_ACLK,
124062306a36Sopenharmony_ci	GAT_IMEM_AXI2APB_IMEMP1_IPCLKPORT_ACLK,
124162306a36Sopenharmony_ci	GAT_IMEM_BUS_D_IMEM_IPCLKPORT_MAINCLK,
124262306a36Sopenharmony_ci	GAT_IMEM_BUS_P_IMEM_IPCLKPORT_MAINCLK,
124362306a36Sopenharmony_ci	GAT_IMEM_BUS_P_IMEM_IPCLKPORT_PERICLK,
124462306a36Sopenharmony_ci	GAT_IMEM_BUS_P_IMEM_IPCLKPORT_TCUCLK,
124562306a36Sopenharmony_ci	GAT_IMEM_DMA0_IPCLKPORT_ACLK,
124662306a36Sopenharmony_ci	GAT_IMEM_DMA1_IPCLKPORT_ACLK,
124762306a36Sopenharmony_ci	GAT_IMEM_GIC500_INPUT_SYNC_IPCLKPORT_CLK,
124862306a36Sopenharmony_ci	GAT_IMEM_GIC_IPCLKPORT_CLK,
124962306a36Sopenharmony_ci	GAT_IMEM_INTMEM_IPCLKPORT_ACLK,
125062306a36Sopenharmony_ci	GAT_IMEM_MAILBOX_SCS_CA72_IPCLKPORT_PCLK,
125162306a36Sopenharmony_ci	GAT_IMEM_MAILBOX_SMS_CA72_IPCLKPORT_PCLK,
125262306a36Sopenharmony_ci	GAT_IMEM_MCT_IPCLKPORT_PCLK,
125362306a36Sopenharmony_ci	GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_D,
125462306a36Sopenharmony_ci	GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_TCU,
125562306a36Sopenharmony_ci	GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSOC_IMEM__CLK_IMEM_P,
125662306a36Sopenharmony_ci	GAT_IMEM_OTP_CON_TOP_IPCLKPORT_PCLK,
125762306a36Sopenharmony_ci	GAT_IMEM_RSTNSYNC_ACLK_IPCLKPORT_CLK,
125862306a36Sopenharmony_ci	GAT_IMEM_RSTNSYNC_INTMEMCLK_IPCLKPORT_CLK,
125962306a36Sopenharmony_ci	GAT_IMEM_RSTNSYNC_TCUCLK_IPCLKPORT_CLK,
126062306a36Sopenharmony_ci	GAT_IMEM_SFRIF_TMU0_IMEM_IPCLKPORT_PCLK,
126162306a36Sopenharmony_ci	GAT_IMEM_SFRIF_TMU1_IMEM_IPCLKPORT_PCLK,
126262306a36Sopenharmony_ci	GAT_IMEM_SYSREG_IMEM_IPCLKPORT_PCLK,
126362306a36Sopenharmony_ci	GAT_IMEM_TBU_IMEM_IPCLKPORT_ACLK,
126462306a36Sopenharmony_ci	GAT_IMEM_TCU_IPCLKPORT_ACLK,
126562306a36Sopenharmony_ci	GAT_IMEM_WDT0_IPCLKPORT_PCLK,
126662306a36Sopenharmony_ci	GAT_IMEM_WDT1_IPCLKPORT_PCLK,
126762306a36Sopenharmony_ci	GAT_IMEM_WDT2_IPCLKPORT_PCLK,
126862306a36Sopenharmony_ci};
126962306a36Sopenharmony_ci
127062306a36Sopenharmony_ciPNAME(mout_imem_clk_imem_tcuclk_p) = { "fin_pll", "dout_cmu_imem_tcuclk" };
127162306a36Sopenharmony_ciPNAME(mout_imem_clk_imem_aclk_p) = { "fin_pll", "dout_cmu_imem_aclk" };
127262306a36Sopenharmony_ciPNAME(mout_imem_clk_imem_intmemclk_p) = { "fin_pll", "dout_cmu_imem_dmaclk" };
127362306a36Sopenharmony_ci
127462306a36Sopenharmony_cistatic const struct samsung_mux_clock imem_mux_clks[] __initconst = {
127562306a36Sopenharmony_ci	MUX(0, "mout_imem_clk_imem_tcuclk", mout_imem_clk_imem_tcuclk_p,
127662306a36Sopenharmony_ci	    PLL_CON0_CLK_IMEM_TCUCLK, 4, 1),
127762306a36Sopenharmony_ci	MUX(0, "mout_imem_clk_imem_aclk", mout_imem_clk_imem_aclk_p, PLL_CON0_CLK_IMEM_ACLK, 4, 1),
127862306a36Sopenharmony_ci	MUX(0, "mout_imem_clk_imem_intmemclk", mout_imem_clk_imem_intmemclk_p,
127962306a36Sopenharmony_ci	    PLL_CON0_CLK_IMEM_INTMEMCLK, 4, 1),
128062306a36Sopenharmony_ci};
128162306a36Sopenharmony_ci
128262306a36Sopenharmony_cistatic const struct samsung_div_clock imem_div_clks[] __initconst = {
128362306a36Sopenharmony_ci	DIV(0, "dout_imem_oscclk_imem_tmutsclk", "fin_pll", DIV_OSCCLK_IMEM_TMUTSCLK, 0, 4),
128462306a36Sopenharmony_ci};
128562306a36Sopenharmony_ci
128662306a36Sopenharmony_cistatic const struct samsung_gate_clock imem_gate_clks[] __initconst = {
128762306a36Sopenharmony_ci	GATE(0, "imem_imem_cmu_imem_ipclkport_pclk", "mout_imem_clk_imem_aclk",
128862306a36Sopenharmony_ci	     GAT_IMEM_IMEM_CMU_IMEM_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
128962306a36Sopenharmony_ci	GATE(0, "imem_otp_con_top_ipclkport_i_oscclk", "fin_pll",
129062306a36Sopenharmony_ci	     GAT_IMEM_OTP_CON_TOP_IPCLKPORT_I_OSCCLK, 21, CLK_IGNORE_UNUSED, 0),
129162306a36Sopenharmony_ci	GATE(0, "imem_tmu_top_ipclkport_i_clk", "fin_pll",
129262306a36Sopenharmony_ci	     GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK, 21, CLK_IGNORE_UNUSED, 0),
129362306a36Sopenharmony_ci	GATE(0, "imem_tmu_gt_ipclkport_i_clk", "fin_pll",
129462306a36Sopenharmony_ci	     GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK, 21, CLK_IGNORE_UNUSED, 0),
129562306a36Sopenharmony_ci	GATE(0, "imem_tmu_cpu0_ipclkport_i_clk", "fin_pll",
129662306a36Sopenharmony_ci	     GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK, 21, CLK_IGNORE_UNUSED, 0),
129762306a36Sopenharmony_ci	GATE(0, "imem_tmu_gpu_ipclkport_i_clk", "fin_pll",
129862306a36Sopenharmony_ci	     GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK, 21, CLK_IGNORE_UNUSED, 0),
129962306a36Sopenharmony_ci	GATE(0, "imem_mct_ipclkport_oscclk__alo", "fin_pll",
130062306a36Sopenharmony_ci	     GAT_IMEM_MCT_IPCLKPORT_OSCCLK__ALO, 21, CLK_IGNORE_UNUSED, 0),
130162306a36Sopenharmony_ci	GATE(0, "imem_wdt0_ipclkport_clk", "fin_pll",
130262306a36Sopenharmony_ci	     GAT_IMEM_WDT0_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
130362306a36Sopenharmony_ci	GATE(0, "imem_wdt1_ipclkport_clk", "fin_pll",
130462306a36Sopenharmony_ci	     GAT_IMEM_WDT1_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
130562306a36Sopenharmony_ci	GATE(0, "imem_wdt2_ipclkport_clk", "fin_pll",
130662306a36Sopenharmony_ci	     GAT_IMEM_WDT2_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
130762306a36Sopenharmony_ci	GATE(IMEM_TMU_CPU0_IPCLKPORT_I_CLK_TS, "imem_tmu_cpu0_ipclkport_i_clk_ts",
130862306a36Sopenharmony_ci	     "dout_imem_oscclk_imem_tmutsclk",
130962306a36Sopenharmony_ci	     GAT_IMEM_TMU_CPU0_IPCLKPORT_I_CLK_TS, 21, CLK_IGNORE_UNUSED, 0),
131062306a36Sopenharmony_ci	GATE(IMEM_TMU_CPU2_IPCLKPORT_I_CLK_TS, "imem_tmu_cpu2_ipclkport_i_clk_ts",
131162306a36Sopenharmony_ci	     "dout_imem_oscclk_imem_tmutsclk",
131262306a36Sopenharmony_ci	     GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK_TS, 21, CLK_IGNORE_UNUSED, 0),
131362306a36Sopenharmony_ci	GATE(IMEM_TMU_GPU_IPCLKPORT_I_CLK_TS, "imem_tmu_gpu_ipclkport_i_clk_ts",
131462306a36Sopenharmony_ci	     "dout_imem_oscclk_imem_tmutsclk",
131562306a36Sopenharmony_ci	     GAT_IMEM_TMU_GPU_IPCLKPORT_I_CLK_TS, 21, CLK_IGNORE_UNUSED, 0),
131662306a36Sopenharmony_ci	GATE(IMEM_TMU_GT_IPCLKPORT_I_CLK_TS, "imem_tmu_gt_ipclkport_i_clk_ts",
131762306a36Sopenharmony_ci	     "dout_imem_oscclk_imem_tmutsclk",
131862306a36Sopenharmony_ci	     GAT_IMEM_TMU_GT_IPCLKPORT_I_CLK_TS, 21, CLK_IGNORE_UNUSED, 0),
131962306a36Sopenharmony_ci	GATE(IMEM_TMU_TOP_IPCLKPORT_I_CLK_TS, "imem_tmu_top_ipclkport_i_clk_ts",
132062306a36Sopenharmony_ci	     "dout_imem_oscclk_imem_tmutsclk",
132162306a36Sopenharmony_ci	     GAT_IMEM_TMU_TOP_IPCLKPORT_I_CLK_TS, 21, CLK_IGNORE_UNUSED, 0),
132262306a36Sopenharmony_ci	GATE(0, "imem_adm_axi4st_i0_imem_ipclkport_aclkm", "mout_imem_clk_imem_aclk",
132362306a36Sopenharmony_ci	     GAT_IMEM_ADM_AXI4ST_I0_IMEM_IPCLKPORT_ACLKM, 21, CLK_IGNORE_UNUSED, 0),
132462306a36Sopenharmony_ci	GATE(0, "imem_adm_axi4st_i1_imem_ipclkport_aclkm", "mout_imem_clk_imem_aclk",
132562306a36Sopenharmony_ci	     GAT_IMEM_ADM_AXI4ST_I1_IMEM_IPCLKPORT_ACLKM, 21, CLK_IGNORE_UNUSED, 0),
132662306a36Sopenharmony_ci	GATE(0, "imem_adm_axi4st_i2_imem_ipclkport_aclkm", "mout_imem_clk_imem_aclk",
132762306a36Sopenharmony_ci	     GAT_IMEM_ADM_AXI4ST_I2_IMEM_IPCLKPORT_ACLKM, 21, CLK_IGNORE_UNUSED, 0),
132862306a36Sopenharmony_ci	GATE(0, "imem_ads_axi4st_i0_imem_ipclkport_aclks", "mout_imem_clk_imem_aclk",
132962306a36Sopenharmony_ci	     GAT_IMEM_ADS_AXI4ST_I0_IMEM_IPCLKPORT_ACLKS, 21, CLK_IGNORE_UNUSED, 0),
133062306a36Sopenharmony_ci	GATE(0, "imem_ads_axi4st_i1_imem_ipclkport_aclks", "mout_imem_clk_imem_aclk",
133162306a36Sopenharmony_ci	     GAT_IMEM_ADS_AXI4ST_I1_IMEM_IPCLKPORT_ACLKS, 21, CLK_IGNORE_UNUSED, 0),
133262306a36Sopenharmony_ci	GATE(0, "imem_ads_axi4st_i2_imem_ipclkport_aclks", "mout_imem_clk_imem_aclk",
133362306a36Sopenharmony_ci	     GAT_IMEM_ADS_AXI4ST_I2_IMEM_IPCLKPORT_ACLKS, 21, CLK_IGNORE_UNUSED, 0),
133462306a36Sopenharmony_ci	GATE(0, "imem_async_dma0_ipclkport_pclkm", "mout_imem_clk_imem_tcuclk",
133562306a36Sopenharmony_ci	     GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKM, 21, CLK_IGNORE_UNUSED, 0),
133662306a36Sopenharmony_ci	GATE(0, "imem_async_dma0_ipclkport_pclks", "mout_imem_clk_imem_aclk",
133762306a36Sopenharmony_ci	     GAT_IMEM_ASYNC_DMA0_IPCLKPORT_PCLKS, 21, CLK_IGNORE_UNUSED, 0),
133862306a36Sopenharmony_ci	GATE(0, "imem_async_dma1_ipclkport_pclkm", "mout_imem_clk_imem_tcuclk",
133962306a36Sopenharmony_ci	     GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKM, 21, CLK_IGNORE_UNUSED, 0),
134062306a36Sopenharmony_ci	GATE(0, "imem_async_dma1_ipclkport_pclks", "mout_imem_clk_imem_aclk",
134162306a36Sopenharmony_ci	     GAT_IMEM_ASYNC_DMA1_IPCLKPORT_PCLKS, 21, CLK_IGNORE_UNUSED, 0),
134262306a36Sopenharmony_ci	GATE(0, "imem_axi2apb_imemp0_ipclkport_aclk", "mout_imem_clk_imem_aclk",
134362306a36Sopenharmony_ci	     GAT_IMEM_AXI2APB_IMEMP0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
134462306a36Sopenharmony_ci	GATE(0, "imem_axi2apb_imemp1_ipclkport_aclk", "mout_imem_clk_imem_aclk",
134562306a36Sopenharmony_ci	     GAT_IMEM_AXI2APB_IMEMP1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
134662306a36Sopenharmony_ci	GATE(0, "imem_bus_d_imem_ipclkport_mainclk", "mout_imem_clk_imem_tcuclk",
134762306a36Sopenharmony_ci	     GAT_IMEM_BUS_D_IMEM_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
134862306a36Sopenharmony_ci	GATE(0, "imem_bus_p_imem_ipclkport_mainclk", "mout_imem_clk_imem_aclk",
134962306a36Sopenharmony_ci	     GAT_IMEM_BUS_P_IMEM_IPCLKPORT_MAINCLK, 21, CLK_IGNORE_UNUSED, 0),
135062306a36Sopenharmony_ci	GATE(0, "imem_bus_p_imem_ipclkport_pericclk", "mout_imem_clk_imem_aclk",
135162306a36Sopenharmony_ci	     GAT_IMEM_BUS_P_IMEM_IPCLKPORT_PERICLK, 21, CLK_IGNORE_UNUSED, 0),
135262306a36Sopenharmony_ci	GATE(0, "imem_bus_p_imem_ipclkport_tcuclk", "mout_imem_clk_imem_tcuclk",
135362306a36Sopenharmony_ci	     GAT_IMEM_BUS_P_IMEM_IPCLKPORT_TCUCLK, 21, CLK_IGNORE_UNUSED, 0),
135462306a36Sopenharmony_ci	GATE(IMEM_DMA0_IPCLKPORT_ACLK, "imem_dma0_ipclkport_aclk", "mout_imem_clk_imem_tcuclk",
135562306a36Sopenharmony_ci	     GAT_IMEM_DMA0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED | CLK_IS_CRITICAL, 0),
135662306a36Sopenharmony_ci	GATE(IMEM_DMA1_IPCLKPORT_ACLK, "imem_dma1_ipclkport_aclk", "mout_imem_clk_imem_tcuclk",
135762306a36Sopenharmony_ci	     GAT_IMEM_DMA1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED | CLK_IS_CRITICAL, 0),
135862306a36Sopenharmony_ci	GATE(0, "imem_gic500_input_sync_ipclkport_clk", "mout_imem_clk_imem_aclk",
135962306a36Sopenharmony_ci	     GAT_IMEM_GIC500_INPUT_SYNC_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
136062306a36Sopenharmony_ci	GATE(0, "imem_gic_ipclkport_clk", "mout_imem_clk_imem_aclk",
136162306a36Sopenharmony_ci	     GAT_IMEM_GIC_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
136262306a36Sopenharmony_ci	GATE(0, "imem_intmem_ipclkport_aclk", "mout_imem_clk_imem_intmemclk",
136362306a36Sopenharmony_ci	     GAT_IMEM_INTMEM_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
136462306a36Sopenharmony_ci	GATE(0, "imem_mailbox_scs_ca72_ipclkport_pclk", "mout_imem_clk_imem_aclk",
136562306a36Sopenharmony_ci	     GAT_IMEM_MAILBOX_SCS_CA72_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
136662306a36Sopenharmony_ci	GATE(0, "imem_mailbox_sms_ca72_ipclkport_pclk", "mout_imem_clk_imem_aclk",
136762306a36Sopenharmony_ci	     GAT_IMEM_MAILBOX_SMS_CA72_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
136862306a36Sopenharmony_ci	GATE(IMEM_MCT_PCLK, "imem_mct_ipclkport_pclk", "mout_imem_clk_imem_aclk",
136962306a36Sopenharmony_ci	     GAT_IMEM_MCT_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
137062306a36Sopenharmony_ci	GATE(0, "imem_ns_brdg_imem_ipclkport_clk__psco_imem__clk_imem_d",
137162306a36Sopenharmony_ci	     "mout_imem_clk_imem_tcuclk",
137262306a36Sopenharmony_ci	     GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_D, 21, CLK_IGNORE_UNUSED, 0),
137362306a36Sopenharmony_ci	GATE(0, "imem_ns_brdg_imem_ipclkport_clk__psco_imem__clk_imem_tcu",
137462306a36Sopenharmony_ci	     "mout_imem_clk_imem_tcuclk",
137562306a36Sopenharmony_ci	     GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSCO_IMEM__CLK_IMEM_TCU, 21,
137662306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
137762306a36Sopenharmony_ci	GATE(0, "imem_ns_brdg_imem_ipclkport_clk__psoc_imem__clk_imem_p", "mout_imem_clk_imem_aclk",
137862306a36Sopenharmony_ci	     GAT_IMEM_NS_BRDG_IMEM_IPCLKPORT_CLK__PSOC_IMEM__CLK_IMEM_P, 21, CLK_IGNORE_UNUSED, 0),
137962306a36Sopenharmony_ci	GATE(0, "imem_otp_con_top_ipclkport_pclk", "mout_imem_clk_imem_aclk",
138062306a36Sopenharmony_ci	     GAT_IMEM_OTP_CON_TOP_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
138162306a36Sopenharmony_ci	GATE(0, "imem_rstnsync_aclk_ipclkport_clk", "mout_imem_clk_imem_aclk",
138262306a36Sopenharmony_ci	     GAT_IMEM_RSTNSYNC_ACLK_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
138362306a36Sopenharmony_ci	GATE(0, "imem_rstnsync_oscclk_ipclkport_clk", "fin_pll",
138462306a36Sopenharmony_ci	     GAT_IMEM_RSTNSYNC_OSCCLK_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
138562306a36Sopenharmony_ci	GATE(0, "imem_rstnsync_intmemclk_ipclkport_clk", "mout_imem_clk_imem_intmemclk",
138662306a36Sopenharmony_ci	     GAT_IMEM_RSTNSYNC_INTMEMCLK_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
138762306a36Sopenharmony_ci	GATE(0, "imem_rstnsync_tcuclk_ipclkport_clk", "mout_imem_clk_imem_tcuclk",
138862306a36Sopenharmony_ci	     GAT_IMEM_RSTNSYNC_TCUCLK_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
138962306a36Sopenharmony_ci	GATE(0, "imem_sfrif_tmu0_imem_ipclkport_pclk", "mout_imem_clk_imem_aclk",
139062306a36Sopenharmony_ci	     GAT_IMEM_SFRIF_TMU0_IMEM_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
139162306a36Sopenharmony_ci	GATE(0, "imem_sfrif_tmu1_imem_ipclkport_pclk", "mout_imem_clk_imem_aclk",
139262306a36Sopenharmony_ci	     GAT_IMEM_SFRIF_TMU1_IMEM_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
139362306a36Sopenharmony_ci	GATE(0, "imem_tmu_cpu2_ipclkport_i_clk", "fin_pll",
139462306a36Sopenharmony_ci	     GAT_IMEM_TMU_CPU2_IPCLKPORT_I_CLK, 21, CLK_IGNORE_UNUSED, 0),
139562306a36Sopenharmony_ci	GATE(0, "imem_sysreg_imem_ipclkport_pclk", "mout_imem_clk_imem_aclk",
139662306a36Sopenharmony_ci	     GAT_IMEM_SYSREG_IMEM_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
139762306a36Sopenharmony_ci	GATE(0, "imem_tbu_imem_ipclkport_aclk", "mout_imem_clk_imem_tcuclk",
139862306a36Sopenharmony_ci	     GAT_IMEM_TBU_IMEM_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
139962306a36Sopenharmony_ci	GATE(0, "imem_tcu_ipclkport_aclk", "mout_imem_clk_imem_tcuclk",
140062306a36Sopenharmony_ci	     GAT_IMEM_TCU_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
140162306a36Sopenharmony_ci	GATE(IMEM_WDT0_IPCLKPORT_PCLK, "imem_wdt0_ipclkport_pclk", "mout_imem_clk_imem_aclk",
140262306a36Sopenharmony_ci	     GAT_IMEM_WDT0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
140362306a36Sopenharmony_ci	GATE(IMEM_WDT1_IPCLKPORT_PCLK, "imem_wdt1_ipclkport_pclk", "mout_imem_clk_imem_aclk",
140462306a36Sopenharmony_ci	     GAT_IMEM_WDT1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
140562306a36Sopenharmony_ci	GATE(IMEM_WDT2_IPCLKPORT_PCLK, "imem_wdt2_ipclkport_pclk", "mout_imem_clk_imem_aclk",
140662306a36Sopenharmony_ci	     GAT_IMEM_WDT2_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
140762306a36Sopenharmony_ci};
140862306a36Sopenharmony_ci
140962306a36Sopenharmony_cistatic const struct samsung_cmu_info imem_cmu_info __initconst = {
141062306a36Sopenharmony_ci	.mux_clks		= imem_mux_clks,
141162306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(imem_mux_clks),
141262306a36Sopenharmony_ci	.div_clks		= imem_div_clks,
141362306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(imem_div_clks),
141462306a36Sopenharmony_ci	.gate_clks		= imem_gate_clks,
141562306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(imem_gate_clks),
141662306a36Sopenharmony_ci	.nr_clk_ids		= IMEM_NR_CLK,
141762306a36Sopenharmony_ci	.clk_regs		= imem_clk_regs,
141862306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(imem_clk_regs),
141962306a36Sopenharmony_ci};
142062306a36Sopenharmony_ci
142162306a36Sopenharmony_cistatic void __init fsd_clk_imem_init(struct device_node *np)
142262306a36Sopenharmony_ci{
142362306a36Sopenharmony_ci	samsung_cmu_register_one(np, &imem_cmu_info);
142462306a36Sopenharmony_ci}
142562306a36Sopenharmony_ci
142662306a36Sopenharmony_ciCLK_OF_DECLARE(fsd_clk_imem, "tesla,fsd-clock-imem", fsd_clk_imem_init);
142762306a36Sopenharmony_ci
142862306a36Sopenharmony_ci/* Register Offset definitions for CMU_MFC (0x12810000) */
142962306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_MFC					0x0
143062306a36Sopenharmony_ci#define PLL_CON0_PLL_MFC					0x100
143162306a36Sopenharmony_ci#define MUX_MFC_BUSD						0x1000
143262306a36Sopenharmony_ci#define MUX_MFC_BUSP						0x1008
143362306a36Sopenharmony_ci#define DIV_MFC_BUSD_DIV4					0x1800
143462306a36Sopenharmony_ci#define GAT_MFC_CMU_MFC_IPCLKPORT_PCLK				0x2000
143562306a36Sopenharmony_ci#define GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKM			0x2004
143662306a36Sopenharmony_ci#define GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKS			0x2008
143762306a36Sopenharmony_ci#define GAT_MFC_AXI2APB_MFC_IPCLKPORT_ACLK			0x200c
143862306a36Sopenharmony_ci#define GAT_MFC_MFC_IPCLKPORT_ACLK				0x2010
143962306a36Sopenharmony_ci#define GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_D	0x2018
144062306a36Sopenharmony_ci#define GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_P	0x201c
144162306a36Sopenharmony_ci#define GAT_MFC_PPMU_MFCD0_IPCLKPORT_ACLK			0x2028
144262306a36Sopenharmony_ci#define GAT_MFC_PPMU_MFCD0_IPCLKPORT_PCLK			0x202c
144362306a36Sopenharmony_ci#define GAT_MFC_PPMU_MFCD1_IPCLKPORT_ACLK			0x2030
144462306a36Sopenharmony_ci#define GAT_MFC_PPMU_MFCD1_IPCLKPORT_PCLK			0x2034
144562306a36Sopenharmony_ci#define GAT_MFC_SYSREG_MFC_IPCLKPORT_PCLK			0x2038
144662306a36Sopenharmony_ci#define GAT_MFC_TBU_MFCD0_IPCLKPORT_CLK				0x203c
144762306a36Sopenharmony_ci#define GAT_MFC_TBU_MFCD1_IPCLKPORT_CLK				0x2040
144862306a36Sopenharmony_ci#define GAT_MFC_BUSD_DIV4_GATE					0x2044
144962306a36Sopenharmony_ci#define GAT_MFC_BUSD_GATE					0x2048
145062306a36Sopenharmony_ci
145162306a36Sopenharmony_cistatic const unsigned long mfc_clk_regs[] __initconst = {
145262306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_MFC,
145362306a36Sopenharmony_ci	PLL_CON0_PLL_MFC,
145462306a36Sopenharmony_ci	MUX_MFC_BUSD,
145562306a36Sopenharmony_ci	MUX_MFC_BUSP,
145662306a36Sopenharmony_ci	DIV_MFC_BUSD_DIV4,
145762306a36Sopenharmony_ci	GAT_MFC_CMU_MFC_IPCLKPORT_PCLK,
145862306a36Sopenharmony_ci	GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKM,
145962306a36Sopenharmony_ci	GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKS,
146062306a36Sopenharmony_ci	GAT_MFC_AXI2APB_MFC_IPCLKPORT_ACLK,
146162306a36Sopenharmony_ci	GAT_MFC_MFC_IPCLKPORT_ACLK,
146262306a36Sopenharmony_ci	GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_D,
146362306a36Sopenharmony_ci	GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_P,
146462306a36Sopenharmony_ci	GAT_MFC_PPMU_MFCD0_IPCLKPORT_ACLK,
146562306a36Sopenharmony_ci	GAT_MFC_PPMU_MFCD0_IPCLKPORT_PCLK,
146662306a36Sopenharmony_ci	GAT_MFC_PPMU_MFCD1_IPCLKPORT_ACLK,
146762306a36Sopenharmony_ci	GAT_MFC_PPMU_MFCD1_IPCLKPORT_PCLK,
146862306a36Sopenharmony_ci	GAT_MFC_SYSREG_MFC_IPCLKPORT_PCLK,
146962306a36Sopenharmony_ci	GAT_MFC_TBU_MFCD0_IPCLKPORT_CLK,
147062306a36Sopenharmony_ci	GAT_MFC_TBU_MFCD1_IPCLKPORT_CLK,
147162306a36Sopenharmony_ci	GAT_MFC_BUSD_DIV4_GATE,
147262306a36Sopenharmony_ci	GAT_MFC_BUSD_GATE,
147362306a36Sopenharmony_ci};
147462306a36Sopenharmony_ci
147562306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_mfc_rate_table[] __initconst = {
147662306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 666000000U, 111, 4, 0),
147762306a36Sopenharmony_ci};
147862306a36Sopenharmony_ci
147962306a36Sopenharmony_cistatic const struct samsung_pll_clock mfc_pll_clks[] __initconst = {
148062306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_mfc", "fin_pll",
148162306a36Sopenharmony_ci	    PLL_LOCKTIME_PLL_MFC, PLL_CON0_PLL_MFC, pll_mfc_rate_table),
148262306a36Sopenharmony_ci};
148362306a36Sopenharmony_ci
148462306a36Sopenharmony_ciPNAME(mout_mfc_pll_p) = { "fin_pll", "fout_pll_mfc" };
148562306a36Sopenharmony_ciPNAME(mout_mfc_busp_p) = { "fin_pll", "dout_mfc_busd_div4" };
148662306a36Sopenharmony_ciPNAME(mout_mfc_busd_p) = { "fin_pll", "mfc_busd_gate" };
148762306a36Sopenharmony_ci
148862306a36Sopenharmony_cistatic const struct samsung_mux_clock mfc_mux_clks[] __initconst = {
148962306a36Sopenharmony_ci	MUX(0, "mout_mfc_pll", mout_mfc_pll_p, PLL_CON0_PLL_MFC, 4, 1),
149062306a36Sopenharmony_ci	MUX(0, "mout_mfc_busp", mout_mfc_busp_p, MUX_MFC_BUSP, 0, 1),
149162306a36Sopenharmony_ci	MUX(0, "mout_mfc_busd", mout_mfc_busd_p, MUX_MFC_BUSD, 0, 1),
149262306a36Sopenharmony_ci};
149362306a36Sopenharmony_ci
149462306a36Sopenharmony_cistatic const struct samsung_div_clock mfc_div_clks[] __initconst = {
149562306a36Sopenharmony_ci	DIV(0, "dout_mfc_busd_div4", "mfc_busd_div4_gate", DIV_MFC_BUSD_DIV4, 0, 4),
149662306a36Sopenharmony_ci};
149762306a36Sopenharmony_ci
149862306a36Sopenharmony_cistatic const struct samsung_gate_clock mfc_gate_clks[] __initconst = {
149962306a36Sopenharmony_ci	GATE(0, "mfc_cmu_mfc_ipclkport_pclk", "mout_mfc_busp",
150062306a36Sopenharmony_ci	     GAT_MFC_CMU_MFC_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
150162306a36Sopenharmony_ci	GATE(0, "mfc_as_p_mfc_ipclkport_pclkm", "mout_mfc_busd",
150262306a36Sopenharmony_ci	     GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKM, 21, CLK_IGNORE_UNUSED, 0),
150362306a36Sopenharmony_ci	GATE(0, "mfc_as_p_mfc_ipclkport_pclks", "mout_mfc_busp",
150462306a36Sopenharmony_ci	     GAT_MFC_AS_P_MFC_IPCLKPORT_PCLKS, 21, CLK_IGNORE_UNUSED, 0),
150562306a36Sopenharmony_ci	GATE(0, "mfc_axi2apb_mfc_ipclkport_aclk", "mout_mfc_busp",
150662306a36Sopenharmony_ci	     GAT_MFC_AXI2APB_MFC_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
150762306a36Sopenharmony_ci	GATE(MFC_MFC_IPCLKPORT_ACLK, "mfc_mfc_ipclkport_aclk", "mout_mfc_busd",
150862306a36Sopenharmony_ci	     GAT_MFC_MFC_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
150962306a36Sopenharmony_ci	GATE(0, "mfc_ns_brdg_mfc_ipclkport_clk__pmfc__clk_mfc_d", "mout_mfc_busd",
151062306a36Sopenharmony_ci	     GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_D, 21, CLK_IGNORE_UNUSED, 0),
151162306a36Sopenharmony_ci	GATE(0, "mfc_ns_brdg_mfc_ipclkport_clk__pmfc__clk_mfc_p", "mout_mfc_busp",
151262306a36Sopenharmony_ci	     GAT_MFC_NS_BRDG_MFC_IPCLKPORT_CLK__PMFC__CLK_MFC_P, 21, CLK_IGNORE_UNUSED, 0),
151362306a36Sopenharmony_ci	GATE(0, "mfc_ppmu_mfcd0_ipclkport_aclk", "mout_mfc_busd",
151462306a36Sopenharmony_ci	     GAT_MFC_PPMU_MFCD0_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
151562306a36Sopenharmony_ci	GATE(0, "mfc_ppmu_mfcd0_ipclkport_pclk", "mout_mfc_busp",
151662306a36Sopenharmony_ci	     GAT_MFC_PPMU_MFCD0_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
151762306a36Sopenharmony_ci	GATE(0, "mfc_ppmu_mfcd1_ipclkport_aclk", "mout_mfc_busd",
151862306a36Sopenharmony_ci	     GAT_MFC_PPMU_MFCD1_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
151962306a36Sopenharmony_ci	GATE(0, "mfc_ppmu_mfcd1_ipclkport_pclk", "mout_mfc_busp",
152062306a36Sopenharmony_ci	     GAT_MFC_PPMU_MFCD1_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
152162306a36Sopenharmony_ci	GATE(0, "mfc_sysreg_mfc_ipclkport_pclk", "mout_mfc_busp",
152262306a36Sopenharmony_ci	     GAT_MFC_SYSREG_MFC_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
152362306a36Sopenharmony_ci	GATE(0, "mfc_tbu_mfcd0_ipclkport_clk", "mout_mfc_busd",
152462306a36Sopenharmony_ci	     GAT_MFC_TBU_MFCD0_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
152562306a36Sopenharmony_ci	GATE(0, "mfc_tbu_mfcd1_ipclkport_clk", "mout_mfc_busd",
152662306a36Sopenharmony_ci	     GAT_MFC_TBU_MFCD1_IPCLKPORT_CLK, 21, CLK_IGNORE_UNUSED, 0),
152762306a36Sopenharmony_ci	GATE(0, "mfc_busd_div4_gate", "mout_mfc_pll",
152862306a36Sopenharmony_ci	     GAT_MFC_BUSD_DIV4_GATE, 21, CLK_IGNORE_UNUSED, 0),
152962306a36Sopenharmony_ci	GATE(0, "mfc_busd_gate", "mout_mfc_pll", GAT_MFC_BUSD_GATE, 21, CLK_IS_CRITICAL, 0),
153062306a36Sopenharmony_ci};
153162306a36Sopenharmony_ci
153262306a36Sopenharmony_cistatic const struct samsung_cmu_info mfc_cmu_info __initconst = {
153362306a36Sopenharmony_ci	.pll_clks		= mfc_pll_clks,
153462306a36Sopenharmony_ci	.nr_pll_clks		= ARRAY_SIZE(mfc_pll_clks),
153562306a36Sopenharmony_ci	.mux_clks		= mfc_mux_clks,
153662306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(mfc_mux_clks),
153762306a36Sopenharmony_ci	.div_clks		= mfc_div_clks,
153862306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(mfc_div_clks),
153962306a36Sopenharmony_ci	.gate_clks		= mfc_gate_clks,
154062306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(mfc_gate_clks),
154162306a36Sopenharmony_ci	.nr_clk_ids		= MFC_NR_CLK,
154262306a36Sopenharmony_ci	.clk_regs		= mfc_clk_regs,
154362306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(mfc_clk_regs),
154462306a36Sopenharmony_ci};
154562306a36Sopenharmony_ci
154662306a36Sopenharmony_ci/* Register Offset definitions for CMU_CAM_CSI (0x12610000) */
154762306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_CAM_CSI		0x0
154862306a36Sopenharmony_ci#define PLL_CON0_PLL_CAM_CSI			0x100
154962306a36Sopenharmony_ci#define DIV_CAM_CSI0_ACLK			0x1800
155062306a36Sopenharmony_ci#define DIV_CAM_CSI1_ACLK			0x1804
155162306a36Sopenharmony_ci#define DIV_CAM_CSI2_ACLK			0x1808
155262306a36Sopenharmony_ci#define DIV_CAM_CSI_BUSD			0x180c
155362306a36Sopenharmony_ci#define DIV_CAM_CSI_BUSP			0x1810
155462306a36Sopenharmony_ci#define GAT_CAM_CSI_CMU_CAM_CSI_IPCLKPORT_PCLK	0x2000
155562306a36Sopenharmony_ci#define GAT_CAM_AXI2APB_CAM_CSI_IPCLKPORT_ACLK	0x2004
155662306a36Sopenharmony_ci#define GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI0	0x2008
155762306a36Sopenharmony_ci#define GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI1	0x200c
155862306a36Sopenharmony_ci#define GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI2	0x2010
155962306a36Sopenharmony_ci#define GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_SOC_NOC	0x2014
156062306a36Sopenharmony_ci#define GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__NOC		0x2018
156162306a36Sopenharmony_ci#define GAT_CAM_CSI0_0_IPCLKPORT_I_ACLK		0x201c
156262306a36Sopenharmony_ci#define GAT_CAM_CSI0_0_IPCLKPORT_I_PCLK		0x2020
156362306a36Sopenharmony_ci#define GAT_CAM_CSI0_1_IPCLKPORT_I_ACLK		0x2024
156462306a36Sopenharmony_ci#define GAT_CAM_CSI0_1_IPCLKPORT_I_PCLK		0x2028
156562306a36Sopenharmony_ci#define GAT_CAM_CSI0_2_IPCLKPORT_I_ACLK		0x202c
156662306a36Sopenharmony_ci#define GAT_CAM_CSI0_2_IPCLKPORT_I_PCLK		0x2030
156762306a36Sopenharmony_ci#define GAT_CAM_CSI0_3_IPCLKPORT_I_ACLK		0x2034
156862306a36Sopenharmony_ci#define GAT_CAM_CSI0_3_IPCLKPORT_I_PCLK		0x2038
156962306a36Sopenharmony_ci#define GAT_CAM_CSI1_0_IPCLKPORT_I_ACLK		0x203c
157062306a36Sopenharmony_ci#define GAT_CAM_CSI1_0_IPCLKPORT_I_PCLK		0x2040
157162306a36Sopenharmony_ci#define GAT_CAM_CSI1_1_IPCLKPORT_I_ACLK		0x2044
157262306a36Sopenharmony_ci#define GAT_CAM_CSI1_1_IPCLKPORT_I_PCLK		0x2048
157362306a36Sopenharmony_ci#define GAT_CAM_CSI1_2_IPCLKPORT_I_ACLK		0x204c
157462306a36Sopenharmony_ci#define GAT_CAM_CSI1_2_IPCLKPORT_I_PCLK		0x2050
157562306a36Sopenharmony_ci#define GAT_CAM_CSI1_3_IPCLKPORT_I_ACLK		0x2054
157662306a36Sopenharmony_ci#define GAT_CAM_CSI1_3_IPCLKPORT_I_PCLK		0x2058
157762306a36Sopenharmony_ci#define GAT_CAM_CSI2_0_IPCLKPORT_I_ACLK		0x205c
157862306a36Sopenharmony_ci#define GAT_CAM_CSI2_0_IPCLKPORT_I_PCLK		0x2060
157962306a36Sopenharmony_ci#define GAT_CAM_CSI2_1_IPCLKPORT_I_ACLK		0x2064
158062306a36Sopenharmony_ci#define GAT_CAM_CSI2_1_IPCLKPORT_I_PCLK		0x2068
158162306a36Sopenharmony_ci#define GAT_CAM_CSI2_2_IPCLKPORT_I_ACLK		0x206c
158262306a36Sopenharmony_ci#define GAT_CAM_CSI2_2_IPCLKPORT_I_PCLK		0x2070
158362306a36Sopenharmony_ci#define GAT_CAM_CSI2_3_IPCLKPORT_I_ACLK		0x2074
158462306a36Sopenharmony_ci#define GAT_CAM_CSI2_3_IPCLKPORT_I_PCLK		0x2078
158562306a36Sopenharmony_ci#define GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_D	0x207c
158662306a36Sopenharmony_ci#define GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_P	0x2080
158762306a36Sopenharmony_ci#define GAT_CAM_SYSREG_CAM_CSI_IPCLKPORT_PCLK	0x2084
158862306a36Sopenharmony_ci#define GAT_CAM_TBU_CAM_CSI_IPCLKPORT_ACLK	0x2088
158962306a36Sopenharmony_ci
159062306a36Sopenharmony_cistatic const unsigned long cam_csi_clk_regs[] __initconst = {
159162306a36Sopenharmony_ci	PLL_LOCKTIME_PLL_CAM_CSI,
159262306a36Sopenharmony_ci	PLL_CON0_PLL_CAM_CSI,
159362306a36Sopenharmony_ci	DIV_CAM_CSI0_ACLK,
159462306a36Sopenharmony_ci	DIV_CAM_CSI1_ACLK,
159562306a36Sopenharmony_ci	DIV_CAM_CSI2_ACLK,
159662306a36Sopenharmony_ci	DIV_CAM_CSI_BUSD,
159762306a36Sopenharmony_ci	DIV_CAM_CSI_BUSP,
159862306a36Sopenharmony_ci	GAT_CAM_CSI_CMU_CAM_CSI_IPCLKPORT_PCLK,
159962306a36Sopenharmony_ci	GAT_CAM_AXI2APB_CAM_CSI_IPCLKPORT_ACLK,
160062306a36Sopenharmony_ci	GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI0,
160162306a36Sopenharmony_ci	GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI1,
160262306a36Sopenharmony_ci	GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI2,
160362306a36Sopenharmony_ci	GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_SOC_NOC,
160462306a36Sopenharmony_ci	GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__NOC,
160562306a36Sopenharmony_ci	GAT_CAM_CSI0_0_IPCLKPORT_I_ACLK,
160662306a36Sopenharmony_ci	GAT_CAM_CSI0_0_IPCLKPORT_I_PCLK,
160762306a36Sopenharmony_ci	GAT_CAM_CSI0_1_IPCLKPORT_I_ACLK,
160862306a36Sopenharmony_ci	GAT_CAM_CSI0_1_IPCLKPORT_I_PCLK,
160962306a36Sopenharmony_ci	GAT_CAM_CSI0_2_IPCLKPORT_I_ACLK,
161062306a36Sopenharmony_ci	GAT_CAM_CSI0_2_IPCLKPORT_I_PCLK,
161162306a36Sopenharmony_ci	GAT_CAM_CSI0_3_IPCLKPORT_I_ACLK,
161262306a36Sopenharmony_ci	GAT_CAM_CSI0_3_IPCLKPORT_I_PCLK,
161362306a36Sopenharmony_ci	GAT_CAM_CSI1_0_IPCLKPORT_I_ACLK,
161462306a36Sopenharmony_ci	GAT_CAM_CSI1_0_IPCLKPORT_I_PCLK,
161562306a36Sopenharmony_ci	GAT_CAM_CSI1_1_IPCLKPORT_I_ACLK,
161662306a36Sopenharmony_ci	GAT_CAM_CSI1_1_IPCLKPORT_I_PCLK,
161762306a36Sopenharmony_ci	GAT_CAM_CSI1_2_IPCLKPORT_I_ACLK,
161862306a36Sopenharmony_ci	GAT_CAM_CSI1_2_IPCLKPORT_I_PCLK,
161962306a36Sopenharmony_ci	GAT_CAM_CSI1_3_IPCLKPORT_I_ACLK,
162062306a36Sopenharmony_ci	GAT_CAM_CSI1_3_IPCLKPORT_I_PCLK,
162162306a36Sopenharmony_ci	GAT_CAM_CSI2_0_IPCLKPORT_I_ACLK,
162262306a36Sopenharmony_ci	GAT_CAM_CSI2_0_IPCLKPORT_I_PCLK,
162362306a36Sopenharmony_ci	GAT_CAM_CSI2_1_IPCLKPORT_I_ACLK,
162462306a36Sopenharmony_ci	GAT_CAM_CSI2_1_IPCLKPORT_I_PCLK,
162562306a36Sopenharmony_ci	GAT_CAM_CSI2_2_IPCLKPORT_I_ACLK,
162662306a36Sopenharmony_ci	GAT_CAM_CSI2_2_IPCLKPORT_I_PCLK,
162762306a36Sopenharmony_ci	GAT_CAM_CSI2_3_IPCLKPORT_I_ACLK,
162862306a36Sopenharmony_ci	GAT_CAM_CSI2_3_IPCLKPORT_I_PCLK,
162962306a36Sopenharmony_ci	GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_D,
163062306a36Sopenharmony_ci	GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_P,
163162306a36Sopenharmony_ci	GAT_CAM_SYSREG_CAM_CSI_IPCLKPORT_PCLK,
163262306a36Sopenharmony_ci	GAT_CAM_TBU_CAM_CSI_IPCLKPORT_ACLK,
163362306a36Sopenharmony_ci};
163462306a36Sopenharmony_ci
163562306a36Sopenharmony_cistatic const struct samsung_pll_rate_table pll_cam_csi_rate_table[] __initconst = {
163662306a36Sopenharmony_ci	PLL_35XX_RATE(24 * MHZ, 1066000000U, 533, 12, 0),
163762306a36Sopenharmony_ci};
163862306a36Sopenharmony_ci
163962306a36Sopenharmony_cistatic const struct samsung_pll_clock cam_csi_pll_clks[] __initconst = {
164062306a36Sopenharmony_ci	PLL(pll_142xx, 0, "fout_pll_cam_csi", "fin_pll",
164162306a36Sopenharmony_ci	    PLL_LOCKTIME_PLL_CAM_CSI, PLL_CON0_PLL_CAM_CSI, pll_cam_csi_rate_table),
164262306a36Sopenharmony_ci};
164362306a36Sopenharmony_ci
164462306a36Sopenharmony_ciPNAME(mout_cam_csi_pll_p) = { "fin_pll", "fout_pll_cam_csi" };
164562306a36Sopenharmony_ci
164662306a36Sopenharmony_cistatic const struct samsung_mux_clock cam_csi_mux_clks[] __initconst = {
164762306a36Sopenharmony_ci	MUX(0, "mout_cam_csi_pll", mout_cam_csi_pll_p, PLL_CON0_PLL_CAM_CSI, 4, 1),
164862306a36Sopenharmony_ci};
164962306a36Sopenharmony_ci
165062306a36Sopenharmony_cistatic const struct samsung_div_clock cam_csi_div_clks[] __initconst = {
165162306a36Sopenharmony_ci	DIV(0, "dout_cam_csi0_aclk", "mout_cam_csi_pll", DIV_CAM_CSI0_ACLK, 0, 4),
165262306a36Sopenharmony_ci	DIV(0, "dout_cam_csi1_aclk", "mout_cam_csi_pll", DIV_CAM_CSI1_ACLK, 0, 4),
165362306a36Sopenharmony_ci	DIV(0, "dout_cam_csi2_aclk", "mout_cam_csi_pll", DIV_CAM_CSI2_ACLK, 0, 4),
165462306a36Sopenharmony_ci	DIV(0, "dout_cam_csi_busd", "mout_cam_csi_pll", DIV_CAM_CSI_BUSD, 0, 4),
165562306a36Sopenharmony_ci	DIV(0, "dout_cam_csi_busp", "mout_cam_csi_pll", DIV_CAM_CSI_BUSP, 0, 4),
165662306a36Sopenharmony_ci};
165762306a36Sopenharmony_ci
165862306a36Sopenharmony_cistatic const struct samsung_gate_clock cam_csi_gate_clks[] __initconst = {
165962306a36Sopenharmony_ci	GATE(0, "cam_csi_cmu_cam_csi_ipclkport_pclk", "dout_cam_csi_busp",
166062306a36Sopenharmony_ci	     GAT_CAM_CSI_CMU_CAM_CSI_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
166162306a36Sopenharmony_ci	GATE(0, "cam_axi2apb_cam_csi_ipclkport_aclk", "dout_cam_csi_busp",
166262306a36Sopenharmony_ci	     GAT_CAM_AXI2APB_CAM_CSI_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
166362306a36Sopenharmony_ci	GATE(0, "cam_csi_bus_d_cam_csi_ipclkport_clk__system__clk_csi0", "dout_cam_csi0_aclk",
166462306a36Sopenharmony_ci	     GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI0, 21, CLK_IGNORE_UNUSED, 0),
166562306a36Sopenharmony_ci	GATE(0, "cam_csi_bus_d_cam_csi_ipclkport_clk__system__clk_csi1", "dout_cam_csi1_aclk",
166662306a36Sopenharmony_ci	     GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI1, 21, CLK_IGNORE_UNUSED, 0),
166762306a36Sopenharmony_ci	GATE(0, "cam_csi_bus_d_cam_csi_ipclkport_clk__system__clk_csi2", "dout_cam_csi2_aclk",
166862306a36Sopenharmony_ci	     GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_CSI2, 21, CLK_IGNORE_UNUSED, 0),
166962306a36Sopenharmony_ci	GATE(0, "cam_csi_bus_d_cam_csi_ipclkport_clk__system__clk_soc_noc", "dout_cam_csi_busd",
167062306a36Sopenharmony_ci	     GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__CLK_SOC_NOC, 21,
167162306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
167262306a36Sopenharmony_ci	GATE(0, "cam_csi_bus_d_cam_csi_ipclkport_clk__system__noc", "dout_cam_csi_busd",
167362306a36Sopenharmony_ci	     GAT_CAM_CSI_BUS_D_CAM_CSI_IPCLKPORT_CLK__SYSTEM__NOC, 21, CLK_IGNORE_UNUSED, 0),
167462306a36Sopenharmony_ci	GATE(CAM_CSI0_0_IPCLKPORT_I_ACLK, "cam_csi0_0_ipclkport_i_aclk", "dout_cam_csi0_aclk",
167562306a36Sopenharmony_ci	     GAT_CAM_CSI0_0_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
167662306a36Sopenharmony_ci	GATE(0, "cam_csi0_0_ipclkport_i_pclk", "dout_cam_csi_busp",
167762306a36Sopenharmony_ci	     GAT_CAM_CSI0_0_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
167862306a36Sopenharmony_ci	GATE(CAM_CSI0_1_IPCLKPORT_I_ACLK, "cam_csi0_1_ipclkport_i_aclk", "dout_cam_csi0_aclk",
167962306a36Sopenharmony_ci	     GAT_CAM_CSI0_1_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
168062306a36Sopenharmony_ci	GATE(0, "cam_csi0_1_ipclkport_i_pclk", "dout_cam_csi_busp",
168162306a36Sopenharmony_ci	     GAT_CAM_CSI0_1_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
168262306a36Sopenharmony_ci	GATE(CAM_CSI0_2_IPCLKPORT_I_ACLK, "cam_csi0_2_ipclkport_i_aclk", "dout_cam_csi0_aclk",
168362306a36Sopenharmony_ci	     GAT_CAM_CSI0_2_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
168462306a36Sopenharmony_ci	GATE(0, "cam_csi0_2_ipclkport_i_pclk", "dout_cam_csi_busp",
168562306a36Sopenharmony_ci	     GAT_CAM_CSI0_2_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
168662306a36Sopenharmony_ci	GATE(CAM_CSI0_3_IPCLKPORT_I_ACLK, "cam_csi0_3_ipclkport_i_aclk", "dout_cam_csi0_aclk",
168762306a36Sopenharmony_ci	     GAT_CAM_CSI0_3_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
168862306a36Sopenharmony_ci	GATE(0, "cam_csi0_3_ipclkport_i_pclk", "dout_cam_csi_busp",
168962306a36Sopenharmony_ci	     GAT_CAM_CSI0_3_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
169062306a36Sopenharmony_ci	GATE(CAM_CSI1_0_IPCLKPORT_I_ACLK, "cam_csi1_0_ipclkport_i_aclk", "dout_cam_csi1_aclk",
169162306a36Sopenharmony_ci	     GAT_CAM_CSI1_0_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
169262306a36Sopenharmony_ci	GATE(0, "cam_csi1_0_ipclkport_i_pclk", "dout_cam_csi_busp",
169362306a36Sopenharmony_ci	     GAT_CAM_CSI1_0_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
169462306a36Sopenharmony_ci	GATE(CAM_CSI1_1_IPCLKPORT_I_ACLK, "cam_csi1_1_ipclkport_i_aclk", "dout_cam_csi1_aclk",
169562306a36Sopenharmony_ci	     GAT_CAM_CSI1_1_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
169662306a36Sopenharmony_ci	GATE(0, "cam_csi1_1_ipclkport_i_pclk", "dout_cam_csi_busp",
169762306a36Sopenharmony_ci	     GAT_CAM_CSI1_1_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
169862306a36Sopenharmony_ci	GATE(CAM_CSI1_2_IPCLKPORT_I_ACLK, "cam_csi1_2_ipclkport_i_aclk", "dout_cam_csi1_aclk",
169962306a36Sopenharmony_ci	     GAT_CAM_CSI1_2_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
170062306a36Sopenharmony_ci	GATE(0, "cam_csi1_2_ipclkport_i_pclk", "dout_cam_csi_busp",
170162306a36Sopenharmony_ci	     GAT_CAM_CSI1_2_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
170262306a36Sopenharmony_ci	GATE(CAM_CSI1_3_IPCLKPORT_I_ACLK, "cam_csi1_3_ipclkport_i_aclk", "dout_cam_csi1_aclk",
170362306a36Sopenharmony_ci	     GAT_CAM_CSI1_3_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
170462306a36Sopenharmony_ci	GATE(0, "cam_csi1_3_ipclkport_i_pclk", "dout_cam_csi_busp",
170562306a36Sopenharmony_ci	     GAT_CAM_CSI1_3_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
170662306a36Sopenharmony_ci	GATE(CAM_CSI2_0_IPCLKPORT_I_ACLK, "cam_csi2_0_ipclkport_i_aclk", "dout_cam_csi2_aclk",
170762306a36Sopenharmony_ci	     GAT_CAM_CSI2_0_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
170862306a36Sopenharmony_ci	GATE(0, "cam_csi2_0_ipclkport_i_pclk", "dout_cam_csi_busp",
170962306a36Sopenharmony_ci	     GAT_CAM_CSI2_0_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
171062306a36Sopenharmony_ci	GATE(CAM_CSI2_1_IPCLKPORT_I_ACLK, "cam_csi2_1_ipclkport_i_aclk", "dout_cam_csi2_aclk",
171162306a36Sopenharmony_ci	     GAT_CAM_CSI2_1_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
171262306a36Sopenharmony_ci	GATE(0, "cam_csi2_1_ipclkport_i_pclk", "dout_cam_csi_busp",
171362306a36Sopenharmony_ci	     GAT_CAM_CSI2_1_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
171462306a36Sopenharmony_ci	GATE(CAM_CSI2_2_IPCLKPORT_I_ACLK, "cam_csi2_2_ipclkport_i_aclk", "dout_cam_csi2_aclk",
171562306a36Sopenharmony_ci	     GAT_CAM_CSI2_2_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
171662306a36Sopenharmony_ci	GATE(0, "cam_csi2_2_ipclkport_i_pclk", "dout_cam_csi_busp",
171762306a36Sopenharmony_ci	     GAT_CAM_CSI2_2_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
171862306a36Sopenharmony_ci	GATE(CAM_CSI2_3_IPCLKPORT_I_ACLK, "cam_csi2_3_ipclkport_i_aclk", "dout_cam_csi2_aclk",
171962306a36Sopenharmony_ci	     GAT_CAM_CSI2_3_IPCLKPORT_I_ACLK, 21, CLK_IGNORE_UNUSED, 0),
172062306a36Sopenharmony_ci	GATE(0, "cam_csi2_3_ipclkport_i_pclk", "dout_cam_csi_busp",
172162306a36Sopenharmony_ci	     GAT_CAM_CSI2_3_IPCLKPORT_I_PCLK, 21, CLK_IGNORE_UNUSED, 0),
172262306a36Sopenharmony_ci	GATE(0, "cam_ns_brdg_cam_csi_ipclkport_clk__psoc_cam_csi__clk_cam_csi_d",
172362306a36Sopenharmony_ci	     "dout_cam_csi_busd",
172462306a36Sopenharmony_ci	     GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_D, 21,
172562306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
172662306a36Sopenharmony_ci	GATE(0, "cam_ns_brdg_cam_csi_ipclkport_clk__psoc_cam_csi__clk_cam_csi_p",
172762306a36Sopenharmony_ci	     "dout_cam_csi_busp",
172862306a36Sopenharmony_ci	     GAT_CAM_NS_BRDG_CAM_CSI_IPCLKPORT_CLK__PSOC_CAM_CSI__CLK_CAM_CSI_P, 21,
172962306a36Sopenharmony_ci	     CLK_IGNORE_UNUSED, 0),
173062306a36Sopenharmony_ci	GATE(0, "cam_sysreg_cam_csi_ipclkport_pclk", "dout_cam_csi_busp",
173162306a36Sopenharmony_ci	     GAT_CAM_SYSREG_CAM_CSI_IPCLKPORT_PCLK, 21, CLK_IGNORE_UNUSED, 0),
173262306a36Sopenharmony_ci	GATE(0, "cam_tbu_cam_csi_ipclkport_aclk", "dout_cam_csi_busd",
173362306a36Sopenharmony_ci	     GAT_CAM_TBU_CAM_CSI_IPCLKPORT_ACLK, 21, CLK_IGNORE_UNUSED, 0),
173462306a36Sopenharmony_ci};
173562306a36Sopenharmony_ci
173662306a36Sopenharmony_cistatic const struct samsung_cmu_info cam_csi_cmu_info __initconst = {
173762306a36Sopenharmony_ci	.pll_clks		= cam_csi_pll_clks,
173862306a36Sopenharmony_ci	.nr_pll_clks		= ARRAY_SIZE(cam_csi_pll_clks),
173962306a36Sopenharmony_ci	.mux_clks		= cam_csi_mux_clks,
174062306a36Sopenharmony_ci	.nr_mux_clks		= ARRAY_SIZE(cam_csi_mux_clks),
174162306a36Sopenharmony_ci	.div_clks		= cam_csi_div_clks,
174262306a36Sopenharmony_ci	.nr_div_clks		= ARRAY_SIZE(cam_csi_div_clks),
174362306a36Sopenharmony_ci	.gate_clks		= cam_csi_gate_clks,
174462306a36Sopenharmony_ci	.nr_gate_clks		= ARRAY_SIZE(cam_csi_gate_clks),
174562306a36Sopenharmony_ci	.nr_clk_ids		= CAM_CSI_NR_CLK,
174662306a36Sopenharmony_ci	.clk_regs		= cam_csi_clk_regs,
174762306a36Sopenharmony_ci	.nr_clk_regs		= ARRAY_SIZE(cam_csi_clk_regs),
174862306a36Sopenharmony_ci};
174962306a36Sopenharmony_ci
175062306a36Sopenharmony_ci/**
175162306a36Sopenharmony_ci * fsd_cmu_probe - Probe function for FSD platform clocks
175262306a36Sopenharmony_ci * @pdev: Pointer to platform device
175362306a36Sopenharmony_ci *
175462306a36Sopenharmony_ci * Configure clock hierarchy for clock domains of FSD platform
175562306a36Sopenharmony_ci */
175662306a36Sopenharmony_cistatic int __init fsd_cmu_probe(struct platform_device *pdev)
175762306a36Sopenharmony_ci{
175862306a36Sopenharmony_ci	const struct samsung_cmu_info *info;
175962306a36Sopenharmony_ci	struct device *dev = &pdev->dev;
176062306a36Sopenharmony_ci
176162306a36Sopenharmony_ci	info = of_device_get_match_data(dev);
176262306a36Sopenharmony_ci	exynos_arm64_register_cmu(dev, dev->of_node, info);
176362306a36Sopenharmony_ci
176462306a36Sopenharmony_ci	return 0;
176562306a36Sopenharmony_ci}
176662306a36Sopenharmony_ci
176762306a36Sopenharmony_ci/* CMUs which belong to Power Domains and need runtime PM to be implemented */
176862306a36Sopenharmony_cistatic const struct of_device_id fsd_cmu_of_match[] = {
176962306a36Sopenharmony_ci	{
177062306a36Sopenharmony_ci		.compatible = "tesla,fsd-clock-peric",
177162306a36Sopenharmony_ci		.data = &peric_cmu_info,
177262306a36Sopenharmony_ci	}, {
177362306a36Sopenharmony_ci		.compatible = "tesla,fsd-clock-fsys0",
177462306a36Sopenharmony_ci		.data = &fsys0_cmu_info,
177562306a36Sopenharmony_ci	}, {
177662306a36Sopenharmony_ci		.compatible = "tesla,fsd-clock-fsys1",
177762306a36Sopenharmony_ci		.data = &fsys1_cmu_info,
177862306a36Sopenharmony_ci	}, {
177962306a36Sopenharmony_ci		.compatible = "tesla,fsd-clock-mfc",
178062306a36Sopenharmony_ci		.data = &mfc_cmu_info,
178162306a36Sopenharmony_ci	}, {
178262306a36Sopenharmony_ci		.compatible = "tesla,fsd-clock-cam_csi",
178362306a36Sopenharmony_ci		.data = &cam_csi_cmu_info,
178462306a36Sopenharmony_ci	}, {
178562306a36Sopenharmony_ci	},
178662306a36Sopenharmony_ci};
178762306a36Sopenharmony_ci
178862306a36Sopenharmony_cistatic struct platform_driver fsd_cmu_driver __refdata = {
178962306a36Sopenharmony_ci	.driver	= {
179062306a36Sopenharmony_ci		.name = "fsd-cmu",
179162306a36Sopenharmony_ci		.of_match_table = fsd_cmu_of_match,
179262306a36Sopenharmony_ci		.suppress_bind_attrs = true,
179362306a36Sopenharmony_ci	},
179462306a36Sopenharmony_ci	.probe = fsd_cmu_probe,
179562306a36Sopenharmony_ci};
179662306a36Sopenharmony_ci
179762306a36Sopenharmony_cistatic int __init fsd_cmu_init(void)
179862306a36Sopenharmony_ci{
179962306a36Sopenharmony_ci	return platform_driver_register(&fsd_cmu_driver);
180062306a36Sopenharmony_ci}
180162306a36Sopenharmony_cicore_initcall(fsd_cmu_init);
1802