162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2022 Samsung Electronics Co., Ltd. 462306a36Sopenharmony_ci * Author: Chanho Park <chanho61.park@samsung.com> 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Common Clock Framework support for ExynosAuto V9 SoC. 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/clk.h> 1062306a36Sopenharmony_ci#include <linux/clk-provider.h> 1162306a36Sopenharmony_ci#include <linux/of.h> 1262306a36Sopenharmony_ci#include <linux/platform_device.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <dt-bindings/clock/samsung,exynosautov9.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#include "clk.h" 1762306a36Sopenharmony_ci#include "clk-exynos-arm64.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/* NOTE: Must be equal to the last clock ID increased by one */ 2062306a36Sopenharmony_ci#define CLKS_NR_TOP (GOUT_CLKCMU_PERIS_BUS + 1) 2162306a36Sopenharmony_ci#define CLKS_NR_BUSMC (CLK_GOUT_BUSMC_SPDMA_PCLK + 1) 2262306a36Sopenharmony_ci#define CLKS_NR_CORE (CLK_GOUT_CORE_CMU_CORE_PCLK + 1) 2362306a36Sopenharmony_ci#define CLKS_NR_FSYS0 (CLK_GOUT_FSYS0_PCIE_GEN3B_4L_CLK + 1) 2462306a36Sopenharmony_ci#define CLKS_NR_FSYS1 (CLK_GOUT_FSYS1_USB30_1_ACLK + 1) 2562306a36Sopenharmony_ci#define CLKS_NR_FSYS2 (CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO + 1) 2662306a36Sopenharmony_ci#define CLKS_NR_PERIC0 (CLK_GOUT_PERIC0_PCLK_11 + 1) 2762306a36Sopenharmony_ci#define CLKS_NR_PERIC1 (CLK_GOUT_PERIC1_PCLK_11 + 1) 2862306a36Sopenharmony_ci#define CLKS_NR_PERIS (CLK_GOUT_WDT_CLUSTER1 + 1) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci/* ---- CMU_TOP ------------------------------------------------------------ */ 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci/* Register Offset definitions for CMU_TOP (0x1b240000) */ 3362306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED0 0x0000 3462306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED1 0x0004 3562306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED2 0x0008 3662306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED3 0x000c 3762306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_SHARED4 0x0010 3862306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED0 0x0100 3962306a36Sopenharmony_ci#define PLL_CON3_PLL_SHARED0 0x010c 4062306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED1 0x0140 4162306a36Sopenharmony_ci#define PLL_CON3_PLL_SHARED1 0x014c 4262306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED2 0x0180 4362306a36Sopenharmony_ci#define PLL_CON3_PLL_SHARED2 0x018c 4462306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED3 0x01c0 4562306a36Sopenharmony_ci#define PLL_CON3_PLL_SHARED3 0x01cc 4662306a36Sopenharmony_ci#define PLL_CON0_PLL_SHARED4 0x0200 4762306a36Sopenharmony_ci#define PLL_CON3_PLL_SHARED4 0x020c 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci/* MUX */ 5062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_ACC_BUS 0x1000 5162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_APM_BUS 0x1004 5262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_AUD_BUS 0x1008 5362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_AUD_CPU 0x100c 5462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_BUSC_BUS 0x1010 5562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_BUSMC_BUS 0x1018 5662306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST 0x101c 5762306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CORE_BUS 0x1020 5862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_CLUSTER 0x1024 5962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH 0x102c 6062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CPUCL1_CLUSTER 0x1030 6162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH 0x1034 6262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_DPTX_BUS 0x1040 6362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_DPTX_DPGTC 0x1044 6462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_DPUM_BUS 0x1048 6562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_DPUS0_BUS 0x104c 6662306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_DPUS1_BUS 0x1050 6762306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS0_BUS 0x1054 6862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS0_PCIE 0x1058 6962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS1_BUS 0x105c 7062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS1_MMC_CARD 0x1060 7162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS1_USBDRD 0x1064 7262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS2_BUS 0x1068 7362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS2_ETHERNET 0x106c 7462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_FSYS2_UFS_EMBD 0x1070 7562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_G2D_G2D 0x1074 7662306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL 0x1078 7762306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_G3D00_SWITCH 0x107c 7862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_G3D01_SWITCH 0x1080 7962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_G3D1_SWITCH 0x1084 8062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_ISPB_BUS 0x108c 8162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_MFC_MFC 0x1090 8262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_MFC_WFD 0x1094 8362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH 0x109c 8462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP 0x1098 8562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH 0x109c 8662306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_NPU_BUS 0x10a0 8762306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS 0x10a4 8862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP 0x10a8 8962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS 0x10ac 9062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP 0x10b0 9162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS 0x10b4 9262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CMU_CMUREF 0x10c0 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci/* DIV */ 9562306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_ACC_BUS 0x1800 9662306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_APM_BUS 0x1804 9762306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_AUD_BUS 0x1808 9862306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_AUD_CPU 0x180c 9962306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_BUSC_BUS 0x1810 10062306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_BUSMC_BUS 0x1818 10162306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_CORE_BUS 0x181c 10262306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_CPUCL0_CLUSTER 0x1820 10362306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH 0x1828 10462306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_CPUCL1_CLUSTER 0x182c 10562306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH 0x1830 10662306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_DPTX_BUS 0x183c 10762306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_DPTX_DPGTC 0x1840 10862306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_DPUM_BUS 0x1844 10962306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_DPUS0_BUS 0x1848 11062306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_DPUS1_BUS 0x184c 11162306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS0_BUS 0x1850 11262306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS0_PCIE 0x1854 11362306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS1_BUS 0x1858 11462306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS1_USBDRD 0x185c 11562306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS2_BUS 0x1860 11662306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS2_ETHERNET 0x1864 11762306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_FSYS2_UFS_EMBD 0x1868 11862306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_G2D_G2D 0x186c 11962306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_G2D_MSCL 0x1870 12062306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_G3D00_SWITCH 0x1874 12162306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_G3D01_SWITCH 0x1878 12262306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_G3D1_SWITCH 0x187c 12362306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_ISPB_BUS 0x1884 12462306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_MFC_MFC 0x1888 12562306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_MFC_WFD 0x188c 12662306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_MIF_BUSP 0x1890 12762306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_NPU_BUS 0x1894 12862306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_PERIC0_BUS 0x1898 12962306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_PERIC0_IP 0x189c 13062306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_PERIC1_BUS 0x18a0 13162306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_PERIC1_IP 0x18a4 13262306a36Sopenharmony_ci#define CLK_CON_DIV_CLKCMU_PERIS_BUS 0x18a8 13362306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST 0x18b4 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED0_DIV2 0x18b8 13662306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED0_DIV3 0x18bc 13762306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED1_DIV2 0x18c0 13862306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED1_DIV3 0x18c4 13962306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED1_DIV4 0x18c8 14062306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED2_DIV2 0x18cc 14162306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED2_DIV3 0x18d0 14262306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED2_DIV4 0x18d4 14362306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED4_DIV2 0x18d4 14462306a36Sopenharmony_ci#define CLK_CON_DIV_PLL_SHARED4_DIV4 0x18d8 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci/* GATE */ 14762306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_BUSC_BOOST 0x2000 14862306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_BUSMC_BOOST 0x2004 14962306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_CORE_BOOST 0x2008 15062306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_CPUCL0_BOOST 0x2010 15162306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_CPUCL1_BOOST 0x2018 15262306a36Sopenharmony_ci#define CLK_CON_GAT_CLKCMU_CMU_MIF_BOOST 0x2020 15362306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS1_MMC_CARD 0x2024 15462306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_MIF_SWITCH 0x2028 15562306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_ACC_BUS 0x202c 15662306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_APM_BUS 0x2030 15762306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_AUD_BUS 0x2034 15862306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_AUD_CPU 0x2038 15962306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_BUSC_BUS 0x203c 16062306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_BUSMC_BUS 0x2044 16162306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST 0x2048 16262306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CORE_BUS 0x204c 16362306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_CLUSTER 0x2050 16462306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH 0x2058 16562306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CPUCL1_CLUSTER 0x205c 16662306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH 0x2060 16762306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_DPTX_BUS 0x206c 16862306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_DPTX_DPGTC 0x2070 16962306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_DPUM_BUS 0x2060 17062306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_DPUS0_BUS 0x2064 17162306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_DPUS1_BUS 0x207c 17262306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS0_BUS 0x2080 17362306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS0_PCIE 0x2084 17462306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS1_BUS 0x2088 17562306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS1_USBDRD 0x208c 17662306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS2_BUS 0x2090 17762306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS2_ETHERNET 0x2094 17862306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_FSYS2_UFS_EMBD 0x2098 17962306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_G2D_G2D 0x209c 18062306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL 0x20a0 18162306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_G3D00_SWITCH 0x20a4 18262306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_G3D01_SWITCH 0x20a8 18362306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_G3D1_SWITCH 0x20ac 18462306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_ISPB_BUS 0x20b4 18562306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_MFC_MFC 0x20b8 18662306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_MFC_WFD 0x20bc 18762306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP 0x20c0 18862306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_NPU_BUS 0x20c4 18962306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS 0x20c8 19062306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP 0x20cc 19162306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS 0x20d0 19262306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP 0x20d4 19362306a36Sopenharmony_ci#define CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS 0x20d8 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_cistatic const unsigned long top_clk_regs[] __initconst = { 19662306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED0, 19762306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED1, 19862306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED2, 19962306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED3, 20062306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED4, 20162306a36Sopenharmony_ci PLL_CON0_PLL_SHARED0, 20262306a36Sopenharmony_ci PLL_CON3_PLL_SHARED0, 20362306a36Sopenharmony_ci PLL_CON0_PLL_SHARED1, 20462306a36Sopenharmony_ci PLL_CON3_PLL_SHARED1, 20562306a36Sopenharmony_ci PLL_CON0_PLL_SHARED2, 20662306a36Sopenharmony_ci PLL_CON3_PLL_SHARED2, 20762306a36Sopenharmony_ci PLL_CON0_PLL_SHARED3, 20862306a36Sopenharmony_ci PLL_CON3_PLL_SHARED3, 20962306a36Sopenharmony_ci PLL_CON0_PLL_SHARED4, 21062306a36Sopenharmony_ci PLL_CON3_PLL_SHARED4, 21162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_ACC_BUS, 21262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 21362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_AUD_BUS, 21462306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 21562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_BUSC_BUS, 21662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 21762306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 21862306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL0_CLUSTER, 21962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 22062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL1_CLUSTER, 22162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 22262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_DPTX_BUS, 22362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_DPTX_DPGTC, 22462306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_DPUM_BUS, 22562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_DPUS0_BUS, 22662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_DPUS1_BUS, 22762306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS0_BUS, 22862306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS0_PCIE, 22962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS1_BUS, 23062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS1_MMC_CARD, 23162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS1_USBDRD, 23262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS2_BUS, 23362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS2_ETHERNET, 23462306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS2_UFS_EMBD, 23562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 23662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 23762306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G3D00_SWITCH, 23862306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G3D01_SWITCH, 23962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G3D1_SWITCH, 24062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_ISPB_BUS, 24162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_MFC_MFC, 24262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_MFC_WFD, 24362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 24462306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 24562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 24662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 24762306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 24862306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 24962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 25062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 25162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 25262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CMU_CMUREF, 25362306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_ACC_BUS, 25462306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_APM_BUS, 25562306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_AUD_BUS, 25662306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_AUD_CPU, 25762306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_BUSC_BUS, 25862306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_BUSMC_BUS, 25962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_CORE_BUS, 26062306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_CPUCL0_CLUSTER, 26162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 26262306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_CPUCL1_CLUSTER, 26362306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 26462306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_DPTX_BUS, 26562306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_DPTX_DPGTC, 26662306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_DPUM_BUS, 26762306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_DPUS0_BUS, 26862306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_DPUS1_BUS, 26962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS0_BUS, 27062306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS0_PCIE, 27162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS1_BUS, 27262306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS1_USBDRD, 27362306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS2_BUS, 27462306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS2_ETHERNET, 27562306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_FSYS2_UFS_EMBD, 27662306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G2D_G2D, 27762306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G2D_MSCL, 27862306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G3D00_SWITCH, 27962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G3D01_SWITCH, 28062306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G3D1_SWITCH, 28162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_ISPB_BUS, 28262306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_MFC_MFC, 28362306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_MFC_WFD, 28462306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_MIF_BUSP, 28562306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_NPU_BUS, 28662306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_PERIC0_BUS, 28762306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_PERIC0_IP, 28862306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_PERIC1_BUS, 28962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_PERIC1_IP, 29062306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_PERIS_BUS, 29162306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST, 29262306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED0_DIV2, 29362306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED0_DIV3, 29462306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV2, 29562306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV3, 29662306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV4, 29762306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV2, 29862306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV3, 29962306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV4, 30062306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED4_DIV2, 30162306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED4_DIV4, 30262306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_BUSC_BOOST, 30362306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_BUSMC_BOOST, 30462306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_CORE_BOOST, 30562306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_CPUCL0_BOOST, 30662306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_CPUCL1_BOOST, 30762306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_MIF_BOOST, 30862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS1_MMC_CARD, 30962306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MIF_SWITCH, 31062306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_ACC_BUS, 31162306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 31262306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_AUD_BUS, 31362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 31462306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_BUSC_BUS, 31562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_BUSMC_BUS, 31662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST, 31762306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 31862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL0_CLUSTER, 31962306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 32062306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL1_CLUSTER, 32162306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 32262306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_DPTX_BUS, 32362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_DPTX_DPGTC, 32462306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_DPUM_BUS, 32562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_DPUS0_BUS, 32662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_DPUS1_BUS, 32762306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS0_BUS, 32862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS0_PCIE, 32962306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS1_BUS, 33062306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS1_USBDRD, 33162306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS2_BUS, 33262306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS2_ETHERNET, 33362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS2_UFS_EMBD, 33462306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 33562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 33662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_G3D00_SWITCH, 33762306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_G3D01_SWITCH, 33862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_G3D1_SWITCH, 33962306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_ISPB_BUS, 34062306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MFC_MFC, 34162306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MFC_WFD, 34262306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 34362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 34462306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 34562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 34662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 34762306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 34862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 34962306a36Sopenharmony_ci}; 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_cistatic const struct samsung_pll_clock top_pll_clks[] __initconst = { 35262306a36Sopenharmony_ci /* CMU_TOP_PURECLKCOMP */ 35362306a36Sopenharmony_ci PLL(pll_0822x, FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk", 35462306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0, NULL), 35562306a36Sopenharmony_ci PLL(pll_0822x, FOUT_SHARED0_PLL, "fout_shared1_pll", "oscclk", 35662306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED1, PLL_CON3_PLL_SHARED1, NULL), 35762306a36Sopenharmony_ci PLL(pll_0822x, FOUT_SHARED0_PLL, "fout_shared2_pll", "oscclk", 35862306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED2, PLL_CON3_PLL_SHARED2, NULL), 35962306a36Sopenharmony_ci PLL(pll_0822x, FOUT_SHARED0_PLL, "fout_shared3_pll", "oscclk", 36062306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED3, PLL_CON3_PLL_SHARED3, NULL), 36162306a36Sopenharmony_ci PLL(pll_0822x, FOUT_SHARED0_PLL, "fout_shared4_pll", "oscclk", 36262306a36Sopenharmony_ci PLL_LOCKTIME_PLL_SHARED4, PLL_CON3_PLL_SHARED4, NULL), 36362306a36Sopenharmony_ci}; 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_TOP */ 36662306a36Sopenharmony_ciPNAME(mout_shared0_pll_p) = { "oscclk", "fout_shared0_pll" }; 36762306a36Sopenharmony_ciPNAME(mout_shared1_pll_p) = { "oscclk", "fout_shared1_pll" }; 36862306a36Sopenharmony_ciPNAME(mout_shared2_pll_p) = { "oscclk", "fout_shared2_pll" }; 36962306a36Sopenharmony_ciPNAME(mout_shared3_pll_p) = { "oscclk", "fout_shared3_pll" }; 37062306a36Sopenharmony_ciPNAME(mout_shared4_pll_p) = { "oscclk", "fout_shared4_pll" }; 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ciPNAME(mout_clkcmu_cmu_boost_p) = { "dout_shared2_div3", "dout_shared1_div4", 37362306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 37462306a36Sopenharmony_ciPNAME(mout_clkcmu_cmu_cmuref_p) = { "oscclk", "dout_cmu_boost" }; 37562306a36Sopenharmony_ciPNAME(mout_clkcmu_acc_bus_p) = { "dout_shared1_div3", "dout_shared2_div3", 37662306a36Sopenharmony_ci "dout_shared1_div4", "dout_shared2_div4" }; 37762306a36Sopenharmony_ciPNAME(mout_clkcmu_apm_bus_p) = { "dout_shared2_div3", "dout_shared1_div4", 37862306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 37962306a36Sopenharmony_ciPNAME(mout_clkcmu_aud_cpu_p) = { "dout_shared0_div2", "dout_shared1_div2", 38062306a36Sopenharmony_ci "dout_shared2_div2", "dout_shared0_div3", 38162306a36Sopenharmony_ci "dout_shared4_div2", "dout_shared1_div3", 38262306a36Sopenharmony_ci "fout_shared3_pll" }; 38362306a36Sopenharmony_ciPNAME(mout_clkcmu_aud_bus_p) = { "dout_shared4_div2", "dout_shared1_div3", 38462306a36Sopenharmony_ci "dout_shared2_div3", "dout_shared1_div4" }; 38562306a36Sopenharmony_ciPNAME(mout_clkcmu_busc_bus_p) = { "dout_shared2_div3", "dout_shared1_div4", 38662306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 38762306a36Sopenharmony_ciPNAME(mout_clkcmu_core_bus_p) = { "dout_shared0_div2", "dout_shared1_div2", 38862306a36Sopenharmony_ci "dout_shared2_div2", "dout_shared0_div3", 38962306a36Sopenharmony_ci "dout_shared4_div2", "dout_shared1_div3", 39062306a36Sopenharmony_ci "dout_shared2_div3", "fout_shared3_pll" }; 39162306a36Sopenharmony_ciPNAME(mout_clkcmu_cpucl0_switch_p) = { 39262306a36Sopenharmony_ci "dout_shared0_div2", "dout_shared1_div2", 39362306a36Sopenharmony_ci "dout_shared2_div2", "dout_shared4_div2" }; 39462306a36Sopenharmony_ciPNAME(mout_clkcmu_cpucl0_cluster_p) = { 39562306a36Sopenharmony_ci "fout_shared2_pll", "fout_shared4_pll", 39662306a36Sopenharmony_ci "dout_shared0_div2", "dout_shared1_div2", 39762306a36Sopenharmony_ci "dout_shared2_div2", "dout_shared4_div2", 39862306a36Sopenharmony_ci "dout_shared2_div3", "fout_shared3_pll" }; 39962306a36Sopenharmony_ciPNAME(mout_clkcmu_dptx_bus_p) = { "dout_shared4_div2", "dout_shared2_div3", 40062306a36Sopenharmony_ci "dout_shared1_div4", "dout_shared2_div4" }; 40162306a36Sopenharmony_ciPNAME(mout_clkcmu_dptx_dpgtc_p) = { "oscclk", "dout_shared2_div3", 40262306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 40362306a36Sopenharmony_ciPNAME(mout_clkcmu_dpum_bus_p) = { "dout_shared1_div3", "dout_shared2_div3", 40462306a36Sopenharmony_ci "dout_shared1_div4", "dout_shared2_div4", 40562306a36Sopenharmony_ci "dout_shared4_div4", "fout_shared3_pll" }; 40662306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys0_bus_p) = { 40762306a36Sopenharmony_ci "dout_shared4_div2", "dout_shared2_div3", 40862306a36Sopenharmony_ci "dout_shared1_div4", "dout_shared2_div4" }; 40962306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys0_pcie_p) = { "oscclk", "dout_shared2_div4" }; 41062306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys1_bus_p) = { "dout_shared2_div3", "dout_shared1_div4", 41162306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 41262306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys1_usbdrd_p) = { 41362306a36Sopenharmony_ci "oscclk", "dout_shared2_div3", 41462306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 41562306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys1_mmc_card_p) = { 41662306a36Sopenharmony_ci "oscclk", "dout_shared2_div2", 41762306a36Sopenharmony_ci "dout_shared4_div2", "dout_shared2_div3" }; 41862306a36Sopenharmony_ciPNAME(mout_clkcmu_fsys2_ethernet_p) = { 41962306a36Sopenharmony_ci "oscclk", "dout_shared2_div2", 42062306a36Sopenharmony_ci "dout_shared0_div3", "dout_shared2_div3", 42162306a36Sopenharmony_ci "dout_shared1_div4", "fout_shared3_pll" }; 42262306a36Sopenharmony_ciPNAME(mout_clkcmu_g2d_g2d_p) = { "dout_shared2_div2", "dout_shared0_div3", 42362306a36Sopenharmony_ci "dout_shared4_div2", "dout_shared1_div3", 42462306a36Sopenharmony_ci "dout_shared2_div3", "dout_shared1_div4", 42562306a36Sopenharmony_ci "dout_shared2_div4", "dout_shared4_div4" }; 42662306a36Sopenharmony_ciPNAME(mout_clkcmu_g3d0_switch_p) = { "dout_shared0_div2", "dout_shared1_div2", 42762306a36Sopenharmony_ci "dout_shared2_div2", "dout_shared4_div2" }; 42862306a36Sopenharmony_ciPNAME(mout_clkcmu_g3d1_switch_p) = { "dout_shared2_div2", "dout_shared4_div2", 42962306a36Sopenharmony_ci "dout_shared2_div3", "dout_shared1_div4" }; 43062306a36Sopenharmony_ciPNAME(mout_clkcmu_mif_switch_p) = { "fout_shared0_pll", "fout_shared1_pll", 43162306a36Sopenharmony_ci "fout_shared2_pll", "fout_shared4_pll", 43262306a36Sopenharmony_ci "dout_shared0_div2", "dout_shared1_div2", 43362306a36Sopenharmony_ci "dout_shared2_div2", "fout_shared3_pll" }; 43462306a36Sopenharmony_ciPNAME(mout_clkcmu_npu_bus_p) = { "dout_shared1_div2", "dout_shared2_div2", 43562306a36Sopenharmony_ci "dout_shared0_div3", "dout_shared4_div2", 43662306a36Sopenharmony_ci "dout_shared1_div3", "dout_shared2_div3", 43762306a36Sopenharmony_ci "dout_shared1_div4", "fout_shared3_pll" }; 43862306a36Sopenharmony_ciPNAME(mout_clkcmu_peric0_bus_p) = { "dout_shared2_div3", "dout_shared2_div4" }; 43962306a36Sopenharmony_ci 44062306a36Sopenharmony_cistatic const struct samsung_mux_clock top_mux_clks[] __initconst = { 44162306a36Sopenharmony_ci /* CMU_TOP_PURECLKCOMP */ 44262306a36Sopenharmony_ci MUX(MOUT_SHARED0_PLL, "mout_shared0_pll", mout_shared0_pll_p, 44362306a36Sopenharmony_ci PLL_CON0_PLL_SHARED0, 4, 1), 44462306a36Sopenharmony_ci MUX(MOUT_SHARED1_PLL, "mout_shared1_pll", mout_shared1_pll_p, 44562306a36Sopenharmony_ci PLL_CON0_PLL_SHARED1, 4, 1), 44662306a36Sopenharmony_ci MUX(MOUT_SHARED2_PLL, "mout_shared2_pll", mout_shared2_pll_p, 44762306a36Sopenharmony_ci PLL_CON0_PLL_SHARED2, 4, 1), 44862306a36Sopenharmony_ci MUX(MOUT_SHARED3_PLL, "mout_shared3_pll", mout_shared3_pll_p, 44962306a36Sopenharmony_ci PLL_CON0_PLL_SHARED3, 4, 1), 45062306a36Sopenharmony_ci MUX(MOUT_SHARED4_PLL, "mout_shared4_pll", mout_shared4_pll_p, 45162306a36Sopenharmony_ci PLL_CON0_PLL_SHARED4, 4, 1), 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci /* BOOST */ 45462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CMU_BOOST, "mout_clkcmu_cmu_boost", 45562306a36Sopenharmony_ci mout_clkcmu_cmu_boost_p, CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 0, 2), 45662306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CMU_CMUREF, "mout_clkcmu_cmu_cmuref", 45762306a36Sopenharmony_ci mout_clkcmu_cmu_cmuref_p, CLK_CON_MUX_MUX_CMU_CMUREF, 0, 1), 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ci /* ACC */ 46062306a36Sopenharmony_ci MUX(MOUT_CLKCMU_ACC_BUS, "mout_clkcmu_acc_bus", mout_clkcmu_acc_bus_p, 46162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_ACC_BUS, 0, 2), 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci /* APM */ 46462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_APM_BUS, "mout_clkcmu_apm_bus", mout_clkcmu_apm_bus_p, 46562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 0, 2), 46662306a36Sopenharmony_ci 46762306a36Sopenharmony_ci /* AUD */ 46862306a36Sopenharmony_ci MUX(MOUT_CLKCMU_AUD_CPU, "mout_clkcmu_aud_cpu", mout_clkcmu_aud_cpu_p, 46962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 0, 3), 47062306a36Sopenharmony_ci MUX(MOUT_CLKCMU_AUD_BUS, "mout_clkcmu_aud_bus", mout_clkcmu_aud_bus_p, 47162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_AUD_BUS, 0, 2), 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ci /* BUSC */ 47462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_BUSC_BUS, "mout_clkcmu_busc_bus", 47562306a36Sopenharmony_ci mout_clkcmu_busc_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUSC_BUS, 0, 2), 47662306a36Sopenharmony_ci 47762306a36Sopenharmony_ci /* BUSMC */ 47862306a36Sopenharmony_ci MUX(MOUT_CLKCMU_BUSMC_BUS, "mout_clkcmu_busmc_bus", 47962306a36Sopenharmony_ci mout_clkcmu_busc_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUSMC_BUS, 0, 2), 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci /* CORE */ 48262306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CORE_BUS, "mout_clkcmu_core_bus", 48362306a36Sopenharmony_ci mout_clkcmu_core_bus_p, CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 0, 3), 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci /* CPUCL0 */ 48662306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CPUCL0_SWITCH, "mout_clkcmu_cpucl0_switch", 48762306a36Sopenharmony_ci mout_clkcmu_cpucl0_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 48862306a36Sopenharmony_ci 0, 2), 48962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CPUCL0_CLUSTER, "mout_clkcmu_cpucl0_cluster", 49062306a36Sopenharmony_ci mout_clkcmu_cpucl0_cluster_p, 49162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL0_CLUSTER, 0, 3), 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ci /* CPUCL1 */ 49462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CPUCL1_SWITCH, "mout_clkcmu_cpucl1_switch", 49562306a36Sopenharmony_ci mout_clkcmu_cpucl0_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 49662306a36Sopenharmony_ci 0, 2), 49762306a36Sopenharmony_ci MUX(MOUT_CLKCMU_CPUCL1_CLUSTER, "mout_clkcmu_cpucl1_cluster", 49862306a36Sopenharmony_ci mout_clkcmu_cpucl0_cluster_p, 49962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_CPUCL1_CLUSTER, 0, 3), 50062306a36Sopenharmony_ci 50162306a36Sopenharmony_ci /* DPTX */ 50262306a36Sopenharmony_ci MUX(MOUT_CLKCMU_DPTX_BUS, "mout_clkcmu_dptx_bus", 50362306a36Sopenharmony_ci mout_clkcmu_dptx_bus_p, CLK_CON_MUX_MUX_CLKCMU_DPTX_BUS, 0, 2), 50462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_DPTX_DPGTC, "mout_clkcmu_dptx_dpgtc", 50562306a36Sopenharmony_ci mout_clkcmu_dptx_dpgtc_p, CLK_CON_MUX_MUX_CLKCMU_DPTX_DPGTC, 0, 2), 50662306a36Sopenharmony_ci 50762306a36Sopenharmony_ci /* DPUM */ 50862306a36Sopenharmony_ci MUX(MOUT_CLKCMU_DPUM_BUS, "mout_clkcmu_dpum_bus", 50962306a36Sopenharmony_ci mout_clkcmu_dpum_bus_p, CLK_CON_MUX_MUX_CLKCMU_DPUM_BUS, 0, 3), 51062306a36Sopenharmony_ci 51162306a36Sopenharmony_ci /* DPUS */ 51262306a36Sopenharmony_ci MUX(MOUT_CLKCMU_DPUS0_BUS, "mout_clkcmu_dpus0_bus", 51362306a36Sopenharmony_ci mout_clkcmu_dpum_bus_p, CLK_CON_MUX_MUX_CLKCMU_DPUS0_BUS, 0, 3), 51462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_DPUS1_BUS, "mout_clkcmu_dpus1_bus", 51562306a36Sopenharmony_ci mout_clkcmu_dpum_bus_p, CLK_CON_MUX_MUX_CLKCMU_DPUS1_BUS, 0, 3), 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ci /* FSYS0 */ 51862306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS0_BUS, "mout_clkcmu_fsys0_bus", 51962306a36Sopenharmony_ci mout_clkcmu_fsys0_bus_p, CLK_CON_MUX_MUX_CLKCMU_FSYS0_BUS, 0, 2), 52062306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS0_PCIE, "mout_clkcmu_fsys0_pcie", 52162306a36Sopenharmony_ci mout_clkcmu_fsys0_pcie_p, CLK_CON_MUX_MUX_CLKCMU_FSYS0_PCIE, 0, 1), 52262306a36Sopenharmony_ci 52362306a36Sopenharmony_ci /* FSYS1 */ 52462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS1_BUS, "mout_clkcmu_fsys1_bus", 52562306a36Sopenharmony_ci mout_clkcmu_fsys1_bus_p, CLK_CON_MUX_MUX_CLKCMU_FSYS1_BUS, 0, 2), 52662306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS1_USBDRD, "mout_clkcmu_fsys1_usbdrd", 52762306a36Sopenharmony_ci mout_clkcmu_fsys1_usbdrd_p, CLK_CON_MUX_MUX_CLKCMU_FSYS1_USBDRD, 52862306a36Sopenharmony_ci 0, 2), 52962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS1_MMC_CARD, "mout_clkcmu_fsys1_mmc_card", 53062306a36Sopenharmony_ci mout_clkcmu_fsys1_mmc_card_p, 53162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS1_MMC_CARD, 0, 2), 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci /* FSYS2 */ 53462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS2_BUS, "mout_clkcmu_fsys2_bus", 53562306a36Sopenharmony_ci mout_clkcmu_fsys0_bus_p, CLK_CON_MUX_MUX_CLKCMU_FSYS2_BUS, 0, 2), 53662306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS2_UFS_EMBD, "mout_clkcmu_fsys2_ufs_embd", 53762306a36Sopenharmony_ci mout_clkcmu_fsys1_usbdrd_p, CLK_CON_MUX_MUX_CLKCMU_FSYS2_UFS_EMBD, 53862306a36Sopenharmony_ci 0, 2), 53962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_FSYS2_ETHERNET, "mout_clkcmu_fsys2_ethernet", 54062306a36Sopenharmony_ci mout_clkcmu_fsys2_ethernet_p, 54162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_FSYS2_ETHERNET, 0, 3), 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ci /* G2D */ 54462306a36Sopenharmony_ci MUX(MOUT_CLKCMU_G2D_G2D, "mout_clkcmu_g2d_g2d", mout_clkcmu_g2d_g2d_p, 54562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 0, 3), 54662306a36Sopenharmony_ci MUX(MOUT_CLKCMU_G2D_MSCL, "mout_clkcmu_g2d_mscl", 54762306a36Sopenharmony_ci mout_clkcmu_fsys1_bus_p, CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 2), 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci /* G3D0 */ 55062306a36Sopenharmony_ci MUX(MOUT_CLKCMU_G3D00_SWITCH, "mout_clkcmu_g3d00_switch", 55162306a36Sopenharmony_ci mout_clkcmu_g3d0_switch_p, CLK_CON_MUX_MUX_CLKCMU_G3D00_SWITCH, 55262306a36Sopenharmony_ci 0, 2), 55362306a36Sopenharmony_ci MUX(MOUT_CLKCMU_G3D01_SWITCH, "mout_clkcmu_g3d01_switch", 55462306a36Sopenharmony_ci mout_clkcmu_g3d0_switch_p, CLK_CON_MUX_MUX_CLKCMU_G3D01_SWITCH, 55562306a36Sopenharmony_ci 0, 2), 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci /* G3D1 */ 55862306a36Sopenharmony_ci MUX(MOUT_CLKCMU_G3D1_SWITCH, "mout_clkcmu_g3d1_switch", 55962306a36Sopenharmony_ci mout_clkcmu_g3d1_switch_p, CLK_CON_MUX_MUX_CLKCMU_G3D1_SWITCH, 56062306a36Sopenharmony_ci 0, 2), 56162306a36Sopenharmony_ci 56262306a36Sopenharmony_ci /* ISPB */ 56362306a36Sopenharmony_ci MUX(MOUT_CLKCMU_ISPB_BUS, "mout_clkcmu_ispb_bus", 56462306a36Sopenharmony_ci mout_clkcmu_acc_bus_p, CLK_CON_MUX_MUX_CLKCMU_ISPB_BUS, 0, 2), 56562306a36Sopenharmony_ci 56662306a36Sopenharmony_ci /* MFC */ 56762306a36Sopenharmony_ci MUX(MOUT_CLKCMU_MFC_MFC, "mout_clkcmu_mfc_mfc", 56862306a36Sopenharmony_ci mout_clkcmu_g3d1_switch_p, CLK_CON_MUX_MUX_CLKCMU_MFC_MFC, 0, 2), 56962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_MFC_WFD, "mout_clkcmu_mfc_wfd", 57062306a36Sopenharmony_ci mout_clkcmu_fsys0_bus_p, CLK_CON_MUX_MUX_CLKCMU_MFC_WFD, 0, 2), 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ci /* MIF */ 57362306a36Sopenharmony_ci MUX(MOUT_CLKCMU_MIF_SWITCH, "mout_clkcmu_mif_switch", 57462306a36Sopenharmony_ci mout_clkcmu_mif_switch_p, CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 0, 3), 57562306a36Sopenharmony_ci MUX(MOUT_CLKCMU_MIF_BUSP, "mout_clkcmu_mif_busp", 57662306a36Sopenharmony_ci mout_clkcmu_fsys1_bus_p, CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 0, 2), 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ci /* NPU */ 57962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_NPU_BUS, "mout_clkcmu_npu_bus", mout_clkcmu_npu_bus_p, 58062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 0, 3), 58162306a36Sopenharmony_ci 58262306a36Sopenharmony_ci /* PERIC0 */ 58362306a36Sopenharmony_ci MUX(MOUT_CLKCMU_PERIC0_BUS, "mout_clkcmu_peric0_bus", 58462306a36Sopenharmony_ci mout_clkcmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 0, 1), 58562306a36Sopenharmony_ci MUX(MOUT_CLKCMU_PERIC0_IP, "mout_clkcmu_peric0_ip", 58662306a36Sopenharmony_ci mout_clkcmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 0, 1), 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ci /* PERIC1 */ 58962306a36Sopenharmony_ci MUX(MOUT_CLKCMU_PERIC1_BUS, "mout_clkcmu_peric1_bus", 59062306a36Sopenharmony_ci mout_clkcmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 0, 1), 59162306a36Sopenharmony_ci MUX(MOUT_CLKCMU_PERIC1_IP, "mout_clkcmu_peric1_ip", 59262306a36Sopenharmony_ci mout_clkcmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 0, 1), 59362306a36Sopenharmony_ci 59462306a36Sopenharmony_ci /* PERIS */ 59562306a36Sopenharmony_ci MUX(MOUT_CLKCMU_PERIS_BUS, "mout_clkcmu_peris_bus", 59662306a36Sopenharmony_ci mout_clkcmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 0, 1), 59762306a36Sopenharmony_ci}; 59862306a36Sopenharmony_ci 59962306a36Sopenharmony_cistatic const struct samsung_div_clock top_div_clks[] __initconst = { 60062306a36Sopenharmony_ci /* CMU_TOP_PURECLKCOMP */ 60162306a36Sopenharmony_ci DIV(DOUT_SHARED0_DIV3, "dout_shared0_div3", "mout_shared0_pll", 60262306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2), 60362306a36Sopenharmony_ci DIV(DOUT_SHARED0_DIV2, "dout_shared0_div2", "mout_shared0_pll", 60462306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1), 60562306a36Sopenharmony_ci 60662306a36Sopenharmony_ci DIV(DOUT_SHARED1_DIV3, "dout_shared1_div3", "mout_shared1_pll", 60762306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2), 60862306a36Sopenharmony_ci DIV(DOUT_SHARED1_DIV2, "dout_shared1_div2", "mout_shared1_pll", 60962306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1), 61062306a36Sopenharmony_ci DIV(DOUT_SHARED1_DIV4, "dout_shared1_div4", "dout_shared1_div2", 61162306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1), 61262306a36Sopenharmony_ci 61362306a36Sopenharmony_ci DIV(DOUT_SHARED2_DIV3, "dout_shared2_div3", "mout_shared2_pll", 61462306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV3, 0, 2), 61562306a36Sopenharmony_ci DIV(DOUT_SHARED2_DIV2, "dout_shared2_div2", "mout_shared2_pll", 61662306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1), 61762306a36Sopenharmony_ci DIV(DOUT_SHARED2_DIV4, "dout_shared2_div4", "dout_shared2_div2", 61862306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED2_DIV4, 0, 1), 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ci DIV(DOUT_SHARED4_DIV2, "dout_shared4_div2", "mout_shared4_pll", 62162306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED4_DIV2, 0, 1), 62262306a36Sopenharmony_ci DIV(DOUT_SHARED4_DIV4, "dout_shared4_div4", "dout_shared4_div2", 62362306a36Sopenharmony_ci CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1), 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ci /* BOOST */ 62662306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CMU_BOOST, "dout_clkcmu_cmu_boost", 62762306a36Sopenharmony_ci "gout_clkcmu_cmu_boost", CLK_CON_DIV_DIV_CLKCMU_CMU_BOOST, 0, 2), 62862306a36Sopenharmony_ci 62962306a36Sopenharmony_ci /* ACC */ 63062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_ACC_BUS, "dout_clkcmu_acc_bus", "gout_clkcmu_acc_bus", 63162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_ACC_BUS, 0, 4), 63262306a36Sopenharmony_ci 63362306a36Sopenharmony_ci /* APM */ 63462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_APM_BUS, "dout_clkcmu_apm_bus", "gout_clkcmu_apm_bus", 63562306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_APM_BUS, 0, 3), 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_ci /* AUD */ 63862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_AUD_CPU, "dout_clkcmu_aud_cpu", "gout_clkcmu_aud_cpu", 63962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_AUD_CPU, 0, 3), 64062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_AUD_BUS, "dout_clkcmu_aud_bus", "gout_clkcmu_aud_bus", 64162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_AUD_BUS, 0, 4), 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_ci /* BUSC */ 64462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_BUSC_BUS, "dout_clkcmu_busc_bus", 64562306a36Sopenharmony_ci "gout_clkcmu_busc_bus", CLK_CON_DIV_CLKCMU_BUSC_BUS, 0, 4), 64662306a36Sopenharmony_ci 64762306a36Sopenharmony_ci /* BUSMC */ 64862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_BUSMC_BUS, "dout_clkcmu_busmc_bus", 64962306a36Sopenharmony_ci "gout_clkcmu_busmc_bus", CLK_CON_DIV_CLKCMU_BUSMC_BUS, 0, 4), 65062306a36Sopenharmony_ci 65162306a36Sopenharmony_ci /* CORE */ 65262306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CORE_BUS, "dout_clkcmu_core_bus", 65362306a36Sopenharmony_ci "gout_clkcmu_core_bus", CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4), 65462306a36Sopenharmony_ci 65562306a36Sopenharmony_ci /* CPUCL0 */ 65662306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CPUCL0_SWITCH, "dout_clkcmu_cpucl0_switch", 65762306a36Sopenharmony_ci "gout_clkcmu_cpucl0_switch", CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 65862306a36Sopenharmony_ci 0, 3), 65962306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CPUCL0_CLUSTER, "dout_clkcmu_cpucl0_cluster", 66062306a36Sopenharmony_ci "gout_clkcmu_cpucl0_cluster", CLK_CON_DIV_CLKCMU_CPUCL0_CLUSTER, 66162306a36Sopenharmony_ci 0, 3), 66262306a36Sopenharmony_ci 66362306a36Sopenharmony_ci /* CPUCL1 */ 66462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CPUCL1_SWITCH, "dout_clkcmu_cpucl1_switch", 66562306a36Sopenharmony_ci "gout_clkcmu_cpucl1_switch", CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 66662306a36Sopenharmony_ci 0, 3), 66762306a36Sopenharmony_ci DIV(DOUT_CLKCMU_CPUCL1_CLUSTER, "dout_clkcmu_cpucl1_cluster", 66862306a36Sopenharmony_ci "gout_clkcmu_cpucl1_cluster", CLK_CON_DIV_CLKCMU_CPUCL1_CLUSTER, 66962306a36Sopenharmony_ci 0, 3), 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_ci /* DPTX */ 67262306a36Sopenharmony_ci DIV(DOUT_CLKCMU_DPTX_BUS, "dout_clkcmu_dptx_bus", 67362306a36Sopenharmony_ci "gout_clkcmu_dptx_bus", CLK_CON_DIV_CLKCMU_DPTX_BUS, 0, 4), 67462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_DPTX_DPGTC, "dout_clkcmu_dptx_dpgtc", 67562306a36Sopenharmony_ci "gout_clkcmu_dptx_dpgtc", CLK_CON_DIV_CLKCMU_DPTX_DPGTC, 0, 3), 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_ci /* DPUM */ 67862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_DPUM_BUS, "dout_clkcmu_dpum_bus", 67962306a36Sopenharmony_ci "gout_clkcmu_dpum_bus", CLK_CON_DIV_CLKCMU_DPUM_BUS, 0, 4), 68062306a36Sopenharmony_ci 68162306a36Sopenharmony_ci /* DPUS */ 68262306a36Sopenharmony_ci DIV(DOUT_CLKCMU_DPUS0_BUS, "dout_clkcmu_dpus0_bus", 68362306a36Sopenharmony_ci "gout_clkcmu_dpus0_bus", CLK_CON_DIV_CLKCMU_DPUS0_BUS, 0, 4), 68462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_DPUS1_BUS, "dout_clkcmu_dpus1_bus", 68562306a36Sopenharmony_ci "gout_clkcmu_dpus1_bus", CLK_CON_DIV_CLKCMU_DPUS1_BUS, 0, 4), 68662306a36Sopenharmony_ci 68762306a36Sopenharmony_ci /* FSYS0 */ 68862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS0_BUS, "dout_clkcmu_fsys0_bus", 68962306a36Sopenharmony_ci "gout_clkcmu_fsys0_bus", CLK_CON_DIV_CLKCMU_FSYS0_BUS, 0, 4), 69062306a36Sopenharmony_ci 69162306a36Sopenharmony_ci /* FSYS1 */ 69262306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS1_BUS, "dout_clkcmu_fsys1_bus", 69362306a36Sopenharmony_ci "gout_clkcmu_fsys1_bus", CLK_CON_DIV_CLKCMU_FSYS1_BUS, 0, 4), 69462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS1_USBDRD, "dout_clkcmu_fsys1_usbdrd", 69562306a36Sopenharmony_ci "gout_clkcmu_fsys1_usbdrd", CLK_CON_DIV_CLKCMU_FSYS1_USBDRD, 0, 4), 69662306a36Sopenharmony_ci 69762306a36Sopenharmony_ci /* FSYS2 */ 69862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS2_BUS, "dout_clkcmu_fsys2_bus", 69962306a36Sopenharmony_ci "gout_clkcmu_fsys2_bus", CLK_CON_DIV_CLKCMU_FSYS2_BUS, 0, 4), 70062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS2_UFS_EMBD, "dout_clkcmu_fsys2_ufs_embd", 70162306a36Sopenharmony_ci "gout_clkcmu_fsys2_ufs_embd", CLK_CON_DIV_CLKCMU_FSYS2_UFS_EMBD, 70262306a36Sopenharmony_ci 0, 3), 70362306a36Sopenharmony_ci DIV(DOUT_CLKCMU_FSYS2_ETHERNET, "dout_clkcmu_fsys2_ethernet", 70462306a36Sopenharmony_ci "gout_clkcmu_fsys2_ethernet", CLK_CON_DIV_CLKCMU_FSYS2_ETHERNET, 70562306a36Sopenharmony_ci 0, 3), 70662306a36Sopenharmony_ci 70762306a36Sopenharmony_ci /* G2D */ 70862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_G2D_G2D, "dout_clkcmu_g2d_g2d", "gout_clkcmu_g2d_g2d", 70962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_G2D_G2D, 0, 4), 71062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_G2D_MSCL, "dout_clkcmu_g2d_mscl", 71162306a36Sopenharmony_ci "gout_clkcmu_g2d_mscl", CLK_CON_DIV_CLKCMU_G2D_MSCL, 0, 4), 71262306a36Sopenharmony_ci 71362306a36Sopenharmony_ci /* G3D0 */ 71462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_G3D00_SWITCH, "dout_clkcmu_g3d00_switch", 71562306a36Sopenharmony_ci "gout_clkcmu_g3d00_switch", CLK_CON_DIV_CLKCMU_G3D00_SWITCH, 0, 3), 71662306a36Sopenharmony_ci DIV(DOUT_CLKCMU_G3D01_SWITCH, "dout_clkcmu_g3d01_switch", 71762306a36Sopenharmony_ci "gout_clkcmu_g3d01_switch", CLK_CON_DIV_CLKCMU_G3D01_SWITCH, 0, 3), 71862306a36Sopenharmony_ci 71962306a36Sopenharmony_ci /* G3D1 */ 72062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_G3D1_SWITCH, "dout_clkcmu_g3d1_switch", 72162306a36Sopenharmony_ci "gout_clkcmu_g3d1_switch", CLK_CON_DIV_CLKCMU_G3D1_SWITCH, 0, 3), 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_ci /* ISPB */ 72462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_ISPB_BUS, "dout_clkcmu_ispb_bus", 72562306a36Sopenharmony_ci "gout_clkcmu_ispb_bus", CLK_CON_DIV_CLKCMU_ISPB_BUS, 0, 4), 72662306a36Sopenharmony_ci 72762306a36Sopenharmony_ci /* MFC */ 72862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_MFC_MFC, "dout_clkcmu_mfc_mfc", "gout_clkcmu_mfc_mfc", 72962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_MFC_MFC, 0, 4), 73062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_MFC_WFD, "dout_clkcmu_mfc_wfd", "gout_clkcmu_mfc_wfd", 73162306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_MFC_WFD, 0, 4), 73262306a36Sopenharmony_ci 73362306a36Sopenharmony_ci /* MIF */ 73462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_MIF_BUSP, "dout_clkcmu_mif_busp", 73562306a36Sopenharmony_ci "gout_clkcmu_mif_busp", CLK_CON_DIV_CLKCMU_MIF_BUSP, 0, 4), 73662306a36Sopenharmony_ci 73762306a36Sopenharmony_ci /* NPU */ 73862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_NPU_BUS, "dout_clkcmu_npu_bus", "gout_clkcmu_npu_bus", 73962306a36Sopenharmony_ci CLK_CON_DIV_CLKCMU_NPU_BUS, 0, 4), 74062306a36Sopenharmony_ci 74162306a36Sopenharmony_ci /* PERIC0 */ 74262306a36Sopenharmony_ci DIV(DOUT_CLKCMU_PERIC0_BUS, "dout_clkcmu_peric0_bus", 74362306a36Sopenharmony_ci "gout_clkcmu_peric0_bus", CLK_CON_DIV_CLKCMU_PERIC0_BUS, 0, 4), 74462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_PERIC0_IP, "dout_clkcmu_peric0_ip", 74562306a36Sopenharmony_ci "gout_clkcmu_peric0_ip", CLK_CON_DIV_CLKCMU_PERIC0_IP, 0, 4), 74662306a36Sopenharmony_ci 74762306a36Sopenharmony_ci /* PERIC1 */ 74862306a36Sopenharmony_ci DIV(DOUT_CLKCMU_PERIC1_BUS, "dout_clkcmu_peric1_bus", 74962306a36Sopenharmony_ci "gout_clkcmu_peric1_bus", CLK_CON_DIV_CLKCMU_PERIC1_BUS, 0, 4), 75062306a36Sopenharmony_ci DIV(DOUT_CLKCMU_PERIC1_IP, "dout_clkcmu_peric1_ip", 75162306a36Sopenharmony_ci "gout_clkcmu_peric1_ip", CLK_CON_DIV_CLKCMU_PERIC1_IP, 0, 4), 75262306a36Sopenharmony_ci 75362306a36Sopenharmony_ci /* PERIS */ 75462306a36Sopenharmony_ci DIV(DOUT_CLKCMU_PERIS_BUS, "dout_clkcmu_peris_bus", 75562306a36Sopenharmony_ci "gout_clkcmu_peris_bus", CLK_CON_DIV_CLKCMU_PERIS_BUS, 0, 4), 75662306a36Sopenharmony_ci}; 75762306a36Sopenharmony_ci 75862306a36Sopenharmony_cistatic const struct samsung_fixed_factor_clock top_fixed_factor_clks[] __initconst = { 75962306a36Sopenharmony_ci FFACTOR(DOUT_CLKCMU_FSYS0_PCIE, "dout_clkcmu_fsys0_pcie", 76062306a36Sopenharmony_ci "gout_clkcmu_fsys0_pcie", 1, 4, 0), 76162306a36Sopenharmony_ci}; 76262306a36Sopenharmony_ci 76362306a36Sopenharmony_cistatic const struct samsung_gate_clock top_gate_clks[] __initconst = { 76462306a36Sopenharmony_ci /* BOOST */ 76562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CMU_BOOST, "gout_clkcmu_cmu_boost", 76662306a36Sopenharmony_ci "mout_clkcmu_cmu_boost", CLK_CON_GAT_GATE_CLKCMU_CMU_BOOST, 76762306a36Sopenharmony_ci 21, 0, 0), 76862306a36Sopenharmony_ci 76962306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL0_BOOST, "gout_clkcmu_cpucl0_boost", 77062306a36Sopenharmony_ci "dout_cmu_boost", CLK_CON_GAT_CLKCMU_CMU_CPUCL0_BOOST, 21, 0, 0), 77162306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL1_BOOST, "gout_clkcmu_cpucl1_boost", 77262306a36Sopenharmony_ci "dout_cmu_boost", CLK_CON_GAT_CLKCMU_CMU_CPUCL1_BOOST, 21, 0, 0), 77362306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CORE_BOOST, "gout_clkcmu_core_boost", 77462306a36Sopenharmony_ci "dout_cmu_boost", CLK_CON_GAT_CLKCMU_CMU_CORE_BOOST, 21, 0, 0), 77562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_BUSC_BOOST, "gout_clkcmu_busc_boost", 77662306a36Sopenharmony_ci "dout_cmu_boost", CLK_CON_GAT_CLKCMU_CMU_BUSC_BOOST, 21, 0, 0), 77762306a36Sopenharmony_ci 77862306a36Sopenharmony_ci GATE(GOUT_CLKCMU_BUSMC_BOOST, "gout_clkcmu_busmc_boost", 77962306a36Sopenharmony_ci "dout_cmu_boost", CLK_CON_GAT_CLKCMU_CMU_BUSMC_BOOST, 21, 0, 0), 78062306a36Sopenharmony_ci GATE(GOUT_CLKCMU_MIF_BOOST, "gout_clkcmu_mif_boost", "dout_cmu_boost", 78162306a36Sopenharmony_ci CLK_CON_GAT_CLKCMU_CMU_MIF_BOOST, 21, 0, 0), 78262306a36Sopenharmony_ci 78362306a36Sopenharmony_ci /* ACC */ 78462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_ACC_BUS, "gout_clkcmu_acc_bus", "mout_clkcmu_acc_bus", 78562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_ACC_BUS, 21, 0, 0), 78662306a36Sopenharmony_ci 78762306a36Sopenharmony_ci /* APM */ 78862306a36Sopenharmony_ci GATE(GOUT_CLKCMU_APM_BUS, "gout_clkcmu_apm_bus", "mout_clkcmu_apm_bus", 78962306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 21, CLK_IGNORE_UNUSED, 0), 79062306a36Sopenharmony_ci 79162306a36Sopenharmony_ci /* AUD */ 79262306a36Sopenharmony_ci GATE(GOUT_CLKCMU_AUD_CPU, "gout_clkcmu_aud_cpu", "mout_clkcmu_aud_cpu", 79362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 21, 0, 0), 79462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_AUD_BUS, "gout_clkcmu_aud_bus", "mout_clkcmu_aud_bus", 79562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_AUD_BUS, 21, 0, 0), 79662306a36Sopenharmony_ci 79762306a36Sopenharmony_ci /* BUSC */ 79862306a36Sopenharmony_ci GATE(GOUT_CLKCMU_BUSC_BUS, "gout_clkcmu_busc_bus", 79962306a36Sopenharmony_ci "mout_clkcmu_busc_bus", CLK_CON_GAT_GATE_CLKCMU_BUSC_BUS, 21, 80062306a36Sopenharmony_ci CLK_IS_CRITICAL, 0), 80162306a36Sopenharmony_ci 80262306a36Sopenharmony_ci /* BUSMC */ 80362306a36Sopenharmony_ci GATE(GOUT_CLKCMU_BUSMC_BUS, "gout_clkcmu_busmc_bus", 80462306a36Sopenharmony_ci "mout_clkcmu_busmc_bus", CLK_CON_GAT_GATE_CLKCMU_BUSMC_BUS, 21, 80562306a36Sopenharmony_ci CLK_IS_CRITICAL, 0), 80662306a36Sopenharmony_ci 80762306a36Sopenharmony_ci /* CORE */ 80862306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CORE_BUS, "gout_clkcmu_core_bus", 80962306a36Sopenharmony_ci "mout_clkcmu_core_bus", CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 81062306a36Sopenharmony_ci 21, 0, 0), 81162306a36Sopenharmony_ci 81262306a36Sopenharmony_ci /* CPUCL0 */ 81362306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL0_SWITCH, "gout_clkcmu_cpucl0_switch", 81462306a36Sopenharmony_ci "mout_clkcmu_cpucl0_switch", 81562306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 21, CLK_IGNORE_UNUSED, 0), 81662306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL0_CLUSTER, "gout_clkcmu_cpucl0_cluster", 81762306a36Sopenharmony_ci "mout_clkcmu_cpucl0_cluster", 81862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL0_CLUSTER, 21, CLK_IGNORE_UNUSED, 0), 81962306a36Sopenharmony_ci 82062306a36Sopenharmony_ci /* CPUCL1 */ 82162306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL1_SWITCH, "gout_clkcmu_cpucl1_switch", 82262306a36Sopenharmony_ci "mout_clkcmu_cpucl1_switch", 82362306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 21, CLK_IGNORE_UNUSED, 0), 82462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_CPUCL1_CLUSTER, "gout_clkcmu_cpucl1_cluster", 82562306a36Sopenharmony_ci "mout_clkcmu_cpucl1_cluster", 82662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_CPUCL1_CLUSTER, 21, CLK_IGNORE_UNUSED, 0), 82762306a36Sopenharmony_ci 82862306a36Sopenharmony_ci /* DPTX */ 82962306a36Sopenharmony_ci GATE(GOUT_CLKCMU_DPTX_BUS, "gout_clkcmu_dptx_bus", 83062306a36Sopenharmony_ci "mout_clkcmu_dptx_bus", CLK_CON_GAT_GATE_CLKCMU_DPTX_BUS, 83162306a36Sopenharmony_ci 21, 0, 0), 83262306a36Sopenharmony_ci GATE(GOUT_CLKCMU_DPTX_DPGTC, "gout_clkcmu_dptx_dpgtc", 83362306a36Sopenharmony_ci "mout_clkcmu_dptx_dpgtc", CLK_CON_GAT_GATE_CLKCMU_DPTX_DPGTC, 83462306a36Sopenharmony_ci 21, 0, 0), 83562306a36Sopenharmony_ci 83662306a36Sopenharmony_ci /* DPUM */ 83762306a36Sopenharmony_ci GATE(GOUT_CLKCMU_DPUM_BUS, "gout_clkcmu_dpum_bus", 83862306a36Sopenharmony_ci "mout_clkcmu_dpum_bus", CLK_CON_GAT_GATE_CLKCMU_DPUM_BUS, 83962306a36Sopenharmony_ci 21, 0, 0), 84062306a36Sopenharmony_ci 84162306a36Sopenharmony_ci /* DPUS */ 84262306a36Sopenharmony_ci GATE(GOUT_CLKCMU_DPUS0_BUS, "gout_clkcmu_dpus0_bus", 84362306a36Sopenharmony_ci "mout_clkcmu_dpus0_bus", CLK_CON_GAT_GATE_CLKCMU_DPUS0_BUS, 84462306a36Sopenharmony_ci 21, 0, 0), 84562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_DPUS1_BUS, "gout_clkcmu_dpus1_bus", 84662306a36Sopenharmony_ci "mout_clkcmu_dpus1_bus", CLK_CON_GAT_GATE_CLKCMU_DPUS1_BUS, 84762306a36Sopenharmony_ci 21, 0, 0), 84862306a36Sopenharmony_ci 84962306a36Sopenharmony_ci /* FSYS0 */ 85062306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS0_BUS, "gout_clkcmu_fsys0_bus", 85162306a36Sopenharmony_ci "mout_clkcmu_fsys0_bus", CLK_CON_GAT_GATE_CLKCMU_FSYS0_BUS, 85262306a36Sopenharmony_ci 21, 0, 0), 85362306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS0_PCIE, "gout_clkcmu_fsys0_pcie", 85462306a36Sopenharmony_ci "mout_clkcmu_fsys0_pcie", CLK_CON_GAT_GATE_CLKCMU_FSYS0_PCIE, 85562306a36Sopenharmony_ci 21, 0, 0), 85662306a36Sopenharmony_ci 85762306a36Sopenharmony_ci /* FSYS1 */ 85862306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS1_BUS, "gout_clkcmu_fsys1_bus", 85962306a36Sopenharmony_ci "mout_clkcmu_fsys1_bus", CLK_CON_GAT_GATE_CLKCMU_FSYS1_BUS, 86062306a36Sopenharmony_ci 21, 0, 0), 86162306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS1_USBDRD, "gout_clkcmu_fsys1_usbdrd", 86262306a36Sopenharmony_ci "mout_clkcmu_fsys1_usbdrd", CLK_CON_GAT_GATE_CLKCMU_FSYS1_USBDRD, 86362306a36Sopenharmony_ci 21, 0, 0), 86462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS1_MMC_CARD, "gout_clkcmu_fsys1_mmc_card", 86562306a36Sopenharmony_ci "mout_clkcmu_fsys1_mmc_card", 86662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS1_MMC_CARD, 21, 0, 0), 86762306a36Sopenharmony_ci 86862306a36Sopenharmony_ci /* FSYS2 */ 86962306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS2_BUS, "gout_clkcmu_fsys2_bus", 87062306a36Sopenharmony_ci "mout_clkcmu_fsys2_bus", CLK_CON_GAT_GATE_CLKCMU_FSYS2_BUS, 87162306a36Sopenharmony_ci 21, 0, 0), 87262306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS2_UFS_EMBD, "gout_clkcmu_fsys2_ufs_embd", 87362306a36Sopenharmony_ci "mout_clkcmu_fsys2_ufs_embd", 87462306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS2_UFS_EMBD, 21, 0, 0), 87562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_FSYS2_ETHERNET, "gout_clkcmu_fsys2_ethernet", 87662306a36Sopenharmony_ci "mout_clkcmu_fsys2_ethernet", 87762306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_FSYS2_ETHERNET, 21, 0, 0), 87862306a36Sopenharmony_ci 87962306a36Sopenharmony_ci /* G2D */ 88062306a36Sopenharmony_ci GATE(GOUT_CLKCMU_G2D_G2D, "gout_clkcmu_g2d_g2d", 88162306a36Sopenharmony_ci "mout_clkcmu_g2d_g2d", CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 21, 0, 0), 88262306a36Sopenharmony_ci GATE(GOUT_CLKCMU_G2D_MSCL, "gout_clkcmu_g2d_mscl", 88362306a36Sopenharmony_ci "mout_clkcmu_g2d_mscl", CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 88462306a36Sopenharmony_ci 21, 0, 0), 88562306a36Sopenharmony_ci 88662306a36Sopenharmony_ci /* G3D0 */ 88762306a36Sopenharmony_ci GATE(GOUT_CLKCMU_G3D00_SWITCH, "gout_clkcmu_g3d00_switch", 88862306a36Sopenharmony_ci "mout_clkcmu_g3d00_switch", CLK_CON_GAT_GATE_CLKCMU_G3D00_SWITCH, 88962306a36Sopenharmony_ci 21, 0, 0), 89062306a36Sopenharmony_ci GATE(GOUT_CLKCMU_G3D01_SWITCH, "gout_clkcmu_g3d01_switch", 89162306a36Sopenharmony_ci "mout_clkcmu_g3d01_switch", CLK_CON_GAT_GATE_CLKCMU_G3D01_SWITCH, 89262306a36Sopenharmony_ci 21, 0, 0), 89362306a36Sopenharmony_ci 89462306a36Sopenharmony_ci /* G3D1 */ 89562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_G3D1_SWITCH, "gout_clkcmu_g3d1_switch", 89662306a36Sopenharmony_ci "mout_clkcmu_g3d1_switch", CLK_CON_GAT_GATE_CLKCMU_G3D1_SWITCH, 89762306a36Sopenharmony_ci 21, 0, 0), 89862306a36Sopenharmony_ci 89962306a36Sopenharmony_ci /* ISPB */ 90062306a36Sopenharmony_ci GATE(GOUT_CLKCMU_ISPB_BUS, "gout_clkcmu_ispb_bus", 90162306a36Sopenharmony_ci "mout_clkcmu_ispb_bus", CLK_CON_GAT_GATE_CLKCMU_ISPB_BUS, 90262306a36Sopenharmony_ci 21, 0, 0), 90362306a36Sopenharmony_ci 90462306a36Sopenharmony_ci /* MFC */ 90562306a36Sopenharmony_ci GATE(GOUT_CLKCMU_MFC_MFC, "gout_clkcmu_mfc_mfc", "mout_clkcmu_mfc_mfc", 90662306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MFC_MFC, 21, 0, 0), 90762306a36Sopenharmony_ci GATE(GOUT_CLKCMU_MFC_WFD, "gout_clkcmu_mfc_wfd", "mout_clkcmu_mfc_wfd", 90862306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_MFC_WFD, 21, 0, 0), 90962306a36Sopenharmony_ci 91062306a36Sopenharmony_ci /* MIF */ 91162306a36Sopenharmony_ci GATE(GOUT_CLKCMU_MIF_SWITCH, "gout_clkcmu_mif_switch", 91262306a36Sopenharmony_ci "mout_clkcmu_mif_switch", CLK_CON_GAT_GATE_CLKCMU_MIF_SWITCH, 91362306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 91462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_MIF_BUSP, "gout_clkcmu_mif_busp", 91562306a36Sopenharmony_ci "mout_clkcmu_mif_busp", CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 91662306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 91762306a36Sopenharmony_ci 91862306a36Sopenharmony_ci /* NPU */ 91962306a36Sopenharmony_ci GATE(GOUT_CLKCMU_NPU_BUS, "gout_clkcmu_npu_bus", "mout_clkcmu_npu_bus", 92062306a36Sopenharmony_ci CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 21, 0, 0), 92162306a36Sopenharmony_ci 92262306a36Sopenharmony_ci /* PERIC0 */ 92362306a36Sopenharmony_ci GATE(GOUT_CLKCMU_PERIC0_BUS, "gout_clkcmu_peric0_bus", 92462306a36Sopenharmony_ci "mout_clkcmu_peric0_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 92562306a36Sopenharmony_ci 21, 0, 0), 92662306a36Sopenharmony_ci GATE(GOUT_CLKCMU_PERIC0_IP, "gout_clkcmu_peric0_ip", 92762306a36Sopenharmony_ci "mout_clkcmu_peric0_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 92862306a36Sopenharmony_ci 21, 0, 0), 92962306a36Sopenharmony_ci 93062306a36Sopenharmony_ci /* PERIC1 */ 93162306a36Sopenharmony_ci GATE(GOUT_CLKCMU_PERIC1_BUS, "gout_clkcmu_peric1_bus", 93262306a36Sopenharmony_ci "mout_clkcmu_peric1_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 93362306a36Sopenharmony_ci 21, 0, 0), 93462306a36Sopenharmony_ci GATE(GOUT_CLKCMU_PERIC1_IP, "gout_clkcmu_peric1_ip", 93562306a36Sopenharmony_ci "mout_clkcmu_peric1_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 93662306a36Sopenharmony_ci 21, 0, 0), 93762306a36Sopenharmony_ci 93862306a36Sopenharmony_ci /* PERIS */ 93962306a36Sopenharmony_ci GATE(GOUT_CLKCMU_PERIS_BUS, "gout_clkcmu_peris_bus", 94062306a36Sopenharmony_ci "mout_clkcmu_peris_bus", CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 94162306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 94262306a36Sopenharmony_ci}; 94362306a36Sopenharmony_ci 94462306a36Sopenharmony_cistatic const struct samsung_cmu_info top_cmu_info __initconst = { 94562306a36Sopenharmony_ci .pll_clks = top_pll_clks, 94662306a36Sopenharmony_ci .nr_pll_clks = ARRAY_SIZE(top_pll_clks), 94762306a36Sopenharmony_ci .mux_clks = top_mux_clks, 94862306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(top_mux_clks), 94962306a36Sopenharmony_ci .div_clks = top_div_clks, 95062306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(top_div_clks), 95162306a36Sopenharmony_ci .fixed_factor_clks = top_fixed_factor_clks, 95262306a36Sopenharmony_ci .nr_fixed_factor_clks = ARRAY_SIZE(top_fixed_factor_clks), 95362306a36Sopenharmony_ci .gate_clks = top_gate_clks, 95462306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(top_gate_clks), 95562306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_TOP, 95662306a36Sopenharmony_ci .clk_regs = top_clk_regs, 95762306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(top_clk_regs), 95862306a36Sopenharmony_ci}; 95962306a36Sopenharmony_ci 96062306a36Sopenharmony_cistatic void __init exynosautov9_cmu_top_init(struct device_node *np) 96162306a36Sopenharmony_ci{ 96262306a36Sopenharmony_ci exynos_arm64_register_cmu(NULL, np, &top_cmu_info); 96362306a36Sopenharmony_ci} 96462306a36Sopenharmony_ci 96562306a36Sopenharmony_ci/* Register CMU_TOP early, as it's a dependency for other early domains */ 96662306a36Sopenharmony_ciCLK_OF_DECLARE(exynosautov9_cmu_top, "samsung,exynosautov9-cmu-top", 96762306a36Sopenharmony_ci exynosautov9_cmu_top_init); 96862306a36Sopenharmony_ci 96962306a36Sopenharmony_ci/* ---- CMU_BUSMC ---------------------------------------------------------- */ 97062306a36Sopenharmony_ci 97162306a36Sopenharmony_ci/* Register Offset definitions for CMU_BUSMC (0x1b200000) */ 97262306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_BUSMC_BUS_USER 0x0600 97362306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_BUSMC_BUSP 0x1800 97462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_PDMA0_IPCLKPORT_PCLK 0x2078 97562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_SPDMA_IPCLKPORT_PCLK 0x2080 97662306a36Sopenharmony_ci 97762306a36Sopenharmony_cistatic const unsigned long busmc_clk_regs[] __initconst = { 97862306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_BUSMC_BUS_USER, 97962306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_BUSMC_BUSP, 98062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_PDMA0_IPCLKPORT_PCLK, 98162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_SPDMA_IPCLKPORT_PCLK, 98262306a36Sopenharmony_ci}; 98362306a36Sopenharmony_ci 98462306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_BUSMC */ 98562306a36Sopenharmony_ciPNAME(mout_busmc_bus_user_p) = { "oscclk", "dout_clkcmu_busmc_bus" }; 98662306a36Sopenharmony_ci 98762306a36Sopenharmony_cistatic const struct samsung_mux_clock busmc_mux_clks[] __initconst = { 98862306a36Sopenharmony_ci MUX(CLK_MOUT_BUSMC_BUS_USER, "mout_busmc_bus_user", 98962306a36Sopenharmony_ci mout_busmc_bus_user_p, PLL_CON0_MUX_CLKCMU_BUSMC_BUS_USER, 4, 1), 99062306a36Sopenharmony_ci}; 99162306a36Sopenharmony_ci 99262306a36Sopenharmony_cistatic const struct samsung_div_clock busmc_div_clks[] __initconst = { 99362306a36Sopenharmony_ci DIV(CLK_DOUT_BUSMC_BUSP, "dout_busmc_busp", "mout_busmc_bus_user", 99462306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_BUSMC_BUSP, 0, 3), 99562306a36Sopenharmony_ci}; 99662306a36Sopenharmony_ci 99762306a36Sopenharmony_cistatic const struct samsung_gate_clock busmc_gate_clks[] __initconst = { 99862306a36Sopenharmony_ci GATE(CLK_GOUT_BUSMC_PDMA0_PCLK, "gout_busmc_pdma0_pclk", 99962306a36Sopenharmony_ci "dout_busmc_busp", 100062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_PDMA0_IPCLKPORT_PCLK, 21, 100162306a36Sopenharmony_ci 0, 0), 100262306a36Sopenharmony_ci GATE(CLK_GOUT_BUSMC_SPDMA_PCLK, "gout_busmc_spdma_pclk", 100362306a36Sopenharmony_ci "dout_busmc_busp", 100462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_BUSMC_UID_QE_SPDMA_IPCLKPORT_PCLK, 21, 100562306a36Sopenharmony_ci 0, 0), 100662306a36Sopenharmony_ci}; 100762306a36Sopenharmony_ci 100862306a36Sopenharmony_cistatic const struct samsung_cmu_info busmc_cmu_info __initconst = { 100962306a36Sopenharmony_ci .mux_clks = busmc_mux_clks, 101062306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(busmc_mux_clks), 101162306a36Sopenharmony_ci .div_clks = busmc_div_clks, 101262306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(busmc_div_clks), 101362306a36Sopenharmony_ci .gate_clks = busmc_gate_clks, 101462306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(busmc_gate_clks), 101562306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_BUSMC, 101662306a36Sopenharmony_ci .clk_regs = busmc_clk_regs, 101762306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(busmc_clk_regs), 101862306a36Sopenharmony_ci .clk_name = "dout_clkcmu_busmc_bus", 101962306a36Sopenharmony_ci}; 102062306a36Sopenharmony_ci 102162306a36Sopenharmony_ci/* ---- CMU_CORE ----------------------------------------------------------- */ 102262306a36Sopenharmony_ci 102362306a36Sopenharmony_ci/* Register Offset definitions for CMU_CORE (0x1b030000) */ 102462306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_CORE_BUS_USER 0x0600 102562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CORE_CMUREF 0x1000 102662306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_CORE_BUSP 0x1800 102762306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_CLK 0x2000 102862306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_PCLK 0x2004 102962306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_CORE_UID_CORE_CMU_CORE_IPCLKPORT_PCLK 0x2008 103062306a36Sopenharmony_ci 103162306a36Sopenharmony_cistatic const unsigned long core_clk_regs[] __initconst = { 103262306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_CORE_BUS_USER, 103362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CORE_CMUREF, 103462306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_CORE_BUSP, 103562306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_CLK, 103662306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_PCLK, 103762306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CORE_CMU_CORE_IPCLKPORT_PCLK, 103862306a36Sopenharmony_ci}; 103962306a36Sopenharmony_ci 104062306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_CORE */ 104162306a36Sopenharmony_ciPNAME(mout_core_bus_user_p) = { "oscclk", "dout_clkcmu_core_bus" }; 104262306a36Sopenharmony_ci 104362306a36Sopenharmony_cistatic const struct samsung_mux_clock core_mux_clks[] __initconst = { 104462306a36Sopenharmony_ci MUX(CLK_MOUT_CORE_BUS_USER, "mout_core_bus_user", mout_core_bus_user_p, 104562306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_CORE_BUS_USER, 4, 1), 104662306a36Sopenharmony_ci}; 104762306a36Sopenharmony_ci 104862306a36Sopenharmony_cistatic const struct samsung_div_clock core_div_clks[] __initconst = { 104962306a36Sopenharmony_ci DIV(CLK_DOUT_CORE_BUSP, "dout_core_busp", "mout_core_bus_user", 105062306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_CORE_BUSP, 0, 3), 105162306a36Sopenharmony_ci}; 105262306a36Sopenharmony_ci 105362306a36Sopenharmony_cistatic const struct samsung_gate_clock core_gate_clks[] __initconst = { 105462306a36Sopenharmony_ci GATE(CLK_GOUT_CORE_CCI_CLK, "gout_core_cci_clk", "mout_core_bus_user", 105562306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_CLK, 21, 105662306a36Sopenharmony_ci CLK_IS_CRITICAL, 0), 105762306a36Sopenharmony_ci GATE(CLK_GOUT_CORE_CCI_PCLK, "gout_core_cci_pclk", "dout_core_busp", 105862306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CCI_IPCLKPORT_PCLK, 21, 105962306a36Sopenharmony_ci CLK_IS_CRITICAL, 0), 106062306a36Sopenharmony_ci GATE(CLK_GOUT_CORE_CMU_CORE_PCLK, "gout_core_cmu_core_pclk", 106162306a36Sopenharmony_ci "dout_core_busp", 106262306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_CORE_UID_CORE_CMU_CORE_IPCLKPORT_PCLK, 21, 106362306a36Sopenharmony_ci CLK_IS_CRITICAL, 0), 106462306a36Sopenharmony_ci}; 106562306a36Sopenharmony_ci 106662306a36Sopenharmony_cistatic const struct samsung_cmu_info core_cmu_info __initconst = { 106762306a36Sopenharmony_ci .mux_clks = core_mux_clks, 106862306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(core_mux_clks), 106962306a36Sopenharmony_ci .div_clks = core_div_clks, 107062306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(core_div_clks), 107162306a36Sopenharmony_ci .gate_clks = core_gate_clks, 107262306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(core_gate_clks), 107362306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_CORE, 107462306a36Sopenharmony_ci .clk_regs = core_clk_regs, 107562306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(core_clk_regs), 107662306a36Sopenharmony_ci .clk_name = "dout_clkcmu_core_bus", 107762306a36Sopenharmony_ci}; 107862306a36Sopenharmony_ci 107962306a36Sopenharmony_ci/* ---- CMU_FSYS0 ---------------------------------------------------------- */ 108062306a36Sopenharmony_ci 108162306a36Sopenharmony_ci/* Register Offset definitions for CMU_FSYS2 (0x17700000) */ 108262306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS0_BUS_USER 0x0600 108362306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS0_PCIE_USER 0x0610 108462306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK 0x2000 108562306a36Sopenharmony_ci 108662306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_PHY_REFCLK_IN 0x2004 108762306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_PHY_REFCLK_IN 0x2008 108862306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_PHY_REFCLK_IN 0x200c 108962306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_PHY_REFCLK_IN 0x2010 109062306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_PHY_REFCLK_IN 0x2014 109162306a36Sopenharmony_ci#define CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_PHY_REFCLK_IN 0x2018 109262306a36Sopenharmony_ci 109362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_DBI_ACLK 0x205c 109462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_MSTR_ACLK 0x2060 109562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_SLV_ACLK 0x2064 109662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_DBI_ACLK 0x206c 109762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_MSTR_ACLK 0x2070 109862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_SLV_ACLK 0x2074 109962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_PIPE_CLK 0x207c 110062306a36Sopenharmony_ci 110162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_DBI_ACLK 0x2084 110262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_MSTR_ACLK 0x2088 110362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_SLV_ACLK 0x208c 110462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_DBI_ACLK 0x2094 110562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_MSTR_ACLK 0x2098 110662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_SLV_ACLK 0x209c 110762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_PIPE_CLK 0x20a4 110862306a36Sopenharmony_ci 110962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_DBI_ACLK 0x20ac 111062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_MSTR_ACLK 0x20b0 111162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_SLV_ACLK 0x20b4 111262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_DBI_ACLK 0x20bc 111362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_MSTR_ACLK 0x20c0 111462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_SLV_ACLK 0x20c4 111562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_PIPE_CLK 0x20cc 111662306a36Sopenharmony_ci 111762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L0_CLK 0x20d4 111862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L1_CLK 0x20d8 111962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_4L_CLK 0x20dc 112062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L0_CLK 0x20e0 112162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L1_CLK 0x20e4 112262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_4L_CLK 0x20e8 112362306a36Sopenharmony_ci 112462306a36Sopenharmony_ci 112562306a36Sopenharmony_cistatic const unsigned long fsys0_clk_regs[] __initconst = { 112662306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS0_BUS_USER, 112762306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS0_PCIE_USER, 112862306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK, 112962306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_PHY_REFCLK_IN, 113062306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_PHY_REFCLK_IN, 113162306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_PHY_REFCLK_IN, 113262306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_PHY_REFCLK_IN, 113362306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_PHY_REFCLK_IN, 113462306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_PHY_REFCLK_IN, 113562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_DBI_ACLK, 113662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_MSTR_ACLK, 113762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_SLV_ACLK, 113862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_DBI_ACLK, 113962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_MSTR_ACLK, 114062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_SLV_ACLK, 114162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_PIPE_CLK, 114262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_DBI_ACLK, 114362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_MSTR_ACLK, 114462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_SLV_ACLK, 114562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_DBI_ACLK, 114662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_MSTR_ACLK, 114762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_SLV_ACLK, 114862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_PIPE_CLK, 114962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_DBI_ACLK, 115062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_MSTR_ACLK, 115162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_SLV_ACLK, 115262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_DBI_ACLK, 115362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_MSTR_ACLK, 115462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_SLV_ACLK, 115562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_PIPE_CLK, 115662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L0_CLK, 115762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L1_CLK, 115862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_4L_CLK, 115962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L0_CLK, 116062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L1_CLK, 116162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_4L_CLK, 116262306a36Sopenharmony_ci}; 116362306a36Sopenharmony_ci 116462306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_FSYS0 */ 116562306a36Sopenharmony_ciPNAME(mout_fsys0_bus_user_p) = { "oscclk", "dout_clkcmu_fsys0_bus" }; 116662306a36Sopenharmony_ciPNAME(mout_fsys0_pcie_user_p) = { "oscclk", "dout_clkcmu_fsys0_pcie" }; 116762306a36Sopenharmony_ci 116862306a36Sopenharmony_cistatic const struct samsung_mux_clock fsys0_mux_clks[] __initconst = { 116962306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS0_BUS_USER, "mout_fsys0_bus_user", 117062306a36Sopenharmony_ci mout_fsys0_bus_user_p, PLL_CON0_MUX_CLKCMU_FSYS0_BUS_USER, 4, 1), 117162306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS0_PCIE_USER, "mout_fsys0_pcie_user", 117262306a36Sopenharmony_ci mout_fsys0_pcie_user_p, PLL_CON0_MUX_CLKCMU_FSYS0_PCIE_USER, 4, 1), 117362306a36Sopenharmony_ci}; 117462306a36Sopenharmony_ci 117562306a36Sopenharmony_cistatic const struct samsung_gate_clock fsys0_gate_clks[] __initconst = { 117662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_BUS_PCLK, "gout_fsys0_bus_pclk", 117762306a36Sopenharmony_ci "mout_fsys0_bus_user", 117862306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_FSYS0_CMU_FSYS0_IPCLKPORT_PCLK, 117962306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 118062306a36Sopenharmony_ci 118162306a36Sopenharmony_ci /* Gen3 2L0 */ 118262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_REFCLK, 118362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x1_refclk", "mout_fsys0_pcie_user", 118462306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_PHY_REFCLK_IN, 118562306a36Sopenharmony_ci 21, 0, 0), 118662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_REFCLK, 118762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x2_refclk", "mout_fsys0_pcie_user", 118862306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_PHY_REFCLK_IN, 118962306a36Sopenharmony_ci 21, 0, 0), 119062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_DBI_ACLK, 119162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x1_dbi_aclk", "mout_fsys0_bus_user", 119262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_DBI_ACLK, 119362306a36Sopenharmony_ci 21, 0, 0), 119462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_MSTR_ACLK, 119562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x1_mstr_aclk", "mout_fsys0_bus_user", 119662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_MSTR_ACLK, 119762306a36Sopenharmony_ci 21, 0, 0), 119862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X1_SLV_ACLK, 119962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x1_slv_aclk", "mout_fsys0_bus_user", 120062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X1_SLV_ACLK, 120162306a36Sopenharmony_ci 21, 0, 0), 120262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_DBI_ACLK, 120362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x2_dbi_aclk", "mout_fsys0_bus_user", 120462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_DBI_ACLK, 120562306a36Sopenharmony_ci 21, 0, 0), 120662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_MSTR_ACLK, 120762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x2_mstr_aclk", "mout_fsys0_bus_user", 120862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_MSTR_ACLK, 120962306a36Sopenharmony_ci 21, 0, 0), 121062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L0_X2_SLV_ACLK, 121162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l0_x2_slv_aclk", "mout_fsys0_bus_user", 121262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L0_X2_SLV_ACLK, 121362306a36Sopenharmony_ci 21, 0, 0), 121462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3A_2L0_CLK, 121562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3a_2l0_clk", "mout_fsys0_pcie_user", 121662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L0_CLK, 121762306a36Sopenharmony_ci 21, 0, 0), 121862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3B_2L0_CLK, 121962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3b_2l0_clk", "mout_fsys0_pcie_user", 122062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L0_CLK, 122162306a36Sopenharmony_ci 21, 0, 0), 122262306a36Sopenharmony_ci 122362306a36Sopenharmony_ci /* Gen3 2L1 */ 122462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_REFCLK, 122562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x1_refclk", "mout_fsys0_pcie_user", 122662306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_PHY_REFCLK_IN, 122762306a36Sopenharmony_ci 21, 0, 0), 122862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_REFCLK, 122962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x2_refclk", "mout_fsys0_pcie_user", 123062306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_PHY_REFCLK_IN, 123162306a36Sopenharmony_ci 21, 0, 0), 123262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_DBI_ACLK, 123362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x1_dbi_aclk", "mout_fsys0_bus_user", 123462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_DBI_ACLK, 123562306a36Sopenharmony_ci 21, 0, 0), 123662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_MSTR_ACLK, 123762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x1_mstr_aclk", "mout_fsys0_bus_user", 123862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_MSTR_ACLK, 123962306a36Sopenharmony_ci 21, 0, 0), 124062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X1_SLV_ACLK, 124162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x1_slv_aclk", "mout_fsys0_bus_user", 124262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X1_SLV_ACLK, 124362306a36Sopenharmony_ci 21, 0, 0), 124462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_DBI_ACLK, 124562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x2_dbi_aclk", "mout_fsys0_bus_user", 124662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_DBI_ACLK, 124762306a36Sopenharmony_ci 21, 0, 0), 124862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_MSTR_ACLK, 124962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x2_mstr_aclk", "mout_fsys0_bus_user", 125062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_MSTR_ACLK, 125162306a36Sopenharmony_ci 21, 0, 0), 125262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_2L1_X2_SLV_ACLK, 125362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_2l1_x2_slv_aclk", "mout_fsys0_bus_user", 125462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_2L1_X2_SLV_ACLK, 125562306a36Sopenharmony_ci 21, 0, 0), 125662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3A_2L1_CLK, 125762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3a_2l1_clk", "mout_fsys0_pcie_user", 125862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_2L1_CLK, 125962306a36Sopenharmony_ci 21, 0, 0), 126062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3B_2L1_CLK, 126162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3b_2l1_clk", "mout_fsys0_pcie_user", 126262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_2L1_CLK, 126362306a36Sopenharmony_ci 21, 0, 0), 126462306a36Sopenharmony_ci 126562306a36Sopenharmony_ci /* Gen3 4L */ 126662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_REFCLK, 126762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x2_refclk", "mout_fsys0_pcie_user", 126862306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_PHY_REFCLK_IN, 126962306a36Sopenharmony_ci 21, 0, 0), 127062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_REFCLK, 127162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x4_refclk", "mout_fsys0_pcie_user", 127262306a36Sopenharmony_ci CLK_CON_GAT_CLK_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_PHY_REFCLK_IN, 127362306a36Sopenharmony_ci 21, 0, 0), 127462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_DBI_ACLK, 127562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x2_dbi_aclk", "mout_fsys0_bus_user", 127662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_DBI_ACLK, 127762306a36Sopenharmony_ci 21, 0, 0), 127862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_MSTR_ACLK, 127962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x2_mstr_aclk", "mout_fsys0_bus_user", 128062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_MSTR_ACLK, 128162306a36Sopenharmony_ci 21, 0, 0), 128262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X2_SLV_ACLK, 128362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x2_slv_aclk", "mout_fsys0_bus_user", 128462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X2_SLV_ACLK, 128562306a36Sopenharmony_ci 21, 0, 0), 128662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_DBI_ACLK, 128762306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x4_dbi_aclk", "mout_fsys0_bus_user", 128862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_DBI_ACLK, 128962306a36Sopenharmony_ci 21, 0, 0), 129062306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_MSTR_ACLK, 129162306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x4_mstr_aclk", "mout_fsys0_bus_user", 129262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_MSTR_ACLK, 129362306a36Sopenharmony_ci 21, 0, 0), 129462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3_4L_X4_SLV_ACLK, 129562306a36Sopenharmony_ci "gout_fsys0_pcie_gen3_4l_x4_slv_aclk", "mout_fsys0_bus_user", 129662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3_4L_X4_SLV_ACLK, 129762306a36Sopenharmony_ci 21, 0, 0), 129862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3A_4L_CLK, 129962306a36Sopenharmony_ci "gout_fsys0_pcie_gen3a_4l_clk", "mout_fsys0_pcie_user", 130062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3A_4L_CLK, 130162306a36Sopenharmony_ci 21, 0, 0), 130262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS0_PCIE_GEN3B_4L_CLK, 130362306a36Sopenharmony_ci "gout_fsys0_pcie_gen3b_4l_clk", "mout_fsys0_pcie_user", 130462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS0_UID_PCIE_GEN3B_4L_CLK, 130562306a36Sopenharmony_ci 21, 0, 0), 130662306a36Sopenharmony_ci}; 130762306a36Sopenharmony_ci 130862306a36Sopenharmony_cistatic const struct samsung_cmu_info fsys0_cmu_info __initconst = { 130962306a36Sopenharmony_ci .mux_clks = fsys0_mux_clks, 131062306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(fsys0_mux_clks), 131162306a36Sopenharmony_ci .gate_clks = fsys0_gate_clks, 131262306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(fsys0_gate_clks), 131362306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_FSYS0, 131462306a36Sopenharmony_ci .clk_regs = fsys0_clk_regs, 131562306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(fsys0_clk_regs), 131662306a36Sopenharmony_ci .clk_name = "dout_clkcmu_fsys0_bus", 131762306a36Sopenharmony_ci}; 131862306a36Sopenharmony_ci 131962306a36Sopenharmony_ci/* ---- CMU_FSYS1 ---------------------------------------------------------- */ 132062306a36Sopenharmony_ci 132162306a36Sopenharmony_ci/* Register Offset definitions for CMU_FSYS1 (0x17040000) */ 132262306a36Sopenharmony_ci#define PLL_LOCKTIME_PLL_MMC 0x0000 132362306a36Sopenharmony_ci#define PLL_CON0_PLL_MMC 0x0100 132462306a36Sopenharmony_ci#define PLL_CON3_PLL_MMC 0x010c 132562306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS1_BUS_USER 0x0600 132662306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS1_MMC_CARD_USER 0x0610 132762306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS1_USBDRD_USER 0x0620 132862306a36Sopenharmony_ci 132962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_FSYS1_MMC_CARD 0x1000 133062306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_FSYS1_MMC_CARD 0x1800 133162306a36Sopenharmony_ci 133262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_FSYS1_CMU_FSYS1_IPCLKPORT_PCLK 0x2018 133362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_MMC_CARD_IPCLKPORT_SDCLKIN 0x202c 133462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_MMC_CARD_IPCLKPORT_I_ACLK 0x2028 133562306a36Sopenharmony_ci 133662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB20DRD_0_REF_CLK_40 0x204c 133762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB20DRD_1_REF_CLK_40 0x2058 133862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB30DRD_0_REF_CLK_40 0x2064 133962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB30DRD_1_REF_CLK_40 0x2070 134062306a36Sopenharmony_ci 134162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB2_0_IPCLKPORT_ACLK 0x2074 134262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB2_1_IPCLKPORT_ACLK 0x2078 134362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB3_0_IPCLKPORT_ACLK 0x207c 134462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB3_1_IPCLKPORT_ACLK 0x2080 134562306a36Sopenharmony_ci 134662306a36Sopenharmony_cistatic const unsigned long fsys1_clk_regs[] __initconst = { 134762306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS1_BUS_USER, 134862306a36Sopenharmony_ci}; 134962306a36Sopenharmony_ci 135062306a36Sopenharmony_cistatic const struct samsung_pll_clock fsys1_pll_clks[] __initconst = { 135162306a36Sopenharmony_ci PLL(pll_0831x, FOUT_MMC_PLL, "fout_mmc_pll", "oscclk", 135262306a36Sopenharmony_ci PLL_LOCKTIME_PLL_MMC, PLL_CON3_PLL_MMC, NULL), 135362306a36Sopenharmony_ci}; 135462306a36Sopenharmony_ci 135562306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_FSYS1 */ 135662306a36Sopenharmony_ciPNAME(mout_fsys1_bus_user_p) = { "oscclk", "dout_clkcmu_fsys1_bus" }; 135762306a36Sopenharmony_ciPNAME(mout_fsys1_mmc_pll_p) = { "oscclk", "fout_mmc_pll" }; 135862306a36Sopenharmony_ciPNAME(mout_fsys1_mmc_card_user_p) = { "oscclk", "gout_clkcmu_fsys1_mmc_card" }; 135962306a36Sopenharmony_ciPNAME(mout_fsys1_usbdrd_user_p) = { "oscclk", "dout_clkcmu_fsys1_usbdrd" }; 136062306a36Sopenharmony_ciPNAME(mout_fsys1_mmc_card_p) = { "mout_fsys1_mmc_card_user", 136162306a36Sopenharmony_ci "mout_fsys1_mmc_pll" }; 136262306a36Sopenharmony_ci 136362306a36Sopenharmony_cistatic const struct samsung_mux_clock fsys1_mux_clks[] __initconst = { 136462306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS1_BUS_USER, "mout_fsys1_bus_user", 136562306a36Sopenharmony_ci mout_fsys1_bus_user_p, PLL_CON0_MUX_CLKCMU_FSYS1_BUS_USER, 4, 1), 136662306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS1_MMC_PLL, "mout_fsys1_mmc_pll", mout_fsys1_mmc_pll_p, 136762306a36Sopenharmony_ci PLL_CON0_PLL_MMC, 4, 1), 136862306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS1_MMC_CARD_USER, "mout_fsys1_mmc_card_user", 136962306a36Sopenharmony_ci mout_fsys1_mmc_card_user_p, PLL_CON0_MUX_CLKCMU_FSYS1_MMC_CARD_USER, 137062306a36Sopenharmony_ci 4, 1), 137162306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS1_USBDRD_USER, "mout_fsys1_usbdrd_user", 137262306a36Sopenharmony_ci mout_fsys1_usbdrd_user_p, PLL_CON0_MUX_CLKCMU_FSYS1_USBDRD_USER, 137362306a36Sopenharmony_ci 4, 1), 137462306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS1_MMC_CARD, "mout_fsys1_mmc_card", 137562306a36Sopenharmony_ci mout_fsys1_mmc_card_p, CLK_CON_MUX_MUX_CLK_FSYS1_MMC_CARD, 137662306a36Sopenharmony_ci 0, 1), 137762306a36Sopenharmony_ci}; 137862306a36Sopenharmony_ci 137962306a36Sopenharmony_cistatic const struct samsung_div_clock fsys1_div_clks[] __initconst = { 138062306a36Sopenharmony_ci DIV(CLK_DOUT_FSYS1_MMC_CARD, "dout_fsys1_mmc_card", 138162306a36Sopenharmony_ci "mout_fsys1_mmc_card", 138262306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_FSYS1_MMC_CARD, 0, 9), 138362306a36Sopenharmony_ci}; 138462306a36Sopenharmony_ci 138562306a36Sopenharmony_cistatic const struct samsung_gate_clock fsys1_gate_clks[] __initconst = { 138662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_PCLK, "gout_fsys1_pclk", "mout_fsys1_bus_user", 138762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_FSYS1_CMU_FSYS1_IPCLKPORT_PCLK, 138862306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 138962306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_MMC_CARD_SDCLKIN, "gout_fsys1_mmc_card_sdclkin", 139062306a36Sopenharmony_ci "dout_fsys1_mmc_card", 139162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_MMC_CARD_IPCLKPORT_SDCLKIN, 139262306a36Sopenharmony_ci 21, CLK_SET_RATE_PARENT, 0), 139362306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_MMC_CARD_ACLK, "gout_fsys1_mmc_card_aclk", 139462306a36Sopenharmony_ci "dout_fsys1_mmc_card", 139562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_MMC_CARD_IPCLKPORT_I_ACLK, 139662306a36Sopenharmony_ci 21, 0, 0), 139762306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB20DRD_0_REFCLK, "gout_fsys1_usb20drd_0_refclk", 139862306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 139962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB20DRD_0_REF_CLK_40, 140062306a36Sopenharmony_ci 21, 0, 0), 140162306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB20DRD_1_REFCLK, "gout_fsys1_usb20drd_1_refclk", 140262306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 140362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB20DRD_1_REF_CLK_40, 140462306a36Sopenharmony_ci 21, 0, 0), 140562306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB30DRD_0_REFCLK, "gout_fsys1_usb30drd_0_refclk", 140662306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 140762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB30DRD_0_REF_CLK_40, 140862306a36Sopenharmony_ci 21, 0, 0), 140962306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB30DRD_1_REFCLK, "gout_fsys1_usb30drd_1_refclk", 141062306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 141162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_USB30DRD_1_REF_CLK_40, 141262306a36Sopenharmony_ci 21, 0, 0), 141362306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB20_0_ACLK, "gout_fsys1_usb20_0_aclk", 141462306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 141562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB2_0_IPCLKPORT_ACLK, 141662306a36Sopenharmony_ci 21, 0, 0), 141762306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB20_1_ACLK, "gout_fsys1_usb20_1_aclk", 141862306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 141962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB2_1_IPCLKPORT_ACLK, 142062306a36Sopenharmony_ci 21, 0, 0), 142162306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB30_0_ACLK, "gout_fsys1_usb30_0_aclk", 142262306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 142362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB3_0_IPCLKPORT_ACLK, 142462306a36Sopenharmony_ci 21, 0, 0), 142562306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS1_USB30_1_ACLK, "gout_fsys1_usb30_1_aclk", 142662306a36Sopenharmony_ci "mout_fsys1_usbdrd_user", 142762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS1_UID_US_D_USB3_1_IPCLKPORT_ACLK, 142862306a36Sopenharmony_ci 21, 0, 0), 142962306a36Sopenharmony_ci}; 143062306a36Sopenharmony_ci 143162306a36Sopenharmony_cistatic const struct samsung_cmu_info fsys1_cmu_info __initconst = { 143262306a36Sopenharmony_ci .pll_clks = fsys1_pll_clks, 143362306a36Sopenharmony_ci .nr_pll_clks = ARRAY_SIZE(fsys1_pll_clks), 143462306a36Sopenharmony_ci .mux_clks = fsys1_mux_clks, 143562306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(fsys1_mux_clks), 143662306a36Sopenharmony_ci .div_clks = fsys1_div_clks, 143762306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(fsys1_div_clks), 143862306a36Sopenharmony_ci .gate_clks = fsys1_gate_clks, 143962306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(fsys1_gate_clks), 144062306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_FSYS1, 144162306a36Sopenharmony_ci .clk_regs = fsys1_clk_regs, 144262306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(fsys1_clk_regs), 144362306a36Sopenharmony_ci .clk_name = "dout_clkcmu_fsys1_bus", 144462306a36Sopenharmony_ci}; 144562306a36Sopenharmony_ci 144662306a36Sopenharmony_ci/* ---- CMU_FSYS2 ---------------------------------------------------------- */ 144762306a36Sopenharmony_ci 144862306a36Sopenharmony_ci/* Register Offset definitions for CMU_FSYS2 (0x17c00000) */ 144962306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER 0x0600 145062306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER 0x0620 145162306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER 0x0610 145262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK 0x2098 145362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO 0x209c 145462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK 0x20a4 145562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO 0x20a8 145662306a36Sopenharmony_ci 145762306a36Sopenharmony_cistatic const unsigned long fsys2_clk_regs[] __initconst = { 145862306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER, 145962306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER, 146062306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER, 146162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK, 146262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO, 146362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK, 146462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO, 146562306a36Sopenharmony_ci}; 146662306a36Sopenharmony_ci 146762306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_FSYS2 */ 146862306a36Sopenharmony_ciPNAME(mout_fsys2_bus_user_p) = { "oscclk", "dout_clkcmu_fsys2_bus" }; 146962306a36Sopenharmony_ciPNAME(mout_fsys2_ufs_embd_user_p) = { "oscclk", "dout_clkcmu_fsys2_ufs_embd" }; 147062306a36Sopenharmony_ciPNAME(mout_fsys2_ethernet_user_p) = { "oscclk", "dout_clkcmu_fsys2_ethernet" }; 147162306a36Sopenharmony_ci 147262306a36Sopenharmony_cistatic const struct samsung_mux_clock fsys2_mux_clks[] __initconst = { 147362306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS2_BUS_USER, "mout_fsys2_bus_user", 147462306a36Sopenharmony_ci mout_fsys2_bus_user_p, PLL_CON0_MUX_CLKCMU_FSYS2_BUS_USER, 4, 1), 147562306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS2_UFS_EMBD_USER, "mout_fsys2_ufs_embd_user", 147662306a36Sopenharmony_ci mout_fsys2_ufs_embd_user_p, 147762306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS2_UFS_EMBD_USER, 4, 1), 147862306a36Sopenharmony_ci MUX(CLK_MOUT_FSYS2_ETHERNET_USER, "mout_fsys2_ethernet_user", 147962306a36Sopenharmony_ci mout_fsys2_ethernet_user_p, 148062306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_FSYS2_ETHERNET_USER, 4, 1), 148162306a36Sopenharmony_ci}; 148262306a36Sopenharmony_ci 148362306a36Sopenharmony_cistatic const struct samsung_gate_clock fsys2_gate_clks[] __initconst = { 148462306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS2_UFS_EMBD0_ACLK, "gout_fsys2_ufs_embd0_aclk", 148562306a36Sopenharmony_ci "mout_fsys2_ufs_embd_user", 148662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_ACLK, 21, 148762306a36Sopenharmony_ci 0, 0), 148862306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO, "gout_fsys2_ufs_embd0_unipro", 148962306a36Sopenharmony_ci "mout_fsys2_ufs_embd_user", 149062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD0_IPCLKPORT_I_CLK_UNIPRO, 149162306a36Sopenharmony_ci 21, 0, 0), 149262306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS2_UFS_EMBD1_ACLK, "gout_fsys2_ufs_embd1_aclk", 149362306a36Sopenharmony_ci "mout_fsys2_ufs_embd_user", 149462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_ACLK, 21, 149562306a36Sopenharmony_ci 0, 0), 149662306a36Sopenharmony_ci GATE(CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO, "gout_fsys2_ufs_embd1_unipro", 149762306a36Sopenharmony_ci "mout_fsys2_ufs_embd_user", 149862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_FSYS2_UID_UFS_EMBD1_IPCLKPORT_I_CLK_UNIPRO, 149962306a36Sopenharmony_ci 21, 0, 0), 150062306a36Sopenharmony_ci}; 150162306a36Sopenharmony_ci 150262306a36Sopenharmony_cistatic const struct samsung_cmu_info fsys2_cmu_info __initconst = { 150362306a36Sopenharmony_ci .mux_clks = fsys2_mux_clks, 150462306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(fsys2_mux_clks), 150562306a36Sopenharmony_ci .gate_clks = fsys2_gate_clks, 150662306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(fsys2_gate_clks), 150762306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_FSYS2, 150862306a36Sopenharmony_ci .clk_regs = fsys2_clk_regs, 150962306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(fsys2_clk_regs), 151062306a36Sopenharmony_ci .clk_name = "dout_clkcmu_fsys2_bus", 151162306a36Sopenharmony_ci}; 151262306a36Sopenharmony_ci 151362306a36Sopenharmony_ci/* ---- CMU_PERIC0 --------------------------------------------------------- */ 151462306a36Sopenharmony_ci 151562306a36Sopenharmony_ci/* Register Offset definitions for CMU_PERIC0 (0x10200000) */ 151662306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER 0x0600 151762306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_PERIC0_IP_USER 0x0610 151862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI00_USI 0x1000 151962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI01_USI 0x1004 152062306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI02_USI 0x1008 152162306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI03_USI 0x100c 152262306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI04_USI 0x1010 152362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI05_USI 0x1014 152462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC0_USI_I2C 0x1018 152562306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI 0x1800 152662306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI 0x1804 152762306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI 0x1808 152862306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI 0x180c 152962306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI 0x1810 153062306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI 0x1814 153162306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C 0x1818 153262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0 0x2014 153362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1 0x2018 153462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2 0x2024 153562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3 0x2028 153662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4 0x202c 153762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5 0x2030 153862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6 0x2034 153962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7 0x2038 154062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8 0x203c 154162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9 0x2040 154262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10 0x201c 154362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11 0x2020 154462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0 0x2044 154562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1 0x2048 154662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2 0x2058 154762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3 0x205c 154862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4 0x2060 154962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5 0x2064 155062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6 0x2068 155162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7 0x206c 155262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8 0x2070 155362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9 0x2074 155462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10 0x204c 155562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11 0x2050 155662306a36Sopenharmony_ci 155762306a36Sopenharmony_cistatic const unsigned long peric0_clk_regs[] __initconst = { 155862306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER, 155962306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_PERIC0_IP_USER, 156062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI00_USI, 156162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI01_USI, 156262306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI02_USI, 156362306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI03_USI, 156462306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI04_USI, 156562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI05_USI, 156662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC0_USI_I2C, 156762306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI, 156862306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI, 156962306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI, 157062306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI, 157162306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI, 157262306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI, 157362306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C, 157462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0, 157562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1, 157662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2, 157762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3, 157862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4, 157962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5, 158062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6, 158162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7, 158262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8, 158362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9, 158462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10, 158562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11, 158662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0, 158762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1, 158862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2, 158962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3, 159062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4, 159162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7, 159262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5, 159362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6, 159462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8, 159562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9, 159662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10, 159762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11, 159862306a36Sopenharmony_ci}; 159962306a36Sopenharmony_ci 160062306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_PERIC0 */ 160162306a36Sopenharmony_ciPNAME(mout_peric0_bus_user_p) = { "oscclk", "dout_clkcmu_peric0_bus" }; 160262306a36Sopenharmony_ciPNAME(mout_peric0_ip_user_p) = { "oscclk", "dout_clkcmu_peric0_ip" }; 160362306a36Sopenharmony_ciPNAME(mout_peric0_usi_p) = { "oscclk", "mout_peric0_ip_user" }; 160462306a36Sopenharmony_ci 160562306a36Sopenharmony_cistatic const struct samsung_mux_clock peric0_mux_clks[] __initconst = { 160662306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_BUS_USER, "mout_peric0_bus_user", 160762306a36Sopenharmony_ci mout_peric0_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER, 4, 1), 160862306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_IP_USER, "mout_peric0_ip_user", 160962306a36Sopenharmony_ci mout_peric0_ip_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_IP_USER, 4, 1), 161062306a36Sopenharmony_ci /* USI00 ~ USI05 */ 161162306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI00_USI, "mout_peric0_usi00_usi", 161262306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI00_USI, 0, 1), 161362306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI01_USI, "mout_peric0_usi01_usi", 161462306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI01_USI, 0, 1), 161562306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI02_USI, "mout_peric0_usi02_usi", 161662306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI02_USI, 0, 1), 161762306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI03_USI, "mout_peric0_usi03_usi", 161862306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI03_USI, 0, 1), 161962306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI04_USI, "mout_peric0_usi04_usi", 162062306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI04_USI, 0, 1), 162162306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI05_USI, "mout_peric0_usi05_usi", 162262306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI05_USI, 0, 1), 162362306a36Sopenharmony_ci /* USI_I2C */ 162462306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC0_USI_I2C, "mout_peric0_usi_i2c", 162562306a36Sopenharmony_ci mout_peric0_usi_p, CLK_CON_MUX_MUX_CLK_PERIC0_USI_I2C, 0, 1), 162662306a36Sopenharmony_ci}; 162762306a36Sopenharmony_ci 162862306a36Sopenharmony_cistatic const struct samsung_div_clock peric0_div_clks[] __initconst = { 162962306a36Sopenharmony_ci /* USI00 ~ USI05 */ 163062306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI00_USI, "dout_peric0_usi00_usi", 163162306a36Sopenharmony_ci "mout_peric0_usi00_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI, 163262306a36Sopenharmony_ci 0, 4), 163362306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI01_USI, "dout_peric0_usi01_usi", 163462306a36Sopenharmony_ci "mout_peric0_usi01_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI, 163562306a36Sopenharmony_ci 0, 4), 163662306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI02_USI, "dout_peric0_usi02_usi", 163762306a36Sopenharmony_ci "mout_peric0_usi02_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI, 163862306a36Sopenharmony_ci 0, 4), 163962306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI03_USI, "dout_peric0_usi03_usi", 164062306a36Sopenharmony_ci "mout_peric0_usi03_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI, 164162306a36Sopenharmony_ci 0, 4), 164262306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI04_USI, "dout_peric0_usi04_usi", 164362306a36Sopenharmony_ci "mout_peric0_usi04_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI, 164462306a36Sopenharmony_ci 0, 4), 164562306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI05_USI, "dout_peric0_usi05_usi", 164662306a36Sopenharmony_ci "mout_peric0_usi05_usi", CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI, 164762306a36Sopenharmony_ci 0, 4), 164862306a36Sopenharmony_ci /* USI_I2C */ 164962306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC0_USI_I2C, "dout_peric0_usi_i2c", 165062306a36Sopenharmony_ci "mout_peric0_usi_i2c", CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C, 0, 4), 165162306a36Sopenharmony_ci}; 165262306a36Sopenharmony_ci 165362306a36Sopenharmony_cistatic const struct samsung_gate_clock peric0_gate_clks[] __initconst = { 165462306a36Sopenharmony_ci /* IPCLK */ 165562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_0, "gout_peric0_ipclk_0", 165662306a36Sopenharmony_ci "dout_peric0_usi00_usi", 165762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0, 165862306a36Sopenharmony_ci 21, 0, 0), 165962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_1, "gout_peric0_ipclk_1", 166062306a36Sopenharmony_ci "dout_peric0_usi_i2c", 166162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1, 166262306a36Sopenharmony_ci 21, 0, 0), 166362306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_2, "gout_peric0_ipclk_2", 166462306a36Sopenharmony_ci "dout_peric0_usi01_usi", 166562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2, 166662306a36Sopenharmony_ci 21, 0, 0), 166762306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_3, "gout_peric0_ipclk_3", 166862306a36Sopenharmony_ci "dout_peric0_usi_i2c", 166962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3, 167062306a36Sopenharmony_ci 21, 0, 0), 167162306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_4, "gout_peric0_ipclk_4", 167262306a36Sopenharmony_ci "dout_peric0_usi02_usi", 167362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4, 167462306a36Sopenharmony_ci 21, 0, 0), 167562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_5, "gout_peric0_ipclk_5", 167662306a36Sopenharmony_ci "dout_peric0_usi_i2c", 167762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5, 167862306a36Sopenharmony_ci 21, 0, 0), 167962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_6, "gout_peric0_ipclk_6", 168062306a36Sopenharmony_ci "dout_peric0_usi03_usi", 168162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6, 168262306a36Sopenharmony_ci 21, 0, 0), 168362306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_7, "gout_peric0_ipclk_7", 168462306a36Sopenharmony_ci "dout_peric0_usi_i2c", 168562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7, 168662306a36Sopenharmony_ci 21, 0, 0), 168762306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_8, "gout_peric0_ipclk_8", 168862306a36Sopenharmony_ci "dout_peric0_usi04_usi", 168962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8, 169062306a36Sopenharmony_ci 21, 0, 0), 169162306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_9, "gout_peric0_ipclk_9", 169262306a36Sopenharmony_ci "dout_peric0_usi_i2c", 169362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9, 169462306a36Sopenharmony_ci 21, 0, 0), 169562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_10, "gout_peric0_ipclk_10", 169662306a36Sopenharmony_ci "dout_peric0_usi05_usi", 169762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10, 169862306a36Sopenharmony_ci 21, 0, 0), 169962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_IPCLK_11, "gout_peric0_ipclk_11", 170062306a36Sopenharmony_ci "dout_peric0_usi_i2c", 170162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11, 170262306a36Sopenharmony_ci 21, 0, 0), 170362306a36Sopenharmony_ci 170462306a36Sopenharmony_ci /* PCLK */ 170562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_0, "gout_peric0_pclk_0", 170662306a36Sopenharmony_ci "mout_peric0_bus_user", 170762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_0, 170862306a36Sopenharmony_ci 21, 0, 0), 170962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_1, "gout_peric0_pclk_1", 171062306a36Sopenharmony_ci "mout_peric0_bus_user", 171162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_1, 171262306a36Sopenharmony_ci 21, 0, 0), 171362306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_2, "gout_peric0_pclk_2", 171462306a36Sopenharmony_ci "mout_peric0_bus_user", 171562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2, 171662306a36Sopenharmony_ci 21, 0, 0), 171762306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_3, "gout_peric0_pclk_3", 171862306a36Sopenharmony_ci "mout_peric0_bus_user", 171962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3, 172062306a36Sopenharmony_ci 21, 0, 0), 172162306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_4, "gout_peric0_pclk_4", 172262306a36Sopenharmony_ci "mout_peric0_bus_user", 172362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4, 172462306a36Sopenharmony_ci 21, 0, 0), 172562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_5, "gout_peric0_pclk_5", 172662306a36Sopenharmony_ci "mout_peric0_bus_user", 172762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5, 172862306a36Sopenharmony_ci 21, 0, 0), 172962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_6, "gout_peric0_pclk_6", 173062306a36Sopenharmony_ci "mout_peric0_bus_user", 173162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6, 173262306a36Sopenharmony_ci 21, 0, 0), 173362306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_7, "gout_peric0_pclk_7", 173462306a36Sopenharmony_ci "mout_peric0_bus_user", 173562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7, 173662306a36Sopenharmony_ci 21, 0, 0), 173762306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_8, "gout_peric0_pclk_8", 173862306a36Sopenharmony_ci "mout_peric0_bus_user", 173962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8, 174062306a36Sopenharmony_ci 21, 0, 0), 174162306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_9, "gout_peric0_pclk_9", 174262306a36Sopenharmony_ci "mout_peric0_bus_user", 174362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9, 174462306a36Sopenharmony_ci 21, 0, 0), 174562306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_10, "gout_peric0_pclk_10", 174662306a36Sopenharmony_ci "mout_peric0_bus_user", 174762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10, 174862306a36Sopenharmony_ci 21, 0, 0), 174962306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC0_PCLK_11, "gout_peric0_pclk_11", 175062306a36Sopenharmony_ci "mout_peric0_bus_user", 175162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11, 175262306a36Sopenharmony_ci 21, 0, 0), 175362306a36Sopenharmony_ci}; 175462306a36Sopenharmony_ci 175562306a36Sopenharmony_cistatic const struct samsung_cmu_info peric0_cmu_info __initconst = { 175662306a36Sopenharmony_ci .mux_clks = peric0_mux_clks, 175762306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(peric0_mux_clks), 175862306a36Sopenharmony_ci .div_clks = peric0_div_clks, 175962306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(peric0_div_clks), 176062306a36Sopenharmony_ci .gate_clks = peric0_gate_clks, 176162306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(peric0_gate_clks), 176262306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_PERIC0, 176362306a36Sopenharmony_ci .clk_regs = peric0_clk_regs, 176462306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(peric0_clk_regs), 176562306a36Sopenharmony_ci .clk_name = "dout_clkcmu_peric0_bus", 176662306a36Sopenharmony_ci}; 176762306a36Sopenharmony_ci 176862306a36Sopenharmony_ci/* ---- CMU_PERIC1 --------------------------------------------------------- */ 176962306a36Sopenharmony_ci 177062306a36Sopenharmony_ci/* Register Offset definitions for CMU_PERIC1 (0x10800000) */ 177162306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER 0x0600 177262306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_PERIC1_IP_USER 0x0610 177362306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI06_USI 0x1000 177462306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI07_USI 0x1004 177562306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI08_USI 0x1008 177662306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI09_USI 0x100c 177762306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI10_USI 0x1010 177862306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI11_USI 0x1014 177962306a36Sopenharmony_ci#define CLK_CON_MUX_MUX_CLK_PERIC1_USI_I2C 0x1018 178062306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI 0x1800 178162306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI 0x1804 178262306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI 0x1808 178362306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI 0x180c 178462306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI 0x1810 178562306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI 0x1814 178662306a36Sopenharmony_ci#define CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C 0x1818 178762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_0 0x2014 178862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1 0x2018 178962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2 0x2024 179062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3 0x2028 179162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4 0x202c 179262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5 0x2030 179362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6 0x2034 179462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_7 0x2038 179562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8 0x203c 179662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_9 0x2040 179762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10 0x201c 179862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11 0x2020 179962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_0 0x2044 180062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1 0x2048 180162306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2 0x2054 180262306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3 0x2058 180362306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4 0x205c 180462306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5 0x2060 180562306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6 0x2064 180662306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7 0x2068 180762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8 0x206c 180862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9 0x2070 180962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10 0x204c 181062306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11 0x2050 181162306a36Sopenharmony_ci 181262306a36Sopenharmony_cistatic const unsigned long peric1_clk_regs[] __initconst = { 181362306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER, 181462306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_PERIC1_IP_USER, 181562306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI06_USI, 181662306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI07_USI, 181762306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI08_USI, 181862306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI09_USI, 181962306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI10_USI, 182062306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI11_USI, 182162306a36Sopenharmony_ci CLK_CON_MUX_MUX_CLK_PERIC1_USI_I2C, 182262306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI, 182362306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI, 182462306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI, 182562306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI, 182662306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI, 182762306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI, 182862306a36Sopenharmony_ci CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C, 182962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_0, 183062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1, 183162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2, 183262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3, 183362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4, 183462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5, 183562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6, 183662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_7, 183762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8, 183862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_9, 183962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10, 184062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11, 184162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_0, 184262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1, 184362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2, 184462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3, 184562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4, 184662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5, 184762306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6, 184862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7, 184962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8, 185062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9, 185162306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10, 185262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11, 185362306a36Sopenharmony_ci}; 185462306a36Sopenharmony_ci 185562306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_PERIC1 */ 185662306a36Sopenharmony_ciPNAME(mout_peric1_bus_user_p) = { "oscclk", "dout_clkcmu_peric1_bus" }; 185762306a36Sopenharmony_ciPNAME(mout_peric1_ip_user_p) = { "oscclk", "dout_clkcmu_peric1_ip" }; 185862306a36Sopenharmony_ciPNAME(mout_peric1_usi_p) = { "oscclk", "mout_peric1_ip_user" }; 185962306a36Sopenharmony_ci 186062306a36Sopenharmony_cistatic const struct samsung_mux_clock peric1_mux_clks[] __initconst = { 186162306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_BUS_USER, "mout_peric1_bus_user", 186262306a36Sopenharmony_ci mout_peric1_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER, 4, 1), 186362306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_IP_USER, "mout_peric1_ip_user", 186462306a36Sopenharmony_ci mout_peric1_ip_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_IP_USER, 4, 1), 186562306a36Sopenharmony_ci /* USI06 ~ USI11 */ 186662306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI06_USI, "mout_peric1_usi06_usi", 186762306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI06_USI, 0, 1), 186862306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI07_USI, "mout_peric1_usi07_usi", 186962306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI07_USI, 0, 1), 187062306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI08_USI, "mout_peric1_usi08_usi", 187162306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI08_USI, 0, 1), 187262306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI09_USI, "mout_peric1_usi09_usi", 187362306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI09_USI, 0, 1), 187462306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI10_USI, "mout_peric1_usi10_usi", 187562306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI10_USI, 0, 1), 187662306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI11_USI, "mout_peric1_usi11_usi", 187762306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI11_USI, 0, 1), 187862306a36Sopenharmony_ci /* USI_I2C */ 187962306a36Sopenharmony_ci MUX(CLK_MOUT_PERIC1_USI_I2C, "mout_peric1_usi_i2c", 188062306a36Sopenharmony_ci mout_peric1_usi_p, CLK_CON_MUX_MUX_CLK_PERIC1_USI_I2C, 0, 1), 188162306a36Sopenharmony_ci}; 188262306a36Sopenharmony_ci 188362306a36Sopenharmony_cistatic const struct samsung_div_clock peric1_div_clks[] __initconst = { 188462306a36Sopenharmony_ci /* USI06 ~ USI11 */ 188562306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI06_USI, "dout_peric1_usi06_usi", 188662306a36Sopenharmony_ci "mout_peric1_usi06_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI, 188762306a36Sopenharmony_ci 0, 4), 188862306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI07_USI, "dout_peric1_usi07_usi", 188962306a36Sopenharmony_ci "mout_peric1_usi07_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI, 189062306a36Sopenharmony_ci 0, 4), 189162306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI08_USI, "dout_peric1_usi08_usi", 189262306a36Sopenharmony_ci "mout_peric1_usi08_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI, 189362306a36Sopenharmony_ci 0, 4), 189462306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI09_USI, "dout_peric1_usi09_usi", 189562306a36Sopenharmony_ci "mout_peric1_usi09_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI, 189662306a36Sopenharmony_ci 0, 4), 189762306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI10_USI, "dout_peric1_usi10_usi", 189862306a36Sopenharmony_ci "mout_peric1_usi10_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI, 189962306a36Sopenharmony_ci 0, 4), 190062306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI11_USI, "dout_peric1_usi11_usi", 190162306a36Sopenharmony_ci "mout_peric1_usi11_usi", CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI, 190262306a36Sopenharmony_ci 0, 4), 190362306a36Sopenharmony_ci /* USI_I2C */ 190462306a36Sopenharmony_ci DIV(CLK_DOUT_PERIC1_USI_I2C, "dout_peric1_usi_i2c", 190562306a36Sopenharmony_ci "mout_peric1_usi_i2c", CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C, 0, 4), 190662306a36Sopenharmony_ci}; 190762306a36Sopenharmony_ci 190862306a36Sopenharmony_cistatic const struct samsung_gate_clock peric1_gate_clks[] __initconst = { 190962306a36Sopenharmony_ci /* IPCLK */ 191062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_0, "gout_peric1_ipclk_0", 191162306a36Sopenharmony_ci "dout_peric1_usi06_usi", 191262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_0, 191362306a36Sopenharmony_ci 21, 0, 0), 191462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_1, "gout_peric1_ipclk_1", 191562306a36Sopenharmony_ci "dout_peric1_usi_i2c", 191662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_1, 191762306a36Sopenharmony_ci 21, 0, 0), 191862306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_2, "gout_peric1_ipclk_2", 191962306a36Sopenharmony_ci "dout_peric1_usi07_usi", 192062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_2, 192162306a36Sopenharmony_ci 21, 0, 0), 192262306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_3, "gout_peric1_ipclk_3", 192362306a36Sopenharmony_ci "dout_peric1_usi_i2c", 192462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_3, 192562306a36Sopenharmony_ci 21, 0, 0), 192662306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_4, "gout_peric1_ipclk_4", 192762306a36Sopenharmony_ci "dout_peric1_usi08_usi", 192862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4, 192962306a36Sopenharmony_ci 21, 0, 0), 193062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_5, "gout_peric1_ipclk_5", 193162306a36Sopenharmony_ci "dout_peric1_usi_i2c", 193262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_5, 193362306a36Sopenharmony_ci 21, 0, 0), 193462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_6, "gout_peric1_ipclk_6", 193562306a36Sopenharmony_ci "dout_peric1_usi09_usi", 193662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_6, 193762306a36Sopenharmony_ci 21, 0, 0), 193862306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_7, "gout_peric1_ipclk_7", 193962306a36Sopenharmony_ci "dout_peric1_usi_i2c", 194062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_7, 194162306a36Sopenharmony_ci 21, 0, 0), 194262306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_8, "gout_peric1_ipclk_8", 194362306a36Sopenharmony_ci "dout_peric1_usi10_usi", 194462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_8, 194562306a36Sopenharmony_ci 21, 0, 0), 194662306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_9, "gout_peric1_ipclk_9", 194762306a36Sopenharmony_ci "dout_peric1_usi_i2c", 194862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_9, 194962306a36Sopenharmony_ci 21, 0, 0), 195062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_10, "gout_peric1_ipclk_10", 195162306a36Sopenharmony_ci "dout_peric1_usi11_usi", 195262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10, 195362306a36Sopenharmony_ci 21, 0, 0), 195462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_IPCLK_11, "gout_peric1_ipclk_11", 195562306a36Sopenharmony_ci "dout_peric1_usi_i2c", 195662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11, 195762306a36Sopenharmony_ci 21, 0, 0), 195862306a36Sopenharmony_ci 195962306a36Sopenharmony_ci /* PCLK */ 196062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_0, "gout_peric1_pclk_0", 196162306a36Sopenharmony_ci "mout_peric1_bus_user", 196262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_0, 196362306a36Sopenharmony_ci 21, 0, 0), 196462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_1, "gout_peric1_pclk_1", 196562306a36Sopenharmony_ci "mout_peric1_bus_user", 196662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1, 196762306a36Sopenharmony_ci 21, 0, 0), 196862306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_2, "gout_peric1_pclk_2", 196962306a36Sopenharmony_ci "mout_peric1_bus_user", 197062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2, 197162306a36Sopenharmony_ci 21, 0, 0), 197262306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_3, "gout_peric1_pclk_3", 197362306a36Sopenharmony_ci "mout_peric1_bus_user", 197462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3, 197562306a36Sopenharmony_ci 21, 0, 0), 197662306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_4, "gout_peric1_pclk_4", 197762306a36Sopenharmony_ci "mout_peric1_bus_user", 197862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4, 197962306a36Sopenharmony_ci 21, 0, 0), 198062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_5, "gout_peric1_pclk_5", 198162306a36Sopenharmony_ci "mout_peric1_bus_user", 198262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5, 198362306a36Sopenharmony_ci 21, 0, 0), 198462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_6, "gout_peric1_pclk_6", 198562306a36Sopenharmony_ci "mout_peric1_bus_user", 198662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6, 198762306a36Sopenharmony_ci 21, 0, 0), 198862306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_7, "gout_peric1_pclk_7", 198962306a36Sopenharmony_ci "mout_peric1_bus_user", 199062306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7, 199162306a36Sopenharmony_ci 21, 0, 0), 199262306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_8, "gout_peric1_pclk_8", 199362306a36Sopenharmony_ci "mout_peric1_bus_user", 199462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8, 199562306a36Sopenharmony_ci 21, 0, 0), 199662306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_9, "gout_peric1_pclk_9", 199762306a36Sopenharmony_ci "mout_peric1_bus_user", 199862306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9, 199962306a36Sopenharmony_ci 21, 0, 0), 200062306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_10, "gout_peric1_pclk_10", 200162306a36Sopenharmony_ci "mout_peric1_bus_user", 200262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10, 200362306a36Sopenharmony_ci 21, 0, 0), 200462306a36Sopenharmony_ci GATE(CLK_GOUT_PERIC1_PCLK_11, "gout_peric1_pclk_11", 200562306a36Sopenharmony_ci "mout_peric1_bus_user", 200662306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11, 200762306a36Sopenharmony_ci 21, 0, 0), 200862306a36Sopenharmony_ci}; 200962306a36Sopenharmony_ci 201062306a36Sopenharmony_cistatic const struct samsung_cmu_info peric1_cmu_info __initconst = { 201162306a36Sopenharmony_ci .mux_clks = peric1_mux_clks, 201262306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(peric1_mux_clks), 201362306a36Sopenharmony_ci .div_clks = peric1_div_clks, 201462306a36Sopenharmony_ci .nr_div_clks = ARRAY_SIZE(peric1_div_clks), 201562306a36Sopenharmony_ci .gate_clks = peric1_gate_clks, 201662306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(peric1_gate_clks), 201762306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_PERIC1, 201862306a36Sopenharmony_ci .clk_regs = peric1_clk_regs, 201962306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(peric1_clk_regs), 202062306a36Sopenharmony_ci .clk_name = "dout_clkcmu_peric1_bus", 202162306a36Sopenharmony_ci}; 202262306a36Sopenharmony_ci 202362306a36Sopenharmony_ci/* ---- CMU_PERIS ---------------------------------------------------------- */ 202462306a36Sopenharmony_ci 202562306a36Sopenharmony_ci/* Register Offset definitions for CMU_PERIS (0x10020000) */ 202662306a36Sopenharmony_ci#define PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER 0x0600 202762306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK 0x2058 202862306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK 0x205c 202962306a36Sopenharmony_ci#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER1_IPCLKPORT_PCLK 0x2060 203062306a36Sopenharmony_ci 203162306a36Sopenharmony_cistatic const unsigned long peris_clk_regs[] __initconst = { 203262306a36Sopenharmony_ci PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER, 203362306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK, 203462306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK, 203562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER1_IPCLKPORT_PCLK, 203662306a36Sopenharmony_ci}; 203762306a36Sopenharmony_ci 203862306a36Sopenharmony_ci/* List of parent clocks for Muxes in CMU_PERIS */ 203962306a36Sopenharmony_ciPNAME(mout_peris_bus_user_p) = { "oscclk", "dout_clkcmu_peris_bus" }; 204062306a36Sopenharmony_ci 204162306a36Sopenharmony_cistatic const struct samsung_mux_clock peris_mux_clks[] __initconst = { 204262306a36Sopenharmony_ci MUX(CLK_MOUT_PERIS_BUS_USER, "mout_peris_bus_user", 204362306a36Sopenharmony_ci mout_peris_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER, 4, 1), 204462306a36Sopenharmony_ci}; 204562306a36Sopenharmony_ci 204662306a36Sopenharmony_cistatic const struct samsung_gate_clock peris_gate_clks[] __initconst = { 204762306a36Sopenharmony_ci GATE(CLK_GOUT_SYSREG_PERIS_PCLK, "gout_sysreg_peris_pclk", 204862306a36Sopenharmony_ci "mout_peris_bus_user", 204962306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK, 205062306a36Sopenharmony_ci 21, CLK_IGNORE_UNUSED, 0), 205162306a36Sopenharmony_ci GATE(CLK_GOUT_WDT_CLUSTER0, "gout_wdt_cluster0", "mout_peris_bus_user", 205262306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK, 205362306a36Sopenharmony_ci 21, 0, 0), 205462306a36Sopenharmony_ci GATE(CLK_GOUT_WDT_CLUSTER1, "gout_wdt_cluster1", "mout_peris_bus_user", 205562306a36Sopenharmony_ci CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER1_IPCLKPORT_PCLK, 205662306a36Sopenharmony_ci 21, 0, 0), 205762306a36Sopenharmony_ci}; 205862306a36Sopenharmony_ci 205962306a36Sopenharmony_cistatic const struct samsung_cmu_info peris_cmu_info __initconst = { 206062306a36Sopenharmony_ci .mux_clks = peris_mux_clks, 206162306a36Sopenharmony_ci .nr_mux_clks = ARRAY_SIZE(peris_mux_clks), 206262306a36Sopenharmony_ci .gate_clks = peris_gate_clks, 206362306a36Sopenharmony_ci .nr_gate_clks = ARRAY_SIZE(peris_gate_clks), 206462306a36Sopenharmony_ci .nr_clk_ids = CLKS_NR_PERIS, 206562306a36Sopenharmony_ci .clk_regs = peris_clk_regs, 206662306a36Sopenharmony_ci .nr_clk_regs = ARRAY_SIZE(peris_clk_regs), 206762306a36Sopenharmony_ci .clk_name = "dout_clkcmu_peris_bus", 206862306a36Sopenharmony_ci}; 206962306a36Sopenharmony_ci 207062306a36Sopenharmony_cistatic int __init exynosautov9_cmu_probe(struct platform_device *pdev) 207162306a36Sopenharmony_ci{ 207262306a36Sopenharmony_ci const struct samsung_cmu_info *info; 207362306a36Sopenharmony_ci struct device *dev = &pdev->dev; 207462306a36Sopenharmony_ci 207562306a36Sopenharmony_ci info = of_device_get_match_data(dev); 207662306a36Sopenharmony_ci exynos_arm64_register_cmu(dev, dev->of_node, info); 207762306a36Sopenharmony_ci 207862306a36Sopenharmony_ci return 0; 207962306a36Sopenharmony_ci} 208062306a36Sopenharmony_ci 208162306a36Sopenharmony_cistatic const struct of_device_id exynosautov9_cmu_of_match[] = { 208262306a36Sopenharmony_ci { 208362306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-busmc", 208462306a36Sopenharmony_ci .data = &busmc_cmu_info, 208562306a36Sopenharmony_ci }, { 208662306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-core", 208762306a36Sopenharmony_ci .data = &core_cmu_info, 208862306a36Sopenharmony_ci }, { 208962306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-fsys0", 209062306a36Sopenharmony_ci .data = &fsys0_cmu_info, 209162306a36Sopenharmony_ci }, { 209262306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-fsys1", 209362306a36Sopenharmony_ci .data = &fsys1_cmu_info, 209462306a36Sopenharmony_ci }, { 209562306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-fsys2", 209662306a36Sopenharmony_ci .data = &fsys2_cmu_info, 209762306a36Sopenharmony_ci }, { 209862306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-peric0", 209962306a36Sopenharmony_ci .data = &peric0_cmu_info, 210062306a36Sopenharmony_ci }, { 210162306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-peric1", 210262306a36Sopenharmony_ci .data = &peric1_cmu_info, 210362306a36Sopenharmony_ci }, { 210462306a36Sopenharmony_ci .compatible = "samsung,exynosautov9-cmu-peris", 210562306a36Sopenharmony_ci .data = &peris_cmu_info, 210662306a36Sopenharmony_ci }, { 210762306a36Sopenharmony_ci }, 210862306a36Sopenharmony_ci}; 210962306a36Sopenharmony_ci 211062306a36Sopenharmony_cistatic struct platform_driver exynosautov9_cmu_driver __refdata = { 211162306a36Sopenharmony_ci .driver = { 211262306a36Sopenharmony_ci .name = "exynosautov9-cmu", 211362306a36Sopenharmony_ci .of_match_table = exynosautov9_cmu_of_match, 211462306a36Sopenharmony_ci .suppress_bind_attrs = true, 211562306a36Sopenharmony_ci }, 211662306a36Sopenharmony_ci .probe = exynosautov9_cmu_probe, 211762306a36Sopenharmony_ci}; 211862306a36Sopenharmony_ci 211962306a36Sopenharmony_cistatic int __init exynosautov9_cmu_init(void) 212062306a36Sopenharmony_ci{ 212162306a36Sopenharmony_ci return platform_driver_register(&exynosautov9_cmu_driver); 212262306a36Sopenharmony_ci} 212362306a36Sopenharmony_cicore_initcall(exynosautov9_cmu_init); 2124