1*bdd03ebfSIgor Belwon // SPDX-License-Identifier: GPL-2.0-only 2*bdd03ebfSIgor Belwon /* 3*bdd03ebfSIgor Belwon * Copyright (C) 2024 Igor Belwon <igor.belwon@mentallysanemainliners.org> 4*bdd03ebfSIgor Belwon * 5*bdd03ebfSIgor Belwon * Common Clock Framework support for Exynos990. 6*bdd03ebfSIgor Belwon */ 7*bdd03ebfSIgor Belwon 8*bdd03ebfSIgor Belwon #include <linux/clk.h> 9*bdd03ebfSIgor Belwon #include <linux/clk-provider.h> 10*bdd03ebfSIgor Belwon #include <linux/of.h> 11*bdd03ebfSIgor Belwon #include <linux/platform_device.h> 12*bdd03ebfSIgor Belwon 13*bdd03ebfSIgor Belwon #include <dt-bindings/clock/samsung,exynos990.h> 14*bdd03ebfSIgor Belwon 15*bdd03ebfSIgor Belwon #include "clk.h" 16*bdd03ebfSIgor Belwon #include "clk-exynos-arm64.h" 17*bdd03ebfSIgor Belwon #include "clk-pll.h" 18*bdd03ebfSIgor Belwon 19*bdd03ebfSIgor Belwon /* NOTE: Must be equal to the last clock ID increased by one */ 20*bdd03ebfSIgor Belwon #define CLKS_NR_TOP (CLK_GOUT_CMU_VRA_BUS + 1) 21*bdd03ebfSIgor Belwon #define CLKS_NR_HSI0 (CLK_GOUT_HSI0_XIU_D_HSI0_ACLK + 1) 22*bdd03ebfSIgor Belwon 23*bdd03ebfSIgor Belwon /* ---- CMU_TOP ------------------------------------------------------------- */ 24*bdd03ebfSIgor Belwon 25*bdd03ebfSIgor Belwon /* Register Offset definitions for CMU_TOP (0x1a330000) */ 26*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_G3D 0x0000 27*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_MMC 0x0004 28*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_SHARED0 0x0008 29*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_SHARED1 0x000c 30*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_SHARED2 0x0010 31*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_SHARED3 0x0014 32*bdd03ebfSIgor Belwon #define PLL_LOCKTIME_PLL_SHARED4 0x0018 33*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_G3D 0x0100 34*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_G3D 0x010c 35*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_MMC 0x0140 36*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_MMC 0x014c 37*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_SHARED0 0x0180 38*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_SHARED0 0x018c 39*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_SHARED1 0x01c0 40*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_SHARED1 0x01cc 41*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_SHARED2 0x0200 42*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_SHARED2 0x020c 43*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_SHARED3 0x0240 44*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_SHARED3 0x024c 45*bdd03ebfSIgor Belwon #define PLL_CON0_PLL_SHARED4 0x0280 46*bdd03ebfSIgor Belwon #define PLL_CON3_PLL_SHARED4 0x028c 47*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_APM_BUS 0x1004 48*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_AUD_CPU 0x1008 49*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS 0x100c 50*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS 0x1010 51*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS 0x1014 52*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0 0x1018 53*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1 0x101c 54*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2 0x1020 55*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3 0x1024 56*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4 0x1028 57*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5 0x102c 58*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST 0x1030 59*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CORE_BUS 0x1034 60*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS 0x1038 61*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH 0x103c 62*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH 0x1040 63*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP 0x1044 64*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH 0x1048 65*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS 0x104c 66*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU 0x1050 67*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DNC_BUS 0x1054 68*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM 0x1058 69*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DNS_BUS 0x105c 70*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DPU 0x1060 71*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DPU_ALT 0x1064 72*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_DSP_BUS 0x1068 73*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_G2D_G2D 0x106c 74*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL 0x1070 75*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HPM 0x1074 76*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS 0x1078 77*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC 0x107c 78*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD 0x1080 79*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG 0x1084 80*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS 0x1088 81*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD 0x108c 82*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE 0x1090 83*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD 0x1094 84*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD 0x1098 85*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS 0x109c 86*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE 0x10a0 87*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_IPP_BUS 0x10a4 88*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_ITP_BUS 0x10a8 89*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS 0x10ac 90*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC 0x10b0 91*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU 0x10b4 92*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0 0x10b8 93*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD 0x10bc 94*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP 0x10c0 95*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH 0x10c4 96*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_NPU_BUS 0x10c8 97*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS 0x10cc 98*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP 0x10d0 99*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS 0x10d4 100*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP 0x10d8 101*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS 0x10dc 102*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_SSP_BUS 0x10e0 103*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_TNR_BUS 0x10e4 104*bdd03ebfSIgor Belwon #define CLK_CON_MUX_MUX_CLKCMU_VRA_BUS 0x10e8 105*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_APM_BUS 0x1800 106*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_AUD_CPU 0x1804 107*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_BUS0_BUS 0x1808 108*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_BUS1_BUS 0x180c 109*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_BUS1_SSS 0x1810 110*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK0 0x1814 111*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK1 0x1818 112*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK2 0x181c 113*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK3 0x1820 114*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK4 0x1824 115*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CIS_CLK5 0x1828 116*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CMU_BOOST 0x182c 117*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CORE_BUS 0x1830 118*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS 0x1834 119*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH 0x1838 120*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH 0x183c 121*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CPUCL2_BUSP 0x1840 122*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH 0x1844 123*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CSIS_BUS 0x1848 124*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU 0x184c 125*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_DNC_BUS 0x1850 126*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_DNC_BUSM 0x1854 127*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_DNS_BUS 0x1858 128*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_DSP_BUS 0x185c 129*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_G2D_G2D 0x1860 130*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_G2D_MSCL 0x1864 131*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_G3D_SWITCH 0x1868 132*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HPM 0x186c 133*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI0_BUS 0x1870 134*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI0_DPGTC 0x1874 135*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI0_USB31DRD 0x1878 136*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG 0x187c 137*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI1_BUS 0x1880 138*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD 0x1884 139*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI1_PCIE 0x1888 140*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD 0x188c 141*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD 0x1890 142*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI2_BUS 0x1894 143*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_HSI2_PCIE 0x1898 144*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_IPP_BUS 0x189c 145*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_ITP_BUS 0x18a0 146*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_MCSC_BUS 0x18a4 147*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_MCSC_GDC 0x18a8 148*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU 0x18ac 149*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_MFC0_MFC0 0x18b0 150*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_MFC0_WFD 0x18b4 151*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_MIF_BUSP 0x18b8 152*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_NPU_BUS 0x18bc 153*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_OTP 0x18c0 154*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_PERIC0_BUS 0x18c4 155*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_PERIC0_IP 0x18c8 156*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_PERIC1_BUS 0x18cc 157*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_PERIC1_IP 0x18d0 158*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_PERIS_BUS 0x18d4 159*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_SSP_BUS 0x18d8 160*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_TNR_BUS 0x18dc 161*bdd03ebfSIgor Belwon #define CLK_CON_DIV_CLKCMU_VRA_BUS 0x18e0 162*bdd03ebfSIgor Belwon #define CLK_CON_DIV_DIV_CLKCMU_DPU 0x18e8 163*bdd03ebfSIgor Belwon #define CLK_CON_DIV_DIV_CLKCMU_DPU_ALT 0x18ec 164*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED0_DIV2 0x18f4 165*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED0_DIV3 0x18f8 166*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED0_DIV4 0x18fc 167*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED1_DIV2 0x1900 168*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED1_DIV3 0x1904 169*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED1_DIV4 0x1908 170*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED2_DIV2 0x190c 171*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED4_DIV2 0x1910 172*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED4_DIV3 0x1914 173*bdd03ebfSIgor Belwon #define CLK_CON_DIV_PLL_SHARED4_DIV4 0x1918 174*bdd03ebfSIgor Belwon #define CLK_CON_GAT_CLKCMU_G3D_BUS 0x2000 175*bdd03ebfSIgor Belwon #define CLK_CON_GAT_CLKCMU_MIF_SWITCH 0x2004 176*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_APM_BUS 0x2008 177*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_AUD_CPU 0x200c 178*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS 0x2010 179*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS 0x2014 180*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS 0x2018 181*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0 0x201c 182*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1 0x2020 183*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2 0x2024 184*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3 0x2028 185*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4 0x202c 186*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5 0x2030 187*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CORE_BUS 0x2034 188*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS 0x2038 189*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH 0x203c 190*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH 0x2040 191*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP 0x2044 192*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH 0x2048 193*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS 0x204c 194*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU 0x2050 195*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DNC_BUS 0x2054 196*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM 0x2058 197*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DNS_BUS 0x205c 198*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DPU 0x2060 199*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DPU_BUS 0x2064 200*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_DSP_BUS 0x2068 201*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_G2D_G2D 0x206c 202*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL 0x2070 203*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH 0x2074 204*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HPM 0x2078 205*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS 0x207c 206*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC 0x2080 207*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD 0x2084 208*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG 0x2088 209*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS 0x208c 210*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD 0x2090 211*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE 0x2094 212*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD 0x2098 213*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD 0x209c 214*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS 0x20a0 215*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE 0x20a4 216*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_IPP_BUS 0x20a8 217*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_ITP_BUS 0x20ac 218*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS 0x20b0 219*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC 0x20b4 220*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0 0x20bc 221*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD 0x20c0 222*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP 0x20c4 223*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_NPU_BUS 0x20c8 224*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS 0x20cc 225*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP 0x20d0 226*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS 0x20d4 227*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP 0x20d8 228*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS 0x20dc 229*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_SSP_BUS 0x20e0 230*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_TNR_BUS 0x20e4 231*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GATE_CLKCMU_VRA_BUS 0x20e8 232*bdd03ebfSIgor Belwon 233*bdd03ebfSIgor Belwon static const unsigned long top_clk_regs[] __initconst = { 234*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_G3D, 235*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_MMC, 236*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED0, 237*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED1, 238*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED2, 239*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED3, 240*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED4, 241*bdd03ebfSIgor Belwon PLL_CON3_PLL_G3D, 242*bdd03ebfSIgor Belwon PLL_CON3_PLL_MMC, 243*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED0, 244*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED1, 245*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED2, 246*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED3, 247*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED4, 248*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 249*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 250*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS, 251*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS, 252*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS, 253*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0, 254*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1, 255*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2, 256*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3, 257*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4, 258*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5, 259*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 260*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 261*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS, 262*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 263*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 264*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP, 265*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH, 266*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS, 267*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU, 268*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DNC_BUS, 269*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM, 270*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DNS_BUS, 271*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DPU, 272*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DPU_ALT, 273*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 274*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 275*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 276*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HPM, 277*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS, 278*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC, 279*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD, 280*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 281*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 282*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD, 283*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE, 284*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD, 285*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD, 286*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 287*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE, 288*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_IPP_BUS, 289*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_ITP_BUS, 290*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS, 291*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC, 292*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU, 293*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0, 294*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD, 295*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 296*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 297*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 298*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 299*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 300*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 301*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 302*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 303*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_SSP_BUS, 304*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 305*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_VRA_BUS, 306*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_APM_BUS, 307*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_AUD_CPU, 308*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS0_BUS, 309*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS1_BUS, 310*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS1_SSS, 311*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK0, 312*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK1, 313*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK2, 314*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK3, 315*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK4, 316*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK5, 317*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CMU_BOOST, 318*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CORE_BUS, 319*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS, 320*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 321*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 322*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CPUCL2_BUSP, 323*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH, 324*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CSIS_BUS, 325*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU, 326*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNC_BUS, 327*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNC_BUSM, 328*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNS_BUS, 329*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DSP_BUS, 330*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_G2D_G2D, 331*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_G2D_MSCL, 332*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_G3D_SWITCH, 333*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HPM, 334*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_BUS, 335*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 336*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 337*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG, 338*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_BUS, 339*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD, 340*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_PCIE, 341*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD, 342*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD, 343*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI2_BUS, 344*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI2_PCIE, 345*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_IPP_BUS, 346*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_ITP_BUS, 347*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MCSC_BUS, 348*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MCSC_GDC, 349*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU, 350*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MFC0_MFC0, 351*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MFC0_WFD, 352*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MIF_BUSP, 353*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_NPU_BUS, 354*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_OTP, 355*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC0_BUS, 356*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC0_IP, 357*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC1_BUS, 358*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC1_IP, 359*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIS_BUS, 360*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_SSP_BUS, 361*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_TNR_BUS, 362*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_VRA_BUS, 363*bdd03ebfSIgor Belwon CLK_CON_DIV_DIV_CLKCMU_DPU, 364*bdd03ebfSIgor Belwon CLK_CON_DIV_DIV_CLKCMU_DPU_ALT, 365*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV2, 366*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV3, 367*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV4, 368*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV2, 369*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV3, 370*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV4, 371*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED2_DIV2, 372*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV2, 373*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV3, 374*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV4, 375*bdd03ebfSIgor Belwon CLK_CON_GAT_CLKCMU_G3D_BUS, 376*bdd03ebfSIgor Belwon CLK_CON_GAT_CLKCMU_MIF_SWITCH, 377*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 378*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 379*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS, 380*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS, 381*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS, 382*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0, 383*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1, 384*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2, 385*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3, 386*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4, 387*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5, 388*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 389*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS, 390*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 391*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 392*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP, 393*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH, 394*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS, 395*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU, 396*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNC_BUS, 397*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM, 398*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNS_BUS, 399*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DPU, 400*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DPU_BUS, 401*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DSP_BUS, 402*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 403*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 404*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH, 405*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HPM, 406*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS, 407*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC, 408*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD, 409*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG, 410*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS, 411*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD, 412*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE, 413*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD, 414*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD, 415*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS, 416*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE, 417*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_IPP_BUS, 418*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_ITP_BUS, 419*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS, 420*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC, 421*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0, 422*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD, 423*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 424*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 425*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 426*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 427*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 428*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 429*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 430*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_SSP_BUS, 431*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_TNR_BUS, 432*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_VRA_BUS, 433*bdd03ebfSIgor Belwon }; 434*bdd03ebfSIgor Belwon 435*bdd03ebfSIgor Belwon static const struct samsung_pll_clock top_pll_clks[] __initconst = { 436*bdd03ebfSIgor Belwon PLL(pll_0717x, CLK_FOUT_SHARED0_PLL, "fout_shared0_pll", "oscclk", 437*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED0, PLL_CON3_PLL_SHARED0, NULL), 438*bdd03ebfSIgor Belwon PLL(pll_0717x, CLK_FOUT_SHARED1_PLL, "fout_shared1_pll", "oscclk", 439*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED1, PLL_CON3_PLL_SHARED1, NULL), 440*bdd03ebfSIgor Belwon PLL(pll_0718x, CLK_FOUT_SHARED2_PLL, "fout_shared2_pll", "oscclk", 441*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED2, PLL_CON3_PLL_SHARED2, NULL), 442*bdd03ebfSIgor Belwon PLL(pll_0718x, CLK_FOUT_SHARED3_PLL, "fout_shared3_pll", "oscclk", 443*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED3, PLL_CON3_PLL_SHARED3, NULL), 444*bdd03ebfSIgor Belwon PLL(pll_0717x, CLK_FOUT_SHARED4_PLL, "fout_shared4_pll", "oscclk", 445*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_SHARED4, PLL_CON3_PLL_SHARED4, NULL), 446*bdd03ebfSIgor Belwon PLL(pll_0732x, CLK_FOUT_MMC_PLL, "fout_mmc_pll", "oscclk", 447*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_MMC, PLL_CON3_PLL_MMC, NULL), 448*bdd03ebfSIgor Belwon PLL(pll_0718x, CLK_FOUT_G3D_PLL, "fout_g3d_pll", "oscclk", 449*bdd03ebfSIgor Belwon PLL_LOCKTIME_PLL_G3D, PLL_CON3_PLL_G3D, NULL), 450*bdd03ebfSIgor Belwon }; 451*bdd03ebfSIgor Belwon 452*bdd03ebfSIgor Belwon /* Parent clock list for CMU_TOP muxes*/ 453*bdd03ebfSIgor Belwon PNAME(mout_pll_shared0_p) = { "oscclk", "fout_shared0_pll" }; 454*bdd03ebfSIgor Belwon PNAME(mout_pll_shared1_p) = { "oscclk", "fout_shared1_pll" }; 455*bdd03ebfSIgor Belwon PNAME(mout_pll_shared2_p) = { "oscclk", "fout_shared2_pll" }; 456*bdd03ebfSIgor Belwon PNAME(mout_pll_shared3_p) = { "oscclk", "fout_shared3_pll" }; 457*bdd03ebfSIgor Belwon PNAME(mout_pll_shared4_p) = { "oscclk", "fout_shared4_pll" }; 458*bdd03ebfSIgor Belwon PNAME(mout_pll_mmc_p) = { "oscclk", "fout_mmc_pll" }; 459*bdd03ebfSIgor Belwon PNAME(mout_pll_g3d_p) = { "oscclk", "fout_g3d_pll" }; 460*bdd03ebfSIgor Belwon PNAME(mout_cmu_apm_bus_p) = { "dout_cmu_shared0_div2", 461*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 462*bdd03ebfSIgor Belwon PNAME(mout_cmu_aud_cpu_p) = { "dout_cmu_shared0_div2", 463*bdd03ebfSIgor Belwon "fout_shared2_pll", 464*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 465*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 466*bdd03ebfSIgor Belwon PNAME(mout_cmu_bus0_bus_p) = { "dout_cmu_shared0_div4", 467*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 468*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 469*bdd03ebfSIgor Belwon "oscclk" }; 470*bdd03ebfSIgor Belwon PNAME(mout_cmu_bus1_bus_p) = { "dout_cmu_shared0_div4", 471*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 472*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 473*bdd03ebfSIgor Belwon "oscclk" }; 474*bdd03ebfSIgor Belwon PNAME(mout_cmu_bus1_sss_p) = { "dout_cmu_shared0_div4", 475*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 476*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 477*bdd03ebfSIgor Belwon "oscclk" }; 478*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk0_p) = { "oscclk", 479*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 480*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk1_p) = { "oscclk", 481*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 482*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk2_p) = { "oscclk", 483*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 484*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk3_p) = { "oscclk", 485*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 486*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk4_p) = { "oscclk", 487*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 488*bdd03ebfSIgor Belwon PNAME(mout_cmu_cis_clk5_p) = { "oscclk", 489*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 490*bdd03ebfSIgor Belwon PNAME(mout_cmu_cmu_boost_p) = { "dout_cmu_shared0_div4", 491*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 492*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 493*bdd03ebfSIgor Belwon "oscclk" }; 494*bdd03ebfSIgor Belwon PNAME(mout_cmu_core_bus_p) = { "dout_cmu_shared0_div2", 495*bdd03ebfSIgor Belwon "dout_cmu_shared1_div2", 496*bdd03ebfSIgor Belwon "fout_shared2_pll", 497*bdd03ebfSIgor Belwon "dout_cmu_shared0_div3", 498*bdd03ebfSIgor Belwon "dout_cmu_shared1_div3", 499*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 500*bdd03ebfSIgor Belwon "fout_shared3_pll", "oscclk" }; 501*bdd03ebfSIgor Belwon PNAME(mout_cmu_cpucl0_dbg_bus_p) = { "fout_shared2_pll", 502*bdd03ebfSIgor Belwon "dout_cmu_shared0_div3", 503*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 504*bdd03ebfSIgor Belwon "oscclk" }; 505*bdd03ebfSIgor Belwon PNAME(mout_cmu_cpucl0_switch_p) = { "fout_shared4_pll", 506*bdd03ebfSIgor Belwon "dout_cmu_shared0_div2", 507*bdd03ebfSIgor Belwon "fout_shared2_pll", 508*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 509*bdd03ebfSIgor Belwon PNAME(mout_cmu_cpucl1_switch_p) = { "fout_shared4_pll", 510*bdd03ebfSIgor Belwon "dout_cmu_shared0_div2", 511*bdd03ebfSIgor Belwon "fout_shared2_pll", 512*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 513*bdd03ebfSIgor Belwon PNAME(mout_cmu_cpucl2_busp_p) = { "dout_cmu_shared0_div4", 514*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 515*bdd03ebfSIgor Belwon PNAME(mout_cmu_cpucl2_switch_p) = { "fout_shared4_pll", 516*bdd03ebfSIgor Belwon "dout_cmu_shared0_div2", 517*bdd03ebfSIgor Belwon "fout_shared2_pll", 518*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 519*bdd03ebfSIgor Belwon PNAME(mout_cmu_csis_bus_p) = { "dout_cmu_shared0_div3", 520*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 521*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 522*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3" }; 523*bdd03ebfSIgor Belwon PNAME(mout_cmu_csis_ois_mcu_p) = { "dout_cmu_shared0_div4", 524*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 525*bdd03ebfSIgor Belwon PNAME(mout_cmu_dnc_bus_p) = { "dout_cmu_shared1_div2", 526*bdd03ebfSIgor Belwon "fout_shared2_pll", 527*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 528*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 529*bdd03ebfSIgor Belwon PNAME(mout_cmu_dnc_busm_p) = { "dout_cmu_shared0_div4", 530*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 531*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 532*bdd03ebfSIgor Belwon "dout_cmu_shared4_div4" }; 533*bdd03ebfSIgor Belwon PNAME(mout_cmu_dns_bus_p) = { "dout_cmu_shared0_div3", 534*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 535*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 536*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 537*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 538*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 539*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 540*bdd03ebfSIgor Belwon PNAME(mout_cmu_dpu_p) = { "dout_cmu_shared0_div3", 541*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 542*bdd03ebfSIgor Belwon PNAME(mout_cmu_dpu_alt_p) = { "dout_cmu_shared4_div2", 543*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 544*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 545*bdd03ebfSIgor Belwon "oscclk" }; 546*bdd03ebfSIgor Belwon PNAME(mout_cmu_dsp_bus_p) = { "dout_cmu_shared0_div2", 547*bdd03ebfSIgor Belwon "dout_cmu_shared1_div2", 548*bdd03ebfSIgor Belwon "fout_shared2_pll", 549*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 550*bdd03ebfSIgor Belwon "fout_shared3_pll", "oscclk", 551*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 552*bdd03ebfSIgor Belwon PNAME(mout_cmu_g2d_g2d_p) = { "dout_cmu_shared0_div3", 553*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 554*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 555*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 556*bdd03ebfSIgor Belwon PNAME(mout_cmu_g2d_mscl_p) = { "dout_cmu_shared0_div4", 557*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 558*bdd03ebfSIgor Belwon "dout_cmu_shared4_div4", 559*bdd03ebfSIgor Belwon "oscclk" }; 560*bdd03ebfSIgor Belwon PNAME(mout_cmu_hpm_p) = { "oscclk", 561*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 562*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 563*bdd03ebfSIgor Belwon "oscclk" }; 564*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi0_bus_p) = { "dout_cmu_shared0_div4", 565*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 566*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi0_dpgtc_p) = { "oscclk", "dout_cmu_shared0_div4", 567*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 568*bdd03ebfSIgor Belwon "oscclk" }; 569*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi0_usb31drd_p) = { "oscclk", "dout_cmu_shared0_div4", 570*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 571*bdd03ebfSIgor Belwon "oscclk" }; 572*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi0_usbdp_debug_p) = { "oscclk", "fout_shared2_pll" }; 573*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi1_bus_p) = { "dout_cmu_shared0_div3", 574*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 575*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 576*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 577*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 578*bdd03ebfSIgor Belwon "fout_mmc_pll", "oscclk", "oscclk" }; 579*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi1_mmc_card_p) = { "oscclk", "fout_shared2_pll", 580*bdd03ebfSIgor Belwon "fout_mmc_pll", 581*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4" }; 582*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi1_pcie_p) = { "oscclk", "fout_shared2_pll" }; 583*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi1_ufs_card_p) = { "oscclk", "dout_cmu_shared0_div4", 584*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 585*bdd03ebfSIgor Belwon "oscclk" }; 586*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi1_ufs_embd_p) = { "oscclk", "dout_cmu_shared0_div4", 587*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 588*bdd03ebfSIgor Belwon "oscclk" }; 589*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi2_bus_p) = { "dout_cmu_shared0_div3", 590*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 591*bdd03ebfSIgor Belwon PNAME(mout_cmu_hsi2_pcie_p) = { "oscclk", "fout_shared2_pll" }; 592*bdd03ebfSIgor Belwon PNAME(mout_cmu_ipp_bus_p) = { "dout_cmu_shared0_div3", 593*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 594*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 595*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 596*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 597*bdd03ebfSIgor Belwon "oscclk", "oscclk", "oscclk" }; 598*bdd03ebfSIgor Belwon PNAME(mout_cmu_itp_bus_p) = { "dout_cmu_shared0_div3", 599*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 600*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 601*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 602*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 603*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 604*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 605*bdd03ebfSIgor Belwon PNAME(mout_cmu_mcsc_bus_p) = { "dout_cmu_shared0_div3", 606*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 607*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 608*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 609*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 610*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 611*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 612*bdd03ebfSIgor Belwon PNAME(mout_cmu_mcsc_gdc_p) = { "dout_cmu_shared0_div3", 613*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 614*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 615*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 616*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 617*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 618*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 619*bdd03ebfSIgor Belwon PNAME(mout_cmu_cmu_boost_cpu_p) = { "dout_cmu_shared0_div4", 620*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 621*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 622*bdd03ebfSIgor Belwon "oscclk" }; 623*bdd03ebfSIgor Belwon PNAME(mout_cmu_mfc0_mfc0_p) = { "dout_cmu_shared4_div2", 624*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 625*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 626*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 627*bdd03ebfSIgor Belwon PNAME(mout_cmu_mfc0_wfd_p) = { "dout_cmu_shared4_div2", 628*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 629*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 630*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 631*bdd03ebfSIgor Belwon PNAME(mout_cmu_mif_busp_p) = { "dout_cmu_shared0_div4", 632*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 633*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 634*bdd03ebfSIgor Belwon "oscclk" }; 635*bdd03ebfSIgor Belwon PNAME(mout_cmu_mif_switch_p) = { "fout_shared0_pll", 636*bdd03ebfSIgor Belwon "fout_shared1_pll", 637*bdd03ebfSIgor Belwon "dout_cmu_shared0_div2", 638*bdd03ebfSIgor Belwon "dout_cmu_shared1_div2", 639*bdd03ebfSIgor Belwon "fout_shared2_pll", 640*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 641*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 642*bdd03ebfSIgor Belwon "oscclk" }; 643*bdd03ebfSIgor Belwon PNAME(mout_cmu_npu_bus_p) = { "dout_cmu_shared0_div2", 644*bdd03ebfSIgor Belwon "dout_cmu_shared1_div2", 645*bdd03ebfSIgor Belwon "fout_shared2_pll", 646*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 647*bdd03ebfSIgor Belwon "fout_shared3_pll", "oscclk", 648*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 649*bdd03ebfSIgor Belwon PNAME(mout_cmu_peric0_bus_p) = { "dout_cmu_shared0_div4", 650*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 651*bdd03ebfSIgor Belwon PNAME(mout_cmu_peric0_ip_p) = { "dout_cmu_shared0_div4", 652*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 653*bdd03ebfSIgor Belwon PNAME(mout_cmu_peric1_bus_p) = { "dout_cmu_shared0_div4", 654*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 655*bdd03ebfSIgor Belwon PNAME(mout_cmu_peric1_ip_p) = { "dout_cmu_shared0_div4", 656*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 657*bdd03ebfSIgor Belwon PNAME(mout_cmu_peris_bus_p) = { "dout_cmu_shared0_div4", 658*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 659*bdd03ebfSIgor Belwon PNAME(mout_cmu_ssp_bus_p) = { "dout_cmu_shared4_div2", 660*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 661*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 662*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2" }; 663*bdd03ebfSIgor Belwon PNAME(mout_cmu_tnr_bus_p) = { "dout_cmu_shared0_div3", 664*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 665*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 666*bdd03ebfSIgor Belwon "dout_cmu_shared1_div4", 667*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3", 668*bdd03ebfSIgor Belwon "dout_cmu_shared2_div2", 669*bdd03ebfSIgor Belwon "oscclk", "oscclk" }; 670*bdd03ebfSIgor Belwon PNAME(mout_cmu_vra_bus_p) = { "dout_cmu_shared0_div3", 671*bdd03ebfSIgor Belwon "dout_cmu_shared4_div2", 672*bdd03ebfSIgor Belwon "dout_cmu_shared0_div4", 673*bdd03ebfSIgor Belwon "dout_cmu_shared4_div3" }; 674*bdd03ebfSIgor Belwon 675*bdd03ebfSIgor Belwon /* 676*bdd03ebfSIgor Belwon * Register name to clock name mangling strategy used in this file 677*bdd03ebfSIgor Belwon * 678*bdd03ebfSIgor Belwon * Replace PLL_CON{0,3}_PLL with CLK_MOUT_PLL and mout_pll 679*bdd03ebfSIgor Belwon * Replace CLK_CON_MUX_MUX_CLKCMU with CLK_MOUT_CMU and mout_cmu 680*bdd03ebfSIgor Belwon * Replace CLK_CON_DIV_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 681*bdd03ebfSIgor Belwon * Replace CLK_CON_DIV_DIV_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 682*bdd03ebfSIgor Belwon * Replace CLK_CON_DIV_PLL_CLKCMU with CLK_DOUT_CMU_CMU and dout_cmu_cmu 683*bdd03ebfSIgor Belwon * Replace CLK_CON_GAT_CLKCMU with CLK_GOUT_CMU and gout_cmu 684*bdd03ebfSIgor Belwon * Replace CLK_CON_GAT_GATE_CLKCMU with CLK_GOUT_CMU and gout_cmu 685*bdd03ebfSIgor Belwon * 686*bdd03ebfSIgor Belwon * For gates remove _UID _BLK _IPCLKPORT, _I and _RSTNSYNC 687*bdd03ebfSIgor Belwon */ 688*bdd03ebfSIgor Belwon 689*bdd03ebfSIgor Belwon static const struct samsung_mux_clock top_mux_clks[] __initconst = { 690*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_SHARED0, "mout_pll_shared0", mout_pll_shared0_p, 691*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED0, 4, 1), 692*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_SHARED1, "mout_pll_shared1", mout_pll_shared1_p, 693*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED1, 4, 1), 694*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_SHARED2, "mout_pll_shared2", mout_pll_shared2_p, 695*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED2, 4, 1), 696*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_SHARED3, "mout_pll_shared3", mout_pll_shared3_p, 697*bdd03ebfSIgor Belwon PLL_CON3_PLL_SHARED3, 4, 1), 698*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_SHARED4, "mout_pll_shared4", mout_pll_shared4_p, 699*bdd03ebfSIgor Belwon PLL_CON0_PLL_SHARED4, 4, 1), 700*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_MMC, "mout_pll_mmc", mout_pll_mmc_p, 701*bdd03ebfSIgor Belwon PLL_CON0_PLL_MMC, 4, 1), 702*bdd03ebfSIgor Belwon MUX(CLK_MOUT_PLL_G3D, "mout_pll_g3d", mout_pll_g3d_p, 703*bdd03ebfSIgor Belwon PLL_CON0_PLL_G3D, 4, 1), 704*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_APM_BUS, "mout_cmu_apm_bus", 705*bdd03ebfSIgor Belwon mout_cmu_apm_bus_p, CLK_CON_MUX_MUX_CLKCMU_APM_BUS, 0, 1), 706*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_AUD_CPU, "mout_cmu_aud_cpu", 707*bdd03ebfSIgor Belwon mout_cmu_aud_cpu_p, CLK_CON_MUX_MUX_CLKCMU_AUD_CPU, 0, 2), 708*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_BUS0_BUS, "mout_cmu_bus0_bus", 709*bdd03ebfSIgor Belwon mout_cmu_bus0_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUS0_BUS, 0, 2), 710*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_BUS1_BUS, "mout_cmu_bus1_bus", 711*bdd03ebfSIgor Belwon mout_cmu_bus1_bus_p, CLK_CON_MUX_MUX_CLKCMU_BUS1_BUS, 0, 2), 712*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_BUS1_SSS, "mout_cmu_bus1_sss", 713*bdd03ebfSIgor Belwon mout_cmu_bus1_sss_p, CLK_CON_MUX_MUX_CLKCMU_BUS1_SSS, 0, 2), 714*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK0, "mout_cmu_cis_clk0", 715*bdd03ebfSIgor Belwon mout_cmu_cis_clk0_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK0, 0, 1), 716*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK1, "mout_cmu_cis_clk1", 717*bdd03ebfSIgor Belwon mout_cmu_cis_clk1_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK1, 0, 1), 718*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK2, "mout_cmu_cis_clk2", 719*bdd03ebfSIgor Belwon mout_cmu_cis_clk2_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK2, 0, 1), 720*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK3, "mout_cmu_cis_clk3", 721*bdd03ebfSIgor Belwon mout_cmu_cis_clk3_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK3, 0, 1), 722*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK4, "mout_cmu_cis_clk4", 723*bdd03ebfSIgor Belwon mout_cmu_cis_clk4_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK4, 0, 1), 724*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CIS_CLK5, "mout_cmu_cis_clk5", 725*bdd03ebfSIgor Belwon mout_cmu_cis_clk5_p, CLK_CON_MUX_MUX_CLKCMU_CIS_CLK5, 0, 1), 726*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CMU_BOOST, "mout_cmu_cmu_boost", 727*bdd03ebfSIgor Belwon mout_cmu_cmu_boost_p, CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST, 0, 2), 728*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CORE_BUS, "mout_cmu_core_bus", 729*bdd03ebfSIgor Belwon mout_cmu_core_bus_p, CLK_CON_MUX_MUX_CLKCMU_CORE_BUS, 0, 3), 730*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CPUCL0_DBG_BUS, "mout_cmu_cpucl0_dbg_bus", 731*bdd03ebfSIgor Belwon mout_cmu_cpucl0_dbg_bus_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_DBG_BUS, 732*bdd03ebfSIgor Belwon 0, 2), 733*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CPUCL0_SWITCH, "mout_cmu_cpucl0_switch", 734*bdd03ebfSIgor Belwon mout_cmu_cpucl0_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL0_SWITCH, 735*bdd03ebfSIgor Belwon 0, 2), 736*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CPUCL1_SWITCH, "mout_cmu_cpucl1_switch", 737*bdd03ebfSIgor Belwon mout_cmu_cpucl1_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL1_SWITCH, 738*bdd03ebfSIgor Belwon 0, 2), 739*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CPUCL2_BUSP, "mout_cmu_cpucl2_busp", 740*bdd03ebfSIgor Belwon mout_cmu_cpucl2_busp_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL2_BUSP, 741*bdd03ebfSIgor Belwon 0, 1), 742*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CPUCL2_SWITCH, "mout_cmu_cpucl2_switch", 743*bdd03ebfSIgor Belwon mout_cmu_cpucl2_switch_p, CLK_CON_MUX_MUX_CLKCMU_CPUCL2_SWITCH, 744*bdd03ebfSIgor Belwon 0, 2), 745*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CSIS_BUS, "mout_cmu_csis_bus", 746*bdd03ebfSIgor Belwon mout_cmu_csis_bus_p, CLK_CON_MUX_MUX_CLKCMU_CSIS_BUS, 0, 2), 747*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CSIS_OIS_MCU, "mout_cmu_csis_ois_mcu", 748*bdd03ebfSIgor Belwon mout_cmu_csis_ois_mcu_p, CLK_CON_MUX_MUX_CLKCMU_CSIS_OIS_MCU, 749*bdd03ebfSIgor Belwon 0, 1), 750*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DNC_BUS, "mout_cmu_dnc_bus", 751*bdd03ebfSIgor Belwon mout_cmu_dnc_bus_p, CLK_CON_MUX_MUX_CLKCMU_DNC_BUS, 0, 2), 752*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DNC_BUSM, "mout_cmu_dnc_busm", 753*bdd03ebfSIgor Belwon mout_cmu_dnc_busm_p, CLK_CON_MUX_MUX_CLKCMU_DNC_BUSM, 0, 2), 754*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DNS_BUS, "mout_cmu_dns_bus", 755*bdd03ebfSIgor Belwon mout_cmu_dns_bus_p, CLK_CON_MUX_MUX_CLKCMU_DNS_BUS, 0, 3), 756*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DPU, "mout_cmu_dpu", 757*bdd03ebfSIgor Belwon mout_cmu_dpu_p, CLK_CON_MUX_MUX_CLKCMU_DPU, 0, 1), 758*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DPU_ALT, "mout_cmu_dpu_alt", 759*bdd03ebfSIgor Belwon mout_cmu_dpu_alt_p, CLK_CON_MUX_MUX_CLKCMU_DPU_ALT, 0, 2), 760*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_DSP_BUS, "mout_cmu_dsp_bus", 761*bdd03ebfSIgor Belwon mout_cmu_dsp_bus_p, CLK_CON_MUX_MUX_CLKCMU_DSP_BUS, 0, 2), 762*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_G2D_G2D, "mout_cmu_g2d_g2d", 763*bdd03ebfSIgor Belwon mout_cmu_g2d_g2d_p, CLK_CON_MUX_MUX_CLKCMU_G2D_G2D, 0, 2), 764*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_G2D_MSCL, "mout_cmu_g2d_mscl", 765*bdd03ebfSIgor Belwon mout_cmu_g2d_mscl_p, CLK_CON_MUX_MUX_CLKCMU_G2D_MSCL, 0, 1), 766*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HPM, "mout_cmu_hpm", 767*bdd03ebfSIgor Belwon mout_cmu_hpm_p, CLK_CON_MUX_MUX_CLKCMU_HPM, 0, 2), 768*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI0_BUS, "mout_cmu_hsi0_bus", 769*bdd03ebfSIgor Belwon mout_cmu_hsi0_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_BUS, 0, 1), 770*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI0_DPGTC, "mout_cmu_hsi0_dpgtc", 771*bdd03ebfSIgor Belwon mout_cmu_hsi0_dpgtc_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_DPGTC, 0, 2), 772*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI0_USB31DRD, "mout_cmu_hsi0_usb31drd", 773*bdd03ebfSIgor Belwon mout_cmu_hsi0_usb31drd_p, CLK_CON_MUX_MUX_CLKCMU_HSI0_USB31DRD, 774*bdd03ebfSIgor Belwon 0, 2), 775*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI0_USBDP_DEBUG, "mout_cmu_hsi0_usbdp_debug", 776*bdd03ebfSIgor Belwon mout_cmu_hsi0_usbdp_debug_p, 777*bdd03ebfSIgor Belwon CLK_CON_MUX_MUX_CLKCMU_HSI0_USBDP_DEBUG, 0, 2), 778*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI1_BUS, "mout_cmu_hsi1_bus", 779*bdd03ebfSIgor Belwon mout_cmu_hsi1_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_BUS, 0, 3), 780*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI1_MMC_CARD, "mout_cmu_hsi1_mmc_card", 781*bdd03ebfSIgor Belwon mout_cmu_hsi1_mmc_card_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_MMC_CARD, 782*bdd03ebfSIgor Belwon 0, 2), 783*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI1_PCIE, "mout_cmu_hsi1_pcie", 784*bdd03ebfSIgor Belwon mout_cmu_hsi1_pcie_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_PCIE, 0, 1), 785*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI1_UFS_CARD, "mout_cmu_hsi1_ufs_card", 786*bdd03ebfSIgor Belwon mout_cmu_hsi1_ufs_card_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_CARD, 787*bdd03ebfSIgor Belwon 0, 2), 788*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI1_UFS_EMBD, "mout_cmu_hsi1_ufs_embd", 789*bdd03ebfSIgor Belwon mout_cmu_hsi1_ufs_embd_p, CLK_CON_MUX_MUX_CLKCMU_HSI1_UFS_EMBD, 790*bdd03ebfSIgor Belwon 0, 1), 791*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI2_BUS, "mout_cmu_hsi2_bus", 792*bdd03ebfSIgor Belwon mout_cmu_hsi2_bus_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_BUS, 0, 1), 793*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_HSI2_PCIE, "mout_cmu_hsi2_pcie", 794*bdd03ebfSIgor Belwon mout_cmu_hsi2_pcie_p, CLK_CON_MUX_MUX_CLKCMU_HSI2_PCIE, 0, 1), 795*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_IPP_BUS, "mout_cmu_ipp_bus", 796*bdd03ebfSIgor Belwon mout_cmu_ipp_bus_p, CLK_CON_MUX_MUX_CLKCMU_IPP_BUS, 0, 3), 797*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_ITP_BUS, "mout_cmu_itp_bus", 798*bdd03ebfSIgor Belwon mout_cmu_itp_bus_p, CLK_CON_MUX_MUX_CLKCMU_ITP_BUS, 0, 3), 799*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MCSC_BUS, "mout_cmu_mcsc_bus", 800*bdd03ebfSIgor Belwon mout_cmu_mcsc_bus_p, CLK_CON_MUX_MUX_CLKCMU_MCSC_BUS, 0, 3), 801*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MCSC_GDC, "mout_cmu_mcsc_gdc", 802*bdd03ebfSIgor Belwon mout_cmu_mcsc_gdc_p, CLK_CON_MUX_MUX_CLKCMU_MCSC_GDC, 0, 3), 803*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_CMU_BOOST_CPU, "mout_cmu_cmu_boost_cpu", 804*bdd03ebfSIgor Belwon mout_cmu_cmu_boost_cpu_p, CLK_CON_MUX_MUX_CLKCMU_CMU_BOOST_CPU, 805*bdd03ebfSIgor Belwon 0, 2), 806*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MFC0_MFC0, "mout_cmu_mfc0_mfc0", 807*bdd03ebfSIgor Belwon mout_cmu_mfc0_mfc0_p, CLK_CON_MUX_MUX_CLKCMU_MFC0_MFC0, 0, 2), 808*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MFC0_WFD, "mout_cmu_mfc0_wfd", 809*bdd03ebfSIgor Belwon mout_cmu_mfc0_wfd_p, CLK_CON_MUX_MUX_CLKCMU_MFC0_WFD, 0, 2), 810*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MIF_BUSP, "mout_cmu_mif_busp", 811*bdd03ebfSIgor Belwon mout_cmu_mif_busp_p, CLK_CON_MUX_MUX_CLKCMU_MIF_BUSP, 0, 2), 812*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_MIF_SWITCH, "mout_cmu_mif_switch", 813*bdd03ebfSIgor Belwon mout_cmu_mif_switch_p, CLK_CON_MUX_MUX_CLKCMU_MIF_SWITCH, 0, 3), 814*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_NPU_BUS, "mout_cmu_npu_bus", 815*bdd03ebfSIgor Belwon mout_cmu_npu_bus_p, CLK_CON_MUX_MUX_CLKCMU_NPU_BUS, 0, 3), 816*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_PERIC0_BUS, "mout_cmu_peric0_bus", 817*bdd03ebfSIgor Belwon mout_cmu_peric0_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_BUS, 0, 1), 818*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_PERIC0_IP, "mout_cmu_peric0_ip", 819*bdd03ebfSIgor Belwon mout_cmu_peric0_ip_p, CLK_CON_MUX_MUX_CLKCMU_PERIC0_IP, 0, 1), 820*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_PERIC1_BUS, "mout_cmu_peric1_bus", 821*bdd03ebfSIgor Belwon mout_cmu_peric1_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_BUS, 0, 1), 822*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_PERIC1_IP, "mout_cmu_peric1_ip", 823*bdd03ebfSIgor Belwon mout_cmu_peric1_ip_p, CLK_CON_MUX_MUX_CLKCMU_PERIC1_IP, 0, 1), 824*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_PERIS_BUS, "mout_cmu_peris_bus", 825*bdd03ebfSIgor Belwon mout_cmu_peris_bus_p, CLK_CON_MUX_MUX_CLKCMU_PERIS_BUS, 0, 1), 826*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_SSP_BUS, "mout_cmu_ssp_bus", 827*bdd03ebfSIgor Belwon mout_cmu_ssp_bus_p, CLK_CON_MUX_MUX_CLKCMU_SSP_BUS, 0, 2), 828*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_TNR_BUS, "mout_cmu_tnr_bus", 829*bdd03ebfSIgor Belwon mout_cmu_tnr_bus_p, CLK_CON_MUX_MUX_CLKCMU_TNR_BUS, 0, 3), 830*bdd03ebfSIgor Belwon MUX(CLK_MOUT_CMU_VRA_BUS, "mout_cmu_vra_bus", 831*bdd03ebfSIgor Belwon mout_cmu_vra_bus_p, CLK_CON_MUX_MUX_CLKCMU_VRA_BUS, 0, 2), 832*bdd03ebfSIgor Belwon }; 833*bdd03ebfSIgor Belwon 834*bdd03ebfSIgor Belwon static const struct samsung_div_clock top_div_clks[] __initconst = { 835*bdd03ebfSIgor Belwon /* SHARED0 region*/ 836*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED0_DIV2, "dout_cmu_shared0_div2", "mout_pll_shared0", 837*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1), 838*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED0_DIV3, "dout_cmu_shared0_div3", "mout_pll_shared0", 839*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2), 840*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED0_DIV4, "dout_cmu_shared0_div4", "dout_cmu_shared0_div2", 841*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1), 842*bdd03ebfSIgor Belwon 843*bdd03ebfSIgor Belwon /* SHARED1 region*/ 844*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED1_DIV2, "dout_cmu_shared1_div2", "mout_pll_shared1", 845*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1), 846*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED1_DIV3, "dout_cmu_shared1_div3", "mout_pll_shared1", 847*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2), 848*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED1_DIV4, "dout_cmu_shared1_div4", "dout_cmu_shared1_div2", 849*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1), 850*bdd03ebfSIgor Belwon 851*bdd03ebfSIgor Belwon /* SHARED2 region */ 852*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED2_DIV2, "dout_cmu_shared2_div2", "mout_pll_shared2", 853*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED2_DIV2, 0, 1), 854*bdd03ebfSIgor Belwon 855*bdd03ebfSIgor Belwon /* SHARED4 region*/ 856*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED4_DIV2, "dout_cmu_shared4_div2", "mout_pll_shared4", 857*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV2, 0, 1), 858*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED4_DIV3, "dout_cmu_shared4_div3", "mout_pll_shared4", 859*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV3, 0, 2), 860*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SHARED4_DIV4, "dout_cmu_shared4_div4", "mout_pll_shared4", 861*bdd03ebfSIgor Belwon CLK_CON_DIV_PLL_SHARED4_DIV4, 0, 1), 862*bdd03ebfSIgor Belwon 863*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_APM_BUS, "dout_cmu_apm_bus", "gout_cmu_apm_bus", 864*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_APM_BUS, 0, 3), 865*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_AUD_CPU, "dout_cmu_aud_cpu", "gout_cmu_aud_cpu", 866*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_AUD_CPU, 0, 3), 867*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_BUS0_BUS, "dout_cmu_bus0_bus", "gout_cmu_bus0_bus", 868*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS0_BUS, 0, 4), 869*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_BUS1_BUS, "dout_cmu_bus1_bus", "gout_cmu_bus1_bus", 870*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS1_BUS, 0, 4), 871*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_BUS1_SSS, "dout_cmu_bus1_sss", "gout_cmu_bus1_sss", 872*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_BUS1_SSS, 0, 4), 873*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK0, "dout_cmu_cis_clk0", "gout_cmu_cis_clk0", 874*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK0, 0, 5), 875*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK1, "dout_cmu_cis_clk1", "gout_cmu_cis_clk1", 876*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK1, 0, 5), 877*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK2, "dout_cmu_cis_clk2", "gout_cmu_cis_clk2", 878*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK2, 0, 5), 879*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK3, "dout_cmu_cis_clk3", "gout_cmu_cis_clk3", 880*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK3, 0, 5), 881*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK4, "dout_cmu_cis_clk4", "gout_cmu_cis_clk4", 882*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK4, 0, 5), 883*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CIS_CLK5, "dout_cmu_cis_clk5", "gout_cmu_cis_clk5", 884*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CIS_CLK5, 0, 5), 885*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CMU_BOOST, "dout_cmu_cmu_boost", "mout_cmu_cmu_boost", 886*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CMU_BOOST, 0, 2), 887*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CORE_BUS, "dout_cmu_core_bus", "gout_cmu_core_bus", 888*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CORE_BUS, 0, 4), 889*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CPUCL0_DBG_BUS, "dout_cmu_cpucl0_debug", 890*bdd03ebfSIgor Belwon "gout_cmu_cpucl0_dbg_bus", CLK_CON_DIV_CLKCMU_CPUCL0_DBG_BUS, 891*bdd03ebfSIgor Belwon 0, 3), 892*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CPUCL0_SWITCH, "dout_cmu_cpucl0_switch", 893*bdd03ebfSIgor Belwon "gout_cmu_cpucl0_switch", CLK_CON_DIV_CLKCMU_CPUCL0_SWITCH, 0, 3), 894*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CPUCL1_SWITCH, "dout_cmu_cpucl1_switch", 895*bdd03ebfSIgor Belwon "gout_cmu_cpucl1_switch", CLK_CON_DIV_CLKCMU_CPUCL1_SWITCH, 0, 3), 896*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CPUCL2_BUSP, "dout_cmu_cpucl2_busp", 897*bdd03ebfSIgor Belwon "gout_cmu_cpucl2_busp", CLK_CON_DIV_CLKCMU_CPUCL2_BUSP, 0, 4), 898*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CPUCL2_SWITCH, "dout_cmu_cpucl2_switch", 899*bdd03ebfSIgor Belwon "gout_cmu_cpucl2_switch", CLK_CON_DIV_CLKCMU_CPUCL2_SWITCH, 0, 3), 900*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CSIS_BUS, "dout_cmu_csis_bus", "gout_cmu_csis_bus", 901*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_CSIS_BUS, 0, 4), 902*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CSIS_OIS_MCU, "dout_cmu_csis_ois_mcu", 903*bdd03ebfSIgor Belwon "gout_cmu_csis_ois_mcu", CLK_CON_DIV_CLKCMU_CSIS_OIS_MCU, 0, 4), 904*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_DNC_BUS, "dout_cmu_dnc_bus", "gout_cmu_dnc_bus", 905*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNC_BUS, 0, 4), 906*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_DNC_BUSM, "dout_cmu_dnc_busm", "gout_cmu_dnc_busm", 907*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNC_BUSM, 0, 4), 908*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_DNS_BUS, "dout_cmu_dns_bus", "gout_cmu_dns_bus", 909*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DNS_BUS, 0, 4), 910*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_DSP_BUS, "dout_cmu_dsp_bus", "gout_cmu_dsp_bus", 911*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_DSP_BUS, 0, 4), 912*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_G2D_G2D, "dout_cmu_g2d_g2d", "gout_cmu_g2d_g2d", 913*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_G2D_G2D, 0, 4), 914*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_G2D_MSCL, "dout_cmu_g2d_mscl", "gout_cmu_g2d_mscl", 915*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_G2D_MSCL, 0, 4), 916*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_G3D_SWITCH, "dout_cmu_g3d_switch", 917*bdd03ebfSIgor Belwon "gout_cmu_g3d_switch", CLK_CON_DIV_CLKCMU_G3D_SWITCH, 0, 3), 918*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HPM, "dout_cmu_hpm", "gout_cmu_hpm", 919*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HPM, 0, 2), 920*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI0_BUS, "dout_cmu_hsi0_bus", "gout_cmu_hsi0_bus", 921*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_BUS, 0, 4), 922*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI0_DPGTC, "dout_cmu_hsi0_dpgtc", "gout_cmu_hsi0_dpgtc", 923*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI0_DPGTC, 0, 3), 924*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI0_USB31DRD, "dout_cmu_hsi0_usb31drd", 925*bdd03ebfSIgor Belwon "gout_cmu_hsi0_usb31drd", CLK_CON_DIV_CLKCMU_HSI0_USB31DRD, 0, 4), 926*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI0_USBDP_DEBUG, "dout_cmu_hsi0_usbdp_debug", 927*bdd03ebfSIgor Belwon "gout_cmu_hsi0_usbdp_debug", CLK_CON_DIV_CLKCMU_HSI0_USBDP_DEBUG, 928*bdd03ebfSIgor Belwon 0, 4), 929*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI1_BUS, "dout_cmu_hsi1_bus", "gout_cmu_hsi1_bus", 930*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_BUS, 0, 3), 931*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI1_MMC_CARD, "dout_cmu_hsi1_mmc_card", 932*bdd03ebfSIgor Belwon "gout_cmu_hsi1_mmc_card", CLK_CON_DIV_CLKCMU_HSI1_MMC_CARD, 933*bdd03ebfSIgor Belwon 0, 9), 934*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI1_PCIE, "dout_cmu_hsi1_pcie", "gout_cmu_hsi1_pcie", 935*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI1_PCIE, 0, 7), 936*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI1_UFS_CARD, "dout_cmu_hsi1_ufs_card", 937*bdd03ebfSIgor Belwon "gout_cmu_hsi1_ufs_card", CLK_CON_DIV_CLKCMU_HSI1_UFS_CARD, 938*bdd03ebfSIgor Belwon 0, 3), 939*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI1_UFS_EMBD, "dout_cmu_hsi1_ufs_embd", 940*bdd03ebfSIgor Belwon "gout_cmu_hsi1_ufs_embd", CLK_CON_DIV_CLKCMU_HSI1_UFS_EMBD, 941*bdd03ebfSIgor Belwon 0, 3), 942*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI2_BUS, "dout_cmu_hsi2_bus", "gout_cmu_hsi2_bus", 943*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI2_BUS, 0, 4), 944*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_HSI2_PCIE, "dout_cmu_hsi2_pcie", "gout_cmu_hsi2_pcie", 945*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_HSI2_PCIE, 0, 7), 946*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_IPP_BUS, "dout_cmu_ipp_bus", "gout_cmu_ipp_bus", 947*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_IPP_BUS, 0, 4), 948*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_ITP_BUS, "dout_cmu_itp_bus", "gout_cmu_itp_bus", 949*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_ITP_BUS, 0, 4), 950*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_MCSC_BUS, "dout_cmu_mcsc_bus", "gout_cmu_mcsc_bus", 951*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MCSC_BUS, 0, 4), 952*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_MCSC_GDC, "dout_cmu_mcsc_gdc", "gout_cmu_mcsc_gdc", 953*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MCSC_GDC, 0, 4), 954*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_CMU_BOOST_CPU, "dout_cmu_cmu_boost_cpu", 955*bdd03ebfSIgor Belwon "mout_cmu_cmu_boost_cpu", CLK_CON_DIV_CLKCMU_CMU_BOOST_CPU, 956*bdd03ebfSIgor Belwon 0, 2), 957*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_MFC0_MFC0, "dout_cmu_mfc0_mfc0", "gout_cmu_mfc0_mfc0", 958*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MFC0_MFC0, 0, 4), 959*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_MFC0_WFD, "dout_cmu_mfc0_wfd", "gout_cmu_mfc0_wfd", 960*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MFC0_WFD, 0, 4), 961*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_MIF_BUSP, "dout_cmu_mif_busp", "gout_cmu_mif_busp", 962*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_MIF_BUSP, 0, 4), 963*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_NPU_BUS, "dout_cmu_npu_bus", "gout_cmu_npu_bus", 964*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_NPU_BUS, 0, 4), 965*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_PERIC0_BUS, "dout_cmu_peric0_bus", "gout_cmu_peric0_bus", 966*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC0_BUS, 0, 4), 967*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_PERIC0_IP, "dout_cmu_peric0_ip", "gout_cmu_peric0_ip", 968*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC0_IP, 0, 4), 969*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_PERIC1_BUS, "dout_cmu_peric1_bus", "gout_cmu_peric1_bus", 970*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC1_BUS, 0, 4), 971*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_PERIC1_IP, "dout_cmu_peric1_ip", "gout_cmu_peric1_ip", 972*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIC1_IP, 0, 4), 973*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_PERIS_BUS, "dout_cmu_peris_bus", "gout_cmu_peris_bus", 974*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_PERIS_BUS, 0, 4), 975*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_SSP_BUS, "dout_cmu_ssp_bus", "gout_cmu_ssp_bus", 976*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_SSP_BUS, 0, 4), 977*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_TNR_BUS, "dout_cmu_tnr_bus", "gout_cmu_tnr_bus", 978*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_TNR_BUS, 0, 4), 979*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_VRA_BUS, "dout_cmu_vra_bus", "gout_cmu_vra_bus", 980*bdd03ebfSIgor Belwon CLK_CON_DIV_CLKCMU_VRA_BUS, 0, 4), 981*bdd03ebfSIgor Belwon DIV(CLK_DOUT_CMU_DPU, "dout_cmu_clkcmu_dpu", "gout_cmu_dpu", 982*bdd03ebfSIgor Belwon CLK_CON_DIV_DIV_CLKCMU_DPU, 0, 4), 983*bdd03ebfSIgor Belwon }; 984*bdd03ebfSIgor Belwon 985*bdd03ebfSIgor Belwon static const struct samsung_gate_clock top_gate_clks[] __initconst = { 986*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_APM_BUS, "gout_cmu_apm_bus", "mout_cmu_apm_bus", 987*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_APM_BUS, 21, CLK_IGNORE_UNUSED, 0), 988*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_AUD_CPU, "gout_cmu_aud_cpu", "mout_cmu_aud_cpu", 989*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_AUD_CPU, 21, 0, 0), 990*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_BUS0_BUS, "gout_cmu_bus0_bus", "mout_cmu_bus0_bus", 991*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS0_BUS, 21, CLK_IGNORE_UNUSED, 0), 992*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_BUS1_BUS, "gout_cmu_bus1_bus", "mout_cmu_bus1_bus", 993*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS1_BUS, 21, CLK_IGNORE_UNUSED, 0), 994*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_BUS1_SSS, "gout_cmu_bus1_sss", "mout_cmu_bus1_sss", 995*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_BUS1_SSS, 21, CLK_IGNORE_UNUSED, 0), 996*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK0, "gout_cmu_cis_clk0", "mout_cmu_cis_clk0", 997*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK0, 21, 0, 0), 998*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK1, "gout_cmu_cis_clk1", "mout_cmu_cis_clk1", 999*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK1, 21, 0, 0), 1000*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK2, "gout_cmu_cis_clk2", "mout_cmu_cis_clk2", 1001*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK2, 21, 0, 0), 1002*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK3, "gout_cmu_cis_clk3", "mout_cmu_cis_clk3", 1003*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK3, 21, 0, 0), 1004*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK4, "gout_cmu_cis_clk4", "mout_cmu_cis_clk4", 1005*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK4, 21, 0, 0), 1006*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CIS_CLK5, "gout_cmu_cis_clk5", "mout_cmu_cis_clk5", 1007*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CIS_CLK5, 21, 0, 0), 1008*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CORE_BUS, "gout_cmu_core_bus", "mout_cmu_core_bus", 1009*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CORE_BUS, 21, CLK_IGNORE_UNUSED, 0), 1010*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CPUCL0_DBG_BUS, "gout_cmu_cpucl0_dbg_bus", 1011*bdd03ebfSIgor Belwon "mout_cmu_cpucl0_dbg_bus", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_DBG_BUS, 1012*bdd03ebfSIgor Belwon 21, 0, 0), 1013*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CPUCL0_SWITCH, "gout_cmu_cpucl0_switch", 1014*bdd03ebfSIgor Belwon "mout_cmu_cpucl0_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL0_SWITCH, 1015*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1016*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CPUCL1_SWITCH, "gout_cmu_cpucl1_switch", 1017*bdd03ebfSIgor Belwon "mout_cmu_cpucl1_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL1_SWITCH, 1018*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1019*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CPUCL2_BUSP, "gout_cmu_cpucl2_busp", 1020*bdd03ebfSIgor Belwon "mout_cmu_cpucl2_busp", CLK_CON_GAT_GATE_CLKCMU_CPUCL2_BUSP, 1021*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1022*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CPUCL2_SWITCH, "gout_cmu_cpucl2_switch", 1023*bdd03ebfSIgor Belwon "mout_cmu_cpucl2_switch", CLK_CON_GAT_GATE_CLKCMU_CPUCL2_SWITCH, 1024*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1025*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CSIS_BUS, "gout_cmu_csis_bus", "mout_cmu_csis_bus", 1026*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_CSIS_BUS, 21, 0, 0), 1027*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_CSIS_OIS_MCU, "gout_cmu_csis_ois_mcu", 1028*bdd03ebfSIgor Belwon "mout_cmu_csis_ois_mcu", CLK_CON_GAT_GATE_CLKCMU_CSIS_OIS_MCU, 1029*bdd03ebfSIgor Belwon 21, 0, 0), 1030*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DNC_BUS, "gout_cmu_dnc_bus", "mout_cmu_dnc_bus", 1031*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNC_BUS, 21, 0, 0), 1032*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DNC_BUSM, "gout_cmu_dnc_busm", "mout_cmu_dnc_busm", 1033*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNC_BUSM, 21, 0, 0), 1034*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DNS_BUS, "gout_cmu_dns_bus", "mout_cmu_dns_bus", 1035*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DNS_BUS, 21, 0, 0), 1036*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DPU, "gout_cmu_dpu", "mout_cmu_dpu", 1037*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DPU, 21, 0, 0), 1038*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DPU_BUS, "gout_cmu_dpu_bus", "mout_cmu_dpu_alt", 1039*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DPU_BUS, 21, CLK_IGNORE_UNUSED, 0), 1040*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_DSP_BUS, "gout_cmu_dsp_bus", "mout_cmu_dsp_bus", 1041*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_DSP_BUS, 21, 0, 0), 1042*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_G2D_G2D, "gout_cmu_g2d_g2d", "mout_cmu_g2d_g2d", 1043*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_G2D_G2D, 21, 0, 0), 1044*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_G2D_MSCL, "gout_cmu_g2d_mscl", "mout_cmu_g2d_mscl", 1045*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_G2D_MSCL, 21, 0, 0), 1046*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_G3D_SWITCH, "gout_cmu_g3d_switch", 1047*bdd03ebfSIgor Belwon "fout_shared2_pll", CLK_CON_GAT_GATE_CLKCMU_G3D_SWITCH, 1048*bdd03ebfSIgor Belwon 21, 0, 0), 1049*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HPM, "gout_cmu_hpm", "mout_cmu_hpm", 1050*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HPM, 21, 0, 0), 1051*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI0_BUS, "gout_cmu_hsi0_bus", 1052*bdd03ebfSIgor Belwon "mout_cmu_hsi0_bus", CLK_CON_GAT_GATE_CLKCMU_HSI0_BUS, 21, 0, 0), 1053*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI0_DPGTC, "gout_cmu_hsi0_dpgtc", 1054*bdd03ebfSIgor Belwon "mout_cmu_hsi0_dpgtc", CLK_CON_GAT_GATE_CLKCMU_HSI0_DPGTC, 1055*bdd03ebfSIgor Belwon 21, 0, 0), 1056*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI0_USB31DRD, "gout_cmu_hsi0_usb31drd", 1057*bdd03ebfSIgor Belwon "mout_cmu_hsi0_usb31drd", CLK_CON_GAT_GATE_CLKCMU_HSI0_USB31DRD, 1058*bdd03ebfSIgor Belwon 21, 0, 0), 1059*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI0_USBDP_DEBUG, "gout_cmu_hsi0_usbdp_debug", 1060*bdd03ebfSIgor Belwon "mout_cmu_hsi0_usbdp_debug", CLK_CON_GAT_GATE_CLKCMU_HSI0_USBDP_DEBUG, 1061*bdd03ebfSIgor Belwon 21, 0, 0), 1062*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI1_BUS, "gout_cmu_hsi1_bus", "mout_cmu_hsi1_bus", 1063*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI1_BUS, 21, 0, 0), 1064*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI1_MMC_CARD, "gout_cmu_hsi1_mmc_card", 1065*bdd03ebfSIgor Belwon "mout_cmu_hsi1_mmc_card", CLK_CON_GAT_GATE_CLKCMU_HSI1_MMC_CARD, 1066*bdd03ebfSIgor Belwon 21, 0, 0), 1067*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI1_PCIE, "gout_cmu_hsi1_pcie", 1068*bdd03ebfSIgor Belwon "mout_cmu_hsi1_pcie", CLK_CON_GAT_GATE_CLKCMU_HSI1_PCIE, 1069*bdd03ebfSIgor Belwon 21, 0, 0), 1070*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI1_UFS_CARD, "gout_cmu_hsi1_ufs_card", 1071*bdd03ebfSIgor Belwon "mout_cmu_hsi1_ufs_card", CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_CARD, 1072*bdd03ebfSIgor Belwon 21, 0, 0), 1073*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI1_UFS_EMBD, "gout_cmu_hsi1_ufs_embd", 1074*bdd03ebfSIgor Belwon "mout_cmu_hsi1_ufs_embd", CLK_CON_GAT_GATE_CLKCMU_HSI1_UFS_EMBD, 1075*bdd03ebfSIgor Belwon 21, 0, 0), 1076*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI2_BUS, "gout_cmu_hsi2_bus", "mout_cmu_hsi2_bus", 1077*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_HSI2_BUS, 21, 0, 0), 1078*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_HSI2_PCIE, "gout_cmu_hsi2_pcie", 1079*bdd03ebfSIgor Belwon "mout_cmu_hsi2_pcie", CLK_CON_GAT_GATE_CLKCMU_HSI2_PCIE, 1080*bdd03ebfSIgor Belwon 21, 0, 0), 1081*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_IPP_BUS, "gout_cmu_ipp_bus", "mout_cmu_ipp_bus", 1082*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_IPP_BUS, 21, 0, 0), 1083*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_ITP_BUS, "gout_cmu_itp_bus", "mout_cmu_itp_bus", 1084*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_ITP_BUS, 21, 0, 0), 1085*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_MCSC_BUS, "gout_cmu_mcsc_bus", "mout_cmu_mcsc_bus", 1086*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MCSC_BUS, 21, 0, 0), 1087*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_MCSC_GDC, "gout_cmu_mcsc_gdc", "mout_cmu_mcsc_gdc", 1088*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MCSC_GDC, 21, 0, 0), 1089*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_MFC0_MFC0, "gout_cmu_mfc0_mfc0", 1090*bdd03ebfSIgor Belwon "mout_cmu_mfc0_mfc0", CLK_CON_GAT_GATE_CLKCMU_MFC0_MFC0, 1091*bdd03ebfSIgor Belwon 21, 0, 0), 1092*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_MFC0_WFD, "gout_cmu_mfc0_wfd", "mout_cmu_mfc0_wfd", 1093*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MFC0_WFD, 21, 0, 0), 1094*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_MIF_BUSP, "gout_cmu_mif_busp", "mout_cmu_mif_busp", 1095*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_MIF_BUSP, 21, 0, 0), 1096*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_NPU_BUS, "gout_cmu_npu_bus", "mout_cmu_npu_bus", 1097*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_NPU_BUS, 21, 0, 0), 1098*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_PERIC0_BUS, "gout_cmu_peric0_bus", 1099*bdd03ebfSIgor Belwon "mout_cmu_peric0_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC0_BUS, 1100*bdd03ebfSIgor Belwon 21, 0, 0), 1101*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_PERIC0_IP, "gout_cmu_peric0_ip", 1102*bdd03ebfSIgor Belwon "mout_cmu_peric0_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC0_IP, 1103*bdd03ebfSIgor Belwon 21, 0, 0), 1104*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_PERIC1_BUS, "gout_cmu_peric1_bus", 1105*bdd03ebfSIgor Belwon "mout_cmu_peric1_bus", CLK_CON_GAT_GATE_CLKCMU_PERIC1_BUS, 1106*bdd03ebfSIgor Belwon 21, 0, 0), 1107*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_PERIC1_IP, "gout_cmu_peric1_ip", 1108*bdd03ebfSIgor Belwon "mout_cmu_peric1_ip", CLK_CON_GAT_GATE_CLKCMU_PERIC1_IP, 1109*bdd03ebfSIgor Belwon 21, 0, 0), 1110*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_PERIS_BUS, "gout_cmu_peris_bus", 1111*bdd03ebfSIgor Belwon "mout_cmu_peris_bus", CLK_CON_GAT_GATE_CLKCMU_PERIS_BUS, 1112*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1113*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_SSP_BUS, "gout_cmu_ssp_bus", "mout_cmu_ssp_bus", 1114*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_SSP_BUS, 21, 0, 0), 1115*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_TNR_BUS, "gout_cmu_tnr_bus", "mout_cmu_tnr_bus", 1116*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_TNR_BUS, 21, 0, 0), 1117*bdd03ebfSIgor Belwon GATE(CLK_GOUT_CMU_VRA_BUS, "gout_cmu_vra_bus", "mout_cmu_vra_bus", 1118*bdd03ebfSIgor Belwon CLK_CON_GAT_GATE_CLKCMU_VRA_BUS, 21, 0, 0), 1119*bdd03ebfSIgor Belwon }; 1120*bdd03ebfSIgor Belwon 1121*bdd03ebfSIgor Belwon static const struct samsung_cmu_info top_cmu_info __initconst = { 1122*bdd03ebfSIgor Belwon .pll_clks = top_pll_clks, 1123*bdd03ebfSIgor Belwon .nr_pll_clks = ARRAY_SIZE(top_pll_clks), 1124*bdd03ebfSIgor Belwon .mux_clks = top_mux_clks, 1125*bdd03ebfSIgor Belwon .nr_mux_clks = ARRAY_SIZE(top_mux_clks), 1126*bdd03ebfSIgor Belwon .div_clks = top_div_clks, 1127*bdd03ebfSIgor Belwon .nr_div_clks = ARRAY_SIZE(top_div_clks), 1128*bdd03ebfSIgor Belwon .gate_clks = top_gate_clks, 1129*bdd03ebfSIgor Belwon .nr_gate_clks = ARRAY_SIZE(top_gate_clks), 1130*bdd03ebfSIgor Belwon .nr_clk_ids = CLKS_NR_TOP, 1131*bdd03ebfSIgor Belwon .clk_regs = top_clk_regs, 1132*bdd03ebfSIgor Belwon .nr_clk_regs = ARRAY_SIZE(top_clk_regs), 1133*bdd03ebfSIgor Belwon }; 1134*bdd03ebfSIgor Belwon 1135*bdd03ebfSIgor Belwon static void __init exynos990_cmu_top_init(struct device_node *np) 1136*bdd03ebfSIgor Belwon { 1137*bdd03ebfSIgor Belwon exynos_arm64_register_cmu(NULL, np, &top_cmu_info); 1138*bdd03ebfSIgor Belwon } 1139*bdd03ebfSIgor Belwon 1140*bdd03ebfSIgor Belwon /* Register CMU_TOP early, as it's a dependency for other early domains */ 1141*bdd03ebfSIgor Belwon CLK_OF_DECLARE(exynos990_cmu_top, "samsung,exynos990-cmu-top", 1142*bdd03ebfSIgor Belwon exynos990_cmu_top_init); 1143*bdd03ebfSIgor Belwon 1144*bdd03ebfSIgor Belwon /* ---- CMU_HSI0 ------------------------------------------------------------ */ 1145*bdd03ebfSIgor Belwon 1146*bdd03ebfSIgor Belwon /* Register Offset definitions for CMU_HSI0 (0x10a00000) */ 1147*bdd03ebfSIgor Belwon #define PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER 0x0600 1148*bdd03ebfSIgor Belwon #define PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER 0x0620 1149*bdd03ebfSIgor Belwon #define PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER 0x0630 1150*bdd03ebfSIgor Belwon #define PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER 0x0610 1151*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK 0x2004 1152*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK 0x2018 1153*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHS_ACEL_D_HSI0_IPCLKPORT_I_CLK 0x2014 1154*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK 0x2020 1155*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK 0x2044 1156*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK 0x2008 1157*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK 0x200c 1158*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK 0x2010 1159*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK 0x201c 1160*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2 0x2024 1161*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK 0x2028 1162*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL 0x202c 1163*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USB31DRD_REF_CLK_40 0x2034 1164*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK 0x203c 1165*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK 0x2040 1166*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY 0x2030 1167*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK 0x2000 1168*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK 0x2048 1169*bdd03ebfSIgor Belwon #define CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_REF_SOC_PLL 0x2038 1170*bdd03ebfSIgor Belwon 1171*bdd03ebfSIgor Belwon static const unsigned long hsi0_clk_regs[] __initconst = { 1172*bdd03ebfSIgor Belwon PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER, 1173*bdd03ebfSIgor Belwon PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER, 1174*bdd03ebfSIgor Belwon PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER, 1175*bdd03ebfSIgor Belwon PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER, 1176*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK, 1177*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK, 1178*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK, 1179*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHS_ACEL_D_HSI0_IPCLKPORT_I_CLK, 1180*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK, 1181*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK, 1182*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK, 1183*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK, 1184*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK, 1185*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2, 1186*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK, 1187*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL, 1188*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK, 1189*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK, 1190*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY, 1191*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK, 1192*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK, 1193*bdd03ebfSIgor Belwon }; 1194*bdd03ebfSIgor Belwon 1195*bdd03ebfSIgor Belwon PNAME(mout_hsi0_bus_user_p) = { "oscclk", "dout_cmu_hsi0_bus" }; 1196*bdd03ebfSIgor Belwon PNAME(mout_hsi0_usb31drd_user_p) = { "oscclk", "dout_cmu_hsi0_usb31drd" }; 1197*bdd03ebfSIgor Belwon PNAME(mout_hsi0_usbdp_debug_user_p) = { "oscclk", 1198*bdd03ebfSIgor Belwon "dout_cmu_hsi0_usbdp_debug" }; 1199*bdd03ebfSIgor Belwon PNAME(mout_hsi0_dpgtc_user_p) = { "oscclk", "dout_cmu_hsi0_dpgtc" }; 1200*bdd03ebfSIgor Belwon 1201*bdd03ebfSIgor Belwon static const struct samsung_mux_clock hsi0_mux_clks[] __initconst = { 1202*bdd03ebfSIgor Belwon MUX(CLK_MOUT_HSI0_BUS_USER, "mout_hsi0_bus_user", 1203*bdd03ebfSIgor Belwon mout_hsi0_bus_user_p, PLL_CON0_MUX_CLKCMU_HSI0_BUS_USER, 1204*bdd03ebfSIgor Belwon 4, 1), 1205*bdd03ebfSIgor Belwon MUX(CLK_MOUT_HSI0_USB31DRD_USER, "mout_hsi0_usb31drd_user", 1206*bdd03ebfSIgor Belwon mout_hsi0_usb31drd_user_p, PLL_CON0_MUX_CLKCMU_HSI0_USB31DRD_USER, 1207*bdd03ebfSIgor Belwon 4, 1), 1208*bdd03ebfSIgor Belwon MUX(CLK_MOUT_HSI0_USBDP_DEBUG_USER, "mout_hsi0_usbdp_debug_user", 1209*bdd03ebfSIgor Belwon mout_hsi0_usbdp_debug_user_p, 1210*bdd03ebfSIgor Belwon PLL_CON0_MUX_CLKCMU_HSI0_USBDP_DEBUG_USER, 1211*bdd03ebfSIgor Belwon 4, 1), 1212*bdd03ebfSIgor Belwon MUX(CLK_MOUT_HSI0_DPGTC_USER, "mout_hsi0_dpgtc_user", 1213*bdd03ebfSIgor Belwon mout_hsi0_dpgtc_user_p, PLL_CON0_MUX_CLKCMU_HSI0_DPGTC_USER, 1214*bdd03ebfSIgor Belwon 4, 1), 1215*bdd03ebfSIgor Belwon }; 1216*bdd03ebfSIgor Belwon 1217*bdd03ebfSIgor Belwon static const struct samsung_gate_clock hsi0_gate_clks[] __initconst = { 1218*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_DP_LINK_DP_GTC_CLK, 1219*bdd03ebfSIgor Belwon "gout_hsi0_dp_link_dp_gtc_clk", "mout_hsi0_dpgtc_user", 1220*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_DP_GTC_CLK, 1221*bdd03ebfSIgor Belwon 21, 0, 0), 1222*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_DP_LINK_PCLK, 1223*bdd03ebfSIgor Belwon "gout_hsi0_dp_link_pclk", "mout_hsi0_bus_user", 1224*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_DP_LINK_IPCLKPORT_I_PCLK, 1225*bdd03ebfSIgor Belwon 21, 0, 0), 1226*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_D_TZPC_HSI0_PCLK, 1227*bdd03ebfSIgor Belwon "gout_hsi0_d_tzpc_hsi0_pclk", "mout_hsi0_bus_user", 1228*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_D_TZPC_HSI0_IPCLKPORT_PCLK, 1229*bdd03ebfSIgor Belwon 21, 0, 0), 1230*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_LHM_AXI_P_HSI0_CLK, 1231*bdd03ebfSIgor Belwon "gout_hsi0_lhm_axi_p_hsi0_clk", "mout_hsi0_bus_user", 1232*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_LHM_AXI_P_HSI0_IPCLKPORT_I_CLK, 1233*bdd03ebfSIgor Belwon 21, CLK_IS_CRITICAL, 0), 1234*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_PPMU_HSI0_BUS1_ACLK, 1235*bdd03ebfSIgor Belwon "gout_hsi0_ppmu_hsi0_bus1_aclk", "mout_hsi0_bus_user", 1236*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_ACLK, 1237*bdd03ebfSIgor Belwon 21, 0, 0), 1238*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_PPMU_HSI0_BUS1_PCLK, 1239*bdd03ebfSIgor Belwon "gout_hsi0_ppmu_hsi0_bus1_pclk", "mout_hsi0_bus_user", 1240*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_PPMU_HSI0_BUS1_IPCLKPORT_PCLK, 1241*bdd03ebfSIgor Belwon 21, 0, 0), 1242*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_CLK_HSI0_BUS_CLK, 1243*bdd03ebfSIgor Belwon "gout_hsi0_clk_hsi0_bus_clk", "mout_hsi0_bus_user", 1244*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_RSTNSYNC_CLK_HSI0_BUS_IPCLKPORT_CLK, 1245*bdd03ebfSIgor Belwon 21, 0, 0), 1246*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_SYSMMU_USB_CLK_S2, 1247*bdd03ebfSIgor Belwon "gout_hsi0_sysmmu_usb_clk_s2", "mout_hsi0_bus_user", 1248*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSMMU_USB_IPCLKPORT_CLK_S2, 1249*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1250*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_SYSREG_HSI0_PCLK, 1251*bdd03ebfSIgor Belwon "gout_hsi0_sysreg_hsi0_pclk", "mout_hsi0_bus_user", 1252*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_SYSREG_HSI0_IPCLKPORT_PCLK, 1253*bdd03ebfSIgor Belwon 21, 0, 0), 1254*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL, 1255*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_aclk_phyctrl", "mout_hsi0_bus_user", 1256*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_ACLK_PHYCTRL, 1257*bdd03ebfSIgor Belwon 21, 0, 0), 1258*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY, 1259*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_bus_clk_early", 1260*bdd03ebfSIgor Belwon "mout_hsi0_bus_user", 1261*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_BUS_CLK_EARLY, 1262*bdd03ebfSIgor Belwon 21, 0, 0), 1263*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_USB31DRD_REF_CLK_40, 1264*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_usb31drd_ref_clk_40", 1265*bdd03ebfSIgor Belwon "mout_hsi0_usb31drd_user", 1266*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USB31DRD_REF_CLK_40, 1267*bdd03ebfSIgor Belwon 21, 0, 0), 1268*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_USBDPPHY_REF_SOC_PLL, 1269*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_usbdpphy_ref_soc_pll", 1270*bdd03ebfSIgor Belwon "mout_hsi0_usbdp_debug_user", 1271*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_REF_SOC_PLL, 1272*bdd03ebfSIgor Belwon 21, 0, 0), 1273*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_USBDPPHY_SCL_APB, 1274*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_ipclkport_i_usbdpphy_scl_apb_pclk", 1275*bdd03ebfSIgor Belwon "mout_hsi0_bus_user", 1276*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBDPPHY_SCL_APB_PCLK, 1277*bdd03ebfSIgor Belwon 21, 0, 0), 1278*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_USB31DRD_USBPCS_APB_CLK, 1279*bdd03ebfSIgor Belwon "gout_hsi0_usb31drd_usbpcs_apb_clk", 1280*bdd03ebfSIgor Belwon "mout_hsi0_bus_user", 1281*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_USB31DRD_IPCLKPORT_I_USBPCS_APB_CLK, 1282*bdd03ebfSIgor Belwon 21, 0, 0), 1283*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_VGEN_LITE_HSI0_CLK, 1284*bdd03ebfSIgor Belwon "gout_hsi0_vgen_lite_ipclkport_clk", "mout_hsi0_bus_user", 1285*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_VGEN_LITE_HSI0_IPCLKPORT_CLK, 1286*bdd03ebfSIgor Belwon 21, 0, 0), 1287*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_CMU_HSI0_PCLK, 1288*bdd03ebfSIgor Belwon "gout_hsi0_cmu_hsi0_pclk", "mout_hsi0_bus_user", 1289*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_HSI0_CMU_HSI0_IPCLKPORT_PCLK, 1290*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1291*bdd03ebfSIgor Belwon GATE(CLK_GOUT_HSI0_XIU_D_HSI0_ACLK, 1292*bdd03ebfSIgor Belwon "gout_hsi0_xiu_d_hsi0_aclk", "mout_hsi0_bus_user", 1293*bdd03ebfSIgor Belwon CLK_CON_GAT_GOUT_BLK_HSI0_UID_XIU_D_HSI0_IPCLKPORT_ACLK, 1294*bdd03ebfSIgor Belwon 21, CLK_IGNORE_UNUSED, 0), 1295*bdd03ebfSIgor Belwon }; 1296*bdd03ebfSIgor Belwon 1297*bdd03ebfSIgor Belwon static const struct samsung_cmu_info hsi0_cmu_info __initconst = { 1298*bdd03ebfSIgor Belwon .mux_clks = hsi0_mux_clks, 1299*bdd03ebfSIgor Belwon .nr_mux_clks = ARRAY_SIZE(hsi0_mux_clks), 1300*bdd03ebfSIgor Belwon .gate_clks = hsi0_gate_clks, 1301*bdd03ebfSIgor Belwon .nr_gate_clks = ARRAY_SIZE(hsi0_gate_clks), 1302*bdd03ebfSIgor Belwon .nr_clk_ids = CLKS_NR_HSI0, 1303*bdd03ebfSIgor Belwon .clk_regs = hsi0_clk_regs, 1304*bdd03ebfSIgor Belwon .nr_clk_regs = ARRAY_SIZE(hsi0_clk_regs), 1305*bdd03ebfSIgor Belwon .clk_name = "bus", 1306*bdd03ebfSIgor Belwon }; 1307*bdd03ebfSIgor Belwon 1308*bdd03ebfSIgor Belwon /* ----- platform_driver ----- */ 1309*bdd03ebfSIgor Belwon 1310*bdd03ebfSIgor Belwon static int __init exynos990_cmu_probe(struct platform_device *pdev) 1311*bdd03ebfSIgor Belwon { 1312*bdd03ebfSIgor Belwon const struct samsung_cmu_info *info; 1313*bdd03ebfSIgor Belwon struct device *dev = &pdev->dev; 1314*bdd03ebfSIgor Belwon 1315*bdd03ebfSIgor Belwon info = of_device_get_match_data(dev); 1316*bdd03ebfSIgor Belwon exynos_arm64_register_cmu(dev, dev->of_node, info); 1317*bdd03ebfSIgor Belwon 1318*bdd03ebfSIgor Belwon return 0; 1319*bdd03ebfSIgor Belwon } 1320*bdd03ebfSIgor Belwon 1321*bdd03ebfSIgor Belwon static const struct of_device_id exynos990_cmu_of_match[] = { 1322*bdd03ebfSIgor Belwon { 1323*bdd03ebfSIgor Belwon .compatible = "samsung,exynos990-cmu-hsi0", 1324*bdd03ebfSIgor Belwon .data = &hsi0_cmu_info, 1325*bdd03ebfSIgor Belwon }, 1326*bdd03ebfSIgor Belwon { }, 1327*bdd03ebfSIgor Belwon }; 1328*bdd03ebfSIgor Belwon 1329*bdd03ebfSIgor Belwon static struct platform_driver exynos990_cmu_driver __refdata = { 1330*bdd03ebfSIgor Belwon .driver = { 1331*bdd03ebfSIgor Belwon .name = "exynos990-cmu", 1332*bdd03ebfSIgor Belwon .of_match_table = exynos990_cmu_of_match, 1333*bdd03ebfSIgor Belwon .suppress_bind_attrs = true, 1334*bdd03ebfSIgor Belwon }, 1335*bdd03ebfSIgor Belwon .probe = exynos990_cmu_probe, 1336*bdd03ebfSIgor Belwon }; 1337*bdd03ebfSIgor Belwon 1338*bdd03ebfSIgor Belwon static int __init exynos990_cmu_init(void) 1339*bdd03ebfSIgor Belwon { 1340*bdd03ebfSIgor Belwon return platform_driver_register(&exynos990_cmu_driver); 1341*bdd03ebfSIgor Belwon } 1342*bdd03ebfSIgor Belwon 1343*bdd03ebfSIgor Belwon core_initcall(exynos990_cmu_init); 1344