1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef _ASM_ARCH_CRU_rk1808_H 7*4882a593Smuzhiyun #define _ASM_ARCH_CRU_rk1808_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <common.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define MHz 1000000 12*4882a593Smuzhiyun #define KHz 1000 13*4882a593Smuzhiyun #define OSC_HZ (24 * MHz) 14*4882a593Smuzhiyun #define APLL_HZ (1200 * MHz) 15*4882a593Smuzhiyun #define PCLK_PMU_HZ (100 * MHz) 16*4882a593Smuzhiyun #define GPLL_HZ (594 * MHz) 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* PX30 pll id */ 19*4882a593Smuzhiyun enum rk1808_pll_id { 20*4882a593Smuzhiyun APLL, 21*4882a593Smuzhiyun DPLL, 22*4882a593Smuzhiyun CPLL, 23*4882a593Smuzhiyun GPLL, 24*4882a593Smuzhiyun NPLL, 25*4882a593Smuzhiyun PPLL, 26*4882a593Smuzhiyun PLL_COUNT, 27*4882a593Smuzhiyun }; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun struct rk1808_clk_info { 30*4882a593Smuzhiyun unsigned long id; 31*4882a593Smuzhiyun char *name; 32*4882a593Smuzhiyun bool is_cru; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* Private data for the clock driver - used by rockchip_get_cru() */ 36*4882a593Smuzhiyun struct rk1808_clk_priv { 37*4882a593Smuzhiyun struct rk1808_cru *cru; 38*4882a593Smuzhiyun ulong armclk_hz; 39*4882a593Smuzhiyun ulong cpll_hz; 40*4882a593Smuzhiyun ulong gpll_hz; 41*4882a593Smuzhiyun ulong npll_hz; 42*4882a593Smuzhiyun ulong armclk_enter_hz; 43*4882a593Smuzhiyun ulong armclk_init_hz; 44*4882a593Smuzhiyun bool sync_kernel; 45*4882a593Smuzhiyun bool set_armclk_rate; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun struct rk1808_pll { 49*4882a593Smuzhiyun unsigned int con0; 50*4882a593Smuzhiyun unsigned int con1; 51*4882a593Smuzhiyun unsigned int con2; 52*4882a593Smuzhiyun unsigned int con3; 53*4882a593Smuzhiyun unsigned int con4; 54*4882a593Smuzhiyun unsigned int reserved0[3]; 55*4882a593Smuzhiyun }; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun struct rk1808_cru { 58*4882a593Smuzhiyun struct rk1808_pll pll[5]; 59*4882a593Smuzhiyun unsigned int mode; 60*4882a593Smuzhiyun unsigned int misc; 61*4882a593Smuzhiyun unsigned int misc1; 62*4882a593Smuzhiyun unsigned int reserved2[1]; 63*4882a593Smuzhiyun unsigned int glb_cnt_th; 64*4882a593Smuzhiyun unsigned int glb_rst_st; 65*4882a593Smuzhiyun unsigned int glb_srst_fst; 66*4882a593Smuzhiyun unsigned int glb_srst_snd; 67*4882a593Smuzhiyun unsigned int glb_rst_con; 68*4882a593Smuzhiyun unsigned int reserved3[7]; 69*4882a593Smuzhiyun unsigned int hwffc_con0; 70*4882a593Smuzhiyun unsigned int reserved4; 71*4882a593Smuzhiyun unsigned int hwffc_th; 72*4882a593Smuzhiyun unsigned int hwffc_intst; 73*4882a593Smuzhiyun unsigned int apll_con0_s; 74*4882a593Smuzhiyun unsigned int apll_con1_s; 75*4882a593Smuzhiyun unsigned int clksel_con0_s; 76*4882a593Smuzhiyun unsigned int reserved5; 77*4882a593Smuzhiyun unsigned int clksel_con[73]; 78*4882a593Smuzhiyun unsigned int reserved6[3]; 79*4882a593Smuzhiyun unsigned int clkgate_con[20]; 80*4882a593Smuzhiyun unsigned int ssgtbl[32]; 81*4882a593Smuzhiyun unsigned int softrst_con[16]; 82*4882a593Smuzhiyun unsigned int reserved7[(0x380 - 0x33c) / 4 - 1]; 83*4882a593Smuzhiyun unsigned int sdmmc_con[2]; 84*4882a593Smuzhiyun unsigned int sdio_con[2]; 85*4882a593Smuzhiyun unsigned int emmc_con[2]; 86*4882a593Smuzhiyun unsigned int reserved8[(0x400 - 0x394) / 4 - 1]; 87*4882a593Smuzhiyun unsigned int autocs_con[10]; 88*4882a593Smuzhiyun unsigned int reserved9[(0x4000 - 0x424) / 4 - 1]; 89*4882a593Smuzhiyun struct rk1808_pll pmu_pll; 90*4882a593Smuzhiyun unsigned int pmu_mode; 91*4882a593Smuzhiyun unsigned int reserved10[(0x4040 - 0x4020) / 4 - 1]; 92*4882a593Smuzhiyun unsigned int pmu_clksel_con[8]; 93*4882a593Smuzhiyun unsigned int reserved11[(0x4080 - 0x405c) / 4 - 1]; 94*4882a593Smuzhiyun unsigned int pmu_clkgate_con[2]; 95*4882a593Smuzhiyun unsigned int reserved12[(0x40c0 - 0x4084) / 4 - 1]; 96*4882a593Smuzhiyun unsigned int pmu_autocs_con[2]; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun check_member(rk1808_cru, pmu_autocs_con[0], 0x40c0); 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun #define RK1808_PLL_CON(x) ((x) * 0x4) 102*4882a593Smuzhiyun #define RK1808_MODE_CON 0xa0 103*4882a593Smuzhiyun #define RK1808_PMU_PLL_CON(x) ((x) * 0x4 + 0x4000) 104*4882a593Smuzhiyun #define RK1808_PMU_MODE_CON 0x4020 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun enum { 107*4882a593Smuzhiyun /* CRU_CLK_SEL0_CON */ 108*4882a593Smuzhiyun CORE_ACLK_DIV_SHIFT = 12, 109*4882a593Smuzhiyun CORE_ACLK_DIV_MASK = 0x07 << CORE_ACLK_DIV_SHIFT, 110*4882a593Smuzhiyun CORE_DBG_DIV_SHIFT = 8, 111*4882a593Smuzhiyun CORE_DBG_DIV_MASK = 0x03 << CORE_DBG_DIV_SHIFT, 112*4882a593Smuzhiyun CORE_CLK_PLL_SEL_SHIFT = 7, 113*4882a593Smuzhiyun CORE_CLK_PLL_SEL_MASK = 1 << CORE_CLK_PLL_SEL_SHIFT, 114*4882a593Smuzhiyun CORE_CLK_PLL_SEL_APLL = 0, 115*4882a593Smuzhiyun CORE_CLK_PLL_SEL_GPLL, 116*4882a593Smuzhiyun CORE_DIV_CON_SHIFT = 0, 117*4882a593Smuzhiyun CORE_DIV_CON_MASK = 0x0f << CORE_DIV_CON_SHIFT, 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun /* CRU_CLK_SEL4_CON */ 120*4882a593Smuzhiyun ACLK_VOP_PLL_SEL_GPLL = 0, 121*4882a593Smuzhiyun ACLK_VOP_PLL_SEL_CPLL = 1, 122*4882a593Smuzhiyun ACLK_VOP_PLL_SEL_SHIFT = 7, 123*4882a593Smuzhiyun ACLK_VOP_PLL_SEL_MASK = 1 << ACLK_VOP_PLL_SEL_SHIFT, 124*4882a593Smuzhiyun ACLK_VOP_DIV_CON_SHIFT = 0, 125*4882a593Smuzhiyun ACLK_VOP_DIV_CON_MASK = 0x1f << ACLK_VOP_DIV_CON_SHIFT, 126*4882a593Smuzhiyun HCLK_VOP_DIV_CON_SHIFT = 8, 127*4882a593Smuzhiyun HCLK_VOP_DIV_CON_MASK = 0x1f << HCLK_VOP_DIV_CON_SHIFT, 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun /* CRU_CLK_SEL5_CON */ 130*4882a593Smuzhiyun DCLK_VOPRAW_SEL_VOPRAW = 0, 131*4882a593Smuzhiyun DCLK_VOPRAW_SEL_VOPRAW_FRAC = 1, 132*4882a593Smuzhiyun DCLK_VOPRAW_SEL_XIN24M = 2, 133*4882a593Smuzhiyun DCLK_VOPRAW_SEL_SHIFT = 14, 134*4882a593Smuzhiyun DCLK_VOPRAW_SEL_MASK = 3 << DCLK_VOPRAW_SEL_SHIFT, 135*4882a593Smuzhiyun DCLK_VOPRAW_PLL_SEL_CPLL = 0, 136*4882a593Smuzhiyun DCLK_VOPRAW_PLL_SEL_GPLL = 1, 137*4882a593Smuzhiyun DCLK_VOPRAW_PLL_SEL_NPLL = 2, 138*4882a593Smuzhiyun DCLK_VOPRAW_PLL_SEL_SHIFT = 10, 139*4882a593Smuzhiyun DCLK_VOPRAW_PLL_SEL_MASK = 3 << DCLK_VOPRAW_PLL_SEL_SHIFT, 140*4882a593Smuzhiyun DCLK_VOPRAW_DIV_CON_SHIFT = 0, 141*4882a593Smuzhiyun DCLK_VOPRAW_DIV_CON_MASK = 0xff << DCLK_VOPRAW_DIV_CON_SHIFT, 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun /* CRU_CLK_SEL7_CON */ 144*4882a593Smuzhiyun DCLK_VOPLITE_SEL_VOPRAW = 0, 145*4882a593Smuzhiyun DCLK_VOPLITE_SEL_VOPRAW_FRAC = 1, 146*4882a593Smuzhiyun DCLK_VOPLITE_SEL_XIN24M = 2, 147*4882a593Smuzhiyun DCLK_VOPLITE_SEL_SHIFT = 14, 148*4882a593Smuzhiyun DCLK_VOPLITE_SEL_MASK = 3 << DCLK_VOPLITE_SEL_SHIFT, 149*4882a593Smuzhiyun DCLK_VOPLITE_PLL_SEL_CPLL = 0, 150*4882a593Smuzhiyun DCLK_VOPLITE_PLL_SEL_GPLL = 1, 151*4882a593Smuzhiyun DCLK_VOPLITE_PLL_SEL_NPLL = 2, 152*4882a593Smuzhiyun DCLK_VOPLITE_PLL_SEL_SHIFT = 10, 153*4882a593Smuzhiyun DCLK_VOPLITE_PLL_SEL_MASK = 3 << DCLK_VOPLITE_PLL_SEL_SHIFT, 154*4882a593Smuzhiyun DCLK_VOPLITE_DIV_CON_SHIFT = 0, 155*4882a593Smuzhiyun DCLK_VOPLITE_DIV_CON_MASK = 0xff << DCLK_VOPLITE_DIV_CON_SHIFT, 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun /* CRU_CLK_SEL19_CON */ 158*4882a593Smuzhiyun CLK_PERI_PLL_SEL_GPLL = 0, 159*4882a593Smuzhiyun CLK_PERI_PLL_SEL_CPLL = 1, 160*4882a593Smuzhiyun CLK_PERI_PLL_SEL_SHIFT = 15, 161*4882a593Smuzhiyun CLK_PERI_PLL_SEL_MASK = 1 << CLK_PERI_PLL_SEL_SHIFT, 162*4882a593Smuzhiyun LSCLK_PERI_DIV_CON_SHIFT = 8, 163*4882a593Smuzhiyun LSCLK_PERI_DIV_CON_MASK = 0x1f << LSCLK_PERI_DIV_CON_SHIFT, 164*4882a593Smuzhiyun MSCLK_PERI_DIV_CON_SHIFT = 0, 165*4882a593Smuzhiyun MSCLK_PERI_DIV_CON_MASK = 0x1f << MSCLK_PERI_DIV_CON_SHIFT, 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun /* CRU_CLKSEL24_CON */ 168*4882a593Smuzhiyun EMMC_PLL_SHIFT = 14, 169*4882a593Smuzhiyun EMMC_PLL_MASK = 3 << EMMC_PLL_SHIFT, 170*4882a593Smuzhiyun EMMC_SEL_GPLL = 0, 171*4882a593Smuzhiyun EMMC_SEL_CPLL, 172*4882a593Smuzhiyun EMMC_SEL_NPLL, 173*4882a593Smuzhiyun EMMC_SEL_24M, 174*4882a593Smuzhiyun EMMC_DIV_SHIFT = 0, 175*4882a593Smuzhiyun EMMC_DIV_MASK = 0xff << EMMC_DIV_SHIFT, 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun /* CRU_CLKSEL25_CON */ 178*4882a593Smuzhiyun EMMC_CLK_SEL_SHIFT = 15, 179*4882a593Smuzhiyun EMMC_CLK_SEL_MASK = 1 << EMMC_CLK_SEL_SHIFT, 180*4882a593Smuzhiyun EMMC_CLK_SEL_EMMC = 0, 181*4882a593Smuzhiyun EMMC_CLK_SEL_EMMC_DIV50, 182*4882a593Smuzhiyun EMMC_DIV50_SHIFT = 0, 183*4882a593Smuzhiyun EMMC_DIV50_MASK = 0xff << EMMC_DIV_SHIFT, 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun /* CRU_CLKSEL26_CON */ 186*4882a593Smuzhiyun GMAC_PLL_SEL_SHIFT = 14, 187*4882a593Smuzhiyun GMAC_PLL_SEL_MASK = 3 << GMAC_PLL_SEL_SHIFT, 188*4882a593Smuzhiyun GMAC_PLL_SEL_CPLL = 0, 189*4882a593Smuzhiyun GMAC_PLL_SEL_NPLL, 190*4882a593Smuzhiyun GMAC_PLL_SEL_PPLL, 191*4882a593Smuzhiyun CLK_GMAC_DIV_SHIFT = 8, 192*4882a593Smuzhiyun CLK_GMAC_DIV_MASK = 0x1f << CLK_GMAC_DIV_SHIFT, 193*4882a593Smuzhiyun SFC_PLL_SEL_SHIFT = 7, 194*4882a593Smuzhiyun SFC_PLL_SEL_MASK = 1 << SFC_PLL_SEL_SHIFT, 195*4882a593Smuzhiyun SFC_DIV_CON_SHIFT = 0, 196*4882a593Smuzhiyun SFC_DIV_CON_MASK = 0x7f, 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun /* CRU_CLK_SEL27_CON */ 199*4882a593Smuzhiyun CLK_BUS_PLL_SEL_GPLL = 0, 200*4882a593Smuzhiyun CLK_BUS_PLL_SEL_CPLL = 1, 201*4882a593Smuzhiyun CLK_BUS_PLL_SEL_SHIFT = 15, 202*4882a593Smuzhiyun CLK_BUS_PLL_SEL_MASK = 1 << CLK_BUS_PLL_SEL_SHIFT, 203*4882a593Smuzhiyun HSCLK_BUS_DIV_CON_SHIFT = 8, 204*4882a593Smuzhiyun HSCLK_BUS_DIV_CON_MASK = 0x1f << HSCLK_BUS_DIV_CON_SHIFT, 205*4882a593Smuzhiyun RGMII_CLK_SEL_SHIFT = 2, 206*4882a593Smuzhiyun RGMII_CLK_SEL_MASK = 3 << RGMII_CLK_SEL_SHIFT, 207*4882a593Smuzhiyun RGMII_CLK_SEL_125M = 0, 208*4882a593Smuzhiyun RGMII_CLK_SEL_2M = 2, 209*4882a593Smuzhiyun RGMIIC_CLK_SEL_25M = 3, 210*4882a593Smuzhiyun RMII_CLK_SEL_SHIFT = 1, 211*4882a593Smuzhiyun RMII_CLK_SEL_MASK = 1 << RMII_CLK_SEL_SHIFT, 212*4882a593Smuzhiyun RMII_EXTCLK_SEL_SHIFT = 0, 213*4882a593Smuzhiyun RMII_EXTCLK_SEL_MASK = 1 << RMII_EXTCLK_SEL_SHIFT, 214*4882a593Smuzhiyun RMII_EXTCLK_SEL_INT = 0, 215*4882a593Smuzhiyun RMII_EXTCLK_SEL_EXT, 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun /* CRU_CLK_SEL28_CON */ 218*4882a593Smuzhiyun MSCLK_BUS_DIV_CON_SHIFT = 8, 219*4882a593Smuzhiyun MSCLK_BUS_DIV_CON_MASK = 0x1f << MSCLK_BUS_DIV_CON_SHIFT, 220*4882a593Smuzhiyun LSCLK_BUS_DIV_CON_SHIFT = 0, 221*4882a593Smuzhiyun LSCLK_BUS_DIV_CON_MASK = 0x1f << LSCLK_BUS_DIV_CON_SHIFT, 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun /* CRU_CLK_SEL29_CON */ 224*4882a593Smuzhiyun CRYPTO_APK_SEL_SHIFT = 15, 225*4882a593Smuzhiyun CRYPTO_APK_PLL_SEL_MASK = 1 << CRYPTO_APK_SEL_SHIFT, 226*4882a593Smuzhiyun CRYPTO_PLL_SEL_GPLL = 0, 227*4882a593Smuzhiyun CRYPTO_PLL_SEL_CPLL, 228*4882a593Smuzhiyun CRYPTO_APK_DIV_SHIFT = 8, 229*4882a593Smuzhiyun CRYPTO_APK_DIV_MASK = 0x1f << CRYPTO_APK_DIV_SHIFT, 230*4882a593Smuzhiyun CRYPTO_PLL_SEL_SHIFT = 7, 231*4882a593Smuzhiyun CRYPTO_PLL_SEL_MASK = 1 << CRYPTO_PLL_SEL_SHIFT, 232*4882a593Smuzhiyun CRYPTO_DIV_SHIFT = 0, 233*4882a593Smuzhiyun CRYPTO_DIV_MASK = 0x1f << CRYPTO_DIV_SHIFT, 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun /* CRU_CLK_SEL59_CON */ 236*4882a593Smuzhiyun CLK_I2C_PLL_SEL_GPLL = 0, 237*4882a593Smuzhiyun CLK_I2C_PLL_SEL_24M, 238*4882a593Smuzhiyun CLK_I2C2_PLL_SEL_SHIFT = 15, 239*4882a593Smuzhiyun CLK_I2C2_DIV_CON_SHIFT = 8, 240*4882a593Smuzhiyun CLK_I2C2_DIV_CON_MASK = 0x7f << CLK_I2C2_DIV_CON_SHIFT, 241*4882a593Smuzhiyun CLK_I2C2_PLL_SEL_MASK = 1 << CLK_I2C2_PLL_SEL_SHIFT, 242*4882a593Smuzhiyun CLK_I2C1_PLL_SEL_SHIFT = 7, 243*4882a593Smuzhiyun CLK_I2C1_DIV_CON_SHIFT = 0, 244*4882a593Smuzhiyun CLK_I2C1_DIV_CON_MASK = 0x7f, 245*4882a593Smuzhiyun CLK_I2C1_PLL_SEL_MASK = 1 << CLK_I2C1_PLL_SEL_SHIFT, 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun /* CRU_CLK_SEL60_CON */ 248*4882a593Smuzhiyun CLK_SPI_PLL_SEL_GPLL = 0, 249*4882a593Smuzhiyun CLK_SPI_PLL_SEL_24M, 250*4882a593Smuzhiyun CLK_SPI0_PLL_SEL_SHIFT = 15, 251*4882a593Smuzhiyun CLK_SPI0_DIV_CON_SHIFT = 8, 252*4882a593Smuzhiyun CLK_SPI0_DIV_CON_MASK = 0x7f << CLK_SPI0_DIV_CON_SHIFT, 253*4882a593Smuzhiyun CLK_SPI0_PLL_SEL_MASK = 1 << CLK_SPI0_PLL_SEL_SHIFT, 254*4882a593Smuzhiyun CLK_I2C3_PLL_SEL_SHIFT = 7, 255*4882a593Smuzhiyun CLK_I2C3_DIV_CON_SHIFT = 0, 256*4882a593Smuzhiyun CLK_I2C3_DIV_CON_MASK = 0x7f, 257*4882a593Smuzhiyun CLK_I2C3_PLL_SEL_MASK = 1 << CLK_I2C3_PLL_SEL_SHIFT, 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun /* CRU_CLK_SEL61_CON */ 260*4882a593Smuzhiyun CLK_SPI2_PLL_SEL_SHIFT = 15, 261*4882a593Smuzhiyun CLK_SPI2_DIV_CON_SHIFT = 8, 262*4882a593Smuzhiyun CLK_SPI2_DIV_CON_MASK = 0x7f << CLK_SPI2_DIV_CON_SHIFT, 263*4882a593Smuzhiyun CLK_SPI2_PLL_SEL_MASK = 1 << CLK_SPI2_PLL_SEL_SHIFT, 264*4882a593Smuzhiyun CLK_SPI1_PLL_SEL_SHIFT = 7, 265*4882a593Smuzhiyun CLK_SPI1_DIV_CON_SHIFT = 0, 266*4882a593Smuzhiyun CLK_SPI1_DIV_CON_MASK = 0x7f, 267*4882a593Smuzhiyun CLK_SPI1_PLL_SEL_MASK = 1 << CLK_SPI1_PLL_SEL_SHIFT, 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun /* CRU_CLK_SEL62_CON */ 270*4882a593Smuzhiyun CLK_TSADC_DIV_CON_SHIFT = 0, 271*4882a593Smuzhiyun CLK_TSADC_DIV_CON_MASK = 0x3ff, 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun /* CRU_CLK_SEL63_CON */ 274*4882a593Smuzhiyun CLK_SARADC_DIV_CON_SHIFT = 0, 275*4882a593Smuzhiyun CLK_SARADC_DIV_CON_MASK = 0x3ff, 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun /* CRU_CLK_SEL69_CON */ 278*4882a593Smuzhiyun CLK_PWM_PLL_SEL_GPLL = 0, 279*4882a593Smuzhiyun CLK_PWM_PLL_SEL_24M, 280*4882a593Smuzhiyun CLK_PWM1_PLL_SEL_SHIFT = 15, 281*4882a593Smuzhiyun CLK_PWM1_DIV_CON_SHIFT = 8, 282*4882a593Smuzhiyun CLK_PWM1_DIV_CON_MASK = 0x7f << CLK_PWM1_DIV_CON_SHIFT, 283*4882a593Smuzhiyun CLK_PWM1_PLL_SEL_MASK = 1 << CLK_PWM1_PLL_SEL_SHIFT, 284*4882a593Smuzhiyun CLK_PWM0_PLL_SEL_SHIFT = 7, 285*4882a593Smuzhiyun CLK_PWM0_DIV_CON_SHIFT = 0, 286*4882a593Smuzhiyun CLK_PWM0_DIV_CON_MASK = 0x7f, 287*4882a593Smuzhiyun CLK_PWM0_PLL_SEL_MASK = 1 << CLK_PWM0_PLL_SEL_SHIFT, 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun /* CRU_CLK_SEL70_CON */ 290*4882a593Smuzhiyun CLK_PWM2_PLL_SEL_SHIFT = 7, 291*4882a593Smuzhiyun CLK_PWM2_DIV_CON_SHIFT = 0, 292*4882a593Smuzhiyun CLK_PWM2_DIV_CON_MASK = 0x7f, 293*4882a593Smuzhiyun CLK_PWM2_PLL_SEL_MASK = 1 << CLK_PWM2_PLL_SEL_SHIFT, 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun /* CRU_CLK_SEL71_CON */ 296*4882a593Smuzhiyun CLK_I2C5_PLL_SEL_SHIFT = 15, 297*4882a593Smuzhiyun CLK_I2C5_DIV_CON_SHIFT = 8, 298*4882a593Smuzhiyun CLK_I2C5_DIV_CON_MASK = 0x7f << CLK_I2C5_DIV_CON_SHIFT, 299*4882a593Smuzhiyun CLK_I2C5_PLL_SEL_MASK = 1 << CLK_I2C5_PLL_SEL_SHIFT, 300*4882a593Smuzhiyun CLK_I2C4_PLL_SEL_SHIFT = 7, 301*4882a593Smuzhiyun CLK_I2C4_DIV_CON_SHIFT = 0, 302*4882a593Smuzhiyun CLK_I2C4_DIV_CON_MASK = 0x7f, 303*4882a593Smuzhiyun CLK_I2C4_PLL_SEL_MASK = 1 << CLK_I2C4_PLL_SEL_SHIFT, 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun /* CRU_PMU_CLK_SEL7_CON */ 306*4882a593Smuzhiyun CLK_I2C0_PLL_SEL_PPLL = 0, 307*4882a593Smuzhiyun CLK_I2C0_PLL_SEL_SHIFT = 15, 308*4882a593Smuzhiyun CLK_I2C0_DIV_CON_SHIFT = 8, 309*4882a593Smuzhiyun CLK_I2C0_PLL_SEL_MASK = 1 << CLK_I2C0_PLL_SEL_SHIFT, 310*4882a593Smuzhiyun CLK_I2C0_DIV_CON_MASK = 0x3f << CLK_I2C0_DIV_CON_SHIFT, 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun /* PMUCRU_CLK_SEL0_CON */ 313*4882a593Smuzhiyun PCLK_PMU_DIV_CON_SHIFT = 0, 314*4882a593Smuzhiyun PCLK_PMU_DIV_CON_MASK = 0x1f << PCLK_PMU_DIV_CON_SHIFT, 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun #endif 317