FILE
clk-exynos990.c
File preview with syntax highlighting.
linux-6.19.14/drivers/clk/samsung/clk-exynos990.c
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (C) 2024 Igor Belwon <igor.belwon@mentallysanemainliners.org> 4 * 5 * Common Clock Framework support for Exynos990. 6 */ 7 8#include <linux/clk-provider.h> 9#include <linux/mod_devicetable.h> 10#include <linux/of.h> 11#include <linux/platform_device.h> 12 13#include <dt-bindings/clock/samsung,exynos990.h> 14 15#include "clk.h" 16#include "clk-exynos-arm64.h" 17#include "clk-pll.h" 18 19/* NOTE: Must be equal to the last clock ID increased by one */ 20#define CLKS_NR_TOP (CLK_DOUT_CMU_CLK_CMUREF + 1) 21#define CLKS_NR_HSI0 (CLK_GOUT_HSI0_LHS_ACEL_D_HSI0_CLK + 1) 22#define CLKS_NR_PERIC0 (CLK_GOUT_PERIC0_SYSREG_PCLK + 1) 23#define CLKS_NR_PERIC1 (CLK_GOUT_PERIC1_XIU_P_ACLK + 1) 24#define CLKS_NR_PERIS (CLK_GOUT_PERIS_OTP_CON_TOP_OSCCLK + 1) 25 26/* ---- CMU_TOP ------------------------------------------------------------- */ 27 28/* Register Offset definitions for CMU_TOP (0x1a330000) */ 29#define PLL_LOCKTIME_PLL_G3D 0x0000 30#define PLL_LOCKTIME_PLL_MMC 0x0004 31#define PLL_LOCKTIME_PLL_SHARED0 0x0008 32#define PLL_LOCKTIME_PLL_SHARED1 0x000c 33#define PLL_LOCKTIME_PLL_SHARED2 0x0010 34#define PLL_LOCKTIME_PLL_SHARED3 0x0014 35#define PLL_LOCKTIME_PLL_SHARED4 0x0018 36#define PLL_CON0_PLL_G3D 0x0100 37#define PLL_CON3_PLL_G3D 0x010c 38#define PLL_CON0_PLL_MMC 0x0140 39#define PLL_CON3_PLL_MMC 0x014c 40#define PLL_CON0_PLL_SHARED0 0x0180 41#define PLL_CON3_PLL_SHARED0 0x018c 42#define PLL_CON0_PLL_SHARED1 0x01c0 43#define PLL_CON3_PLL_SHARED1 0x01cc 44#define PLL_CON0_PLL_SHARED2 0x0200 45#define PLL_CON3_PLL_SHARED2 0x020c 46#define PLL_CON0_PLL_SHARED3 0x0240 47#define PLL_CON3_PLL_SHARED3 0x024c 48#define PLL_CON0_PLL_SHARED4 0x0280 49#define PLL_CON3_PLL_SHARED4 0x028c 50#define CLK_CON_MUX_CLKCMU_DPU_BUS 0x1000 51#define CLK_CON_MUX_MUX_CLKCMU_APM_BUS 0x1004 52#define CLK_CON_MUX_MUX_CLKCMU_AUD_CPU 0x1008 53#define CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS 0x100c 54#define CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS 0x1010 55#define CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS 0x1014 56#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0 0x1018 57#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1 0x101c 58#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2 0x1020 59#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3 0x1024 60#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4 0x1028 61#define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5 0x102c 62#define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST 0x1030 63#define CLK_CON_MUX_MUX_CLKCMU_CORE_BUS 0x1034 64#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS 0x1038 65#define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH 0x103c 66#define CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH 0x1040 67#define CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP 0x1044 68#define CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH 0x1048 69#define CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS 0x104c 70#define CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU 0x1050 71#define CLK_CON_MUX_MUX_CLKCMU_DNC_BUS 0x1054 72#define CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM 0x1058 73#define CLK_CON_MUX_MUX_CLKCMU_DNS_BUS 0x105c 74#define CLK_CON_MUX_MUX_CLKCMU_DPU 0x1060 75#define CLK_CON_MUX_MUX_CLKCMU_DPU_ALT 0x1064 76#define CLK_CON_MUX_MUX_CLKCMU_DSP_BUS 0x1068 77#define CLK_CON_MUX_MUX_CLKCMU_G2D_G2D 0x106c 78#define CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL 0x1070 79#define CLK_CON_MUX_MUX_CLKCMU_HPM 0x1074 80#define CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS 0x1078 81#define CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC 0x107c 82#define CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD 0x1080 83#define CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG 0x1084 84#define CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS 0x1088 85#define CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD 0x108c 86#define CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE 0x1090 87#define CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD 0x1094 88#define CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD 0x1098 89#define CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS 0x109c 90#define CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE 0x10a0 91#define CLK_CON_MUX_MUX_CLKCMU_IPP_BUS 0x10a4 92#define CLK_CON_MUX_MUX_CLKCMU_ITP_BUS 0x10a8 93#define CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS 0x10ac 94#define CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC 0x10b0 95#define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU 0x10b4 96#define CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0 0x10b8 97#define CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD 0x10bc 98#define CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP 0x10c0 99#define CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH 0x10c4 100#define CLK_CON_MUX_MUX_CLKCMU_NPU_BUS 0x10c8 101#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS 0x10cc 102#define CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP 0x10d0 103#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS 0x10d4 104#define CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP 0x10d8 105#define CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS 0x10dc 106#define CLK_CON_MUX_MUX_CLKCMU_SSP_BUS 0x10e0 107#define CLK_CON_MUX_MUX_CLKCMU_TNR_BUS 0x10e4 108#define CLK_CON_MUX_MUX_CLKCMU_VRA_BUS 0x10e8 109#define CLK_CON_MUX_MUX_CLK_CMU_CMUREF 0x10f0 110#define CLK_CON_MUX_MUX_CMU_CMUREF 0x10f4 111#define CLK_CON_DIV_CLKCMU_APM_BUS 0x1800 112#define CLK_CON_DIV_CLKCMU_AUD_CPU 0x1804 113#define CLK_CON_DIV_CLKCMU_BUS0_BUS 0x1808 114#define CLK_CON_DIV_CLKCMU_BUS1_BUS 0x180c 115#define CLK_CON_DIV_CLKCMU_BUS1_SSS 0x1810 116#define CLK_CON_DIV_CLKCMU_CIS_CLK0 0x1814 117#define CLK_CON_DIV_CLKCMU_CIS_CLK1 0x1818 118#define CLK_CON_DIV_CLKCMU_CIS_CLK2 0x181c 119#define CLK_CON_DIV_CLKCMU_CIS_CLK3 0x1820 120#define CLK_CON_DIV_CLKCMU_CIS_CLK4 0x1824 121#define CLK_CON_DIV_CLKCMU_CIS_CLK5 0x1828 122#define CLK_CON_DIV_CLKCMU_CMU_BOOST 0x182c 123#define CLK_CON_DIV_CLKCMU_CORE_BUS 0x1830 124#define CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS 0x1834 125#define CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH 0x1838 126#define CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH 0x183c 127#define CLK_CON_DIV_CLKCMU_CPUCL2_BUSP 0x1840 128#define CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH 0x1844 129#define CLK_CON_DIV_CLKCMU_CSIS_BUS 0x1848 130#define CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU 0x184c 131#define CLK_CON_DIV_CLKCMU_DNC_BUS 0x1850 132#define CLK_CON_DIV_CLKCMU_DNC_BUSM 0x1854 133#define CLK_CON_DIV_CLKCMU_DNS_BUS 0x1858 134#define CLK_CON_DIV_CLKCMU_DSP_BUS 0x185c 135#define CLK_CON_DIV_CLKCMU_G2D_G2D 0x1860 136#define CLK_CON_DIV_CLKCMU_G2D_MSCL 0x1864 137#define CLK_CON_DIV_CLKCMU_G3D_SWITCH 0x1868 138#define CLK_CON_DIV_CLKCMU_HPM 0x186c 139#define CLK_CON_DIV_CLKCMU_HSI0_BUS 0x1870 140#define CLK_CON_DIV_CLKCMU_HSI0_DPGTC 0x1874 141#define CLK_CON_DIV_CLKCMU_HSI0_USB31DRD 0x1878 142#define CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG 0x187c 143#define CLK_CON_DIV_CLKCMU_HSI1_BUS 0x1880 144#define CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD 0x1884 145#define CLK_CON_DIV_CLKCMU_HSI1_PCIE 0x1888 146#define CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD 0x188c 147#define CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD 0x1890 148#define CLK_CON_DIV_CLKCMU_HSI2_BUS 0x1894 149#define CLK_CON_DIV_CLKCMU_HSI2_PCIE 0x1898 150#define CLK_CON_DIV_CLKCMU_IPP_BUS 0x189c 151#define CLK_CON_DIV_CLKCMU_ITP_BUS 0x18a0 152#define CLK_CON_DIV_CLKCMU_MCSC_BUS 0x18a4 153#define CLK_CON_DIV_CLKCMU_MCSC_GDC 0x18a8 154#define CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU 0x18ac 155#define CLK_CON_DIV_CLKCMU_MFC0_MFC0 0x18b0 156#define CLK_CON_DIV_CLKCMU_MFC0_WFD 0x18b4 157#define CLK_CON_DIV_CLKCMU_MIF_BUSP 0x18b8 158#define CLK_CON_DIV_CLKCMU_NPU_BUS 0x18bc 159#define CLK_CON_DIV_CLKCMU_OTP 0x18c0 160#define CLK_CON_DIV_CLKCMU_PERIC0_BUS 0x18c4 161#define CLK_CON_DIV_CLKCMU_PERIC0_IP 0x18c8 162#define CLK_CON_DIV_CLKCMU_PERIC1_BUS 0x18cc 163#define CLK_CON_DIV_CLKCMU_PERIC1_IP 0x18d0 164#define CLK_CON_DIV_CLKCMU_PERIS_BUS 0x18d4 165#define CLK_CON_DIV_CLKCMU_SSP_BUS 0x18d8 166#define CLK_CON_DIV_CLKCMU_TNR_BUS 0x18dc 167#define CLK_CON_DIV_CLKCMU_VRA_BUS 0x18e0 168#define CLK_CON_DIV_DIV_CLKCMU_DPU 0x18e8 169#define CLK_CON_DIV_DIV_CLKCMU_DPU_ALT 0x18ec 170#define CLK_CON_DIV_DIV_CLK_CMU_CMUREF 0x18f0 171#define CLK_CON_DIV_PLL_SHARED0_DIV2 0x18f4 172#define CLK_CON_DIV_PLL_SHARED0_DIV3 0x18f8 173#define CLK_CON_DIV_PLL_SHARED0_DIV4 0x18fc 174#define CLK_CON_DIV_PLL_SHARED1_DIV2 0x1900 175#define CLK_CON_DIV_PLL_SHARED1_DIV3 0x1904 176#define CLK_CON_DIV_PLL_SHARED1_DIV4 0x1908 177#define CLK_CON_DIV_PLL_SHARED2_DIV2 0x190c 178#define CLK_CON_DIV_PLL_SHARED4_DIV2 0x1910 179#define CLK_CON_DIV_PLL_SHARED4_DIV3 0x1914 180#define CLK_CON_DIV_PLL_SHARED4_DIV4 0x1918 181#define CLK_CON_GAT_CLKCMU_G3D_BUS 0x2000 182#define CLK_CON_GAT_CLKCMU_MIF_SWITCH 0x2004 183#define CLK_CON_GAT_GATE_CLKCMU_APM_BUS 0x2008 184#define CLK_CON_GAT_GATE_CLKCMU_AUD_CPU 0x200c 185#define CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS 0x2010 186#define CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS 0x2014 187#define CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS 0x2018 188#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0 0x201c 189#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1 0x2020 190#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2 0x2024 191#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3 0x2028 192#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4 0x202c 193#define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5 0x2030 194#define CLK_CON_GAT_GATE_CLKCMU_CORE_BUS 0x2034 195#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS 0x2038 196#define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH 0x203c 197#define CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH 0x2040 198#define CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP 0x2044 199#define CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH 0x2048 200#define CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS 0x204c 201#define CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU 0x2050 202#define CLK_CON_GAT_GATE_CLKCMU_DNC_BUS 0x2054 203#define CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM 0x2058 204#define CLK_CON_GAT_GATE_CLKCMU_DNS_BUS 0x205c 205#define CLK_CON_GAT_GATE_CLKCMU_DPU 0x2060 206#define CLK_CON_GAT_GATE_CLKCMU_DPU_BUS 0x2064 207#define CLK_CON_GAT_GATE_CLKCMU_DSP_BUS 0x2068 208#define CLK_CON_GAT_GATE_CLKCMU_G2D_G2D 0x206c 209#define CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL 0x2070 210#define CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH 0x2074 211#define CLK_CON_GAT_GATE_CLKCMU_HPM 0x2078 212#define CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS 0x207c 213#define CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC 0x2080 214#define CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD 0x2084 215#define CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG 0x2088 216#define CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS 0x208c 217#define CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD 0x2090 218#define CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE 0x2094 219#define CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD 0x2098 220#define CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD 0x209c 221#define CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS 0x20a0 222#define CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE 0x20a4 223#define CLK_CON_GAT_GATE_CLKCMU_IPP_BUS 0x20a8 224#define CLK_CON_GAT_GATE_CLKCMU_ITP_BUS 0x20ac 225#define CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS 0x20b0 226#define CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC 0x20b4 227#define CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0 0x20bc 228#define CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD 0x20c0 229#define CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP 0x20c4 230#define CLK_CON_GAT_GATE_CLKCMU_NPU_BUS 0x20c8 231#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS 0x20cc 232#define CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP 0x20d0 233#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS 0x20d4 234#define CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP 0x20d8 235#define CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS 0x20dc 236#define CLK_CON_GAT_GATE_CLKCMU_SSP_BUS 0x20e0 237#define CLK_CON_GAT_GATE_CLKCMU_TNR_BUS 0x20e4 238#define CLK_CON_GAT_GATE_CLKCMU_VRA_BUS 0x20e8 239 240static const unsigned long top_clk_regs[] __initconst = { 241 PLL_LOCKTIME_PLL_G3D, 242 PLL_LOCKTIME_PLL_MMC, 243 PLL_LOCKTIME_PLL_SHARED0, 244 PLL_LOCKTIME_PLL_SHARED1, 245 PLL_LOCKTIME_PLL_SHARED2, 246 PLL_LOCKTIME_PLL_SHARED3, 247 PLL_LOCKTIME_PLL_SHARED4, 248 PLL_CON0_PLL_G3D, 249 PLL_CON3_PLL_G3D, 250 PLL_CON0_PLL_MMC, 251 PLL_CON3_PLL_MMC, 252 PLL_CON0_PLL_SHARED0, 253 PLL_CON3_PLL_SHARED0, 254 PLL_CON0_PLL_SHARED1, 255 PLL_CON3_PLL_SHARED1, 256 PLL_CON0_PLL_SHARED2, 257 PLL_CON3_PLL_SHARED2, 258 PLL_CON0_PLL_SHARED3, 259 PLL_CON3_PLL_SHARED3, 260 PLL_CON0_PLL_SHARED4, 261 PLL_CON3_PLL_SHARED4, 262 CLK_CON_MUX_CLKCMU_DPU_BUS, 263 CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 264 CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 265 CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS, 266 CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS, 267 CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS, 268 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0, 269 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1, 270 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2, 271 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3, 272 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4, 273 CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5, 274 CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 275 CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 276 CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS, 277 CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 278 CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 279 CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP, 280 CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH, 281 CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS, 282 CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU, 283 CLK_CON_MUX_MUX_CLKCMU_DNC_BUS, 284 CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM, 285 CLK_CON_MUX_MUX_CLKCMU_DNS_BUS, 286 CLK_CON_MUX_MUX_CLKCMU_DPU, 287 CLK_CON_MUX_MUX_CLKCMU_DPU_ALT, 288 CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 289 CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 290 CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 291 CLK_CON_MUX_MUX_CLKCMU_HPM, 292 CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS, 293 CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC, 294 CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD, 295 CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 296 CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 297 CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD, 298 CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE, 299 CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD, 300 CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD, 301 CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 302 CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE, 303 CLK_CON_MUX_MUX_CLKCMU_IPP_BUS, 304 CLK_CON_MUX_MUX_CLKCMU_ITP_BUS, 305 CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS, 306 CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC, 307 CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU, 308 CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0, 309 CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD, 310 CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 311 CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 312 CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 313 CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 314 CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 315 CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 316 CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 317 CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 318 CLK_CON_MUX_MUX_CLKCMU_SSP_BUS, 319 CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 320 CLK_CON_MUX_MUX_CLKCMU_VRA_BUS, 321 CLK_CON_MUX_MUX_CLK_CMU_CMUREF, 322 CLK_CON_MUX_MUX_CMU_CMUREF, 323 CLK_CON_DIV_CLKCMU_APM_BUS, 324 CLK_CON_DIV_CLKCMU_AUD_CPU, 325 CLK_CON_DIV_CLKCMU_BUS0_BUS, 326 CLK_CON_DIV_CLKCMU_BUS1_BUS, 327 CLK_CON_DIV_CLKCMU_BUS1_SSS, 328 CLK_CON_DIV_CLKCMU_CIS_CLK0, 329 CLK_CON_DIV_CLKCMU_CIS_CLK1, 330 CLK_CON_DIV_CLKCMU_CIS_CLK2, 331 CLK_CON_DIV_CLKCMU_CIS_CLK3, 332 CLK_CON_DIV_CLKCMU_CIS_CLK4, 333 CLK_CON_DIV_CLKCMU_CIS_CLK5, 334 CLK_CON_DIV_CLKCMU_CMU_BOOST, 335 CLK_CON_DIV_CLKCMU_CORE_BUS, 336 CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS, 337 CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 338 CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 339 CLK_CON_DIV_CLKCMU_CPUCL2_BUSP, 340 CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH, 341 CLK_CON_DIV_CLKCMU_CSIS_BUS, 342 CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU, 343 CLK_CON_DIV_CLKCMU_DNC_BUS, 344 CLK_CON_DIV_CLKCMU_DNC_BUSM, 345 CLK_CON_DIV_CLKCMU_DNS_BUS, 346 CLK_CON_DIV_CLKCMU_DSP_BUS, 347 CLK_CON_DIV_CLKCMU_G2D_G2D, 348 CLK_CON_DIV_CLKCMU_G2D_MSCL, 349 CLK_CON_DIV_CLKCMU_G3D_SWITCH, 350 CLK_CON_DIV_CLKCMU_HPM, 351 CLK_CON_DIV_CLKCMU_HSI0_BUS, 352 CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 353 CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 354 CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG, 355 CLK_CON_DIV_CLKCMU_HSI1_BUS, 356 CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD, 357 CLK_CON_DIV_CLKCMU_HSI1_PCIE, 358 CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD, 359 CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD, 360 CLK_CON_DIV_CLKCMU_HSI2_BUS, 361 CLK_CON_DIV_CLKCMU_HSI2_PCIE, 362 CLK_CON_DIV_CLKCMU_IPP_BUS, 363 CLK_CON_DIV_CLKCMU_ITP_BUS, 364 CLK_CON_DIV_CLKCMU_MCSC_BUS, 365 CLK_CON_DIV_CLKCMU_MCSC_GDC, 366 CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU, 367 CLK_CON_DIV_CLKCMU_MFC0_MFC0, 368 CLK_CON_DIV_CLKCMU_MFC0_WFD, 369 CLK_CON_DIV_CLKCMU_MIF_BUSP, 370 CLK_CON_DIV_CLKCMU_NPU_BUS, 371 CLK_CON_DIV_CLKCMU_OTP, 372 CLK_CON_DIV_CLKCMU_PERIC0_BUS, 373 CLK_CON_DIV_CLKCMU_PERIC0_IP, 374 CLK_CON_DIV_CLKCMU_PERIC1_BUS, 375 CLK_CON_DIV_CLKCMU_PERIC1_IP, 376 CLK_CON_DIV_CLKCMU_PERIS_BUS, 377 CLK_CON_DIV_CLKCMU_SSP_BUS, 378 CLK_CON_DIV_CLKCMU_TNR_BUS, 379 CLK_CON_DIV_CLKCMU_VRA_BUS, 380 CLK_CON_DIV_DIV_CLKCMU_DPU, 381 CLK_CON_DIV_DIV_CLKCMU_DPU_ALT, 382 CLK_CON_DIV_DIV_CLK_CMU_CMUREF, 383 CLK_CON_DIV_PLL_SHARED0_DIV2, 384 CLK_CON_DIV_PLL_SHARED0_DIV3, 385 CLK_CON_DIV_PLL_SHARED0_DIV4, 386 CLK_CON_DIV_PLL_SHARED1_DIV2, 387 CLK_CON_DIV_PLL_SHARED1_DIV3, 388 CLK_CON_DIV_PLL_SHARED1_DIV4, 389 CLK_CON_DIV_PLL_SHARED2_DIV2, 390 CLK_CON_DIV_PLL_SHARED4_DIV2, 391 CLK_CON_DIV_PLL_SHARED4_DIV3, 392 CLK_CON_DIV_PLL_SHARED4_DIV4, 393 CLK_CON_GAT_CLKCMU_G3D_BUS, 394 CLK_CON_GAT_CLKCMU_MIF_SWITCH, 395 CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 396 CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 397 CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS, 398 CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS, 399 CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS, 400 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0, 401 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1, 402 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2, 403 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3, 404 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4, 405 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5, 406 CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 407 CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS, 408 CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 409 CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 410 CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP, 411 CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH, 412 CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS, 413 CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU, 414 CLK_CON_GAT_GATE_CLKCMU_DNC_BUS, 415 CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM, 416 CLK_CON_GAT_GATE_CLKCMU_DNS_BUS, 417 CLK_CON_GAT_GATE_CLKCMU_DPU, 418 CLK_CON_GAT_GATE_CLKCMU_DPU_BUS, 419 CLK_CON_GAT_GATE_CLKCMU_DSP_BUS, 420 CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 421 CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 422 CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH, 423 CLK_CON_GAT_GATE_CLKCMU_HPM, 424 CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS, 425 CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC, 426 CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD, 427 CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG, 428 CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS, 429 CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD, 430 CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE, 431 CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD, 432 CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD, 433 CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS, 434 CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE, 435 CLK_CON_GAT_GATE_CLKCMU_IPP_BUS, 436 CLK_CON_GAT_GATE_CLKCMU_ITP_BUS, 437 CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS, 438 CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC, 439 CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0, 440 CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD, 441 CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 442 CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 443 CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 444 CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 445 CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 446 CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 447 CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 448 CLK_CON_GAT_GATE_CLKCMU_SSP_BUS, 449 CLK_CON_GAT_GATE_CLKCMU_TNR_BUS, 450 CLK_CON_GAT_GATE_CLKCMU_VRA_BUS, 451}; 452 453static const struct samsung_pll_clock top_pll_clks[] __initconst = { 454 PLL(pll_0717x, CLK_FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk", 455 PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0, NULL), 456 PLL(pll_0717x, CLK_FOUT_SHARED1_PLL, "fout_shared1_pll", "oscclk", 457 PLL_LOCKTIME_PLL_SHARED1, PLL_CON3_PLL_SHARED1, NULL), 458 PLL(pll_0718x, CLK_FOUT_SHARED2_PLL, "fout_shared2_pll", "oscclk", 459 PLL_LOCKTIME_PLL_SHARED2, PLL_CON3_PLL_SHARED2, NULL), 460 PLL(pll_0718x, CLK_FOUT_SHARED3_PLL, "fout_shared3_pll", "oscclk", 461 PLL_LOCKTIME_PLL_SHARED3, PLL_CON3_PLL_SHARED3, NULL), 462 PLL(pll_0717x, CLK_FOUT_SHARED4_PLL, "fout_shared4_pll", "oscclk", 463 PLL_LOCKTIME_PLL_SHARED4, PLL_CON3_PLL_SHARED4, NULL), 464 PLL(pll_0732x, CLK_FOUT_MMC_PLL, "fout_mmc_pll", "oscclk", 465 PLL_LOCKTIME_PLL_MMC, PLL_CON3_PLL_MMC, NULL), 466 PLL(pll_0718x, CLK_FOUT_G3D_PLL, "fout_g3d_pll", "oscclk", 467 PLL_LOCKTIME_PLL_G3D, PLL_CON3_PLL_G3D, NULL), 468}; 469 470/* Parent clock list for CMU_TOP muxes */ 471PNAME(mout_pll_shared0_p) = { "oscclk", "fout_shared0_pll" }; 472PNAME(mout_pll_shared1_p) = { "oscclk", "fout_shared1_pll" }; 473PNAME(mout_pll_shared2_p) = { "oscclk", "fout_shared2_pll" }; 474PNAME(mout_pll_shared3_p) = { "oscclk", "fout_shared3_pll" }; 475PNAME(mout_pll_shared4_p) = { "oscclk", "fout_shared4_pll" }; 476PNAME(mout_pll_mmc_p) = { "oscclk", "fout_mmc_pll" }; 477PNAME(mout_pll_g3d_p) = { "oscclk", "fout_g3d_pll" }; 478PNAME(mout_cmu_dpu_bus_p) = { "dout_cmu_dpu", 479 "dout_cmu_dpu_alt" }; 480PNAME(mout_cmu_apm_bus_p) = { "dout_cmu_shared0_div2", 481 "dout_cmu_shared2_div2" }; 482PNAME(mout_cmu_aud_cpu_p) = { "dout_cmu_shared0_div2", 483 "fout_shared2_pll", 484 "dout_cmu_shared4_div2", 485 "dout_cmu_shared0_div4" }; 486PNAME(mout_cmu_bus0_bus_p) = { "dout_cmu_shared0_div4", 487 "dout_cmu_shared1_div4", 488 "dout_cmu_shared2_div2", 489 "oscclk" }; 490PNAME(mout_cmu_bus1_bus_p) = { "dout_cmu_shared0_div4", 491 "dout_cmu_shared1_div4", 492 "dout_cmu_shared2_div2", 493 "oscclk" }; 494PNAME(mout_cmu_bus1_sss_p) = { "dout_cmu_shared0_div4", 495 "dout_cmu_shared1_div4", 496 "dout_cmu_shared2_div2", 497 "oscclk" }; 498PNAME(mout_cmu_cis_clk0_p) = { "oscclk", 499 "dout_cmu_shared2_div2" }; 500PNAME(mout_cmu_cis_clk1_p) = { "oscclk", 501 "dout_cmu_shared2_div2" }; 502PNAME(mout_cmu_cis_clk2_p) = { "oscclk", 503 "dout_cmu_shared2_div2" }; 504PNAME(mout_cmu_cis_clk3_p) = { "oscclk", 505 "dout_cmu_shared2_div2" }; 506PNAME(mout_cmu_cis_clk4_p) = { "oscclk", 507 "dout_cmu_shared2_div2" }; 508PNAME(mout_cmu_cis_clk5_p) = { "oscclk", 509 "dout_cmu_shared2_div2" }; 510PNAME(mout_cmu_cmu_boost_p) = { "dout_cmu_shared0_div4", 511 "dout_cmu_shared1_div4", 512 "dout_cmu_shared2_div2", 513 "oscclk" }; 514PNAME(mout_cmu_core_bus_p) = { "dout_cmu_shared0_div2", 515 "dout_cmu_shared1_div2", 516 "fout_shared2_pll", 517 "dout_cmu_shared0_div3", 518 "dout_cmu_shared1_div3", 519 "dout_cmu_shared0_div4", 520 "fout_shared3_pll", "oscclk" }; 521PNAME(mout_cmu_cpucl0_dbg_bus_p) = { "fout_shared2_pll", 522 "dout_cmu_shared0_div3", 523 "dout_cmu_shared0_div4", 524 "oscclk" }; 525PNAME(mout_cmu_cpucl0_switch_p) = { "fout_shared4_pll", 526 "dout_cmu_shared0_div2", 527 "fout_shared2_pll", 528 "dout_cmu_shared0_div4" }; 529PNAME(mout_cmu_cpucl1_switch_p) = { "fout_shared4_pll", 530 "dout_cmu_shared0_div2", 531 "fout_shared2_pll", 532 "dout_cmu_shared0_div4" }; 533PNAME(mout_cmu_cpucl2_busp_p) = { "dout_cmu_shared0_div4", 534 "dout_cmu_shared2_div2" }; 535PNAME(mout_cmu_cpucl2_switch_p) = { "fout_shared4_pll", 536 "dout_cmu_shared0_div2", 537 "fout_shared2_pll", 538 "dout_cmu_shared0_div4" }; 539PNAME(mout_cmu_csis_bus_p) = { "dout_cmu_shared0_div3", 540 "dout_cmu_shared4_div2", 541 "dout_cmu_shared0_div4", 542 "dout_cmu_shared4_div3" }; 543PNAME(mout_cmu_csis_ois_mcu_p) = { "dout_cmu_shared0_div4", 544 "dout_cmu_shared2_div2" }; 545PNAME(mout_cmu_dnc_bus_p) = { "dout_cmu_shared1_div2", 546 "fout_shared2_pll", 547 "dout_cmu_shared4_div2", 548 "dout_cmu_shared0_div4" }; 549PNAME(mout_cmu_dnc_busm_p) = { "dout_cmu_shared0_div4", 550 "dout_cmu_shared1_div4", 551 "dout_cmu_shared2_div2", 552 "dout_cmu_shared4_div4" }; 553PNAME(mout_cmu_dns_bus_p) = { "dout_cmu_shared0_div3", 554 "dout_cmu_shared4_div2", 555 "dout_cmu_shared0_div4", 556 "dout_cmu_shared1_div4", 557 "dout_cmu_shared4_div3", 558 "dout_cmu_shared2_div2", 559 "oscclk", "oscclk" }; 560PNAME(mout_cmu_dpu_p) = { "dout_cmu_shared0_div3", 561 "dout_cmu_shared0_div4" }; 562PNAME(mout_cmu_dpu_alt_p) = { "dout_cmu_shared4_div2", 563 "dout_cmu_shared4_div3", 564 "dout_cmu_shared2_div2", 565 "oscclk" }; 566PNAME(mout_cmu_dsp_bus_p) = { "dout_cmu_shared0_div2", 567 "dout_cmu_shared1_div2", 568 "fout_shared2_pll", 569 "dout_cmu_shared4_div2", 570 "fout_shared3_pll", "oscclk", 571 "oscclk", "oscclk" }; 572PNAME(mout_cmu_g2d_g2d_p) = { "dout_cmu_shared0_div3", 573 "dout_cmu_shared4_div2", 574 "dout_cmu_shared0_div4", 575 "dout_cmu_shared2_div2" }; 576PNAME(mout_cmu_g2d_mscl_p) = { "dout_cmu_shared0_div4", 577 "dout_cmu_shared2_div2", 578 "dout_cmu_shared4_div4", 579 "oscclk" }; 580PNAME(mout_cmu_hpm_p) = { "oscclk", 581 "dout_cmu_shared0_div4", 582 "dout_cmu_shared2_div2", 583 "oscclk" }; 584PNAME(mout_cmu_hsi0_bus_p) = { "dout_cmu_shared0_div4", 585 "dout_cmu_shared2_div2" }; 586PNAME(mout_cmu_hsi0_dpgtc_p) = { "oscclk", "dout_cmu_shared0_div4", 587 "dout_cmu_shared2_div2", 588 "oscclk" }; 589PNAME(mout_cmu_hsi0_usb31drd_p) = { "oscclk", "dout_cmu_shared0_div4", 590 "dout_cmu_shared2_div2", 591 "oscclk" }; 592PNAME(mout_cmu_hsi0_usbdp_debug_p) = { "oscclk", "fout_shared2_pll" }; 593PNAME(mout_cmu_hsi1_bus_p) = { "dout_cmu_shared0_div3", 594 "dout_cmu_shared0_div4", 595 "dout_cmu_shared1_div4", 596 "dout_cmu_shared4_div3", 597 "dout_cmu_shared2_div2", 598 "fout_mmc_pll", "oscclk", "oscclk" }; 599PNAME(mout_cmu_hsi1_mmc_card_p) = { "oscclk", "fout_shared2_pll", 600 "fout_mmc_pll", 601 "dout_cmu_shared0_div4" }; 602PNAME(mout_cmu_hsi1_pcie_p) = { "oscclk", "fout_shared2_pll" }; 603PNAME(mout_cmu_hsi1_ufs_card_p) = { "oscclk", "dout_cmu_shared0_div4", 604 "dout_cmu_shared2_div2", 605 "oscclk" }; 606PNAME(mout_cmu_hsi1_ufs_embd_p) = { "oscclk", "dout_cmu_shared0_div4", 607 "dout_cmu_shared2_div2", 608 "oscclk" }; 609PNAME(mout_cmu_hsi2_bus_p) = { "dout_cmu_shared0_div3", 610 "dout_cmu_shared2_div2" }; 611PNAME(mout_cmu_hsi2_pcie_p) = { "oscclk", "fout_shared2_pll" }; 612PNAME(mout_cmu_ipp_bus_p) = { "dout_cmu_shared0_div3", 613 "dout_cmu_shared4_div2", 614 "dout_cmu_shared0_div4", 615 "dout_cmu_shared1_div4", 616 "dout_cmu_shared4_div3", 617 "oscclk", "oscclk", "oscclk" }; 618PNAME(mout_cmu_itp_bus_p) = { "dout_cmu_shared0_div3", 619 "dout_cmu_shared4_div2", 620 "dout_cmu_shared0_div4", 621 "dout_cmu_shared1_div4", 622 "dout_cmu_shared4_div3", 623 "dout_cmu_shared2_div2", 624 "oscclk", "oscclk" }; 625PNAME(mout_cmu_mcsc_bus_p) = { "dout_cmu_shared0_div3", 626 "dout_cmu_shared4_div2", 627 "dout_cmu_shared0_div4", 628 "dout_cmu_shared1_div4", 629 "dout_cmu_shared4_div3", 630 "dout_cmu_shared2_div2", 631 "oscclk", "oscclk" }; 632PNAME(mout_cmu_mcsc_gdc_p) = { "dout_cmu_shared0_div3", 633 "dout_cmu_shared4_div2", 634 "dout_cmu_shared0_div4", 635 "dout_cmu_shared1_div4", 636 "dout_cmu_shared4_div3", 637 "dout_cmu_shared2_div2", 638 "oscclk", "oscclk" }; 639PNAME(mout_cmu_cmu_boost_cpu_p) = { "dout_cmu_shared0_div4", 640 "dout_cmu_shared1_div4", 641 "dout_cmu_shared2_div2", 642 "oscclk" }; 643PNAME(mout_cmu_mfc0_mfc0_p) = { "dout_cmu_shared4_div2", 644 "dout_cmu_shared0_div4", 645 "dout_cmu_shared4_div3", 646 "dout_cmu_shared2_div2" }; 647PNAME(mout_cmu_mfc0_wfd_p) = { "dout_cmu_shared4_div2", 648 "dout_cmu_shared0_div4", 649 "dout_cmu_shared4_div3", 650 "dout_cmu_shared2_div2" }; 651PNAME(mout_cmu_mif_busp_p) = { "dout_cmu_shared0_div4", 652 "dout_cmu_shared1_div4", 653 "dout_cmu_shared2_div2", 654 "oscclk" }; 655PNAME(mout_cmu_mif_switch_p) = { "fout_shared0_pll", 656 "fout_shared1_pll", 657 "dout_cmu_shared0_div2", 658 "dout_cmu_shared1_div2", 659 "fout_shared2_pll", 660 "dout_cmu_shared0_div4", 661 "dout_cmu_shared2_div2", 662 "oscclk" }; 663PNAME(mout_cmu_npu_bus_p) = { "dout_cmu_shared0_div2", 664 "dout_cmu_shared1_div2", 665 "fout_shared2_pll", 666 "dout_cmu_shared4_div2", 667 "fout_shared3_pll", "oscclk", 668 "oscclk", "oscclk" }; 669PNAME(mout_cmu_peric0_bus_p) = { "dout_cmu_shared0_div4", 670 "dout_cmu_shared2_div2" }; 671PNAME(mout_cmu_peric0_ip_p) = { "dout_cmu_shared0_div4", 672 "dout_cmu_shared2_div2" }; 673PNAME(mout_cmu_peric1_bus_p) = { "dout_cmu_shared0_div4", 674 "dout_cmu_shared2_div2" }; 675PNAME(mout_cmu_peric1_ip_p) = { "dout_cmu_shared0_div4", 676 "dout_cmu_shared2_div2" }; 677PNAME(mout_cmu_peris_bus_p) = { "dout_cmu_shared0_div4", 678 "dout_cmu_shared2_div2" }; 679PNAME(mout_cmu_ssp_bus_p) = { "dout_cmu_shared4_div2", 680 "dout_cmu_shared0_div4", 681 "dout_cmu_shared4_div3", 682 "dout_cmu_shared2_div2" }; 683PNAME(mout_cmu_tnr_bus_p) = { "dout_cmu_shared0_div3", 684 "dout_cmu_shared4_div2", 685 "dout_cmu_shared0_div4", 686 "dout_cmu_shared1_div4", 687 "dout_cmu_shared4_div3", 688 "dout_cmu_shared2_div2", 689 "oscclk", "oscclk" }; 690PNAME(mout_cmu_vra_bus_p) = { "dout_cmu_shared0_div3", 691 "dout_cmu_shared4_div2", 692 "dout_cmu_shared0_div4", 693 "dout_cmu_shared4_div3" }; 694PNAME(mout_cmu_cmuref_p) = { "oscclk", 695 "dout_cmu_clk_cmuref" }; 696PNAME(mout_cmu_clk_cmuref_p) = { "dout_cmu_shared0_div4", 697 "dout_cmu_shared1_div4", 698 "dout_cmu_shared2_div2", 699 "oscclk" }; 700 701/* 702 * Register name to clock name mangling strategy used in this file 703 * 704 * Replace PLL_CON{0,3}_PLL with CLK_MOUT_PLL and mout_pll 705 * Replace CLK_CON_MUX_MUX_CLKCMU with CLK_MOUT_CMU and mout_cmu 706 * Replace CLK_CON_DIV_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 707 * Replace CLK_CON_DIV_DIV_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 708 * Replace CLK_CON_DIV_PLL_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 709 * Replace CLK_CON_GAT_CLKCMU with CLK_GOUT_CMU and gout_cmu 710 * Replace CLK_CON_GAT_GATE_CLKCMU with CLK_GOUT_CMU and gout_cmu 711 * 712 * For gates remove _UID _BLK _IPCLKPORT, _I and _RSTNSYNC 713 */ 714 715static const struct samsung_mux_clock top_mux_clks[] __initconst = { 716 MUX(CLK_MOUT_PLL_SHARED0, "mout_pll_shared0", mout_pll_shared0_p, 717 PLL_CON0_PLL_SHARED0, 4, 1), 718 MUX(CLK_MOUT_PLL_SHARED1, "mout_pll_shared1", mout_pll_shared1_p, 719 PLL_CON0_PLL_SHARED1, 4, 1), 720 MUX(CLK_MOUT_PLL_SHARED2, "mout_pll_shared2", mout_pll_shared2_p, 721 PLL_CON0_PLL_SHARED2, 4, 1), 722 MUX(CLK_MOUT_PLL_SHARED3, "mout_pll_shared3", mout_pll_shared3_p, 723 PLL_CON0_PLL_SHARED3, 4, 1), 724 MUX(CLK_MOUT_PLL_SHARED4, "mout_pll_shared4", mout_pll_shared4_p, 725 PLL_CON0_PLL_SHARED4, 4, 1), 726 MUX(CLK_MOUT_PLL_MMC, "mout_pll_mmc", mout_pll_mmc_p, 727 PLL_CON0_PLL_MMC, 4, 1), 728 MUX(CLK_MOUT_PLL_G3D, "mout_pll_g3d", mout_pll_g3d_p, 729 PLL_CON0_PLL_G3D, 4, 1), 730 MUX(CLK_MOUT_CMU_DPU_BUS, "mout_cmu_dpu_bus", 731 mout_cmu_dpu_bus_p, CLK_CON_MUX_CLKCMU_DPU_BUS, 0, 1), 732 MUX(CLK_MOUT_CMU_APM_BUS, "mout_cmu_apm_bus", 733 mout_cmu_apm_bus_p, CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 0, 1), 734 MUX(CLK_MOUT_CMU_AUD_CPU, "mout_cmu_aud_cpu", 735 mout_cmu_aud_cpu_p, CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 0, 2), 736 MUX(CLK_MOUT_CMU_BUS0_BUS, "mout_cmu_bus0_bus", 737 mout_cmu_bus0_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS, 0, 2), 738 MUX(CLK_MOUT_CMU_BUS1_BUS, "mout_cmu_bus1_bus", 739 mout_cmu_bus1_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS, 0, 2), 740 MUX(CLK_MOUT_CMU_BUS1_SSS, "mout_cmu_bus1_sss", 741 mout_cmu_bus1_sss_p, CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS, 0, 2), 742 MUX(CLK_MOUT_CMU_CIS_CLK0, "mout_cmu_cis_clk0", 743 mout_cmu_cis_clk0_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0, 0, 1), 744 MUX(CLK_MOUT_CMU_CIS_CLK1, "mout_cmu_cis_clk1", 745 mout_cmu_cis_clk1_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1, 0, 1), 746 MUX(CLK_MOUT_CMU_CIS_CLK2, "mout_cmu_cis_clk2", 747 mout_cmu_cis_clk2_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2, 0, 1), 748 MUX(CLK_MOUT_CMU_CIS_CLK3, "mout_cmu_cis_clk3", 749 mout_cmu_cis_clk3_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3, 0, 1), 750 MUX(CLK_MOUT_CMU_CIS_CLK4, "mout_cmu_cis_clk4", 751 mout_cmu_cis_clk4_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4, 0, 1), 752 MUX(CLK_MOUT_CMU_CIS_CLK5, "mout_cmu_cis_clk5", 753 mout_cmu_cis_clk5_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5, 0, 1), 754 MUX(CLK_MOUT_CMU_CMU_BOOST, "mout_cmu_cmu_boost", 755 mout_cmu_cmu_boost_p, CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 0, 2), 756 MUX(CLK_MOUT_CMU_CORE_BUS, "mout_cmu_core_bus", 757 mout_cmu_core_bus_p, CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 0, 3), 758 MUX(CLK_MOUT_CMU_CPUCL0_DBG_BUS, "mout_cmu_cpucl0_dbg_bus", 759 mout_cmu_cpucl0_dbg_bus_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS, 760 0, 2), 761 MUX(CLK_MOUT_CMU_CPUCL0_SWITCH, "mout_cmu_cpucl0_switch", 762 mout_cmu_cpucl0_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 763 0, 2), 764 MUX(CLK_MOUT_CMU_CPUCL1_SWITCH, "mout_cmu_cpucl1_switch", 765 mout_cmu_cpucl1_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 766 0, 2), 767 MUX(CLK_MOUT_CMU_CPUCL2_BUSP, "mout_cmu_cpucl2_busp", 768 mout_cmu_cpucl2_busp_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP, 769 0, 1), 770 MUX(CLK_MOUT_CMU_CPUCL2_SWITCH, "mout_cmu_cpucl2_switch", 771 mout_cmu_cpucl2_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH, 772 0, 2), 773 MUX(CLK_MOUT_CMU_CSIS_BUS, "mout_cmu_csis_bus", 774 mout_cmu_csis_bus_p, CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS, 0, 2), 775 MUX(CLK_MOUT_CMU_CSIS_OIS_MCU, "mout_cmu_csis_ois_mcu", 776 mout_cmu_csis_ois_mcu_p, CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU, 777 0, 1), 778 MUX(CLK_MOUT_CMU_DNC_BUS, "mout_cmu_dnc_bus", 779 mout_cmu_dnc_bus_p, CLK_CON_MUX_MUX_CLKCMU_DNC_BUS, 0, 2), 780 MUX(CLK_MOUT_CMU_DNC_BUSM, "mout_cmu_dnc_busm", 781 mout_cmu_dnc_busm_p, CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM, 0, 2), 782 MUX(CLK_MOUT_CMU_DNS_BUS, "mout_cmu_dns_bus", 783 mout_cmu_dns_bus_p, CLK_CON_MUX_MUX_CLKCMU_DNS_BUS, 0, 3), 784 MUX(CLK_MOUT_CMU_DPU, "mout_cmu_dpu", 785 mout_cmu_dpu_p, CLK_CON_MUX_MUX_CLKCMU_DPU, 0, 1), 786 MUX(CLK_MOUT_CMU_DPU_ALT, "mout_cmu_dpu_alt", 787 mout_cmu_dpu_alt_p, CLK_CON_MUX_MUX_CLKCMU_DPU_ALT, 0, 2), 788 MUX(CLK_MOUT_CMU_DSP_BUS, "mout_cmu_dsp_bus", 789 mout_cmu_dsp_bus_p, CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 0, 3), 790 MUX(CLK_MOUT_CMU_G2D_G2D, "mout_cmu_g2d_g2d", 791 mout_cmu_g2d_g2d_p, CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 0, 2), 792 MUX(CLK_MOUT_CMU_G2D_MSCL, "mout_cmu_g2d_mscl", 793 mout_cmu_g2d_mscl_p, CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 2), 794 MUX(CLK_MOUT_CMU_HPM, "mout_cmu_hpm", 795 mout_cmu_hpm_p, CLK_CON_MUX_MUX_CLKCMU_HPM, 0, 2), 796 MUX(CLK_MOUT_CMU_HSI0_BUS, "mout_cmu_hsi0_bus", 797 mout_cmu_hsi0_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS, 0, 1), 798 MUX(CLK_MOUT_CMU_HSI0_DPGTC, "mout_cmu_hsi0_dpgtc", 799 mout_cmu_hsi0_dpgtc_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC, 0, 2), 800 MUX(CLK_MOUT_CMU_HSI0_USB31DRD, "mout_cmu_hsi0_usb31drd", 801 mout_cmu_hsi0_usb31drd_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD, 802 0, 2), 803 MUX(CLK_MOUT_CMU_HSI0_USBDP_DEBUG, "mout_cmu_hsi0_usbdp_debug", 804 mout_cmu_hsi0_usbdp_debug_p, 805 CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 0, 1), 806 MUX(CLK_MOUT_CMU_HSI1_BUS, "mout_cmu_hsi1_bus", 807 mout_cmu_hsi1_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 0, 3), 808 MUX(CLK_MOUT_CMU_HSI1_MMC_CARD, "mout_cmu_hsi1_mmc_card", 809 mout_cmu_hsi1_mmc_card_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD, 810 0, 2), 811 MUX(CLK_MOUT_CMU_HSI1_PCIE, "mout_cmu_hsi1_pcie", 812 mout_cmu_hsi1_pcie_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE, 0, 1), 813 MUX(CLK_MOUT_CMU_HSI1_UFS_CARD, "mout_cmu_hsi1_ufs_card", 814 mout_cmu_hsi1_ufs_card_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD, 815 0, 2), 816 MUX(CLK_MOUT_CMU_HSI1_UFS_EMBD, "mout_cmu_hsi1_ufs_embd", 817 mout_cmu_hsi1_ufs_embd_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD, 818 0, 2), 819 MUX(CLK_MOUT_CMU_HSI2_BUS, "mout_cmu_hsi2_bus", 820 mout_cmu_hsi2_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 0, 1), 821 MUX(CLK_MOUT_CMU_HSI2_PCIE, "mout_cmu_hsi2_pcie", 822 mout_cmu_hsi2_pcie_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE, 0, 1), 823 MUX(CLK_MOUT_CMU_IPP_BUS, "mout_cmu_ipp_bus", 824 mout_cmu_ipp_bus_p, CLK_CON_MUX_MUX_CLKCMU_IPP_BUS, 0, 3), 825 MUX(CLK_MOUT_CMU_ITP_BUS, "mout_cmu_itp_bus", 826 mout_cmu_itp_bus_p, CLK_CON_MUX_MUX_CLKCMU_ITP_BUS, 0, 3), 827 MUX(CLK_MOUT_CMU_MCSC_BUS, "mout_cmu_mcsc_bus", 828 mout_cmu_mcsc_bus_p, CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS, 0, 3), 829 MUX(CLK_MOUT_CMU_MCSC_GDC, "mout_cmu_mcsc_gdc", 830 mout_cmu_mcsc_gdc_p, CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC, 0, 3), 831 MUX(CLK_MOUT_CMU_CMU_BOOST_CPU, "mout_cmu_cmu_boost_cpu", 832 mout_cmu_cmu_boost_cpu_p, CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU, 833 0, 2), 834 MUX(CLK_MOUT_CMU_MFC0_MFC0, "mout_cmu_mfc0_mfc0", 835 mout_cmu_mfc0_mfc0_p, CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0, 0, 2), 836 MUX(CLK_MOUT_CMU_MFC0_WFD, "mout_cmu_mfc0_wfd", 837 mout_cmu_mfc0_wfd_p, CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD, 0, 2), 838 MUX(CLK_MOUT_CMU_MIF_BUSP, "mout_cmu_mif_busp", 839 mout_cmu_mif_busp_p, CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 0, 2), 840 MUX(CLK_MOUT_CMU_MIF_SWITCH, "mout_cmu_mif_switch", 841 mout_cmu_mif_switch_p, CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 0, 3), 842 MUX(CLK_MOUT_CMU_NPU_BUS, "mout_cmu_npu_bus", 843 mout_cmu_npu_bus_p, CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 0, 3), 844 MUX(CLK_MOUT_CMU_PERIC0_BUS, "mout_cmu_peric0_bus", 845 mout_cmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 0, 1), 846 MUX(CLK_MOUT_CMU_PERIC0_IP, "mout_cmu_peric0_ip", 847 mout_cmu_peric0_ip_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 0, 1), 848 MUX(CLK_MOUT_CMU_PERIC1_BUS, "mout_cmu_peric1_bus", 849 mout_cmu_peric1_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 0, 1), 850 MUX(CLK_MOUT_CMU_PERIC1_IP, "mout_cmu_peric1_ip", 851 mout_cmu_peric1_ip_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 0, 1), 852 MUX(CLK_MOUT_CMU_PERIS_BUS, "mout_cmu_peris_bus", 853 mout_cmu_peris_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 0, 1), 854 MUX(CLK_MOUT_CMU_SSP_BUS, "mout_cmu_ssp_bus", 855 mout_cmu_ssp_bus_p, CLK_CON_MUX_MUX_CLKCMU_SSP_BUS, 0, 2), 856 MUX(CLK_MOUT_CMU_TNR_BUS, "mout_cmu_tnr_bus", 857 mout_cmu_tnr_bus_p, CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 0, 3), 858 MUX(CLK_MOUT_CMU_VRA_BUS, "mout_cmu_vra_bus", 859 mout_cmu_vra_bus_p, CLK_CON_MUX_MUX_CLKCMU_VRA_BUS, 0, 2), 860 MUX(CLK_MOUT_CMU_CMUREF, "mout_cmu_cmuref", 861 mout_cmu_cmuref_p, CLK_CON_MUX_MUX_CMU_CMUREF, 0, 1), 862 MUX(CLK_MOUT_CMU_CLK_CMUREF, "mout_cmu_clk_cmuref", 863 mout_cmu_clk_cmuref_p, CLK_CON_MUX_MUX_CLK_CMU_CMUREF, 0, 2), 864}; 865 866static const struct samsung_div_clock top_div_clks[] __initconst = { 867 /* SHARED0 region*/ 868 DIV(CLK_DOUT_CMU_SHARED0_DIV2, "dout_cmu_shared0_div2", "mout_pll_shared0", 869 CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1), 870 DIV(CLK_DOUT_CMU_SHARED0_DIV3, "dout_cmu_shared0_div3", "mout_pll_shared0", 871 CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2), 872 DIV(CLK_DOUT_CMU_SHARED0_DIV4, "dout_cmu_shared0_div4", "dout_cmu_shared0_div2", 873 CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1), 874 875 /* SHARED1 region*/ 876 DIV(CLK_DOUT_CMU_SHARED1_DIV2, "dout_cmu_shared1_div2", "mout_pll_shared1", 877 CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1), 878 DIV(CLK_DOUT_CMU_SHARED1_DIV3, "dout_cmu_shared1_div3", "mout_pll_shared1", 879 CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2), 880 DIV(CLK_DOUT_CMU_SHARED1_DIV4, "dout_cmu_shared1_div4", "dout_cmu_shared1_div2", 881 CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1), 882 883 /* SHARED2 region */ 884 DIV(CLK_DOUT_CMU_SHARED2_DIV2, "dout_cmu_shared2_div2", "mout_pll_shared2", 885 CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1), 886 887 /* SHARED4 region*/ 888 DIV(CLK_DOUT_CMU_SHARED4_DIV2, "dout_cmu_shared4_div2", "mout_pll_shared4", 889 CLK_CON_DIV_PLL_SHARED4_DIV2, 0, 1), 890 DIV(CLK_DOUT_CMU_SHARED4_DIV3, "dout_cmu_shared4_div3", "mout_pll_shared4", 891 CLK_CON_DIV_PLL_SHARED4_DIV3, 0, 2), 892 DIV(CLK_DOUT_CMU_SHARED4_DIV4, "dout_cmu_shared4_div4", "mout_pll_shared4", 893 CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1), 894 895 DIV(CLK_DOUT_CMU_APM_BUS, "dout_cmu_apm_bus", "gout_cmu_apm_bus", 896 CLK_CON_DIV_CLKCMU_APM_BUS, 0, 2), 897 DIV(CLK_DOUT_CMU_AUD_CPU, "dout_cmu_aud_cpu", "gout_cmu_aud_cpu", 898 CLK_CON_DIV_CLKCMU_AUD_CPU, 0, 3), 899 DIV(CLK_DOUT_CMU_BUS0_BUS, "dout_cmu_bus0_bus", "gout_cmu_bus0_bus", 900 CLK_CON_DIV_CLKCMU_BUS0_BUS, 0, 4), 901 DIV(CLK_DOUT_CMU_BUS1_BUS, "dout_cmu_bus1_bus", "gout_cmu_bus1_bus", 902 CLK_CON_DIV_CLKCMU_BUS1_BUS, 0, 4), 903 DIV(CLK_DOUT_CMU_BUS1_SSS, "dout_cmu_bus1_sss", "gout_cmu_bus1_sss", 904 CLK_CON_DIV_CLKCMU_BUS1_SSS, 0, 4), 905 DIV(CLK_DOUT_CMU_CIS_CLK0, "dout_cmu_cis_clk0", "gout_cmu_cis_clk0", 906 CLK_CON_DIV_CLKCMU_CIS_CLK0, 0, 5), 907 DIV(CLK_DOUT_CMU_CIS_CLK1, "dout_cmu_cis_clk1", "gout_cmu_cis_clk1", 908 CLK_CON_DIV_CLKCMU_CIS_CLK1, 0, 5), 909 DIV(CLK_DOUT_CMU_CIS_CLK2, "dout_cmu_cis_clk2", "gout_cmu_cis_clk2", 910 CLK_CON_DIV_CLKCMU_CIS_CLK2, 0, 5), 911 DIV(CLK_DOUT_CMU_CIS_CLK3, "dout_cmu_cis_clk3", "gout_cmu_cis_clk3", 912 CLK_CON_DIV_CLKCMU_CIS_CLK3, 0, 5), 913 DIV(CLK_DOUT_CMU_CIS_CLK4, "dout_cmu_cis_clk4", "gout_cmu_cis_clk4", 914 CLK_CON_DIV_CLKCMU_CIS_CLK4, 0, 5), 915 DIV(CLK_DOUT_CMU_CIS_CLK5, "dout_cmu_cis_clk5", "gout_cmu_cis_clk5", 916 CLK_CON_DIV_CLKCMU_CIS_CLK5, 0, 5), 917 DIV(CLK_DOUT_CMU_CMU_BOOST, "dout_cmu_cmu_boost", "mout_cmu_cmu_boost", 918 CLK_CON_DIV_CLKCMU_CMU_BOOST, 0, 2), 919 DIV(CLK_DOUT_CMU_CORE_BUS, "dout_cmu_core_bus", "gout_cmu_core_bus", 920 CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4), 921 DIV(CLK_DOUT_CMU_CPUCL0_DBG_BUS, "dout_cmu_cpucl0_dbg_bus", 922 "gout_cmu_cpucl0_dbg_bus", CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS, 923 0, 4), 924 DIV(CLK_DOUT_CMU_CPUCL0_SWITCH, "dout_cmu_cpucl0_switch", 925 "gout_cmu_cpucl0_switch", CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 0, 3), 926 DIV(CLK_DOUT_CMU_CPUCL1_SWITCH, "dout_cmu_cpucl1_switch", 927 "gout_cmu_cpucl1_switch", CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 0, 3), 928 DIV(CLK_DOUT_CMU_CPUCL2_BUSP, "dout_cmu_cpucl2_busp", 929 "gout_cmu_cpucl2_busp", CLK_CON_DIV_CLKCMU_CPUCL2_BUSP, 0, 4), 930 DIV(CLK_DOUT_CMU_CPUCL2_SWITCH, "dout_cmu_cpucl2_switch", 931 "gout_cmu_cpucl2_switch", CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH, 0, 3), 932 DIV(CLK_DOUT_CMU_CSIS_BUS, "dout_cmu_csis_bus", "gout_cmu_csis_bus", 933 CLK_CON_DIV_CLKCMU_CSIS_BUS, 0, 4), 934 DIV(CLK_DOUT_CMU_CSIS_OIS_MCU, "dout_cmu_csis_ois_mcu", 935 "gout_cmu_csis_ois_mcu", CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU, 0, 4), 936 DIV(CLK_DOUT_CMU_DNC_BUS, "dout_cmu_dnc_bus", "gout_cmu_dnc_bus", 937 CLK_CON_DIV_CLKCMU_DNC_BUS, 0, 4), 938 DIV(CLK_DOUT_CMU_DNC_BUSM, "dout_cmu_dnc_busm", "gout_cmu_dnc_busm", 939 CLK_CON_DIV_CLKCMU_DNC_BUSM, 0, 4), 940 DIV(CLK_DOUT_CMU_DNS_BUS, "dout_cmu_dns_bus", "gout_cmu_dns_bus", 941 CLK_CON_DIV_CLKCMU_DNS_BUS, 0, 4), 942 DIV(CLK_DOUT_CMU_DSP_BUS, "dout_cmu_dsp_bus", "gout_cmu_dsp_bus", 943 CLK_CON_DIV_CLKCMU_DSP_BUS, 0, 4), 944 DIV(CLK_DOUT_CMU_G2D_G2D, "dout_cmu_g2d_g2d", "gout_cmu_g2d_g2d", 945 CLK_CON_DIV_CLKCMU_G2D_G2D, 0, 4), 946 DIV(CLK_DOUT_CMU_G2D_MSCL, "dout_cmu_g2d_mscl", "gout_cmu_g2d_mscl", 947 CLK_CON_DIV_CLKCMU_G2D_MSCL, 0, 4), 948 DIV(CLK_DOUT_CMU_G3D_SWITCH, "dout_cmu_g3d_switch", 949 "gout_cmu_g3d_switch", CLK_CON_DIV_CLKCMU_G3D_SWITCH, 0, 3), 950 DIV(CLK_DOUT_CMU_HPM, "dout_cmu_hpm", "gout_cmu_hpm", 951 CLK_CON_DIV_CLKCMU_HPM, 0, 2), 952 DIV(CLK_DOUT_CMU_HSI0_BUS, "dout_cmu_hsi0_bus", "gout_cmu_hsi0_bus", 953 CLK_CON_DIV_CLKCMU_HSI0_BUS, 0, 4), 954 DIV(CLK_DOUT_CMU_HSI0_DPGTC, "dout_cmu_hsi0_dpgtc", "gout_cmu_hsi0_dpgtc", 955 CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 0, 3), 956 DIV(CLK_DOUT_CMU_HSI0_USB31DRD, "dout_cmu_hsi0_usb31drd", 957 "gout_cmu_hsi0_usb31drd", CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 0, 4), 958 DIV(CLK_DOUT_CMU_HSI1_BUS, "dout_cmu_hsi1_bus", "gout_cmu_hsi1_bus", 959 CLK_CON_DIV_CLKCMU_HSI1_BUS, 0, 3), 960 DIV(CLK_DOUT_CMU_HSI1_MMC_CARD, "dout_cmu_hsi1_mmc_card", 961 "gout_cmu_hsi1_mmc_card", CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD, 962 0, 9), 963 DIV(CLK_DOUT_CMU_HSI1_UFS_CARD, "dout_cmu_hsi1_ufs_card", 964 "gout_cmu_hsi1_ufs_card", CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD, 965 0, 3), 966 DIV(CLK_DOUT_CMU_HSI1_UFS_EMBD, "dout_cmu_hsi1_ufs_embd", 967 "gout_cmu_hsi1_ufs_embd", CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD, 968 0, 3), 969 DIV(CLK_DOUT_CMU_HSI2_BUS, "dout_cmu_hsi2_bus", "gout_cmu_hsi2_bus", 970 CLK_CON_DIV_CLKCMU_HSI2_BUS, 0, 4), 971 DIV(CLK_DOUT_CMU_IPP_BUS, "dout_cmu_ipp_bus", "gout_cmu_ipp_bus", 972 CLK_CON_DIV_CLKCMU_IPP_BUS, 0, 4), 973 DIV(CLK_DOUT_CMU_ITP_BUS, "dout_cmu_itp_bus", "gout_cmu_itp_bus", 974 CLK_CON_DIV_CLKCMU_ITP_BUS, 0, 4), 975 DIV(CLK_DOUT_CMU_MCSC_BUS, "dout_cmu_mcsc_bus", "gout_cmu_mcsc_bus", 976 CLK_CON_DIV_CLKCMU_MCSC_BUS, 0, 4), 977 DIV(CLK_DOUT_CMU_MCSC_GDC, "dout_cmu_mcsc_gdc", "gout_cmu_mcsc_gdc", 978 CLK_CON_DIV_CLKCMU_MCSC_GDC, 0, 4), 979 DIV(CLK_DOUT_CMU_CMU_BOOST_CPU, "dout_cmu_cmu_boost_cpu", 980 "mout_cmu_cmu_boost_cpu", CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU, 981 0, 2), 982 DIV(CLK_DOUT_CMU_MFC0_MFC0, "dout_cmu_mfc0_mfc0", "gout_cmu_mfc0_mfc0", 983 CLK_CON_DIV_CLKCMU_MFC0_MFC0, 0, 4), 984 DIV(CLK_DOUT_CMU_MFC0_WFD, "dout_cmu_mfc0_wfd", "gout_cmu_mfc0_wfd", 985 CLK_CON_DIV_CLKCMU_MFC0_WFD, 0, 4), 986 DIV(CLK_DOUT_CMU_MIF_BUSP, "dout_cmu_mif_busp", "gout_cmu_mif_busp", 987 CLK_CON_DIV_CLKCMU_MIF_BUSP, 0, 4), 988 DIV(CLK_DOUT_CMU_NPU_BUS, "dout_cmu_npu_bus", "gout_cmu_npu_bus", 989 CLK_CON_DIV_CLKCMU_NPU_BUS, 0, 4), 990 DIV(CLK_DOUT_CMU_PERIC0_BUS, "dout_cmu_peric0_bus", "gout_cmu_peric0_bus", 991 CLK_CON_DIV_CLKCMU_PERIC0_BUS, 0, 4), 992 DIV(CLK_DOUT_CMU_PERIC0_IP, "dout_cmu_peric0_ip", "gout_cmu_peric0_ip", 993 CLK_CON_DIV_CLKCMU_PERIC0_IP, 0, 4), 994 DIV(CLK_DOUT_CMU_PERIC1_BUS, "dout_cmu_peric1_bus", "gout_cmu_peric1_bus", 995 CLK_CON_DIV_CLKCMU_PERIC1_BUS, 0, 4), 996 DIV(CLK_DOUT_CMU_PERIC1_IP, "dout_cmu_peric1_ip", "gout_cmu_peric1_ip", 997 CLK_CON_DIV_CLKCMU_PERIC1_IP, 0, 4), 998 DIV(CLK_DOUT_CMU_PERIS_BUS, "dout_cmu_peris_bus", "gout_cmu_peris_bus", 999 CLK_CON_DIV_CLKCMU_PERIS_BUS, 0, 4), 1000 DIV(CLK_DOUT_CMU_SSP_BUS, "dout_cmu_ssp_bus", "gout_cmu_ssp_bus", 1001 CLK_CON_DIV_CLKCMU_SSP_BUS, 0, 4), 1002 DIV(CLK_DOUT_CMU_TNR_BUS, "dout_cmu_tnr_bus", "gout_cmu_tnr_bus", 1003 CLK_CON_DIV_CLKCMU_TNR_BUS, 0, 4), 1004 DIV(CLK_DOUT_CMU_VRA_BUS, "dout_cmu_vra_bus", "gout_cmu_vra_bus", 1005 CLK_CON_DIV_CLKCMU_VRA_BUS, 0, 4), 1006 DIV(CLK_DOUT_CMU_DPU, "dout_cmu_dpu", "gout_cmu_dpu", 1007 CLK_CON_DIV_DIV_CLKCMU_DPU, 0, 3), 1008 DIV(CLK_DOUT_CMU_DPU_ALT, "dout_cmu_dpu_alt", "gout_cmu_dpu_bus", 1009 CLK_CON_DIV_DIV_CLKCMU_DPU_ALT, 0, 4), 1010 DIV(CLK_DOUT_CMU_CLK_CMUREF, "dout_cmu_clk_cmuref", "mout_cmu_clk_cmuref", 1011 CLK_CON_DIV_DIV_CLK_CMU_CMUREF, 0, 2), 1012}; 1013 1014static const struct samsung_fixed_factor_clock cmu_top_ffactor[] __initconst = { 1015 FFACTOR(CLK_DOUT_CMU_HSI1_PCIE, "dout_cmu_hsi1_pcie", 1016 "gout_cmu_hsi1_pcie", 1, 8, 0), 1017 FFACTOR(CLK_DOUT_CMU_OTP, "dout_cmu_otp", "oscclk", 1, 8, 0), 1018 FFACTOR(CLK_DOUT_CMU_HSI0_USBDP_DEBUG, "dout_cmu_hsi0_usbdp_debug", 1019 "gout_cmu_hsi0_usbdp_debug", 1, 8, 0), 1020 FFACTOR(CLK_DOUT_CMU_HSI2_PCIE, "dout_cmu_hsi2_pcie", 1021 "gout_cmu_hsi2_pcie", 1, 8, 0), 1022}; 1023 1024static const struct samsung_gate_clock top_gate_clks[] __initconst = { 1025 GATE(CLK_GOUT_CMU_APM_BUS, "gout_cmu_apm_bus", "mout_cmu_apm_bus", 1026 CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 21, CLK_IGNORE_UNUSED, 0), 1027 GATE(CLK_GOUT_CMU_AUD_CPU, "gout_cmu_aud_cpu", "mout_cmu_aud_cpu", 1028 CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 21, 0, 0), 1029 GATE(CLK_GOUT_CMU_BUS0_BUS, "gout_cmu_bus0_bus", "mout_cmu_bus0_bus", 1030 CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS, 21, CLK_IGNORE_UNUSED, 0), 1031 GATE(CLK_GOUT_CMU_BUS1_BUS, "gout_cmu_bus1_bus", "mout_cmu_bus1_bus", 1032 CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS, 21, CLK_IGNORE_UNUSED, 0), 1033 GATE(CLK_GOUT_CMU_BUS1_SSS, "gout_cmu_bus1_sss", "mout_cmu_bus1_sss", 1034 CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS, 21, CLK_IGNORE_UNUSED, 0), 1035 GATE(CLK_GOUT_CMU_CIS_CLK0, "gout_cmu_cis_clk0", "mout_cmu_cis_clk0", 1036 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0, 21, 0, 0), 1037 GATE(CLK_GOUT_CMU_CIS_CLK1, "gout_cmu_cis_clk1", "mout_cmu_cis_clk1", 1038 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1, 21, 0, 0), 1039 GATE(CLK_GOUT_CMU_CIS_CLK2, "gout_cmu_cis_clk2", "mout_cmu_cis_clk2", 1040 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2, 21, 0, 0), 1041 GATE(CLK_GOUT_CMU_CIS_CLK3, "gout_cmu_cis_clk3", "mout_cmu_cis_clk3", 1042 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3, 21, 0, 0), 1043 GATE(CLK_GOUT_CMU_CIS_CLK4, "gout_cmu_cis_clk4", "mout_cmu_cis_clk4", 1044 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4, 21, 0, 0), 1045 GATE(CLK_GOUT_CMU_CIS_CLK5, "gout_cmu_cis_clk5", "mout_cmu_cis_clk5", 1046 CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5, 21, 0, 0), 1047 GATE(CLK_GOUT_CMU_CORE_BUS, "gout_cmu_core_bus", "mout_cmu_core_bus", 1048 CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 21, CLK_IGNORE_UNUSED, 0), 1049 GATE(CLK_GOUT_CMU_CPUCL0_DBG_BUS, "gout_cmu_cpucl0_dbg_bus", 1050 "mout_cmu_cpucl0_dbg_bus", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS, 1051 21, 0, 0), 1052 GATE(CLK_GOUT_CMU_CPUCL0_SWITCH, "gout_cmu_cpucl0_switch", 1053 "mout_cmu_cpucl0_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 1054 21, CLK_IGNORE_UNUSED, 0), 1055 GATE(CLK_GOUT_CMU_CPUCL1_SWITCH, "gout_cmu_cpucl1_switch", 1056 "mout_cmu_cpucl1_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 1057 21, CLK_IGNORE_UNUSED, 0), 1058 GATE(CLK_GOUT_CMU_CPUCL2_BUSP, "gout_cmu_cpucl2_busp", 1059 "mout_cmu_cpucl2_busp", CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP, 1060 21, CLK_IGNORE_UNUSED, 0), 1061 GATE(CLK_GOUT_CMU_CPUCL2_SWITCH, "gout_cmu_cpucl2_switch", 1062 "mout_cmu_cpucl2_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH, 1063 21, CLK_IGNORE_UNUSED, 0), 1064 GATE(CLK_GOUT_CMU_CSIS_BUS, "gout_cmu_csis_bus", "mout_cmu_csis_bus", 1065 CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS, 21, 0, 0), 1066 GATE(CLK_GOUT_CMU_CSIS_OIS_MCU, "gout_cmu_csis_ois_mcu", 1067 "mout_cmu_csis_ois_mcu", CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU, 1068 21, 0, 0), 1069 GATE(CLK_GOUT_CMU_DNC_BUS, "gout_cmu_dnc_bus", "mout_cmu_dnc_bus", 1070 CLK_CON_GAT_GATE_CLKCMU_DNC_BUS, 21, 0, 0), 1071 GATE(CLK_GOUT_CMU_DNC_BUSM, "gout_cmu_dnc_busm", "mout_cmu_dnc_busm", 1072 CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM, 21, 0, 0), 1073 GATE(CLK_GOUT_CMU_DNS_BUS, "gout_cmu_dns_bus", "mout_cmu_dns_bus", 1074 CLK_CON_GAT_GATE_CLKCMU_DNS_BUS, 21, 0, 0), 1075 GATE(CLK_GOUT_CMU_DPU, "gout_cmu_dpu", "mout_cmu_dpu", 1076 CLK_CON_GAT_GATE_CLKCMU_DPU, 21, 0, 0), 1077 GATE(CLK_GOUT_CMU_DPU_BUS, "gout_cmu_dpu_bus", "mout_cmu_dpu_alt", 1078 CLK_CON_GAT_GATE_CLKCMU_DPU_BUS, 21, CLK_IGNORE_UNUSED, 0), 1079 GATE(CLK_GOUT_CMU_DSP_BUS, "gout_cmu_dsp_bus", "mout_cmu_dsp_bus", 1080 CLK_CON_GAT_GATE_CLKCMU_DSP_BUS, 21, 0, 0), 1081 GATE(CLK_GOUT_CMU_G2D_G2D, "gout_cmu_g2d_g2d", "mout_cmu_g2d_g2d", 1082 CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 21, 0, 0), 1083 GATE(CLK_GOUT_CMU_G2D_MSCL, "gout_cmu_g2d_mscl", "mout_cmu_g2d_mscl", 1084 CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 21, 0, 0), 1085 GATE(CLK_GOUT_CMU_G3D_SWITCH, "gout_cmu_g3d_switch", 1086 "fout_shared2_pll", CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH, 1087 21, 0, 0), 1088 GATE(CLK_GOUT_CMU_HPM, "gout_cmu_hpm", "mout_cmu_hpm", 1089 CLK_CON_GAT_GATE_CLKCMU_HPM, 21, 0, 0), 1090 GATE(CLK_GOUT_CMU_HSI0_BUS, "gout_cmu_hsi0_bus", 1091 "mout_cmu_hsi0_bus", CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS, 21, 0, 0), 1092 GATE(CLK_GOUT_CMU_HSI0_DPGTC, "gout_cmu_hsi0_dpgtc", 1093 "mout_cmu_hsi0_dpgtc", CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC, 1094 21, 0, 0), 1095 GATE(CLK_GOUT_CMU_HSI0_USB31DRD, "gout_cmu_hsi0_usb31drd", 1096 "mout_cmu_hsi0_usb31drd", CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD, 1097 21, 0, 0), 1098 GATE(CLK_GOUT_CMU_HSI0_USBDP_DEBUG, "gout_cmu_hsi0_usbdp_debug", 1099 "mout_cmu_hsi0_usbdp_debug", CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG, 1100 21, 0, 0), 1101 GATE(CLK_GOUT_CMU_HSI1_BUS, "gout_cmu_hsi1_bus", "mout_cmu_hsi1_bus", 1102 CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS, 21, 0, 0), 1103 GATE(CLK_GOUT_CMU_HSI1_MMC_CARD, "gout_cmu_hsi1_mmc_card", 1104 "mout_cmu_hsi1_mmc_card", CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD, 1105 21, 0, 0), 1106 GATE(CLK_GOUT_CMU_HSI1_PCIE, "gout_cmu_hsi1_pcie", 1107 "mout_cmu_hsi1_pcie", CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE, 1108 21, 0, 0), 1109 GATE(CLK_GOUT_CMU_HSI1_UFS_CARD, "gout_cmu_hsi1_ufs_card", 1110 "mout_cmu_hsi1_ufs_card", CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD, 1111 21, 0, 0), 1112 GATE(CLK_GOUT_CMU_HSI1_UFS_EMBD, "gout_cmu_hsi1_ufs_embd", 1113 "mout_cmu_hsi1_ufs_embd", CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD, 1114 21, 0, 0), 1115 GATE(CLK_GOUT_CMU_HSI2_BUS, "gout_cmu_hsi2_bus", "mout_cmu_hsi2_bus", 1116 CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS, 21, 0, 0), 1117 GATE(CLK_GOUT_CMU_HSI2_PCIE, "gout_cmu_hsi2_pcie", 1118 "mout_cmu_hsi2_pcie", CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE, 1119 21, 0, 0), 1120 GATE(CLK_GOUT_CMU_IPP_BUS, "gout_cmu_ipp_bus", "mout_cmu_ipp_bus", 1121 CLK_CON_GAT_GATE_CLKCMU_IPP_BUS, 21, 0, 0), 1122 GATE(CLK_GOUT_CMU_ITP_BUS, "gout_cmu_itp_bus", "mout_cmu_itp_bus", 1123 CLK_CON_GAT_GATE_CLKCMU_ITP_BUS, 21, 0, 0), 1124 GATE(CLK_GOUT_CMU_MCSC_BUS, "gout_cmu_mcsc_bus", "mout_cmu_mcsc_bus", 1125 CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS, 21, 0, 0), 1126 GATE(CLK_GOUT_CMU_MCSC_GDC, "gout_cmu_mcsc_gdc", "mout_cmu_mcsc_gdc", 1127 CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC, 21, 0, 0), 1128 GATE(CLK_GOUT_CMU_MFC0_MFC0, "gout_cmu_mfc0_mfc0", 1129 "mout_cmu_mfc0_mfc0", CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0, 1130 21, 0, 0), 1131 GATE(CLK_GOUT_CMU_MFC0_WFD, "gout_cmu_mfc0_wfd", "mout_cmu_mfc0_wfd", 1132 CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD, 21, 0, 0), 1133 GATE(CLK_GOUT_CMU_MIF_BUSP, "gout_cmu_mif_busp", "mout_cmu_mif_busp", 1134 CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 21, 0, 0), 1135 GATE(CLK_GOUT_CMU_NPU_BUS, "gout_cmu_npu_bus", "mout_cmu_npu_bus", 1136 CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 21, 0, 0), 1137 GATE(CLK_GOUT_CMU_PERIC0_BUS, "gout_cmu_peric0_bus", 1138 "mout_cmu_peric0_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 1139 21, 0, 0), 1140 GATE(CLK_GOUT_CMU_PERIC0_IP, "gout_cmu_peric0_ip", 1141 "mout_cmu_peric0_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 1142 21, 0, 0), 1143 GATE(CLK_GOUT_CMU_PERIC1_BUS, "gout_cmu_peric1_bus", 1144 "mout_cmu_peric1_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 1145 21, 0, 0), 1146 GATE(CLK_GOUT_CMU_PERIC1_IP, "gout_cmu_peric1_ip", 1147 "mout_cmu_peric1_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 1148 21, 0, 0), 1149 GATE(CLK_GOUT_CMU_PERIS_BUS, "gout_cmu_peris_bus", 1150 "mout_cmu_peris_bus", CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 1151 21, CLK_IGNORE_UNUSED, 0), 1152 GATE(CLK_GOUT_CMU_SSP_BUS, "gout_cmu_ssp_bus", "mout_cmu_ssp_bus", 1153 CLK_CON_GAT_GATE_CLKCMU_SSP_BUS, 21, 0, 0), 1154 GATE(CLK_GOUT_CMU_TNR_BUS, "gout_cmu_tnr_bus", "mout_cmu_tnr_bus", 1155 CLK_CON_GAT_GATE_CLKCMU_TNR_BUS, 21, 0, 0), 1156 GATE(CLK_GOUT_CMU_VRA_BUS, "gout_cmu_vra_bus", "mout_cmu_vra_bus", 1157 CLK_CON_GAT_GATE_CLKCMU_VRA_BUS, 21, 0, 0), 1158}; 1159 1160static const struct samsung_cmu_info top_cmu_info __initconst = { 1161 .pll_clks = top_pll_clks, 1162 .nr_pll_clks = ARRAY_SIZE(top_pll_clks), 1163 .mux_clks = top_mux_clks, 1164 .nr_mux_clks = ARRAY_SIZE(top_mux_clks), 1165 .div_clks = top_div_clks, 1166 .nr_div_clks = ARRAY_SIZE(top_div_clks), 1167 .fixed_factor_clks = cmu_top_ffactor, 1168 .nr_fixed_factor_clks = ARRAY_SIZE(cmu_top_ffactor), 1169 .gate_clks = top_gate_clks, 1170 .nr_gate_clks = ARRAY_SIZE(top_gate_clks), 1171 .nr_clk_ids = CLKS_NR_TOP, 1172 .clk_regs = top_clk_regs, 1173 .nr_clk_regs = ARRAY_SIZE(top_clk_regs), 1174}; 1175 1176static void __init exynos990_cmu_top_init(struct device_node *np) 1177{ 1178 exynos_arm64_register_cmu(NULL, np, &top_cmu_info); 1179} 1180 1181/* Register CMU_TOP early, as it's a dependency for other early domains */ 1182CLK_OF_DECLARE(exynos990_cmu_top, "samsung,exynos990-cmu-top", 1183 exynos990_cmu_top_init); 1184 1185/* ---- CMU_HSI0 ------------------------------------------------------------ */ 1186 1187/* Register Offset definitions for CMU_HSI0 (0x10a00000) */ 1188#define PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER 0x0600 1189#define PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER 0x0620 1190#define PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER 0x0630 1191#define PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER 0x0610 1192#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK 0x2004 1193#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK 0x2018 1194#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHS_ACEL_D_HSI0_IPCLKPORT_I_CLK 0x2014 1195#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK 0x2020 1196#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK 0x2044 1197#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK 0x2008 1198#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK 0x200c 1199#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK 0x2010 1200#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK 0x201c 1201#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2 0x2024 1202#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK 0x2028 1203#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL 0x202c 1204#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USB31DRD_REF_CLK_40 0x2034 1205#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK 0x203c 1206#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK 0x2040 1207#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY 0x2030 1208#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK 0x2000 1209#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK 0x2048 1210#define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_REF_SOC_PLL 0x2038 1211 1212static const unsigned long hsi0_clk_regs[] __initconst = { 1213 PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER, 1214 PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER, 1215 PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER, 1216 PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER, 1217 CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK, 1218 CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK, 1219 CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK, 1220 CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHS_ACEL_D_HSI0_IPCLKPORT_I_CLK, 1221 CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK, 1222 CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK, 1223 CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK, 1224 CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK, 1225 CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK, 1226 CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2, 1227 CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK, 1228 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL, 1229 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USB31DRD_REF_CLK_40, 1230 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_REF_SOC_PLL, 1231 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK, 1232 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK, 1233 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY, 1234 CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK, 1235 CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK, 1236}; 1237 1238/* Parent clock list for CMU_HSI0 muxes */ 1239PNAME(mout_hsi0_bus_user_p) = { "oscclk", "dout_cmu_hsi0_bus" }; 1240PNAME(mout_hsi0_usb31drd_user_p) = { "oscclk", "dout_cmu_hsi0_usb31drd" }; 1241PNAME(mout_hsi0_usbdp_debug_user_p) = { "oscclk", 1242 "dout_cmu_hsi0_usbdp_debug" }; 1243PNAME(mout_hsi0_dpgtc_user_p) = { "oscclk", "dout_cmu_hsi0_dpgtc" }; 1244 1245static const struct samsung_mux_clock hsi0_mux_clks[] __initconst = { 1246 MUX(CLK_MOUT_HSI0_BUS_USER, "mout_hsi0_bus_user", 1247 mout_hsi0_bus_user_p, PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER, 1248 4, 1), 1249 MUX(CLK_MOUT_HSI0_USB31DRD_USER, "mout_hsi0_usb31drd_user", 1250 mout_hsi0_usb31drd_user_p, PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER, 1251 4, 1), 1252 MUX(CLK_MOUT_HSI0_USBDP_DEBUG_USER, "mout_hsi0_usbdp_debug_user", 1253 mout_hsi0_usbdp_debug_user_p, 1254 PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER, 1255 4, 1), 1256 MUX(CLK_MOUT_HSI0_DPGTC_USER, "mout_hsi0_dpgtc_user", 1257 mout_hsi0_dpgtc_user_p, PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER, 1258 4, 1), 1259}; 1260 1261static const struct samsung_gate_clock hsi0_gate_clks[] __initconst = { 1262 GATE(CLK_GOUT_HSI0_DP_LINK_DP_GTC_CLK, 1263 "gout_hsi0_dp_link_dp_gtc_clk", "mout_hsi0_dpgtc_user", 1264 CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK, 1265 21, 0, 0), 1266 GATE(CLK_GOUT_HSI0_DP_LINK_PCLK, 1267 "gout_hsi0_dp_link_pclk", "mout_hsi0_bus_user", 1268 CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK, 1269 21, 0, 0), 1270 GATE(CLK_GOUT_HSI0_D_TZPC_HSI0_PCLK, 1271 "gout_hsi0_d_tzpc_hsi0_pclk", "mout_hsi0_bus_user", 1272 CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK, 1273 21, 0, 0), 1274 GATE(CLK_GOUT_HSI0_LHM_AXI_P_HSI0_CLK, 1275 "gout_hsi0_lhm_axi_p_hsi0_clk", "mout_hsi0_bus_user", 1276 CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK, 1277 21, CLK_IS_CRITICAL, 0), 1278 GATE(CLK_GOUT_HSI0_PPMU_HSI0_BUS1_ACLK, 1279 "gout_hsi0_ppmu_hsi0_bus1_aclk", "mout_hsi0_bus_user", 1280 CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK, 1281 21, 0, 0), 1282 GATE(CLK_GOUT_HSI0_PPMU_HSI0_BUS1_PCLK, 1283 "gout_hsi0_ppmu_hsi0_bus1_pclk", "mout_hsi0_bus_user", 1284 CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK, 1285 21, 0, 0), 1286 GATE(CLK_GOUT_HSI0_CLK_HSI0_BUS_CLK, 1287 "gout_hsi0_clk_hsi0_bus_clk", "mout_hsi0_bus_user", 1288 CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK, 1289 21, 0, 0), 1290 GATE(CLK_GOUT_HSI0_SYSMMU_USB_CLK_S2, 1291 "gout_hsi0_sysmmu_usb_clk_s2", "mout_hsi0_bus_user", 1292 CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2, 1293 21, CLK_IGNORE_UNUSED, 0), 1294 GATE(CLK_GOUT_HSI0_SYSREG_HSI0_PCLK, 1295 "gout_hsi0_sysreg_hsi0_pclk", "mout_hsi0_bus_user", 1296 CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK, 1297 21, 0, 0), 1298 GATE(CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL, 1299 "gout_hsi0_usb31drd_aclk_phyctrl", "mout_hsi0_bus_user", 1300 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL, 1301 21, 0, 0), 1302 GATE(CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY, 1303 "gout_hsi0_usb31drd_bus_clk_early", 1304 "mout_hsi0_bus_user", 1305 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY, 1306 21, 0, 0), 1307 GATE(CLK_GOUT_HSI0_USB31DRD_USB31DRD_REF_CLK_40, 1308 "gout_hsi0_usb31drd_usb31drd_ref_clk_40", 1309 "mout_hsi0_usb31drd_user", 1310 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USB31DRD_REF_CLK_40, 1311 21, 0, 0), 1312 GATE(CLK_GOUT_HSI0_USB31DRD_USBDPPHY_REF_SOC_PLL, 1313 "gout_hsi0_usb31drd_usbdpphy_ref_soc_pll", 1314 "mout_hsi0_usbdp_debug_user", 1315 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_REF_SOC_PLL, 1316 21, 0, 0), 1317 GATE(CLK_GOUT_HSI0_USB31DRD_USBDPPHY_SCL_APB, 1318 "gout_hsi0_usb31drd_ipclkport_i_usbdpphy_scl_apb_pclk", 1319 "mout_hsi0_bus_user", 1320 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK, 1321 21, 0, 0), 1322 GATE(CLK_GOUT_HSI0_USB31DRD_USBPCS_APB_CLK, 1323 "gout_hsi0_usb31drd_usbpcs_apb_clk", 1324 "mout_hsi0_bus_user", 1325 CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK, 1326 21, 0, 0), 1327 GATE(CLK_GOUT_HSI0_VGEN_LITE_HSI0_CLK, 1328 "gout_hsi0_vgen_lite_ipclkport_clk", "mout_hsi0_bus_user", 1329 CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK, 1330 21, 0, 0), 1331 GATE(CLK_GOUT_HSI0_CMU_HSI0_PCLK, 1332 "gout_hsi0_cmu_hsi0_pclk", "mout_hsi0_bus_user", 1333 CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK, 1334 21, CLK_IGNORE_UNUSED, 0), 1335 GATE(CLK_GOUT_HSI0_XIU_D_HSI0_ACLK, 1336 "gout_hsi0_xiu_d_hsi0_aclk", "mout_hsi0_bus_user", 1337 CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK, 1338 21, CLK_IGNORE_UNUSED, 0), 1339 GATE(CLK_GOUT_HSI0_LHS_ACEL_D_HSI0_CLK, 1340 "gout_hsi0_lhs_acel_d_hsi0_clk", "mout_hsi0_bus_user", 1341 CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHS_ACEL_D_HSI0_IPCLKPORT_I_CLK, 1342 21, CLK_IS_CRITICAL, 0), 1343}; 1344 1345static const struct samsung_cmu_info hsi0_cmu_info __initconst = { 1346 .mux_clks = hsi0_mux_clks, 1347 .nr_mux_clks = ARRAY_SIZE(hsi0_mux_clks), 1348 .gate_clks = hsi0_gate_clks, 1349 .nr_gate_clks = ARRAY_SIZE(hsi0_gate_clks), 1350 .nr_clk_ids = CLKS_NR_HSI0, 1351 .clk_regs = hsi0_clk_regs, 1352 .nr_clk_regs = ARRAY_SIZE(hsi0_clk_regs), 1353 .clk_name = "bus", 1354}; 1355 1356/* ---- CMU_PERIC0 --------------------------------------------------------- */ 1357 1358/* Register Offset definitions for CMU_PERIC0 (0x10400000) */ 1359#define PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER 0x0600 1360#define PLL_CON1_MUX_CLKCMU_PERIC0_BUS_USER 0x0604 1361#define PLL_CON0_MUX_CLKCMU_PERIC0_UART_DBG 0x0610 1362#define PLL_CON1_MUX_CLKCMU_PERIC0_UART_DBG 0x0614 1363#define PLL_CON0_MUX_CLKCMU_PERIC0_USI00_USI_USER 0x0620 1364#define PLL_CON1_MUX_CLKCMU_PERIC0_USI00_USI_USER 0x0624 1365#define PLL_CON0_MUX_CLKCMU_PERIC0_USI01_USI_USER 0x0630 1366#define PLL_CON1_MUX_CLKCMU_PERIC0_USI01_USI_USER 0x0634 1367#define PLL_CON0_MUX_CLKCMU_PERIC0_USI02_USI_USER 0x0640 1368#define PLL_CON1_MUX_CLKCMU_PERIC0_USI02_USI_USER 0x0644 1369#define PLL_CON0_MUX_CLKCMU_PERIC0_USI03_USI_USER 0x0650 1370#define PLL_CON1_MUX_CLKCMU_PERIC0_USI03_USI_USER 0x0654 1371#define PLL_CON0_MUX_CLKCMU_PERIC0_USI04_USI_USER 0x0660 1372#define PLL_CON1_MUX_CLKCMU_PERIC0_USI04_USI_USER 0x0664 1373#define PLL_CON0_MUX_CLKCMU_PERIC0_USI05_USI_USER 0x0670 1374#define PLL_CON1_MUX_CLKCMU_PERIC0_USI05_USI_USER 0x0674 1375#define PLL_CON0_MUX_CLKCMU_PERIC0_USI13_USI_USER 0x0680 1376#define PLL_CON1_MUX_CLKCMU_PERIC0_USI13_USI_USER 0x0684 1377#define PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER 0x0690 1378#define PLL_CON1_MUX_CLKCMU_PERIC0_USI14_USI_USER 0x0694 1379#define PLL_CON0_MUX_CLKCMU_PERIC0_USI15_USI_USER 0x06a0 1380#define PLL_CON1_MUX_CLKCMU_PERIC0_USI15_USI_USER 0x06a4 1381#define PLL_CON0_MUX_CLKCMU_PERIC0_USI_I2C_USER 0x06b0 1382#define PLL_CON1_MUX_CLKCMU_PERIC0_USI_I2C_USER 0x06b4 1383#define CLK_CON_DIV_DIV_CLK_PERIC0_UART_DBG 0x1800 1384#define CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI 0x1804 1385#define CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI 0x1808 1386#define CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI 0x180c 1387#define CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI 0x1810 1388#define CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI 0x1814 1389#define CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI 0x1818 1390#define CLK_CON_DIV_DIV_CLK_PERIC0_USI13_USI 0x181c 1391#define CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI 0x1820 1392#define CLK_CON_DIV_DIV_CLK_PERIC0_USI15_USI 0x1824 1393#define CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C 0x1828 1394#define CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK 0x2004 1395#define CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK 0x2008 1396#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK 0x200c 1397#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK 0x2010 1398#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK 0x2014 1399#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10 0x2018 1400#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11 0x201c 1401#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12 0x2020 1402#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13 0x2024 1403#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14 0x2028 1404#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15 0x202c 1405#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4 0x2030 1406#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5 0x2034 1407#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6 0x2038 1408#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7 0x203c 1409#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8 0x2040 1410#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9 0x2044 1411#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10 0x2048 1412#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11 0x204c 1413#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12 0x2050 1414#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13 0x2054 1415#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14 0x2058 1416#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15 0x205c 1417#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4 0x2060 1418#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5 0x2064 1419#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6 0x2068 1420#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7 0x206c 1421#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8 0x2070 1422#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9 0x2074 1423#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0 0x2078 1424#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_3 0x207c 1425#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_4 0x2080 1426#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_5 0x2084 1427#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_6 0x2088 1428#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_7 0x208c 1429#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_8 0x2090 1430#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0 0x2094 1431#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_15 0x2098 1432#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_3 0x209c 1433#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_4 0x20a0 1434#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_5 0x20a4 1435#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_6 0x20a8 1436#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_7 0x20ac 1437#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_8 0x20b0 1438#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK 0x20b4 1439#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_UART_DBG_IPCLKPORT_CLK 0x20b8 1440#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI00_USI_IPCLKPORT_CLK 0x20bc 1441#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI01_USI_IPCLKPORT_CLK 0x20c0 1442#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI02_USI_IPCLKPORT_CLK 0x20c4 1443#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI03_USI_IPCLKPORT_CLK 0x20c8 1444#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI04_USI_IPCLKPORT_CLK 0x20cc 1445#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI05_USI_IPCLKPORT_CLK 0x20d0 1446#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI13_USI_IPCLKPORT_CLK 0x20d4 1447#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK 0x20d8 1448#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI15_USI_IPCLKPORT_CLK 0x20dc 1449#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI_I2C_IPCLKPORT_CLK 0x20e0 1450#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK 0x20e4 1451 1452static const unsigned long peric0_clk_regs[] __initconst = { 1453 PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER, 1454 PLL_CON1_MUX_CLKCMU_PERIC0_BUS_USER, 1455 PLL_CON0_MUX_CLKCMU_PERIC0_UART_DBG, 1456 PLL_CON1_MUX_CLKCMU_PERIC0_UART_DBG, 1457 PLL_CON0_MUX_CLKCMU_PERIC0_USI00_USI_USER, 1458 PLL_CON1_MUX_CLKCMU_PERIC0_USI00_USI_USER, 1459 PLL_CON0_MUX_CLKCMU_PERIC0_USI01_USI_USER, 1460 PLL_CON1_MUX_CLKCMU_PERIC0_USI01_USI_USER, 1461 PLL_CON0_MUX_CLKCMU_PERIC0_USI02_USI_USER, 1462 PLL_CON1_MUX_CLKCMU_PERIC0_USI02_USI_USER, 1463 PLL_CON0_MUX_CLKCMU_PERIC0_USI03_USI_USER, 1464 PLL_CON1_MUX_CLKCMU_PERIC0_USI03_USI_USER, 1465 PLL_CON0_MUX_CLKCMU_PERIC0_USI04_USI_USER, 1466 PLL_CON1_MUX_CLKCMU_PERIC0_USI04_USI_USER, 1467 PLL_CON0_MUX_CLKCMU_PERIC0_USI05_USI_USER, 1468 PLL_CON1_MUX_CLKCMU_PERIC0_USI05_USI_USER, 1469 PLL_CON0_MUX_CLKCMU_PERIC0_USI13_USI_USER, 1470 PLL_CON1_MUX_CLKCMU_PERIC0_USI13_USI_USER, 1471 PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER, 1472 PLL_CON1_MUX_CLKCMU_PERIC0_USI14_USI_USER, 1473 PLL_CON0_MUX_CLKCMU_PERIC0_USI15_USI_USER, 1474 PLL_CON1_MUX_CLKCMU_PERIC0_USI15_USI_USER, 1475 PLL_CON0_MUX_CLKCMU_PERIC0_USI_I2C_USER, 1476 PLL_CON1_MUX_CLKCMU_PERIC0_USI_I2C_USER, 1477 CLK_CON_DIV_DIV_CLK_PERIC0_UART_DBG, 1478 CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI, 1479 CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI, 1480 CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI, 1481 CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI, 1482 CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI, 1483 CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI, 1484 CLK_CON_DIV_DIV_CLK_PERIC0_USI13_USI, 1485 CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI, 1486 CLK_CON_DIV_DIV_CLK_PERIC0_USI15_USI, 1487 CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C, 1488 CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK, 1489 CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK, 1490 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK, 1491 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK, 1492 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK, 1493 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10, 1494 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11, 1495 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12, 1496 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13, 1497 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14, 1498 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15, 1499 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4, 1500 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5, 1501 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6, 1502 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7, 1503 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8, 1504 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9, 1505 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10, 1506 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11, 1507 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12, 1508 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13, 1509 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14, 1510 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15, 1511 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4, 1512 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5, 1513 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6, 1514 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7, 1515 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8, 1516 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9, 1517 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0, 1518 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_3, 1519 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_4, 1520 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_5, 1521 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_6, 1522 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_7, 1523 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_8, 1524 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0, 1525 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_15, 1526 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_3, 1527 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_4, 1528 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_5, 1529 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_6, 1530 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_7, 1531 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_8, 1532 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK, 1533 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_UART_DBG_IPCLKPORT_CLK, 1534 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI00_USI_IPCLKPORT_CLK, 1535 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI01_USI_IPCLKPORT_CLK, 1536 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI02_USI_IPCLKPORT_CLK, 1537 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI03_USI_IPCLKPORT_CLK, 1538 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI04_USI_IPCLKPORT_CLK, 1539 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI05_USI_IPCLKPORT_CLK, 1540 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI13_USI_IPCLKPORT_CLK, 1541 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK, 1542 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI15_USI_IPCLKPORT_CLK, 1543 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI_I2C_IPCLKPORT_CLK, 1544 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK, 1545}; 1546 1547/* Parent clock list for CMU_PERIC0 muxes */ 1548PNAME(mout_peric0_bus_user_p) = { "oscclk", "dout_cmu_peric0_bus" }; 1549PNAME(mout_peric0_uart_dbg_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1550PNAME(mout_peric0_usi00_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1551PNAME(mout_peric0_usi01_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1552PNAME(mout_peric0_usi02_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1553PNAME(mout_peric0_usi03_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1554PNAME(mout_peric0_usi04_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1555PNAME(mout_peric0_usi05_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1556PNAME(mout_peric0_usi13_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1557PNAME(mout_peric0_usi14_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1558PNAME(mout_peric0_usi15_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1559PNAME(mout_peric0_usi_i2c_user_p) = { "oscclk", "dout_cmu_peric0_ip" }; 1560 1561static const struct samsung_mux_clock peric0_mux_clks[] __initconst = { 1562 MUX(CLK_MOUT_PERIC0_BUS_USER, "mout_peric0_bus_user", 1563 mout_peric0_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_BUS_USER, 1564 4, 1), 1565 MUX(CLK_MOUT_PERIC0_UART_DBG, "mout_peric0_uart_dbg", 1566 mout_peric0_uart_dbg_p, PLL_CON0_MUX_CLKCMU_PERIC0_UART_DBG, 1567 4, 1), 1568 MUX(CLK_MOUT_PERIC0_USI00_USI_USER, "mout_peric0_usi00_usi_user", 1569 mout_peric0_usi00_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI00_USI_USER, 1570 4, 1), 1571 MUX(CLK_MOUT_PERIC0_USI01_USI_USER, "mout_peric0_usi01_usi_user", 1572 mout_peric0_usi01_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI01_USI_USER, 1573 4, 1), 1574 MUX(CLK_MOUT_PERIC0_USI02_USI_USER, "mout_peric0_usi02_usi_user", 1575 mout_peric0_usi02_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI02_USI_USER, 1576 4, 1), 1577 MUX(CLK_MOUT_PERIC0_USI03_USI_USER, "mout_peric0_usi03_usi_user", 1578 mout_peric0_usi03_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI03_USI_USER, 1579 4, 1), 1580 MUX(CLK_MOUT_PERIC0_USI04_USI_USER, "mout_peric0_usi04_usi_user", 1581 mout_peric0_usi04_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI04_USI_USER, 1582 4, 1), 1583 MUX(CLK_MOUT_PERIC0_USI05_USI_USER, "mout_peric0_usi05_usi_user", 1584 mout_peric0_usi05_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI05_USI_USER, 1585 4, 1), 1586 MUX(CLK_MOUT_PERIC0_USI13_USI_USER, "mout_peric0_usi13_usi_user", 1587 mout_peric0_usi13_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI13_USI_USER, 1588 4, 1), 1589 MUX(CLK_MOUT_PERIC0_USI14_USI_USER, "mout_peric0_usi14_usi_user", 1590 mout_peric0_usi14_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER, 1591 4, 1), 1592 MUX(CLK_MOUT_PERIC0_USI15_USI_USER, "mout_peric0_usi15_usi_user", 1593 mout_peric0_usi15_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI15_USI_USER, 1594 4, 1), 1595 MUX(CLK_MOUT_PERIC0_USI_I2C_USER, "mout_peric0_usi_i2c_user", 1596 mout_peric0_usi_i2c_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI_I2C_USER, 1597 4, 1), 1598}; 1599 1600static const struct samsung_div_clock peric0_div_clks[] __initconst = { 1601 DIV(CLK_DOUT_PERIC0_UART_DBG, "dout_peric0_uart_dbg", 1602 "mout_peric0_uart_dbg", 1603 CLK_CON_DIV_DIV_CLK_PERIC0_UART_DBG, 1604 0, 4), 1605 DIV(CLK_DOUT_PERIC0_USI00_USI, "dout_peric0_usi00_usi", 1606 "mout_peric0_usi00_usi_user", 1607 CLK_CON_DIV_DIV_CLK_PERIC0_USI00_USI, 1608 0, 4), 1609 DIV(CLK_DOUT_PERIC0_USI01_USI, "dout_peric0_usi01_usi", 1610 "mout_peric0_usi01_usi_user", 1611 CLK_CON_DIV_DIV_CLK_PERIC0_USI01_USI, 1612 0, 4), 1613 DIV(CLK_DOUT_PERIC0_USI02_USI, "dout_peric0_usi02_usi", 1614 "mout_peric0_usi02_usi_user", 1615 CLK_CON_DIV_DIV_CLK_PERIC0_USI02_USI, 1616 0, 4), 1617 DIV(CLK_DOUT_PERIC0_USI03_USI, "dout_peric0_usi03_usi", 1618 "mout_peric0_usi03_usi_user", 1619 CLK_CON_DIV_DIV_CLK_PERIC0_USI03_USI, 1620 0, 4), 1621 DIV(CLK_DOUT_PERIC0_USI04_USI, "dout_peric0_usi04_usi", 1622 "mout_peric0_usi04_usi_user", 1623 CLK_CON_DIV_DIV_CLK_PERIC0_USI04_USI, 1624 0, 4), 1625 DIV(CLK_DOUT_PERIC0_USI05_USI, "dout_peric0_usi05_usi", 1626 "mout_peric0_usi05_usi_user", 1627 CLK_CON_DIV_DIV_CLK_PERIC0_USI05_USI, 1628 0, 4), 1629 DIV(CLK_DOUT_PERIC0_USI13_USI, "dout_peric0_usi13_usi", 1630 "mout_peric0_usi13_usi_user", 1631 CLK_CON_DIV_DIV_CLK_PERIC0_USI13_USI, 1632 0, 4), 1633 DIV(CLK_DOUT_PERIC0_USI14_USI, "dout_peric0_usi14_usi", 1634 "mout_peric0_usi14_usi_user", 1635 CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI, 1636 0, 4), 1637 DIV(CLK_DOUT_PERIC0_USI15_USI, "dout_peric0_usi15_usi", 1638 "mout_peric0_usi15_usi_user", 1639 CLK_CON_DIV_DIV_CLK_PERIC0_USI15_USI, 1640 0, 4), 1641 DIV(CLK_DOUT_PERIC0_USI_I2C, "dout_peric0_usi_i2c", 1642 "mout_peric0_usi_i2c_user", 1643 CLK_CON_DIV_DIV_CLK_PERIC0_USI_I2C, 1644 0, 4), 1645}; 1646 1647static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { 1648 GATE(CLK_GOUT_PERIC0_CMU_PCLK, "gout_peric0_cmu_pclk", 1649 "mout_peric0_bus_user", 1650 CLK_CON_GAT_CLK_BLK_PERIC0_UID_PERIC0_CMU_PERIC0_IPCLKPORT_PCLK, 1651 21, CLK_IS_CRITICAL, 0), 1652 GATE(CLK_GOUT_PERIC0_OSCCLK_CLK, "gout_peric0_oscclk_clk", 1653 "oscclk", 1654 CLK_CON_GAT_CLK_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_OSCCLK_IPCLKPORT_CLK, 1655 21, 0, 0), 1656 GATE(CLK_GOUT_PERIC0_D_TZPC_PCLK, "gout_peric0_d_tpzc_pclk", 1657 "mout_peric0_bus_user", 1658 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_D_TZPC_PERIC0_IPCLKPORT_PCLK, 1659 21, 0, 0), 1660 GATE(CLK_GOUT_PERIC0_GPIO_PCLK, "gout_peric0_gpio_pclk", 1661 "mout_peric0_bus_user", 1662 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_GPIO_PERIC0_IPCLKPORT_PCLK, 1663 21, CLK_IGNORE_UNUSED, 0), 1664 GATE(CLK_GOUT_PERIC0_LHM_AXI_P_CLK, "gout_peric0_lhm_axi_p_clk", 1665 "mout_peric0_bus_user", 1666 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_LHM_AXI_P_PERIC0_IPCLKPORT_I_CLK, 1667 21, CLK_IS_CRITICAL, 0), 1668 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_10, "gout_peric0_top0_ipclk_10", 1669 "dout_peric0_usi_i2c", 1670 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10, 1671 21, 0, 0), 1672 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_11, "gout_peric0_top0_ipclk_11", 1673 "dout_peric0_usi03_usi", 1674 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_11, 1675 21, 0, 0), 1676 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_12, "gout_peric0_top0_ipclk_12", 1677 "dout_peric0_usi_i2c", 1678 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_12, 1679 21, 0, 0), 1680 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_13, "gout_peric0_top0_ipclk_13", 1681 "dout_peric0_usi04_usi", 1682 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_13, 1683 21, 0, 0), 1684 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_14, "gout_peric0_top0_ipclk_14", 1685 "dout_peric0_usi_i2c", 1686 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_14, 1687 21, 0, 0), 1688 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_15, "gout_peric0_top0_ipclk_15", 1689 "dout_peric0_usi05_usi", 1690 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_15, 1691 21, 0, 0), 1692 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_4, "gout_peric0_top0_ipclk_4", 1693 "dout_peric0_uart_dbg", 1694 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4, 1695 21, 0, 0), 1696 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_5, "gout_peric0_top0_ipclk_5", 1697 "dout_peric0_usi00_usi", 1698 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5, 1699 21, 0, 0), 1700 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_6, "gout_peric0_top0_ipclk_6", 1701 "dout_peric0_usi_i2c", 1702 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6, 1703 21, 0, 0), 1704 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_7, "gout_peric0_top0_ipclk_7", 1705 "dout_peric0_usi01_usi", 1706 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7, 1707 21, 0, 0), 1708 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_8, "gout_peric0_top0_ipclk_8", 1709 "dout_peric0_usi_i2c", 1710 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8, 1711 21, 0, 0), 1712 GATE(CLK_GOUT_PERIC0_TOP0_IPCLK_9, "gout_peric0_top0_ipclk_9", 1713 "dout_peric0_usi02_usi", 1714 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_9, 1715 21, 0, 0), 1716 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_10, "gout_peric0_top0_pclk_10", 1717 "mout_peric0_bus_user", 1718 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10, 1719 21, 0, 0), 1720 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_11, "gout_peric0_top0_pclk_11", 1721 "mout_peric0_bus_user", 1722 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_11, 1723 21, 0, 0), 1724 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_12, "gout_peric0_top0_pclk_12", 1725 "mout_peric0_bus_user", 1726 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_12, 1727 21, 0, 0), 1728 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_13, "gout_peric0_top0_pclk_13", 1729 "mout_peric0_bus_user", 1730 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_13, 1731 21, 0, 0), 1732 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_14, "gout_peric0_top0_pclk_14", 1733 "mout_peric0_bus_user", 1734 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_14, 1735 21, 0, 0), 1736 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_15, "gout_peric0_top0_pclk_15", 1737 "mout_peric0_bus_user", 1738 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_15, 1739 21, 0, 0), 1740 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_4, "gout_peric0_top0_pclk_4", 1741 "mout_peric0_bus_user", 1742 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4, 1743 21, 0, 0), 1744 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_5, "gout_peric0_top0_pclk_5", 1745 "mout_peric0_bus_user", 1746 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5, 1747 21, 0, 0), 1748 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_6, "gout_peric0_top0_pclk_6", 1749 "mout_peric0_bus_user", 1750 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6, 1751 21, 0, 0), 1752 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_7, "gout_peric0_top0_pclk_7", 1753 "mout_peric0_bus_user", 1754 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7, 1755 21, 0, 0), 1756 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_8, "gout_peric0_top0_pclk_8", 1757 "mout_peric0_bus_user", 1758 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8, 1759 21, 0, 0), 1760 GATE(CLK_GOUT_PERIC0_TOP0_PCLK_9, "gout_peric0_top0_pclk_9", 1761 "mout_peric0_bus_user", 1762 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9, 1763 21, 0, 0), 1764 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_0, "gout_peric0_top1_ipclk_0", 1765 "dout_peric0_usi_i2c", 1766 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_0, 1767 21, 0, 0), 1768 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_3, "gout_peric0_top1_ipclk_3", 1769 "dout_peric0_usi13_usi", 1770 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_3, 1771 21, 0, 0), 1772 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_4, "gout_peric0_top1_ipclk_4", 1773 "dout_peric0_usi_i2c", 1774 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_4, 1775 21, 0, 0), 1776 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_5, "gout_peric0_top1_ipclk_5", 1777 "dout_peric0_usi14_usi", 1778 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_5, 1779 21, 0, 0), 1780 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_6, "gout_peric0_top1_ipclk_6", 1781 "dout_peric0_usi_i2c", 1782 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_6, 1783 21, 0, 0), 1784 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_7, "gout_peric0_top1_ipclk_7", 1785 "dout_peric0_usi15_usi", 1786 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_7, 1787 21, 0, 0), 1788 GATE(CLK_GOUT_PERIC0_TOP1_IPCLK_8, "gout_peric0_top1_ipclk_8", 1789 "dout_peric0_usi_i2c", 1790 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_8, 1791 21, 0, 0), 1792 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_0, "gout_peric0_top1_pclk_0", 1793 "mout_peric0_bus_user", 1794 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_0, 1795 21, 0, 0), 1796 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_15, "gout_peric0_top1_pclk_15", 1797 "mout_peric0_bus_user", 1798 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_15, 1799 21, 0, 0), 1800 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_3, "gout_peric0_top1_pclk_3", 1801 "mout_peric0_bus_user", 1802 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_3, 1803 21, 0, 0), 1804 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_4, "gout_peric0_top1_pclk_4", 1805 "mout_peric0_bus_user", 1806 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_4, 1807 21, 0, 0), 1808 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_5, "gout_peric0_top1_pclk_5", 1809 "mout_peric0_bus_user", 1810 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_5, 1811 21, 0, 0), 1812 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_6, "gout_peric0_top1_pclk_6", 1813 "mout_peric0_bus_user", 1814 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_6, 1815 21, 0, 0), 1816 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_7, "gout_peric0_top1_pclk_7", 1817 "mout_peric0_bus_user", 1818 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_7, 1819 21, 0, 0), 1820 GATE(CLK_GOUT_PERIC0_TOP1_PCLK_8, "gout_peric0_top1_pclk_8", 1821 "mout_peric0_bus_user", 1822 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_PCLK_8, 1823 21, 0, 0), 1824 GATE(CLK_GOUT_PERIC0_BUSP_CLK, "gout_peric0_busp_clk", 1825 "mout_peric0_bus_user", 1826 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_BUSP_IPCLKPORT_CLK, 1827 21, 0, 0), 1828 GATE(CLK_GOUT_PERIC0_UART_DBG_CLK, "gout_peric0_uart_dbg_clk", 1829 "dout_peric0_uart_dbg", 1830 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_UART_DBG_IPCLKPORT_CLK, 1831 21, 0, 0), 1832 GATE(CLK_GOUT_PERIC0_USI00_USI_CLK, "gout_peric0_usi00_usi_clk", 1833 "dout_peric0_usi00_usi", 1834 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI00_USI_IPCLKPORT_CLK, 1835 21, 0, 0), 1836 GATE(CLK_GOUT_PERIC0_USI01_USI_CLK, "gout_peric0_usi01_usi_clk", 1837 "dout_peric0_usi01_usi", 1838 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI01_USI_IPCLKPORT_CLK, 1839 21, 0, 0), 1840 GATE(CLK_GOUT_PERIC0_USI02_USI_CLK, "gout_peric0_usi02_usi_clk", 1841 "dout_peric0_usi02_usi", 1842 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI02_USI_IPCLKPORT_CLK, 1843 21, 0, 0), 1844 GATE(CLK_GOUT_PERIC0_USI03_USI_CLK, "gout_peric0_usi03_usi_clk", 1845 "dout_peric0_usi03_usi", 1846 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI03_USI_IPCLKPORT_CLK, 1847 21, 0, 0), 1848 GATE(CLK_GOUT_PERIC0_USI04_USI_CLK, "gout_peric0_usi04_usi_clk", 1849 "dout_peric0_usi04_usi", 1850 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI04_USI_IPCLKPORT_CLK, 1851 21, 0, 0), 1852 GATE(CLK_GOUT_PERIC0_USI05_USI_CLK, "gout_peric0_usi05_usi_clk", 1853 "dout_peric0_usi05_usi", 1854 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI05_USI_IPCLKPORT_CLK, 1855 21, 0, 0), 1856 GATE(CLK_GOUT_PERIC0_USI13_USI_CLK, "gout_peric0_usi13_usi_clk", 1857 "dout_peric0_usi13_usi", 1858 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI13_USI_IPCLKPORT_CLK, 1859 21, 0, 0), 1860 GATE(CLK_GOUT_PERIC0_USI14_USI_CLK, "gout_peric0_usi14_usi_clk", 1861 "dout_peric0_usi14_usi", 1862 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI14_USI_IPCLKPORT_CLK, 1863 21, 0, 0), 1864 GATE(CLK_GOUT_PERIC0_USI15_USI_CLK, "gout_peric0_usi15_usi_clk", 1865 "dout_peric0_usi15_usi", 1866 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI15_USI_IPCLKPORT_CLK, 1867 21, 0, 0), 1868 GATE(CLK_GOUT_PERIC0_USI_I2C_CLK, "gout_peric0_usi_i2c_clk", 1869 "dout_peric0_usi_i2c", 1870 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_RSTNSYNC_CLK_PERIC0_USI_I2C_IPCLKPORT_CLK, 1871 21, 0, 0), 1872 GATE(CLK_GOUT_PERIC0_SYSREG_PCLK, "gout_peric0_sysreg_pclk", 1873 "mout_peric0_bus_user", 1874 CLK_CON_GAT_GOUT_BLK_PERIC0_UID_SYSREG_PERIC0_IPCLKPORT_PCLK, 1875 21, 0, 0) 1876}; 1877 1878static const struct samsung_cmu_info peric0_cmu_info __initconst = { 1879 .mux_clks = peric0_mux_clks, 1880 .nr_mux_clks = ARRAY_SIZE(peric0_mux_clks), 1881 .div_clks = peric0_div_clks, 1882 .nr_div_clks = ARRAY_SIZE(peric0_div_clks), 1883 .gate_clks = peric0_gate_clks, 1884 .nr_gate_clks = ARRAY_SIZE(peric0_gate_clks), 1885 .nr_clk_ids = CLKS_NR_PERIC0, 1886 .clk_regs = peric0_clk_regs, 1887 .nr_clk_regs = ARRAY_SIZE(peric0_clk_regs), 1888 .clk_name = "bus", 1889}; 1890 1891/* ---- CMU_PERIC1 --------------------------------------------------------- */ 1892 1893/* Register Offset definitions for CMU_PERIC1 (0x10700000) */ 1894#define PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER 0x0600 1895#define PLL_CON1_MUX_CLKCMU_PERIC1_BUS_USER 0x0604 1896#define PLL_CON0_MUX_CLKCMU_PERIC1_UART_BT_USER 0x0610 1897#define PLL_CON1_MUX_CLKCMU_PERIC1_UART_BT_USER 0x0614 1898#define PLL_CON0_MUX_CLKCMU_PERIC1_USI06_USI_USER 0x0620 1899#define PLL_CON1_MUX_CLKCMU_PERIC1_USI06_USI_USER 0x0624 1900#define PLL_CON0_MUX_CLKCMU_PERIC1_USI07_USI_USER 0x0630 1901#define PLL_CON1_MUX_CLKCMU_PERIC1_USI07_USI_USER 0x0634 1902#define PLL_CON0_MUX_CLKCMU_PERIC1_USI08_USI_USER 0x0640 1903#define PLL_CON1_MUX_CLKCMU_PERIC1_USI08_USI_USER 0x0644 1904#define PLL_CON0_MUX_CLKCMU_PERIC1_USI09_USI_USER 0x0650 1905#define PLL_CON1_MUX_CLKCMU_PERIC1_USI09_USI_USER 0x0654 1906#define PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER 0x0660 1907#define PLL_CON1_MUX_CLKCMU_PERIC1_USI10_USI_USER 0x0664 1908#define PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER 0x0670 1909#define PLL_CON1_MUX_CLKCMU_PERIC1_USI11_USI_USER 0x0674 1910#define PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER 0x0680 1911#define PLL_CON1_MUX_CLKCMU_PERIC1_USI12_USI_USER 0x0684 1912#define PLL_CON0_MUX_CLKCMU_PERIC1_USI16_USI_USER 0x0690 1913#define PLL_CON1_MUX_CLKCMU_PERIC1_USI16_USI_USER 0x0694 1914#define PLL_CON0_MUX_CLKCMU_PERIC1_USI17_USI_USER 0x06a0 1915#define PLL_CON1_MUX_CLKCMU_PERIC1_USI17_USI_USER 0x06a4 1916#define PLL_CON0_MUX_CLKCMU_PERIC1_USI18_USI_USER 0x06b0 1917#define PLL_CON1_MUX_CLKCMU_PERIC1_USI18_USI_USER 0x06b4 1918#define PLL_CON0_MUX_CLKCMU_PERIC1_USI_I2C_USER 0x06c0 1919#define PLL_CON1_MUX_CLKCMU_PERIC1_USI_I2C_USER 0x06c4 1920#define CLK_CON_DIV_DIV_CLK_PERIC1_UART_BT 0x1800 1921#define CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI 0x1804 1922#define CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI 0x1808 1923#define CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI 0x180c 1924#define CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI 0x1810 1925#define CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI 0x1814 1926#define CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI 0x1818 1927#define CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI 0x181c 1928#define CLK_CON_DIV_DIV_CLK_PERIC1_USI16_USI 0x1820 1929#define CLK_CON_DIV_DIV_CLK_PERIC1_USI17_USI 0x1824 1930#define CLK_CON_DIV_DIV_CLK_PERIC1_USI18_USI 0x1828 1931#define CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C 0x182c 1932#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK 0x2004 1933#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_UART_BT_IPCLKPORT_CLK 0x2008 1934#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK 0x200c 1935#define CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI18_USI_IPCLKPORT_CLK 0x2010 1936#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK 0x2014 1937#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK 0x2018 1938#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_CSISPERIC1_IPCLKPORT_I_CLK 0x201c 1939#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK 0x2020 1940#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10 0x2024 1941#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11 0x2028 1942#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_12 0x202c 1943#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_13 0x2030 1944#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_14 0x2034 1945#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_15 0x2038 1946#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4 0x203c 1947#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10 0x2040 1948#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11 0x2044 1949#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_12 0x2048 1950#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_13 0x204c 1951#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_14 0x2050 1952#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15 0x2054 1953#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4 0x2058 1954#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_0 0x205c 1955#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_1 0x2060 1956#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_10 0x2064 1957#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_12 0x206c 1958#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_13 0x2070 1959#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_14 0x2074 1960#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_15 0x2078 1961#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_2 0x207c 1962#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_3 0x2080 1963#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_4 0x2084 1964#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_5 0x2088 1965#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_6 0x208c 1966#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_7 0x2090 1967#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_9 0x2098 1968#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_0 0x209c 1969#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_1 0x20a0 1970#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_10 0x20a4 1971#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_12 0x20ac 1972#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_13 0x20b0 1973#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_14 0x20b4 1974#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_15 0x20b8 1975#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_2 0x20bc 1976#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_3 0x20c0 1977#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_4 0x20c4 1978#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_5 0x20c8 1979#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_6 0x20cc 1980#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_7 0x20d0 1981#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_9 0x20d8 1982#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK 0x20dc 1983#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK 0x20e0 1984#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI06_USI_IPCLKPORT_CLK 0x20e4 1985#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI07_USI_IPCLKPORT_CLK 0x20e8 1986#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI08_USI_IPCLKPORT_CLK 0x20ec 1987#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI09_USI_IPCLKPORT_CLK 0x20f0 1988#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK 0x20f4 1989#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK 0x20f8 1990#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI16_USI_IPCLKPORT_CLK 0x20fc 1991#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI17_USI_IPCLKPORT_CLK 0x2100 1992#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI_I2C_IPCLKPORT_CLK 0x2104 1993#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK 0x2108 1994#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_PCLK 0x210c 1995#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_SCLK 0x2110 1996#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_PCLK 0x2114 1997#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_SCLK 0x2118 1998#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_XIU_P_PERIC1_IPCLKPORT_ACLK 0x211c 1999 2000static const unsigned long peric1_clk_regs[] __initconst = { 2001 PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER, 2002 PLL_CON1_MUX_CLKCMU_PERIC1_BUS_USER, 2003 PLL_CON0_MUX_CLKCMU_PERIC1_UART_BT_USER, 2004 PLL_CON1_MUX_CLKCMU_PERIC1_UART_BT_USER, 2005 PLL_CON0_MUX_CLKCMU_PERIC1_USI06_USI_USER, 2006 PLL_CON1_MUX_CLKCMU_PERIC1_USI06_USI_USER, 2007 PLL_CON0_MUX_CLKCMU_PERIC1_USI07_USI_USER, 2008 PLL_CON1_MUX_CLKCMU_PERIC1_USI07_USI_USER, 2009 PLL_CON0_MUX_CLKCMU_PERIC1_USI08_USI_USER, 2010 PLL_CON1_MUX_CLKCMU_PERIC1_USI08_USI_USER, 2011 PLL_CON0_MUX_CLKCMU_PERIC1_USI09_USI_USER, 2012 PLL_CON1_MUX_CLKCMU_PERIC1_USI09_USI_USER, 2013 PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER, 2014 PLL_CON1_MUX_CLKCMU_PERIC1_USI10_USI_USER, 2015 PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER, 2016 PLL_CON1_MUX_CLKCMU_PERIC1_USI11_USI_USER, 2017 PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER, 2018 PLL_CON1_MUX_CLKCMU_PERIC1_USI12_USI_USER, 2019 PLL_CON0_MUX_CLKCMU_PERIC1_USI16_USI_USER, 2020 PLL_CON1_MUX_CLKCMU_PERIC1_USI16_USI_USER, 2021 PLL_CON0_MUX_CLKCMU_PERIC1_USI17_USI_USER, 2022 PLL_CON1_MUX_CLKCMU_PERIC1_USI17_USI_USER, 2023 PLL_CON0_MUX_CLKCMU_PERIC1_USI18_USI_USER, 2024 PLL_CON1_MUX_CLKCMU_PERIC1_USI18_USI_USER, 2025 PLL_CON0_MUX_CLKCMU_PERIC1_USI_I2C_USER, 2026 PLL_CON1_MUX_CLKCMU_PERIC1_USI_I2C_USER, 2027 CLK_CON_DIV_DIV_CLK_PERIC1_UART_BT, 2028 CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI, 2029 CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI, 2030 CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI, 2031 CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI, 2032 CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI, 2033 CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI, 2034 CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI, 2035 CLK_CON_DIV_DIV_CLK_PERIC1_USI16_USI, 2036 CLK_CON_DIV_DIV_CLK_PERIC1_USI17_USI, 2037 CLK_CON_DIV_DIV_CLK_PERIC1_USI18_USI, 2038 CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C, 2039 CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK, 2040 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_UART_BT_IPCLKPORT_CLK, 2041 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK, 2042 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI18_USI_IPCLKPORT_CLK, 2043 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK, 2044 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK, 2045 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_CSISPERIC1_IPCLKPORT_I_CLK, 2046 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK, 2047 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10, 2048 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11, 2049 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_12, 2050 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_13, 2051 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_14, 2052 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_15, 2053 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4, 2054 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10, 2055 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11, 2056 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_12, 2057 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_13, 2058 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_14, 2059 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15, 2060 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4, 2061 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_0, 2062 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_1, 2063 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_10, 2064 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_12, 2065 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_13, 2066 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_14, 2067 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_15, 2068 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_2, 2069 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_3, 2070 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_4, 2071 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_5, 2072 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_6, 2073 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_7, 2074 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_9, 2075 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_0, 2076 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_1, 2077 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_10, 2078 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_12, 2079 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_13, 2080 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_14, 2081 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_15, 2082 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_2, 2083 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_3, 2084 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_4, 2085 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_5, 2086 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_6, 2087 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_7, 2088 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_9, 2089 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK, 2090 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK, 2091 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI06_USI_IPCLKPORT_CLK, 2092 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI07_USI_IPCLKPORT_CLK, 2093 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI08_USI_IPCLKPORT_CLK, 2094 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI09_USI_IPCLKPORT_CLK, 2095 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK, 2096 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK, 2097 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI16_USI_IPCLKPORT_CLK, 2098 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI17_USI_IPCLKPORT_CLK, 2099 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI_I2C_IPCLKPORT_CLK, 2100 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK, 2101 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_PCLK, 2102 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_SCLK, 2103 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_PCLK, 2104 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_SCLK, 2105 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_XIU_P_PERIC1_IPCLKPORT_ACLK, 2106}; 2107 2108/* Parent clock list for CMU_PERIC1 muxes */ 2109PNAME(mout_peric1_bus_user_p) = { "oscclk", "dout_cmu_peric1_bus" }; 2110PNAME(mout_peric1_uart_bt_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2111PNAME(mout_peric1_usi06_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2112PNAME(mout_peric1_usi07_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2113PNAME(mout_peric1_usi08_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2114PNAME(mout_peric1_usi09_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2115PNAME(mout_peric1_usi10_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2116PNAME(mout_peric1_usi11_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2117PNAME(mout_peric1_usi12_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2118PNAME(mout_peric1_usi18_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2119PNAME(mout_peric1_usi16_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2120PNAME(mout_peric1_usi17_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2121PNAME(mout_peric1_usi_i2c_user_p) = { "oscclk", "dout_cmu_peric1_ip" }; 2122 2123static const struct samsung_mux_clock peric1_mux_clks[] __initconst = { 2124 MUX(CLK_MOUT_PERIC1_BUS_USER, "mout_peric1_bus_user", 2125 mout_peric1_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_BUS_USER, 2126 4, 1), 2127 MUX(CLK_MOUT_PERIC1_UART_BT_USER, "mout_peric1_uart_bt_user", 2128 mout_peric1_uart_bt_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_UART_BT_USER, 2129 4, 1), 2130 MUX(CLK_MOUT_PERIC1_USI06_USI_USER, "mout_peric1_usi06_usi_user", 2131 mout_peric1_usi06_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI06_USI_USER, 2132 4, 1), 2133 MUX(CLK_MOUT_PERIC1_USI07_USI_USER, "mout_peric1_usi07_usi_user", 2134 mout_peric1_usi07_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI07_USI_USER, 2135 4, 1), 2136 MUX(CLK_MOUT_PERIC1_USI08_USI_USER, "mout_peric1_usi08_usi_user", 2137 mout_peric1_usi08_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI08_USI_USER, 2138 4, 1), 2139 MUX(CLK_MOUT_PERIC1_USI09_USI_USER, "mout_peric1_usi09_usi_user", 2140 mout_peric1_usi09_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI09_USI_USER, 2141 4, 1), 2142 MUX(CLK_MOUT_PERIC1_USI10_USI_USER, "mout_peric1_usi10_usi_user", 2143 mout_peric1_usi10_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI10_USI_USER, 2144 4, 1), 2145 MUX(CLK_MOUT_PERIC1_USI11_USI_USER, "mout_peric1_usi11_usi_user", 2146 mout_peric1_usi11_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI11_USI_USER, 2147 4, 1), 2148 MUX(CLK_MOUT_PERIC1_USI12_USI_USER, "mout_peric1_usi12_usi_user", 2149 mout_peric1_usi12_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI12_USI_USER, 2150 4, 1), 2151 MUX(CLK_MOUT_PERIC1_USI18_USI_USER, "mout_peric1_usi18_usi_user", 2152 mout_peric1_usi18_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI18_USI_USER, 2153 4, 1), 2154 MUX(CLK_MOUT_PERIC1_USI16_USI_USER, "mout_peric1_usi16_usi_user", 2155 mout_peric1_usi16_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI16_USI_USER, 2156 4, 1), 2157 MUX(CLK_MOUT_PERIC1_USI17_USI_USER, "mout_peric1_usi17_usi_user", 2158 mout_peric1_usi17_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI17_USI_USER, 2159 4, 1), 2160 MUX(CLK_MOUT_PERIC1_USI_I2C_USER, "mout_peric1_usi_i2c_user", 2161 mout_peric1_usi_i2c_user_p, PLL_CON0_MUX_CLKCMU_PERIC1_USI_I2C_USER, 2162 4, 1), 2163}; 2164 2165static const struct samsung_div_clock peric1_div_clks[] __initconst = { 2166 DIV(CLK_DOUT_PERIC1_UART_BT, "dout_peric1_uart_bt", 2167 "mout_peric1_uart_bt_user", 2168 CLK_CON_DIV_DIV_CLK_PERIC1_UART_BT, 2169 0, 4), 2170 DIV(CLK_DOUT_PERIC1_USI06_USI, "dout_peric1_usi06_usi", 2171 "mout_peric1_usi06_usi_user", 2172 CLK_CON_DIV_DIV_CLK_PERIC1_USI06_USI, 2173 0, 4), 2174 DIV(CLK_DOUT_PERIC1_USI07_USI, "dout_peric1_usi07_usi", 2175 "mout_peric1_usi07_usi_user", 2176 CLK_CON_DIV_DIV_CLK_PERIC1_USI07_USI, 2177 0, 4), 2178 DIV(CLK_DOUT_PERIC1_USI08_USI, "dout_peric1_usi08_usi", 2179 "mout_peric1_usi08_usi_user", 2180 CLK_CON_DIV_DIV_CLK_PERIC1_USI08_USI, 2181 0, 4), 2182 DIV(CLK_DOUT_PERIC1_USI18_USI, "dout_peric1_usi18_usi", 2183 "mout_peric1_usi18_usi_user", 2184 CLK_CON_DIV_DIV_CLK_PERIC1_USI18_USI, 2185 0, 4), 2186 DIV(CLK_DOUT_PERIC1_USI12_USI, "dout_peric1_usi12_usi", 2187 "mout_peric1_usi12_usi_user", 2188 CLK_CON_DIV_DIV_CLK_PERIC1_USI12_USI, 2189 0, 4), 2190 DIV(CLK_DOUT_PERIC1_USI09_USI, "dout_peric1_usi09_usi", 2191 "mout_peric1_usi09_usi_user", 2192 CLK_CON_DIV_DIV_CLK_PERIC1_USI09_USI, 2193 0, 4), 2194 DIV(CLK_DOUT_PERIC1_USI10_USI, "dout_peric1_usi10_usi", 2195 "mout_peric1_usi10_usi_user", 2196 CLK_CON_DIV_DIV_CLK_PERIC1_USI10_USI, 2197 0, 4), 2198 DIV(CLK_DOUT_PERIC1_USI11_USI, "dout_peric1_usi11_usi", 2199 "mout_peric1_usi11_usi_user", 2200 CLK_CON_DIV_DIV_CLK_PERIC1_USI11_USI, 2201 0, 4), 2202 DIV(CLK_DOUT_PERIC1_USI16_USI, "dout_peric1_usi16_usi", 2203 "mout_peric1_usi16_usi_user", 2204 CLK_CON_DIV_DIV_CLK_PERIC1_USI16_USI, 2205 0, 4), 2206 DIV(CLK_DOUT_PERIC1_USI17_USI, "dout_peric1_usi17_usi", 2207 "mout_peric1_usi17_usi_user", 2208 CLK_CON_DIV_DIV_CLK_PERIC1_USI17_USI, 2209 0, 4), 2210 DIV(CLK_DOUT_PERIC1_USI_I2C, "dout_peric1_usi_i2c", 2211 "mout_peric1_usi_i2c_user", 2212 CLK_CON_DIV_DIV_CLK_PERIC1_USI_I2C, 2213 0, 4), 2214}; 2215 2216static const struct samsung_gate_clock peric1_gate_clks[] __initconst = { 2217 GATE(CLK_GOUT_PERIC1_CMU_PCLK, "gout_peric1_cmu_pclk", 2218 "mout_peric1_bus_user", 2219 CLK_CON_GAT_CLK_BLK_PERIC1_UID_PERIC1_CMU_PERIC1_IPCLKPORT_PCLK, 2220 21, CLK_IS_CRITICAL, 0), 2221 GATE(CLK_GOUT_PERIC1_UART_BT_CLK, "gout_peric1_uart_bt_clk", 2222 "dout_peric1_uart_bt", 2223 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_UART_BT_IPCLKPORT_CLK, 2224 21, 0, 0), 2225 GATE(CLK_GOUT_PERIC1_USI12_USI_CLK, "gout_peric1_usi12_usi_clk", 2226 "dout_peric1_usi12_usi", 2227 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI12_USI_IPCLKPORT_CLK, 2228 21, 0, 0), 2229 GATE(CLK_GOUT_PERIC1_USI18_USI_CLK, "gout_peric1_usi18_usi_clk", 2230 "dout_peric1_usi18_usi", 2231 CLK_CON_GAT_CLK_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI18_USI_IPCLKPORT_CLK, 2232 21, 0, 0), 2233 GATE(CLK_GOUT_PERIC1_D_TZPC_PCLK, "gout_peric1_d_tzpc_pclk", 2234 "dout_peric1_bus_user", 2235 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_D_TZPC_PERIC1_IPCLKPORT_PCLK, 2236 21, 0, 0), 2237 GATE(CLK_GOUT_PERIC1_GPIO_PCLK, "gout_peric1_gpio_pclk", 2238 "mout_peric1_bus_user", 2239 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_GPIO_PERIC1_IPCLKPORT_PCLK, 2240 21, CLK_IGNORE_UNUSED, 0), 2241 GATE(CLK_GOUT_PERIC1_LHM_AXI_P_CSIS_CLK, "gout_peric1_lhm_axi_p_csis_clk", 2242 "mout_peric1_bus_user", 2243 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_CSISPERIC1_IPCLKPORT_I_CLK, 2244 21, 0, 0), 2245 GATE(CLK_GOUT_PERIC1_LHM_AXI_P_CLK, "gout_peric1_lhm_axi_p_clk", 2246 "mout_peric1_bus_user", 2247 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_LHM_AXI_P_PERIC1_IPCLKPORT_I_CLK, 2248 21, CLK_IS_CRITICAL, 0), 2249 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_10, "gout_peric1_top0_ipclk_10", 2250 "dout_peric1_usi06_usi", 2251 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_10, 2252 21, 0, 0), 2253 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_11, "gout_peric1_top0_ipclk_11", 2254 "dout_peric1_usi_i2c", 2255 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11, 2256 21, 0, 0), 2257 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_12, "gout_peric1_top0_ipclk_12", 2258 "dout_peric1_usi07_usi", 2259 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_12, 2260 21, 0, 0), 2261 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_13, "gout_peric1_top0_ipclk_13", 2262 "dout_peric1_usi_i2c", 2263 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_13, 2264 21, 0, 0), 2265 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_14, "gout_peric1_top0_ipclk_14", 2266 "dout_peric1_usi08_usi", 2267 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_14, 2268 21, 0, 0), 2269 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_15, "gout_peric1_top0_ipclk_15", 2270 "dout_peric1_usi_i2c", 2271 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_15, 2272 21, 0, 0), 2273 GATE(CLK_GOUT_PERIC1_TOP0_IPCLK_4, "gout_peric1_top0_ipclk_4", 2274 "dout_peric1_uart_bt", 2275 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_4, 2276 21, 0, 0), 2277 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_10, "gout_peric1_top0_pclk_10", 2278 "mout_peric1_bus_user", 2279 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10, 2280 21, 0, 0), 2281 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_11, "gout_peric1_top0_pclk_11", 2282 "mout_peric1_bus_user", 2283 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11, 2284 21, 0, 0), 2285 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_12, "gout_peric1_top0_pclk_12", 2286 "mout_peric1_bus_user", 2287 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_12, 2288 21, 0, 0), 2289 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_13, "gout_peric1_top0_pclk_13", 2290 "mout_peric1_bus_user", 2291 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_13, 2292 21, 0, 0), 2293 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_14, "gout_peric1_top0_pclk_14", 2294 "mout_peric1_bus_user", 2295 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_14, 2296 21, 0, 0), 2297 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_15, "gout_peric1_top0_pclk_15", 2298 "mout_peric1_bus_user", 2299 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_15, 2300 21, 0, 0), 2301 GATE(CLK_GOUT_PERIC1_TOP0_PCLK_4, "gout_peric1_top0_pclk_4", 2302 "mout_peric1_bus_user", 2303 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4, 2304 21, 0, 0), 2305 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_0, "gout_peric1_top1_ipclk_0", 2306 "dout_peric1_usi09_usi", 2307 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_0, 2308 21, 0, 0), 2309 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_1, "gout_peric1_top1_ipclk_1", 2310 "dout_peric1_usi_i2c", 2311 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_1, 2312 21, 0, 0), 2313 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_10, "gout_peric1_top1_ipclk_10", 2314 "dout_peric1_usi_i2c", 2315 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_10, 2316 21, 0, 0), 2317 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_12, "gout_peric1_top1_ipclk_12", 2318 "dout_peric1_usi12_usi", 2319 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_12, 2320 21, 0, 0), 2321 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_13, "gout_peric1_top1_ipclk_13", 2322 "dout_peric1_usi_i2c", 2323 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_13, 2324 21, 0, 0), 2325 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_14, "gout_peric1_top1_ipclk_14", 2326 "dout_peric1_usi18_usi", 2327 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_14, 2328 21, 0, 0), 2329 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_15, "gout_peric1_top1_ipclk_15", 2330 "dout_peric1_usi_i2c", 2331 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_15, 2332 21, 0, 0), 2333 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_2, "gout_peric1_top1_ipclk_2", 2334 "dout_peric1_usi10_usi", 2335 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_2, 2336 21, 0, 0), 2337 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_3, "gout_peric1_top1_ipclk_3", 2338 "dout_peric1_usi_i2c", 2339 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_3, 2340 21, 0, 0), 2341 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_4, "gout_peric1_top1_ipclk_4", 2342 "dout_peric1_usi11_usi", 2343 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_4, 2344 21, 0, 0), 2345 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_5, "gout_peric1_top1_ipclk_5", 2346 "dout_peric1_usi_i2c", 2347 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_5, 2348 21, 0, 0), 2349 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_6, "gout_peric1_top1_ipclk_6", 2350 "dout_peric1_usi16_usi", 2351 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_6, 2352 21, 0, 0), 2353 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_7, "gout_peric1_top1_ipclk_7", 2354 "dout_peric1_usi_i2c", 2355 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_7, 2356 21, 0, 0), 2357 GATE(CLK_GOUT_PERIC1_TOP1_IPCLK_9, "gout_peric1_top1_ipclk_9", 2358 "dout_peric1_usi17_usi", 2359 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_IPCLK_9, 2360 21, 0, 0), 2361 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_0, "gout_peric1_top1_pclk_0", 2362 "mout_peric1_bus_user", 2363 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_0, 2364 21, 0, 0), 2365 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_1, "gout_peric1_top1_pclk_1", 2366 "mout_peric1_bus_user", 2367 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_1, 2368 21, 0, 0), 2369 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_10, "gout_peric1_top1_pclk_10", 2370 "dout_peric1_bus_user", 2371 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_10, 2372 21, 0, 0), 2373 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_12, "gout_peric1_top1_pclk_12", 2374 "dout_peric1_bus_user", 2375 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_12, 2376 21, 0, 0), 2377 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_13, "gout_peric1_top1_pclk_13", 2378 "mout_peric1_bus_user", 2379 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_13, 2380 21, 0, 0), 2381 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_14, "gout_peric1_top1_pclk_14", 2382 "mout_peric1_bus_user", 2383 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_14, 2384 21, 0, 0), 2385 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_15, "gout_peric1_top1_pclk_15", 2386 "mout_peric1_bus_user", 2387 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_15, 2388 21, 0, 0), 2389 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_2, "gout_peric1_top1_pclk_2", 2390 "mout_peric1_bus_user", 2391 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_2, 2392 21, 0, 0), 2393 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_3, "gout_peric1_top1_pclk_3", 2394 "mout_peric1_bus_user", 2395 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_3, 2396 21, 0, 0), 2397 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_4, "gout_peric1_top1_pclk_4", 2398 "mout_peric1_bus_user", 2399 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_4, 2400 21, 0, 0), 2401 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_5, "gout_peric1_top1_pclk_5", 2402 "mout_peric1_bus_user", 2403 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_5, 2404 21, 0, 0), 2405 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_6, "gout_peric1_top1_pclk_6", 2406 "mout_peric1_bus_user", 2407 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_6, 2408 21, 0, 0), 2409 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_7, "gout_peric1_top1_pclk_7", 2410 "mout_peric1_bus_user", 2411 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_7, 2412 21, 0, 0), 2413 GATE(CLK_GOUT_PERIC1_TOP1_PCLK_9, "gout_peric1_top1_pclk_9", 2414 "dout_peric1_bus_user", 2415 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP1_IPCLKPORT_PCLK_9, 2416 21, 0, 0), 2417 GATE(CLK_GOUT_PERIC1_BUSP_CLK, "gout_peric1_busp_clk", 2418 "mout_peric1_bus_user", 2419 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_BUSP_IPCLKPORT_CLK, 2420 21, 0, 0), 2421 GATE(CLK_GOUT_PERIC1_OSCCLK_CLK, "gout_peric1_oscclk_clk", 2422 "oscclk", 2423 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_OSCCLK_IPCLKPORT_CLK, 2424 21, 0, 0), 2425 GATE(CLK_GOUT_PERIC1_USI06_USI_CLK, "gout_peric1_usi06_usi_clk", 2426 "dout_peric1_usi06_usi", 2427 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI06_USI_IPCLKPORT_CLK, 2428 21, 0, 0), 2429 GATE(CLK_GOUT_PERIC1_USI07_USI_CLK, "gout_peric1_usi07_usi_clk", 2430 "dout_peric1_usi07_usi", 2431 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI07_USI_IPCLKPORT_CLK, 2432 21, 0, 0), 2433 GATE(CLK_GOUT_PERIC1_USI08_USI_CLK, "gout_peric1_usi08_usi_clk", 2434 "dout_peric1_usi08_usi", 2435 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI08_USI_IPCLKPORT_CLK, 2436 21, 0, 0), 2437 GATE(CLK_GOUT_PERIC1_USI09_USI_CLK, "gout_peric1_usi09_usi_clk", 2438 "dout_peric1_usi09_usi", 2439 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI09_USI_IPCLKPORT_CLK, 2440 21, 0, 0), 2441 GATE(CLK_GOUT_PERIC1_USI10_USI_CLK, "gout_peric1_usi10_usi_clk", 2442 "dout_peric1_usi10_usi", 2443 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI10_USI_IPCLKPORT_CLK, 2444 21, 0, 0), 2445 GATE(CLK_GOUT_PERIC1_USI11_USI_CLK, "gout_peric1_usi11_usi_clk", 2446 "dout_peric1_usi11_usi", 2447 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI11_USI_IPCLKPORT_CLK, 2448 21, 0, 0), 2449 GATE(CLK_GOUT_PERIC1_USI16_USI_CLK, "gout_peric1_usi16_usi_clk", 2450 "dout_peric1_usi16_usi", 2451 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI16_USI_IPCLKPORT_CLK, 2452 21, 0, 0), 2453 GATE(CLK_GOUT_PERIC1_USI17_USI_CLK, "gout_peric1_usi17_usi_clk", 2454 "dout_peric1_usi17_usi", 2455 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI17_USI_IPCLKPORT_CLK, 2456 21, 0, 0), 2457 GATE(CLK_GOUT_PERIC1_USI_I2C_CLK, "gout_peric1_usi_i2c_clk", 2458 "dout_peric1_usi_i2c", 2459 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_RSTNSYNC_CLK_PERIC1_USI_I2C_IPCLKPORT_CLK, 2460 21, 0, 0), 2461 GATE(CLK_GOUT_PERIC1_SYSREG_PCLK, "gout_peric1_sysreg_pclk", 2462 "mout_peric1_bus_user", 2463 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_SYSREG_PERIC1_IPCLKPORT_PCLK, 2464 21, 0, 0), 2465 GATE(CLK_GOUT_PERIC1_USI16_I3C_PCLK, "gout_peric1_usi16_i3c_pclk", 2466 "mout_peric1_bus_user", 2467 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_PCLK, 2468 21, 0, 0), 2469 GATE(CLK_GOUT_PERIC1_USI16_I3C_SCLK, "gout_peric1_usi16_i3c_sclk", 2470 "dout_peric1_usi_i2c", 2471 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI16_I3C_IPCLKPORT_I_SCLK, 2472 21, 0, 0), 2473 GATE(CLK_GOUT_PERIC1_USI17_I3C_PCLK, "gout_peric1_usi17_i3c_pclk", 2474 "dout_peric1_bus_user", 2475 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_PCLK, 2476 21, 0, 0), 2477 GATE(CLK_GOUT_PERIC1_USI17_I3C_SCLK, "gout_peric1_usi17_i3c_sclk", 2478 "dout_peric1_usi_i2c", 2479 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_USI17_I3C_IPCLKPORT_I_SCLK, 2480 21, 0, 0), 2481 GATE(CLK_GOUT_PERIC1_XIU_P_ACLK, "gout_peric1_xiu_p_aclk", 2482 "mout_peric1_bus_user", 2483 CLK_CON_GAT_GOUT_BLK_PERIC1_UID_XIU_P_PERIC1_IPCLKPORT_ACLK, 2484 21, CLK_IGNORE_UNUSED, 0), 2485}; 2486 2487static const struct samsung_cmu_info peric1_cmu_info __initconst = { 2488 .mux_clks = peric1_mux_clks, 2489 .nr_mux_clks = ARRAY_SIZE(peric1_mux_clks), 2490 .div_clks = peric1_div_clks, 2491 .nr_div_clks = ARRAY_SIZE(peric1_div_clks), 2492 .gate_clks = peric1_gate_clks, 2493 .nr_gate_clks = ARRAY_SIZE(peric1_gate_clks), 2494 .nr_clk_ids = CLKS_NR_PERIC1, 2495 .clk_regs = peric1_clk_regs, 2496 .nr_clk_regs = ARRAY_SIZE(peric1_clk_regs), 2497 .clk_name = "bus", 2498}; 2499 2500/* ---- CMU_PERIS ----------------------------------------------------------- */ 2501 2502/* Register Offset definitions for CMU_PERIS (0x10020000) */ 2503#define PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER 0x0600 2504#define PLL_CON1_MUX_CLKCMU_PERIS_BUS_USER 0x0604 2505#define CLK_CON_MUX_MUX_CLK_PERIS_GIC 0x1000 2506#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK 0x203c 2507#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER2_IPCLKPORT_PCLK 0x204c 2508#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK 0x2048 2509#define CLK_CON_GAT_CLK_BLK_PERIS_UID_PERIS_CMU_PERIS_IPCLKPORT_PCLK 0x200c 2510#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_BUSP_IPCLKPORT_CLK 0x2034 2511#define CLK_CON_GAT_CLK_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_OSCCLK_IPCLKPORT_CLK 0x2010 2512#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_GIC_IPCLKPORT_CLK 0x2038 2513#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_AD_AXI_P_PERIS_IPCLKPORT_ACLKM 0x2014 2514#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_PCLK 0x2028 2515#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_GIC_IPCLKPORT_CLK 0x201c 2516#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_LHM_AXI_P_PERIS_IPCLKPORT_I_CLK 0x2020 2517#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_MCT_IPCLKPORT_PCLK 0x2024 2518#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_PCLK 0x2030 2519#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_D_TZPC_PERIS_IPCLKPORT_PCLK 0x2018 2520#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_TMU_SUB_IPCLKPORT_PCLK 0x2040 2521#define CLK_CON_GAT_GOUT_BLK_PERIS_UID_TMU_TOP_IPCLKPORT_PCLK 0x2044 2522#define CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK 0x2000 2523#define CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK 0x2008 2524#define QCH_CON_D_TZPC_PERIS_QCH 0x3004 2525#define QCH_CON_GIC_QCH 0x3008 2526#define QCH_CON_LHM_AXI_P_PERIS_QCH 0x300c 2527#define QCH_CON_MCT_QCH 0x3010 2528#define QCH_CON_OTP_CON_BIRA_QCH 0x3014 2529#define QCH_CON_OTP_CON_TOP_QCH 0x301c 2530#define QCH_CON_PERIS_CMU_PERIS_QCH 0x3020 2531#define QCH_CON_SYSREG_PERIS_QCH 0x3024 2532#define QCH_CON_TMU_SUB_QCH 0x3028 2533#define QCH_CON_TMU_TOP_QCH 0x302c 2534#define QCH_CON_WDT_CLUSTER0_QCH 0x3030 2535#define QCH_CON_WDT_CLUSTER2_QCH 0x3034 2536 2537static const unsigned long peris_clk_regs[] __initconst = { 2538 PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER, 2539 PLL_CON1_MUX_CLKCMU_PERIS_BUS_USER, 2540 CLK_CON_MUX_MUX_CLK_PERIS_GIC, 2541 CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK, 2542 CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER2_IPCLKPORT_PCLK, 2543 CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK, 2544 CLK_CON_GAT_CLK_BLK_PERIS_UID_PERIS_CMU_PERIS_IPCLKPORT_PCLK, 2545 CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_BUSP_IPCLKPORT_CLK, 2546 CLK_CON_GAT_CLK_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_OSCCLK_IPCLKPORT_CLK, 2547 CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_GIC_IPCLKPORT_CLK, 2548 CLK_CON_GAT_GOUT_BLK_PERIS_UID_AD_AXI_P_PERIS_IPCLKPORT_ACLKM, 2549 CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_PCLK, 2550 CLK_CON_GAT_GOUT_BLK_PERIS_UID_GIC_IPCLKPORT_CLK, 2551 CLK_CON_GAT_GOUT_BLK_PERIS_UID_LHM_AXI_P_PERIS_IPCLKPORT_I_CLK, 2552 CLK_CON_GAT_GOUT_BLK_PERIS_UID_MCT_IPCLKPORT_PCLK, 2553 CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_PCLK, 2554 CLK_CON_GAT_GOUT_BLK_PERIS_UID_D_TZPC_PERIS_IPCLKPORT_PCLK, 2555 CLK_CON_GAT_GOUT_BLK_PERIS_UID_TMU_SUB_IPCLKPORT_PCLK, 2556 CLK_CON_GAT_GOUT_BLK_PERIS_UID_TMU_TOP_IPCLKPORT_PCLK, 2557 CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK, 2558 CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK, 2559 QCH_CON_D_TZPC_PERIS_QCH, 2560 QCH_CON_GIC_QCH, 2561 QCH_CON_LHM_AXI_P_PERIS_QCH, 2562 QCH_CON_MCT_QCH, 2563 QCH_CON_OTP_CON_BIRA_QCH, 2564 QCH_CON_OTP_CON_TOP_QCH, 2565 QCH_CON_PERIS_CMU_PERIS_QCH, 2566 QCH_CON_SYSREG_PERIS_QCH, 2567 QCH_CON_TMU_SUB_QCH, 2568 QCH_CON_TMU_TOP_QCH, 2569 QCH_CON_WDT_CLUSTER0_QCH, 2570 QCH_CON_WDT_CLUSTER2_QCH, 2571}; 2572 2573/* Parent clock list for CMU_PERIS muxes */ 2574PNAME(mout_peris_bus_user_p) = { "oscclk", "mout_cmu_peris_bus" }; 2575PNAME(mout_peris_clk_peris_gic_p) = { "oscclk", "mout_peris_bus_user" }; 2576 2577static const struct samsung_mux_clock peris_mux_clks[] __initconst = { 2578 MUX(CLK_MOUT_PERIS_BUS_USER, "mout_peris_bus_user", 2579 mout_peris_bus_user_p, PLL_CON0_MUX_CLKCMU_PERIS_BUS_USER, 2580 4, 1), 2581 MUX(CLK_MOUT_PERIS_CLK_PERIS_GIC, "mout_peris_clk_peris_gic", 2582 mout_peris_clk_peris_gic_p, CLK_CON_MUX_MUX_CLK_PERIS_GIC, 2583 4, 1), 2584}; 2585 2586static const struct samsung_gate_clock peris_gate_clks[] __initconst = { 2587 GATE(CLK_GOUT_PERIS_SYSREG_PERIS_PCLK, 2588 "gout_peris_sysreg_peris_pclk", "mout_peris_bus_user", 2589 CLK_CON_GAT_GOUT_BLK_PERIS_UID_SYSREG_PERIS_IPCLKPORT_PCLK, 2590 21, 0, 0), 2591 GATE(CLK_GOUT_PERIS_WDT_CLUSTER2_PCLK, 2592 "gout_peris_wdt_cluster2_pclk", "mout_peris_bus_user", 2593 CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER2_IPCLKPORT_PCLK, 2594 21, 0, 0), 2595 GATE(CLK_GOUT_PERIS_WDT_CLUSTER0_PCLK, 2596 "gout_peris_wdt_cluster0_pclk", "mout_peris_bus_user", 2597 CLK_CON_GAT_GOUT_BLK_PERIS_UID_WDT_CLUSTER0_IPCLKPORT_PCLK, 2598 21, 0, 0), 2599 GATE(CLK_CLK_PERIS_PERIS_CMU_PERIS_PCLK, 2600 "clk_peris_peris_cmu_peris_pclk", "mout_peris_bus_user", 2601 CLK_CON_GAT_CLK_BLK_PERIS_UID_PERIS_CMU_PERIS_IPCLKPORT_PCLK, 2602 21, CLK_IGNORE_UNUSED, 0), 2603 GATE(CLK_GOUT_PERIS_CLK_PERIS_BUSP_CLK, 2604 "gout_peris_clk_peris_busp_clk", "mout_peris_bus_user", 2605 CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_BUSP_IPCLKPORT_CLK, 2606 21, 0, 0), 2607 GATE(CLK_GOUT_PERIS_CLK_PERIS_OSCCLK_CLK, 2608 "gout_peris_clk_peris_oscclk_clk", "mout_peris_bus_user", 2609 CLK_CON_GAT_CLK_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_OSCCLK_IPCLKPORT_CLK, 2610 21, 0, 0), 2611 GATE(CLK_GOUT_PERIS_CLK_PERIS_GIC_CLK, 2612 "gout_peris_clk_peris_gic_clk", "mout_peris_bus_user", 2613 CLK_CON_GAT_GOUT_BLK_PERIS_UID_RSTNSYNC_CLK_PERIS_GIC_IPCLKPORT_CLK, 2614 21, 0, 0), 2615 GATE(CLK_GOUT_PERIS_AD_AXI_P_PERIS_ACLKM, 2616 "gout_peris_ad_axi_p_peris_aclkm", "mout_peris_bus_user", 2617 CLK_CON_GAT_GOUT_BLK_PERIS_UID_AD_AXI_P_PERIS_IPCLKPORT_ACLKM, 2618 21, CLK_IGNORE_UNUSED, 0), 2619 GATE(CLK_GOUT_PERIS_OTP_CON_BIRA_PCLK, 2620 "gout_peris_otp_con_bira_pclk", "mout_peris_bus_user", 2621 CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_PCLK, 2622 21, 0, 0), 2623 GATE(CLK_GOUT_PERIS_GIC_CLK, 2624 "gout_peris_gic_clk", "mout_peris_bus_user", 2625 CLK_CON_GAT_GOUT_BLK_PERIS_UID_GIC_IPCLKPORT_CLK, 2626 21, CLK_IS_CRITICAL, 0), 2627 GATE(CLK_GOUT_PERIS_LHM_AXI_P_PERIS_CLK, 2628 "gout_peris_lhm_axi_p_peris_clk", "oscclk", 2629 CLK_CON_GAT_GOUT_BLK_PERIS_UID_LHM_AXI_P_PERIS_IPCLKPORT_I_CLK, 2630 21, CLK_IGNORE_UNUSED, 0), 2631 GATE(CLK_GOUT_PERIS_MCT_PCLK, 2632 "gout_peris_mct_pclk", "mout_peris_clk_peris_gic", 2633 CLK_CON_GAT_GOUT_BLK_PERIS_UID_MCT_IPCLKPORT_PCLK, 2634 21, 0, 0), 2635 GATE(CLK_GOUT_PERIS_OTP_CON_TOP_PCLK, 2636 "gout_peris_otp_con_top_pclk", "mout_peris_clk_peris_gic", 2637 CLK_CON_GAT_GOUT_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_PCLK, 2638 21, 0, 0), 2639 GATE(CLK_GOUT_PERIS_D_TZPC_PERIS_PCLK, 2640 "gout_peris_d_tzpc_peris_pclk", "mout_peris_bus_user", 2641 CLK_CON_GAT_GOUT_BLK_PERIS_UID_D_TZPC_PERIS_IPCLKPORT_PCLK, 2642 21, 0, 0), 2643 GATE(CLK_GOUT_PERIS_TMU_TOP_PCLK, 2644 "gout_peris_tmu_top_pclk", "mout_peris_clk_peris_gic", 2645 CLK_CON_GAT_GOUT_BLK_PERIS_UID_TMU_TOP_IPCLKPORT_PCLK, 2646 21, 0, 0), 2647 GATE(CLK_GOUT_PERIS_OTP_CON_BIRA_OSCCLK, 2648 "gout_peris_otp_con_bira_oscclk", "oscclk", 2649 CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_BIRA_IPCLKPORT_I_OSCCLK, 2650 21, 0, 0), 2651 GATE(CLK_GOUT_PERIS_OTP_CON_TOP_OSCCLK, 2652 "gout_peris_otp_con_top_oscclk", "oscclk", 2653 CLK_CON_GAT_CLK_BLK_PERIS_UID_OTP_CON_TOP_IPCLKPORT_I_OSCCLK, 2654 21, 0, 0), 2655}; 2656 2657static const struct samsung_cmu_info peris_cmu_info __initconst = { 2658 .mux_clks = peris_mux_clks, 2659 .nr_mux_clks = ARRAY_SIZE(peris_mux_clks), 2660 .gate_clks = peris_gate_clks, 2661 .nr_gate_clks = ARRAY_SIZE(peris_gate_clks), 2662 .nr_clk_ids = CLKS_NR_PERIS, 2663 .clk_regs = peris_clk_regs, 2664 .nr_clk_regs = ARRAY_SIZE(peris_clk_regs), 2665}; 2666 2667static void __init exynos990_cmu_peris_init(struct device_node *np) 2668{ 2669 exynos_arm64_register_cmu(NULL, np, &peris_cmu_info); 2670} 2671 2672/* Register CMU_PERIS early, as it's a dependency for the MCT. */ 2673CLK_OF_DECLARE(exynos990_cmu_peris, "samsung,exynos990-cmu-peris", 2674 exynos990_cmu_peris_init); 2675 2676/* ----- platform_driver ----- */ 2677 2678static int __init exynos990_cmu_probe(struct platform_device *pdev) 2679{ 2680 const struct samsung_cmu_info *info; 2681 struct device *dev = &pdev->dev; 2682 2683 info = of_device_get_match_data(dev); 2684 exynos_arm64_register_cmu(dev, dev->of_node, info); 2685 2686 return 0; 2687} 2688 2689static const struct of_device_id exynos990_cmu_of_match[] = { 2690 { 2691 .compatible = "samsung,exynos990-cmu-hsi0", 2692 .data = &hsi0_cmu_info, 2693 }, { 2694 .compatible = "samsung,exynos990-cmu-peric0", 2695 .data = &peric0_cmu_info, 2696 }, { 2697 .compatible = "samsung,exynos990-cmu-peric1", 2698 .data = &peric1_cmu_info, 2699 }, 2700 { }, 2701}; 2702 2703static struct platform_driver exynos990_cmu_driver __refdata = { 2704 .driver = { 2705 .name = "exynos990-cmu", 2706 .of_match_table = exynos990_cmu_of_match, 2707 .suppress_bind_attrs = true, 2708 }, 2709 .probe = exynos990_cmu_probe, 2710}; 2711 2712static int __init exynos990_cmu_init(void) 2713{ 2714 return platform_driver_register(&exynos990_cmu_driver); 2715} 2716 2717core_initcall(exynos990_cmu_init);
~/
Read-only file preview.