13d78ac3eSAndy Yan /* 23d78ac3eSAndy Yan * (C) Copyright 2018 Rockchip Electronics Co., Ltd. 33d78ac3eSAndy Yan * 43d78ac3eSAndy Yan * SPDX-License-Identifier: GPL-2.0+ 53d78ac3eSAndy Yan */ 63d78ac3eSAndy Yan #ifndef _ASM_ARCH_CRU_RK3308_H 73d78ac3eSAndy Yan #define _ASM_ARCH_CRU_RK3308_H 83d78ac3eSAndy Yan 93d78ac3eSAndy Yan #include <common.h> 103d78ac3eSAndy Yan 113d78ac3eSAndy Yan #define MHz 1000000 123d78ac3eSAndy Yan #define OSC_HZ (24 * MHz) 133d78ac3eSAndy Yan 141e180a56SFinley Xiao #define APLL_HZ (816 * MHz) 151e180a56SFinley Xiao 163d78ac3eSAndy Yan #define CORE_ACLK_HZ 408000000 1754d254feSAndy Yan #define CORE_DBG_HZ 204000000 183d78ac3eSAndy Yan 1954d254feSAndy Yan #define BUS_ACLK_HZ 200000000 2054d254feSAndy Yan #define BUS_HCLK_HZ 100000000 2154d254feSAndy Yan #define BUS_PCLK_HZ 100000000 223d78ac3eSAndy Yan 2354d254feSAndy Yan #define PERI_ACLK_HZ 200000000 2454d254feSAndy Yan #define PERI_HCLK_HZ 100000000 2554d254feSAndy Yan #define PERI_PCLK_HZ 100000000 263d78ac3eSAndy Yan 2754d254feSAndy Yan #define AUDIO_HCLK_HZ 100000000 2854d254feSAndy Yan #define AUDIO_PCLK_HZ 100000000 2954d254feSAndy Yan 3027ee7641SFinley Xiao #define RK3308_PLL_CON(x) ((x) * 0x4) 3127ee7641SFinley Xiao #define RK3308_MODE_CON 0xa0 3227ee7641SFinley Xiao 3354d254feSAndy Yan /* RK3308 pll id */ 3454d254feSAndy Yan enum rk3308_pll_id { 3554d254feSAndy Yan APLL, 3654d254feSAndy Yan DPLL, 3754d254feSAndy Yan VPLL0, 3854d254feSAndy Yan VPLL1, 3954d254feSAndy Yan PLL_COUNT, 4054d254feSAndy Yan }; 4154d254feSAndy Yan 42efdbac34SFinley Xiao struct rk3308_clk_info { 43efdbac34SFinley Xiao unsigned long id; 44efdbac34SFinley Xiao char *name; 45efdbac34SFinley Xiao }; 46efdbac34SFinley Xiao 473d78ac3eSAndy Yan /* Private data for the clock driver - used by rockchip_get_cru() */ 483d78ac3eSAndy Yan struct rk3308_clk_priv { 493d78ac3eSAndy Yan struct rk3308_cru *cru; 5021ab40a8SFinley Xiao ulong armclk_hz; 51fc4a6bd4SFinley Xiao ulong dpll_hz; 52fc4a6bd4SFinley Xiao ulong vpll0_hz; 53fc4a6bd4SFinley Xiao ulong vpll1_hz; 54093fdd9fSElaine Zhang ulong armclk_enter_hz; 55093fdd9fSElaine Zhang ulong armclk_init_hz; 56093fdd9fSElaine Zhang bool sync_kernel; 57093fdd9fSElaine Zhang bool set_armclk_rate; 583d78ac3eSAndy Yan }; 593d78ac3eSAndy Yan 603d78ac3eSAndy Yan struct rk3308_cru { 613d78ac3eSAndy Yan struct rk3308_pll { 623d78ac3eSAndy Yan unsigned int con0; 633d78ac3eSAndy Yan unsigned int con1; 643d78ac3eSAndy Yan unsigned int con2; 653d78ac3eSAndy Yan unsigned int con3; 663d78ac3eSAndy Yan unsigned int con4; 673d78ac3eSAndy Yan unsigned int reserved0[3]; 683d78ac3eSAndy Yan } pll[4]; 693d78ac3eSAndy Yan unsigned int reserved1[8]; 703d78ac3eSAndy Yan unsigned int mode; 713d78ac3eSAndy Yan unsigned int misc; 723d78ac3eSAndy Yan unsigned int reserved2[2]; 733d78ac3eSAndy Yan unsigned int glb_cnt_th; 743d78ac3eSAndy Yan unsigned int glb_rst_st; 753d78ac3eSAndy Yan unsigned int glb_srst_fst; 763d78ac3eSAndy Yan unsigned int glb_srst_snd; 773d78ac3eSAndy Yan unsigned int glb_rst_con; 783d78ac3eSAndy Yan unsigned int pll_lock; 793d78ac3eSAndy Yan unsigned int reserved3[6]; 803d78ac3eSAndy Yan unsigned int hwffc_con0; 813d78ac3eSAndy Yan unsigned int reserved4; 823d78ac3eSAndy Yan unsigned int hwffc_th; 833d78ac3eSAndy Yan unsigned int hwffc_intst; 843d78ac3eSAndy Yan unsigned int apll_con0_s; 853d78ac3eSAndy Yan unsigned int apll_con1_s; 863d78ac3eSAndy Yan unsigned int clksel_con0_s; 873d78ac3eSAndy Yan unsigned int reserved5; 883d78ac3eSAndy Yan unsigned int clksel_con[74]; 893d78ac3eSAndy Yan unsigned int reserved6[54]; 903d78ac3eSAndy Yan unsigned int clkgate_con[15]; 913d78ac3eSAndy Yan unsigned int reserved7[(0x380 - 0x338) / 4 - 1]; 923d78ac3eSAndy Yan unsigned int ssgtbl[32]; 933d78ac3eSAndy Yan unsigned int softrst_con[10]; 943d78ac3eSAndy Yan unsigned int reserved8[(0x480 - 0x424) / 4 - 1]; 953d78ac3eSAndy Yan unsigned int sdmmc_con[2]; 963d78ac3eSAndy Yan unsigned int sdio_con[2]; 973d78ac3eSAndy Yan unsigned int emmc_con[2]; 983d78ac3eSAndy Yan }; 9954d254feSAndy Yan 10054d254feSAndy Yan enum { 10154d254feSAndy Yan /* PLLCON0*/ 10254d254feSAndy Yan PLL_BP_SHIFT = 15, 10354d254feSAndy Yan PLL_POSTDIV1_SHIFT = 12, 10454d254feSAndy Yan PLL_POSTDIV1_MASK = 7 << PLL_POSTDIV1_SHIFT, 10554d254feSAndy Yan PLL_FBDIV_SHIFT = 0, 10654d254feSAndy Yan PLL_FBDIV_MASK = 0xfff, 10754d254feSAndy Yan 10854d254feSAndy Yan /* PLLCON1 */ 10954d254feSAndy Yan PLL_PDSEL_SHIFT = 15, 11054d254feSAndy Yan PLL_PD1_SHIFT = 14, 11154d254feSAndy Yan PLL_PD_SHIFT = 13, 11254d254feSAndy Yan PLL_PD_MASK = 1 << PLL_PD_SHIFT, 113*8ec8d58eSZhihuan He PLLPD0_POWER_DOWN = 1, 114*8ec8d58eSZhihuan He PLLPD0_NO_POWER_DOWN = 0, 11554d254feSAndy Yan PLL_DSMPD_SHIFT = 12, 11654d254feSAndy Yan PLL_DSMPD_MASK = 1 << PLL_DSMPD_SHIFT, 11754d254feSAndy Yan PLL_LOCK_STATUS_SHIFT = 10, 11854d254feSAndy Yan PLL_LOCK_STATUS_MASK = 1 << PLL_LOCK_STATUS_SHIFT, 11954d254feSAndy Yan PLL_POSTDIV2_SHIFT = 6, 12054d254feSAndy Yan PLL_POSTDIV2_MASK = 7 << PLL_POSTDIV2_SHIFT, 12154d254feSAndy Yan PLL_REFDIV_SHIFT = 0, 12254d254feSAndy Yan PLL_REFDIV_MASK = 0x3f, 12354d254feSAndy Yan 12454d254feSAndy Yan /* PLLCON2 */ 12554d254feSAndy Yan PLL_FOUT4PHASEPD_SHIFT = 27, 12654d254feSAndy Yan PLL_FOUTVCOPD_SHIFT = 26, 12754d254feSAndy Yan PLL_FOUTPOSTDIVPD_SHIFT = 25, 12854d254feSAndy Yan PLL_DACPD_SHIFT = 24, 12954d254feSAndy Yan PLL_FRAC_DIV = 0xffffff, 13054d254feSAndy Yan 13154d254feSAndy Yan /* CRU_MODE */ 13254d254feSAndy Yan PLLMUX_FROM_XIN24M = 0, 13354d254feSAndy Yan PLLMUX_FROM_PLL, 13454d254feSAndy Yan PLLMUX_FROM_RTC32K, 13554d254feSAndy Yan USBPHY480M_MODE_SHIFT = 8, 13654d254feSAndy Yan USBPHY480M_MODE_MASK = 3 << USBPHY480M_MODE_SHIFT, 13754d254feSAndy Yan VPLL1_MODE_SHIFT = 6, 13854d254feSAndy Yan VPLL1_MODE_MASK = 3 << VPLL1_MODE_SHIFT, 13954d254feSAndy Yan VPLL0_MODE_SHIFT = 4, 14054d254feSAndy Yan VPLL0_MODE_MASK = 3 << VPLL0_MODE_SHIFT, 14154d254feSAndy Yan DPLL_MODE_SHIFT = 2, 14254d254feSAndy Yan DPLL_MODE_MASK = 3 << DPLL_MODE_SHIFT, 14354d254feSAndy Yan APLL_MODE_SHIFT = 0, 14454d254feSAndy Yan APLL_MODE_MASK = 3 << APLL_MODE_SHIFT, 14554d254feSAndy Yan 14654d254feSAndy Yan /* CRU_CLK_SEL0_CON */ 14754d254feSAndy Yan CORE_ACLK_DIV_SHIFT = 12, 14854d254feSAndy Yan CORE_ACLK_DIV_MASK = 0x7 << CORE_ACLK_DIV_SHIFT, 14954d254feSAndy Yan CORE_DBG_DIV_SHIFT = 8, 15054d254feSAndy Yan CORE_DBG_DIV_MASK = 0xf << CORE_DBG_DIV_SHIFT, 15154d254feSAndy Yan CORE_CLK_PLL_SEL_SHIFT = 6, 15254d254feSAndy Yan CORE_CLK_PLL_SEL_MASK = 0x3 << CORE_CLK_PLL_SEL_SHIFT, 15354d254feSAndy Yan CORE_CLK_PLL_SEL_APLL = 0, 15454d254feSAndy Yan CORE_CLK_PLL_SEL_VPLL0, 15554d254feSAndy Yan CORE_CLK_PLL_SEL_VPLL1, 15654d254feSAndy Yan CORE_DIV_CON_SHIFT = 0, 15754d254feSAndy Yan CORE_DIV_CON_MASK = 0x0f << CORE_DIV_CON_SHIFT, 15854d254feSAndy Yan 1591bbed247SFinley Xiao /* CRU_CLK_SEL2_CON */ 1601bbed247SFinley Xiao CLK_RTC32K_SEL_SHIFT = 8, 1611bbed247SFinley Xiao CLK_RTC32K_SEL_MASK = 3 << CLK_RTC32K_SEL_SHIFT, 1621bbed247SFinley Xiao CLK_RTC32K_IO = 0, 1631bbed247SFinley Xiao CLK_RTC32K_PVTM, 1641bbed247SFinley Xiao CLK_RTC32K_FRAC_DIV, 1651bbed247SFinley Xiao CLK_RTC32K_DIV, 1661bbed247SFinley Xiao 1671bbed247SFinley Xiao /* CRU_CLK_SEL3_CON */ 1681bbed247SFinley Xiao CLK_RTC32K_FRAC_NUMERATOR_SHIFT = 16, 1691bbed247SFinley Xiao CLK_RTC32K_FRAC_NUMERATOR_MASK = 0xffff << 16, 1701bbed247SFinley Xiao CLK_RTC32K_FRAC_DENOMINATOR_SHIFT = 0, 1711bbed247SFinley Xiao CLK_RTC32K_FRAC_DENOMINATOR_MASK = 0xffff, 1721bbed247SFinley Xiao 17354d254feSAndy Yan /* CRU_CLK_SEL5_CON */ 17454d254feSAndy Yan BUS_PLL_SEL_SHIFT = 6, 17554d254feSAndy Yan BUS_PLL_SEL_MASK = 0x3 << BUS_PLL_SEL_SHIFT, 17654d254feSAndy Yan BUS_PLL_SEL_DPLL = 0, 17754d254feSAndy Yan BUS_PLL_SEL_VPLL0, 17854d254feSAndy Yan BUS_PLL_SEL_VPLL1, 17954d254feSAndy Yan BUS_ACLK_DIV_SHIFT = 0, 18054d254feSAndy Yan BUS_ACLK_DIV_MASK = 0x1f << BUS_ACLK_DIV_SHIFT, 18154d254feSAndy Yan 18254d254feSAndy Yan /* CRU_CLK_SEL6_CON */ 18354d254feSAndy Yan BUS_PCLK_DIV_SHIFT = 8, 18454d254feSAndy Yan BUS_PCLK_DIV_MASK = 0x1f << BUS_PCLK_DIV_SHIFT, 18554d254feSAndy Yan BUS_HCLK_DIV_SHIFT = 0, 18654d254feSAndy Yan BUS_HCLK_DIV_MASK = 0x1f << BUS_HCLK_DIV_SHIFT, 18754d254feSAndy Yan 1880cde5925SElaine Zhang /* CRU_CLK_SEL7_CON */ 1890cde5925SElaine Zhang CRYPTO_APK_SEL_SHIFT = 14, 1900cde5925SElaine Zhang CRYPTO_APK_PLL_SEL_MASK = 3 << CRYPTO_APK_SEL_SHIFT, 1910cde5925SElaine Zhang CRYPTO_PLL_SEL_DPLL = 0, 1920cde5925SElaine Zhang CRYPTO_PLL_SEL_VPLL0, 1930cde5925SElaine Zhang CRYPTO_PLL_SEL_VPLL1 = 0, 1940cde5925SElaine Zhang CRYPTO_APK_DIV_SHIFT = 8, 1950cde5925SElaine Zhang CRYPTO_APK_DIV_MASK = 0x1f << CRYPTO_APK_DIV_SHIFT, 1960cde5925SElaine Zhang CRYPTO_PLL_SEL_SHIFT = 6, 1970cde5925SElaine Zhang CRYPTO_PLL_SEL_MASK = 3 << CRYPTO_PLL_SEL_SHIFT, 1980cde5925SElaine Zhang CRYPTO_DIV_SHIFT = 0, 1990cde5925SElaine Zhang CRYPTO_DIV_MASK = 0x1f << CRYPTO_DIV_SHIFT, 2000cde5925SElaine Zhang 201ec20593dSFinley Xiao /* CRU_CLK_SEL8_CON */ 202ec20593dSFinley Xiao DCLK_VOP_SEL_SHIFT = 14, 203ec20593dSFinley Xiao DCLK_VOP_SEL_MASK = 0x3 << DCLK_VOP_SEL_SHIFT, 204ec20593dSFinley Xiao DCLK_VOP_SEL_DIVOUT = 0, 205ec20593dSFinley Xiao DCLK_VOP_SEL_FRACOUT, 206ec20593dSFinley Xiao DCLK_VOP_SEL_24M, 207ec20593dSFinley Xiao DCLK_VOP_PLL_SEL_SHIFT = 10, 208ec20593dSFinley Xiao DCLK_VOP_PLL_SEL_MASK = 0x3 << DCLK_VOP_PLL_SEL_SHIFT, 209ec20593dSFinley Xiao DCLK_VOP_PLL_SEL_DPLL = 0, 210ec20593dSFinley Xiao DCLK_VOP_PLL_SEL_VPLL0, 211ec20593dSFinley Xiao DCLK_VOP_PLL_SEL_VPLL1, 212ec20593dSFinley Xiao DCLK_VOP_DIV_SHIFT = 0, 213ec20593dSFinley Xiao DCLK_VOP_DIV_MASK = 0xff, 214ec20593dSFinley Xiao 21554d254feSAndy Yan /* CRU_CLK_SEL25_CON */ 21654d254feSAndy Yan /* CRU_CLK_SEL26_CON */ 21754d254feSAndy Yan /* CRU_CLK_SEL27_CON */ 21854d254feSAndy Yan /* CRU_CLK_SEL28_CON */ 21954d254feSAndy Yan CLK_I2C_PLL_SEL_SHIFT = 14, 22054d254feSAndy Yan CLK_I2C_PLL_SEL_MASK = 0x3 << CLK_I2C_PLL_SEL_SHIFT, 22154d254feSAndy Yan CLK_I2C_PLL_SEL_DPLL = 0, 22254d254feSAndy Yan CLK_I2C_PLL_SEL_VPLL0, 22354d254feSAndy Yan CLK_I2C_PLL_SEL_24M, 22454d254feSAndy Yan CLK_I2C_DIV_CON_SHIFT = 0, 22554d254feSAndy Yan CLK_I2C_DIV_CON_MASK = 0x7f << CLK_I2C_DIV_CON_SHIFT, 22654d254feSAndy Yan 22754d254feSAndy Yan /* CRU_CLK_SEL29_CON */ 22854d254feSAndy Yan CLK_PWM_PLL_SEL_SHIFT = 14, 22954d254feSAndy Yan CLK_PWM_PLL_SEL_MASK = 0x3 << CLK_PWM_PLL_SEL_SHIFT, 23054d254feSAndy Yan CLK_PWM_PLL_SEL_DPLL = 0, 23154d254feSAndy Yan CLK_PWM_PLL_SEL_VPLL0, 23254d254feSAndy Yan CLK_PWM_PLL_SEL_24M, 23354d254feSAndy Yan CLK_PWM_DIV_CON_SHIFT = 0, 23454d254feSAndy Yan CLK_PWM_DIV_CON_MASK = 0x7f << CLK_PWM_DIV_CON_SHIFT, 23554d254feSAndy Yan 23654d254feSAndy Yan /* CRU_CLK_SEL30_CON */ 23754d254feSAndy Yan /* CRU_CLK_SEL31_CON */ 23854d254feSAndy Yan /* CRU_CLK_SEL32_CON */ 23954d254feSAndy Yan CLK_SPI_PLL_SEL_SHIFT = 14, 24054d254feSAndy Yan CLK_SPI_PLL_SEL_MASK = 0x3 << CLK_SPI_PLL_SEL_SHIFT, 24154d254feSAndy Yan CLK_SPI_PLL_SEL_DPLL = 0, 24254d254feSAndy Yan CLK_SPI_PLL_SEL_VPLL0, 24354d254feSAndy Yan CLK_SPI_PLL_SEL_24M, 24454d254feSAndy Yan CLK_SPI_DIV_CON_SHIFT = 0, 24554d254feSAndy Yan CLK_SPI_DIV_CON_MASK = 0x7f << CLK_SPI_DIV_CON_SHIFT, 24654d254feSAndy Yan 24754d254feSAndy Yan /* CRU_CLK_SEL34_CON */ 24854d254feSAndy Yan CLK_SARADC_DIV_CON_SHIFT = 0, 24954d254feSAndy Yan CLK_SARADC_DIV_CON_MASK = 0x7ff << CLK_SARADC_DIV_CON_SHIFT, 25054d254feSAndy Yan 25154d254feSAndy Yan /* CRU_CLK_SEL36_CON */ 25254d254feSAndy Yan PERI_PLL_SEL_SHIFT = 6, 25354d254feSAndy Yan PERI_PLL_SEL_MASK = 0x3 << PERI_PLL_SEL_SHIFT, 25454d254feSAndy Yan PERI_PLL_DPLL = 0, 25554d254feSAndy Yan PERI_PLL_VPLL0, 25654d254feSAndy Yan PERI_PLL_VPLL1, 25754d254feSAndy Yan PERI_ACLK_DIV_SHIFT = 0, 25854d254feSAndy Yan PERI_ACLK_DIV_MASK = 0x1f << PERI_ACLK_DIV_SHIFT, 25954d254feSAndy Yan 26054d254feSAndy Yan /* CRU_CLK_SEL37_CON */ 26154d254feSAndy Yan PERI_PCLK_DIV_SHIFT = 8, 26254d254feSAndy Yan PERI_PCLK_DIV_MASK = 0x1f << PERI_PCLK_DIV_SHIFT, 26354d254feSAndy Yan PERI_HCLK_DIV_SHIFT = 0, 26454d254feSAndy Yan PERI_HCLK_DIV_MASK = 0x1f << PERI_HCLK_DIV_SHIFT, 26554d254feSAndy Yan 26654d254feSAndy Yan /* CRU_CLKSEL41_CON */ 26754d254feSAndy Yan EMMC_CLK_SEL_SHIFT = 15, 26854d254feSAndy Yan EMMC_CLK_SEL_MASK = 1 << EMMC_CLK_SEL_SHIFT, 26954d254feSAndy Yan EMMC_CLK_SEL_EMMC = 0, 27054d254feSAndy Yan EMMC_CLK_SEL_EMMC_DIV50, 27154d254feSAndy Yan EMMC_PLL_SHIFT = 8, 27254d254feSAndy Yan EMMC_PLL_MASK = 0x3 << EMMC_PLL_SHIFT, 27354d254feSAndy Yan EMMC_SEL_DPLL = 0, 27454d254feSAndy Yan EMMC_SEL_VPLL0, 27554d254feSAndy Yan EMMC_SEL_VPLL1, 27654d254feSAndy Yan EMMC_SEL_24M, 27754d254feSAndy Yan EMMC_DIV_SHIFT = 0, 27854d254feSAndy Yan EMMC_DIV_MASK = 0xff << EMMC_DIV_SHIFT, 2796c96c4c3SFinley Xiao 280d0999afbSFinley Xiao /* CRU_CLKSEL42_CON */ 281d0999afbSFinley Xiao SCLK_SFC_SEL_SHIFT = 14, 282d0999afbSFinley Xiao SCLK_SFC_SEL_MASK = 0x3 << SCLK_SFC_SEL_SHIFT, 283d0999afbSFinley Xiao SCLK_SFC_SEL_DPLL = 0, 284d0999afbSFinley Xiao SCLK_SFC_SEL_VPLL0, 285d0999afbSFinley Xiao SCLK_SFC_SEL_VPLL1, 286d0999afbSFinley Xiao SCLK_SFC_DIV_SHIFT = 0, 287d0999afbSFinley Xiao SCLK_SFC_DIV_MASK = 0x7f << SCLK_SFC_DIV_SHIFT, 288d0999afbSFinley Xiao 289200683eaSDavid Wu /* CRU_CLKSEL43_CON */ 290200683eaSDavid Wu MAC_CLK_SPEED_SEL_SHIFT = 15, 291200683eaSDavid Wu MAC_CLK_SPEED_SEL_MASK = 1 << MAC_CLK_SPEED_SEL_SHIFT, 292200683eaSDavid Wu MAC_CLK_SPEED_SEL_10M = 0, 293200683eaSDavid Wu MAC_CLK_SPEED_SEL_100M, 294200683eaSDavid Wu MAC_CLK_SOURCE_SEL_SHIFT = 14, 295200683eaSDavid Wu MAC_CLK_SOURCE_SEL_MASK = 1 << MAC_CLK_SOURCE_SEL_SHIFT, 296200683eaSDavid Wu MAC_CLK_SOURCE_SEL_INTERNAL = 0, 297200683eaSDavid Wu MAC_CLK_SOURCE_SEL_EXTERNAL, 298200683eaSDavid Wu MAC_PLL_SHIFT = 6, 299200683eaSDavid Wu MAC_PLL_MASK = 0x3 << MAC_PLL_SHIFT, 300200683eaSDavid Wu MAC_SEL_DPLL = 0, 301200683eaSDavid Wu MAC_SEL_VPLL0, 302200683eaSDavid Wu MAC_SEL_VPLL1, 303200683eaSDavid Wu MAC_DIV_SHIFT = 0, 304200683eaSDavid Wu MAC_DIV_MASK = 0x1f << MAC_DIV_SHIFT, 305200683eaSDavid Wu 3066c96c4c3SFinley Xiao /* CRU_CLK_SEL45_CON */ 3076c96c4c3SFinley Xiao AUDIO_PCLK_DIV_SHIFT = 8, 3086c96c4c3SFinley Xiao AUDIO_PCLK_DIV_MASK = 0x1f << AUDIO_PCLK_DIV_SHIFT, 3096c96c4c3SFinley Xiao AUDIO_PLL_SEL_SHIFT = 6, 3106c96c4c3SFinley Xiao AUDIO_PLL_SEL_MASK = 0x3 << AUDIO_PLL_SEL_SHIFT, 3116c96c4c3SFinley Xiao AUDIO_PLL_VPLL0 = 0, 3126c96c4c3SFinley Xiao AUDIO_PLL_VPLL1, 3136c96c4c3SFinley Xiao AUDIO_PLL_24M, 3146c96c4c3SFinley Xiao AUDIO_HCLK_DIV_SHIFT = 0, 3156c96c4c3SFinley Xiao AUDIO_HCLK_DIV_MASK = 0x1f << AUDIO_HCLK_DIV_SHIFT, 31654d254feSAndy Yan }; 31754d254feSAndy Yan 3183d78ac3eSAndy Yan check_member(rk3308_cru, emmc_con[1], 0x494); 3193d78ac3eSAndy Yan 320*8ec8d58eSZhihuan He enum { /* DPLL_CON0, VPLL0_CON0, VPLL1_CON0 */ 321*8ec8d58eSZhihuan He POSTDIV1_SHIFT = 12, 322*8ec8d58eSZhihuan He POSTDIV1_MASK = 0x7 << POSTDIV1_SHIFT, 323*8ec8d58eSZhihuan He FBDIV_SHIFT = 0, 324*8ec8d58eSZhihuan He FBDIV_MASK = 0xfff << FBDIV_SHIFT, 325*8ec8d58eSZhihuan He 326*8ec8d58eSZhihuan He /* DPLL_CON1, VPLL0_CON1, VPLL1_CON1 */ 327*8ec8d58eSZhihuan He PLLPD0_SHIFT = 13, 328*8ec8d58eSZhihuan He PLLPD0_MASK = 1 << PLLPD0_SHIFT, 329*8ec8d58eSZhihuan He DSMPD_SHIFT = 12, 330*8ec8d58eSZhihuan He DSMPD_MASK = 1 << DSMPD_SHIFT, 331*8ec8d58eSZhihuan He INTEGER_MODE = 1, 332*8ec8d58eSZhihuan He FRACTIONAL_MODE = 0, 333*8ec8d58eSZhihuan He PLL_LOCK_SHIFT = 10, 334*8ec8d58eSZhihuan He PLL_LOCK_MASK = 0x1 << PLL_LOCK_SHIFT, 335*8ec8d58eSZhihuan He POSTDIV2_SHIFT = 6, 336*8ec8d58eSZhihuan He POSTDIV2_MASK = 0x7 << POSTDIV2_SHIFT, 337*8ec8d58eSZhihuan He REFDIV_SHIFT = 0, 338*8ec8d58eSZhihuan He REFDIV_MASK = 0x3f << REFDIV_SHIFT, 339*8ec8d58eSZhihuan He 340*8ec8d58eSZhihuan He /* VPLL0_CON2, VPLL1_CON2 */ 341*8ec8d58eSZhihuan He FRACDIV_SHIFT = 0, 342*8ec8d58eSZhihuan He FRACDIV_MASK = 0xffffff << FRACDIV_SHIFT, 343*8ec8d58eSZhihuan He 344*8ec8d58eSZhihuan He /* CRU_MODE */ 345*8ec8d58eSZhihuan He VPLL1_CLK_SEL_SHIFT = 13, 346*8ec8d58eSZhihuan He VPLL1_CLK_SEL_MASK = 0x1 << VPLL1_CLK_SEL_SHIFT, 347*8ec8d58eSZhihuan He VPLL1_CLK_SEL_WITHOUT_LVL_SHIFT = 1, 348*8ec8d58eSZhihuan He 349*8ec8d58eSZhihuan He VPLL0_CLK_SEL_SHIFT = 12, 350*8ec8d58eSZhihuan He VPLL0_CLK_SEL_MASK = 0x1 << VPLL0_CLK_SEL_SHIFT, 351*8ec8d58eSZhihuan He VPLL0_CLK_SEL_WITHOUT_LVL_SHIFT = 1, 352*8ec8d58eSZhihuan He 353*8ec8d58eSZhihuan He DPLL_CLK_SEL_SHIFT = 11, 354*8ec8d58eSZhihuan He DPLL_CLK_SEL_MASK = 0x1 << DPLL_CLK_SEL_SHIFT, 355*8ec8d58eSZhihuan He DPLL_CLK_SEL_WITHOUT_LVL_SHIFT = 1, 356*8ec8d58eSZhihuan He 357*8ec8d58eSZhihuan He APLL_CLK_SEL_SHIFT = 10, 358*8ec8d58eSZhihuan He APLL_CLK_SEL_MASK = 0x1 << APLL_CLK_SEL_SHIFT, 359*8ec8d58eSZhihuan He APLL_CLK_SEL_WITHOUT_LVL_SHIFT = 1, 360*8ec8d58eSZhihuan He 361*8ec8d58eSZhihuan He VPLL1_WORK_MODE_SHIFT = 6, 362*8ec8d58eSZhihuan He VPLL1_WORK_MODE_MASK = 0x3 << VPLL1_WORK_MODE_SHIFT, 363*8ec8d58eSZhihuan He VPLL1_WORK_MODE_XIN_OSC0 = 0, 364*8ec8d58eSZhihuan He VPLL1_WORK_MODE_PLL = 1, 365*8ec8d58eSZhihuan He VPLL1_WORK_MODE_32K = 2, 366*8ec8d58eSZhihuan He 367*8ec8d58eSZhihuan He VPLL0_WORK_MODE_SHIFT = 4, 368*8ec8d58eSZhihuan He VPLL0_WORK_MODE_MASK = 0x3 << VPLL0_WORK_MODE_SHIFT, 369*8ec8d58eSZhihuan He VPLL0_WORK_MODE_XIN_OSC0 = 0, 370*8ec8d58eSZhihuan He VPLL0_WORK_MODE_PLL = 1, 371*8ec8d58eSZhihuan He VPLL0_WORK_MODE_32K = 2, 372*8ec8d58eSZhihuan He 373*8ec8d58eSZhihuan He DPLL_WORK_MODE_SHIFT = 2, 374*8ec8d58eSZhihuan He DPLL_WORK_MODE_MASK = 0x3 << DPLL_WORK_MODE_SHIFT, 375*8ec8d58eSZhihuan He DPLL_WORK_MODE_XIN_OSC0 = 0, 376*8ec8d58eSZhihuan He DPLL_WORK_MODE_PLL = 1, 377*8ec8d58eSZhihuan He DPLL_WORK_MODE_32K = 2, 378*8ec8d58eSZhihuan He 379*8ec8d58eSZhihuan He APLL_WORK_MODE_SHIFT = 0, 380*8ec8d58eSZhihuan He APLL_WORK_MODE_MASK = 0x3 << APLL_WORK_MODE_SHIFT, 381*8ec8d58eSZhihuan He APLL_WORK_MODE_XIN_OSC0 = 0, 382*8ec8d58eSZhihuan He APLL_WORK_MODE_PLL = 1, 383*8ec8d58eSZhihuan He 384*8ec8d58eSZhihuan He /* GLB_RST_CON */ 385*8ec8d58eSZhihuan He WDT_GLB_SRST_CTRL_SHIFT = 1, 386*8ec8d58eSZhihuan He WDT_GLB_SRST_CTRL = 1, 387*8ec8d58eSZhihuan He TSADC_GLB_SRST_CTRL_SHIFT = 0, 388*8ec8d58eSZhihuan He TSADC_GLB_SRST_CTRL = 1, 389*8ec8d58eSZhihuan He 390*8ec8d58eSZhihuan He /* CLKSEL_CON1 */ 391*8ec8d58eSZhihuan He DDRPHY4X_PLL_CLK_SEL_SHIFT = 6, 392*8ec8d58eSZhihuan He DDRPHY4X_PLL_CLK_SEL_MASK = 0x3 << DDRPHY4X_PLL_CLK_SEL_SHIFT, 393*8ec8d58eSZhihuan He DDRPHY4X_PLL_CLK_SEL_DPLL = 0, 394*8ec8d58eSZhihuan He DDRPHY4X_DIV_CON_SIHFT = 0, 395*8ec8d58eSZhihuan He DDRPHY4X_DIV_CON_MASK = 0x7 << DDRPHY4X_DIV_CON_SIHFT, 396*8ec8d58eSZhihuan He DDRPHY4X_DIV_CON = 0, 397*8ec8d58eSZhihuan He 398*8ec8d58eSZhihuan He /* CLKSEL_CON5 */ 399*8ec8d58eSZhihuan He A_H_PCLK_BUS_PLL_SEL_SHIFT = 6, 400*8ec8d58eSZhihuan He A_H_PCLK_BUS_PLL_SEL_MASK = 0x3 << A_H_PCLK_BUS_PLL_SEL_SHIFT, 401*8ec8d58eSZhihuan He A_H_PCLK_BUS_PLL_SEL_DPLL = 0, 402*8ec8d58eSZhihuan He A_H_PCLK_BUS_PLL_SEL_VPLL0 = 1, 403*8ec8d58eSZhihuan He A_H_PCLK_BUS_PLL_SEL_VPLL1 = 2, 404*8ec8d58eSZhihuan He ACLK_BUS_DIV_CON_SHIFT = 0, 405*8ec8d58eSZhihuan He ACLK_BUS_DIV_CON_MASK = 0x1f << ACLK_BUS_DIV_CON_SHIFT, 406*8ec8d58eSZhihuan He ACLK_BUS_DIV_CON_7 = 7, 407*8ec8d58eSZhihuan He ACLK_BUS_DIV_CON_5 = 5, 408*8ec8d58eSZhihuan He ACLK_BUS_DIV_CON_3 = 3, 409*8ec8d58eSZhihuan He 410*8ec8d58eSZhihuan He /* CLKSEL_CON6 */ 411*8ec8d58eSZhihuan He PCLK_BUS_DIV_CON_SHIFT = 8, 412*8ec8d58eSZhihuan He PCLK_BUS_DIV_CON_MASK = 0x1f << PCLK_BUS_DIV_CON_SHIFT, 413*8ec8d58eSZhihuan He PCLK_BUS_DIV_CON_31 = 31, 414*8ec8d58eSZhihuan He PCLK_BUS_DIV_CON_25 = 25, 415*8ec8d58eSZhihuan He PCLK_BUS_DIV_CON_15 = 15, 416*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_SHIFT = 0, 417*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_MASK = 0x1f << HCLK_BUS_DIV_CON_SHIFT, 418*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_15 = 15, 419*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_13 = 13, 420*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_11 = 11, 421*8ec8d58eSZhihuan He HCLK_BUS_DIV_CON_7 = 7, 422*8ec8d58eSZhihuan He 423*8ec8d58eSZhihuan He /* CLKSEL_CON7 */ 424*8ec8d58eSZhihuan He CLK_CRYPTO_APK_SEL_SHIFT = 14, 425*8ec8d58eSZhihuan He CLK_CRYPTO_APK_SEL_MASK = 0x3 << CLK_CRYPTO_APK_SEL_SHIFT, 426*8ec8d58eSZhihuan He CLK_CRYPTO_APK_SEL_DPLL = 0, 427*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_SHIFT = 8, 428*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_MASK = 0x1f << CLK_CRYPTO_APK_DIV_SHIFT, 429*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_15 = 15, 430*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_13 = 13, 431*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_11 = 11, 432*8ec8d58eSZhihuan He CLK_CRYPTO_APK_DIV_7 = 7, 433*8ec8d58eSZhihuan He CLK_CRYPTO_PLL_SEL_SHIFT = 6, 434*8ec8d58eSZhihuan He CLK_CRYPTO_PLL_SEL_MASK = 0x3 << CLK_CRYPTO_PLL_SEL_SHIFT, 435*8ec8d58eSZhihuan He CLK_CRYPTO_PLL_SEL_DPLL = 0, 436*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_SHIFT = 0, 437*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_MASK = 0x1f << CLK_CRYPTO_DIV_CON_SHIFT, 438*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_15 = 15, 439*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_13 = 13, 440*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_11 = 11, 441*8ec8d58eSZhihuan He CLK_CRYPTO_DIV_CON_7 = 7, 442*8ec8d58eSZhihuan He 443*8ec8d58eSZhihuan He /* CLKSEL_CON8 */ 444*8ec8d58eSZhihuan He DCLK_VOP_SEL_DCLK_VOP = 0, 445*8ec8d58eSZhihuan He DCLK_VOP_DIV_CON_SHIFT = 0, 446*8ec8d58eSZhihuan He DCLK_VOP_DIV_CON_MASK = 0xff << DCLK_VOP_DIV_CON_SHIFT, 447*8ec8d58eSZhihuan He DCLK_VOP_DIV_CON_15 = 15, 448*8ec8d58eSZhihuan He DCLK_VOP_DIV_CON_11 = 11, 449*8ec8d58eSZhihuan He 450*8ec8d58eSZhihuan He /* CLKSEL_CON10 */ 451*8ec8d58eSZhihuan He CLK_UART0_PLL_SEL_SHIFT = 13, 452*8ec8d58eSZhihuan He CLK_UART0_PLL_SEL_MASK = 0x7 << CLK_UART0_PLL_SEL_SHIFT, 453*8ec8d58eSZhihuan He CLK_UART0_PLL_SEL_XIN_OSC0 = 4, 454*8ec8d58eSZhihuan He CLK_UART0_DIV_CON_SHIFT = 0, 455*8ec8d58eSZhihuan He CLK_UART0_DIV_CON_MASK = 0x1f << CLK_UART0_DIV_CON_SHIFT, 456*8ec8d58eSZhihuan He CLK_UART0_DIV_CON = 0, 457*8ec8d58eSZhihuan He CLK_UART0_DIV_CON_15 = 15, 458*8ec8d58eSZhihuan He 459*8ec8d58eSZhihuan He /* CLKSEL_CON13 */ 460*8ec8d58eSZhihuan He CLK_UART1_PLL_SEL_SHIFT = 13, 461*8ec8d58eSZhihuan He CLK_UART1_PLL_SEL_MASK = 0x7 << CLK_UART1_PLL_SEL_SHIFT, 462*8ec8d58eSZhihuan He CLK_UART1_PLL_SEL_XIN_OSC0 = 4, 463*8ec8d58eSZhihuan He CLK_UART1_DIV_CON_SHIFT = 0, 464*8ec8d58eSZhihuan He CLK_UART1_DIV_CON_MASK = 0x1f << CLK_UART1_DIV_CON_SHIFT, 465*8ec8d58eSZhihuan He CLK_UART1_DIV_CON = 0, 466*8ec8d58eSZhihuan He CLK_UART1_DIV_CON_15 = 15, 467*8ec8d58eSZhihuan He 468*8ec8d58eSZhihuan He /* CLKSEL_CON16 */ 469*8ec8d58eSZhihuan He CLK_UART2_PLL_SEL_SHIFT = 13, 470*8ec8d58eSZhihuan He CLK_UART2_PLL_SEL_MASK = 0x7 << CLK_UART2_PLL_SEL_SHIFT, 471*8ec8d58eSZhihuan He CLK_UART2_PLL_SEL_XIN_OSC0 = 4, 472*8ec8d58eSZhihuan He CLK_UART2_DIV_CON_SHIFT = 0, 473*8ec8d58eSZhihuan He CLK_UART2_DIV_CON_MASK = 0x1f << CLK_UART2_DIV_CON_SHIFT, 474*8ec8d58eSZhihuan He CLK_UART2_DIV_CON = 0, 475*8ec8d58eSZhihuan He CLK_UART2_DIV_CON_15 = 15, 476*8ec8d58eSZhihuan He 477*8ec8d58eSZhihuan He /* CLKSEL_CON19 */ 478*8ec8d58eSZhihuan He CLK_UART3_PLL_SEL_SHIFT = 13, 479*8ec8d58eSZhihuan He CLK_UART3_PLL_SEL_MASK = 0x7 << CLK_UART3_PLL_SEL_SHIFT, 480*8ec8d58eSZhihuan He CLK_UART3_PLL_SEL_XIN_OSC0 = 4, 481*8ec8d58eSZhihuan He CLK_UART3_DIV_CON_SHIFT = 0, 482*8ec8d58eSZhihuan He CLK_UART3_DIV_CON_MASK = 0x1f << CLK_UART3_DIV_CON_SHIFT, 483*8ec8d58eSZhihuan He CLK_UART3_DIV_CON = 0, 484*8ec8d58eSZhihuan He CLK_UART3_DIV_CON_15 = 15, 485*8ec8d58eSZhihuan He 486*8ec8d58eSZhihuan He /* CLKSEL_CON22 */ 487*8ec8d58eSZhihuan He CLK_UART4_PLL_SEL_SHIFT = 13, 488*8ec8d58eSZhihuan He CLK_UART4_PLL_SEL_MASK = 0x7 << CLK_UART4_PLL_SEL_SHIFT, 489*8ec8d58eSZhihuan He CLK_UART4_PLL_SEL_XIN_OSC0 = 4, 490*8ec8d58eSZhihuan He CLK_UART4_DIV_CON_SHIFT = 0, 491*8ec8d58eSZhihuan He CLK_UART4_DIV_CON_MASK = 0x1f << CLK_UART4_DIV_CON_SHIFT, 492*8ec8d58eSZhihuan He CLK_UART4_DIV_CON = 0, 493*8ec8d58eSZhihuan He CLK_UART4_DIV_CON_15 = 15, 494*8ec8d58eSZhihuan He 495*8ec8d58eSZhihuan He /* CLKSEL_CON25 */ 496*8ec8d58eSZhihuan He CLK_I2C0_PLL_SEL_SHIFT = 14, 497*8ec8d58eSZhihuan He CLK_I2C0_PLL_SEL_MASK = 0x3 << CLK_I2C0_PLL_SEL_SHIFT, 498*8ec8d58eSZhihuan He CLK_I2C0_PLL_SEL_DPLL = 0, 499*8ec8d58eSZhihuan He CLK_I2C0_DIV_CON_SHIFT = 0, 500*8ec8d58eSZhihuan He CLK_I2C0_DIV_CON_MASK = 0x7f << CLK_I2C0_DIV_CON_SHIFT, 501*8ec8d58eSZhihuan He CLK_I2C0_DIV_CON_7 = 7, 502*8ec8d58eSZhihuan He CLK_I2C0_DIV_CON_5 = 5, 503*8ec8d58eSZhihuan He CLK_I2C0_DIV_CON_3 = 3, 504*8ec8d58eSZhihuan He 505*8ec8d58eSZhihuan He /* CLKSEL_CON26 */ 506*8ec8d58eSZhihuan He CLK_I2C1_PLL_SEL_SHIFT = 14, 507*8ec8d58eSZhihuan He CLK_I2C1_PLL_SEL_MASK = 0x3 << CLK_I2C1_PLL_SEL_SHIFT, 508*8ec8d58eSZhihuan He CLK_I2C1_PLL_SEL_DPLL = 0, 509*8ec8d58eSZhihuan He CLK_I2C1_DIV_CON_SHIFT = 0, 510*8ec8d58eSZhihuan He CLK_I2C1_DIV_CON_MASK = 0x7f << CLK_I2C1_DIV_CON_SHIFT, 511*8ec8d58eSZhihuan He CLK_I2C1_DIV_CON_7 = 7, 512*8ec8d58eSZhihuan He CLK_I2C1_DIV_CON_5 = 5, 513*8ec8d58eSZhihuan He CLK_I2C1_DIV_CON_3 = 3, 514*8ec8d58eSZhihuan He 515*8ec8d58eSZhihuan He /* CLKSEL_CON27 */ 516*8ec8d58eSZhihuan He CLK_I2C2_PLL_SEL_SHIFT = 14, 517*8ec8d58eSZhihuan He CLK_I2C2_PLL_SEL_MASK = 0x3 << CLK_I2C2_PLL_SEL_SHIFT, 518*8ec8d58eSZhihuan He CLK_I2C2_PLL_SEL_DPLL = 0, 519*8ec8d58eSZhihuan He CLK_I2C2_DIV_CON_SHIFT = 0, 520*8ec8d58eSZhihuan He CLK_I2C2_DIV_CON_MASK = 0x7f << CLK_I2C2_DIV_CON_SHIFT, 521*8ec8d58eSZhihuan He CLK_I2C2_DIV_CON_7 = 7, 522*8ec8d58eSZhihuan He CLK_I2C2_DIV_CON_5 = 5, 523*8ec8d58eSZhihuan He CLK_I2C2_DIV_CON_3 = 3, 524*8ec8d58eSZhihuan He 525*8ec8d58eSZhihuan He /* CLKSEL_CON28 */ 526*8ec8d58eSZhihuan He CLK_I2C3_PLL_SEL_SHIFT = 14, 527*8ec8d58eSZhihuan He CLK_I2C3_PLL_SEL_MASK = 0x3 << CLK_I2C3_PLL_SEL_SHIFT, 528*8ec8d58eSZhihuan He CLK_I2C3_PLL_SEL_DPLL = 0, 529*8ec8d58eSZhihuan He CLK_I2C3_DIV_CON_SHIFT = 0, 530*8ec8d58eSZhihuan He CLK_I2C3_DIV_CON_MASK = 0x7f << CLK_I2C3_DIV_CON_SHIFT, 531*8ec8d58eSZhihuan He CLK_I2C3_DIV_CON_7 = 7, 532*8ec8d58eSZhihuan He CLK_I2C3_DIV_CON_5 = 5, 533*8ec8d58eSZhihuan He CLK_I2C3_DIV_CON_3 = 3, 534*8ec8d58eSZhihuan He 535*8ec8d58eSZhihuan He /* CLKSEL_CON29 */ 536*8ec8d58eSZhihuan He CLK_PWM_DIV_CON_15 = 15, 537*8ec8d58eSZhihuan He CLK_PWM_DIV_CON_11 = 11, 538*8ec8d58eSZhihuan He CLK_PWM_DIV_CON_7 = 7, 539*8ec8d58eSZhihuan He 540*8ec8d58eSZhihuan He /* CLKSEL_CON30 */ 541*8ec8d58eSZhihuan He CLK_SPI0_PLL_SEL_SHIFT = 14, 542*8ec8d58eSZhihuan He CLK_SPI0_PLL_SEL_MASK = 0x3 << CLK_SPI0_PLL_SEL_SHIFT, 543*8ec8d58eSZhihuan He CLK_SPI0_PLL_SEL_DPLL = 0, 544*8ec8d58eSZhihuan He CLK_SPI0_DIV_CON_SHIFT = 0, 545*8ec8d58eSZhihuan He CLK_SPI0_DIV_CON_MASK = 0x7f << CLK_SPI0_DIV_CON_SHIFT, 546*8ec8d58eSZhihuan He CLK_SPI0_DIV_CON_15 = 15, 547*8ec8d58eSZhihuan He CLK_SPI0_DIV_CON_11 = 11, 548*8ec8d58eSZhihuan He CLK_SPI0_DIV_CON_7 = 7, 549*8ec8d58eSZhihuan He 550*8ec8d58eSZhihuan He /* CLKSEL_CON31 */ 551*8ec8d58eSZhihuan He CLK_SPI1_PLL_SEL_SHIFT = 14, 552*8ec8d58eSZhihuan He CLK_SPI1_PLL_SEL_MASK = 0x3 << CLK_SPI1_PLL_SEL_SHIFT, 553*8ec8d58eSZhihuan He CLK_SPI1_PLL_SEL_DPLL = 0, 554*8ec8d58eSZhihuan He CLK_SPI1_DIV_CON_SHIFT = 0, 555*8ec8d58eSZhihuan He CLK_SPI1_DIV_CON_MASK = 0x7f << CLK_SPI1_DIV_CON_SHIFT, 556*8ec8d58eSZhihuan He CLK_SPI1_DIV_CON_15 = 15, 557*8ec8d58eSZhihuan He CLK_SPI1_DIV_CON_11 = 11, 558*8ec8d58eSZhihuan He CLK_SPI1_DIV_CON_7 = 7, 559*8ec8d58eSZhihuan He 560*8ec8d58eSZhihuan He /* CLKSEL_CON32 */ 561*8ec8d58eSZhihuan He CLK_SPI2_PLL_SEL_SHIFT = 14, 562*8ec8d58eSZhihuan He CLK_SPI2_PLL_SEL_MASK = 0x3 << CLK_SPI2_PLL_SEL_SHIFT, 563*8ec8d58eSZhihuan He CLK_SPI2_PLL_SEL_DPLL = 0, 564*8ec8d58eSZhihuan He CLK_SPI2_DIV_CON_SHIFT = 0, 565*8ec8d58eSZhihuan He CLK_SPI2_DIV_CON_MASK = 0x7f << CLK_SPI2_DIV_CON_SHIFT, 566*8ec8d58eSZhihuan He CLK_SPI2_DIV_CON_15 = 15, 567*8ec8d58eSZhihuan He CLK_SPI2_DIV_CON_11 = 11, 568*8ec8d58eSZhihuan He CLK_SPI2_DIV_CON_7 = 7, 569*8ec8d58eSZhihuan He 570*8ec8d58eSZhihuan He /* CLKSEL_CON36 */ 571*8ec8d58eSZhihuan He A_H_P_PERI_PLL_SEL_SHIFT = 6, 572*8ec8d58eSZhihuan He A_H_P_PERI_PLL_SEL_MASK = 0x3 << A_H_P_PERI_PLL_SEL_SHIFT, 573*8ec8d58eSZhihuan He A_H_P_PERI_PLL_SEL_DPLL = 0, 574*8ec8d58eSZhihuan He ACLK_PERI_DIV_CON_SHIFT = 0, 575*8ec8d58eSZhihuan He ACLK_PERI_DIV_CON_MASK = 0x1f << ACLK_PERI_DIV_CON_SHIFT, 576*8ec8d58eSZhihuan He ACLK_PERI_DIV_CON_7 = 7, 577*8ec8d58eSZhihuan He ACLK_PERI_DIV_CON_5 = 5, 578*8ec8d58eSZhihuan He ACLK_PERI_DIV_CON_3 = 3, 579*8ec8d58eSZhihuan He 580*8ec8d58eSZhihuan He /* CLKSEL_CON37 */ 581*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_SHIFT = 8, 582*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_MASK = 0x1f << PCLK_PERI_DIV_CON_SHIFT, 583*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_31 = 31, 584*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_27 = 27, 585*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_23 = 23, 586*8ec8d58eSZhihuan He PCLK_PERI_DIV_CON_15 = 15, 587*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_SHIFT = 0, 588*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_MASK = 0x1f << HCLK_PERI_DIV_CON_SHIFT, 589*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_15 = 15, 590*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_13 = 13, 591*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_11 = 11, 592*8ec8d58eSZhihuan He HCLK_PERI_DIV_CON_7 = 7, 593*8ec8d58eSZhihuan He 594*8ec8d58eSZhihuan He /* CLKSEL_CON38 */ 595*8ec8d58eSZhihuan He CLK_NANDC_SEL50_SHIFT = 15, 596*8ec8d58eSZhihuan He CLK_NANDC_SEL50_MASK = 0x1 << CLK_NANDC_SEL50_SHIFT, 597*8ec8d58eSZhihuan He CLK_NANDC_SEL50_EVEN = 0, 598*8ec8d58eSZhihuan He CLK_NANDC_SEL50_ALWAYS = 1, 599*8ec8d58eSZhihuan He CLK_NANDC_PLL_SEL_SHIFT = 6, 600*8ec8d58eSZhihuan He CLK_NANDC_PLL_SEL_MASK = 0x3 << CLK_NANDC_PLL_SEL_SHIFT, 601*8ec8d58eSZhihuan He CLK_NANDC_PLL_SEL_DPLL = 0, 602*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_SHIFT = 0, 603*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_MASK = 0x1f << CLK_NANDC_DIV_CON_SHIFT, 604*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_15 = 15, 605*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_13 = 13, 606*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_11 = 11, 607*8ec8d58eSZhihuan He CLK_NANDC_DIV_CON_7 = 7, 608*8ec8d58eSZhihuan He 609*8ec8d58eSZhihuan He /* CLKSEL_CON39 */ 610*8ec8d58eSZhihuan He CLK_SDMMC_SEL50_SHIFT = 15, 611*8ec8d58eSZhihuan He CLK_SDMMC_SEL50_MASK = 0x1 << CLK_SDMMC_SEL50_SHIFT, 612*8ec8d58eSZhihuan He CLK_SDMMC_SEL50_EVEN = 0, 613*8ec8d58eSZhihuan He CLK_SDMMC_SEL50_ALWAYS = 1, 614*8ec8d58eSZhihuan He CLK_SDMMC_PLL_SEL_SHIFT = 8, 615*8ec8d58eSZhihuan He CLK_SDMMC_PLL_SEL_MASK = 0x3 << CLK_SDMMC_PLL_SEL_SHIFT, 616*8ec8d58eSZhihuan He CLK_SDMMC_PLL_SEL_DPLL = 0, 617*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_SHIFT = 0, 618*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_MASK = 0xff << CLK_SDMMC_DIV_CON_SHIFT, 619*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_31 = 31, 620*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_27 = 27, 621*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_23 = 23, 622*8ec8d58eSZhihuan He CLK_SDMMC_DIV_CON_15 = 15, 623*8ec8d58eSZhihuan He 624*8ec8d58eSZhihuan He /* CLKSEL_CON40 */ 625*8ec8d58eSZhihuan He CLK_SDIO_SEL50_SHIFT = 15, 626*8ec8d58eSZhihuan He CLK_SDIO_SEL50_MASK = 0x1 << CLK_SDIO_SEL50_SHIFT, 627*8ec8d58eSZhihuan He CLK_SDIO_SEL50_EVEN = 0, 628*8ec8d58eSZhihuan He CLK_SDIO_SEL50_ALWAYS = 1, 629*8ec8d58eSZhihuan He CLK_SDIO_PLL_SEL_SHIFT = 8, 630*8ec8d58eSZhihuan He CLK_SDIO_PLL_SEL_MASK = 0x3 << CLK_SDIO_PLL_SEL_SHIFT, 631*8ec8d58eSZhihuan He CLK_SDIO_PLL_SEL_DPLL = 0, 632*8ec8d58eSZhihuan He CLK_SDIO_DIV_CON_SHIFT = 0, 633*8ec8d58eSZhihuan He CLK_SDIO_DIV_CON_MASK = 0xff << CLK_SDIO_DIV_CON_SHIFT, 634*8ec8d58eSZhihuan He CLK_SDIO_DIV_CON_4 = 4, 635*8ec8d58eSZhihuan He CLK_SDIO_DIV_CON_3 = 3, 636*8ec8d58eSZhihuan He CLK_SDIO_DIV_CON_2 = 2, 637*8ec8d58eSZhihuan He 638*8ec8d58eSZhihuan He /* CLKSEL_CON41 */ 639*8ec8d58eSZhihuan He CLK_EMMC_SEL50_SHIFT = 15, 640*8ec8d58eSZhihuan He CLK_EMMC_SEL50_MASK = 0x1 << CLK_EMMC_SEL50_SHIFT, 641*8ec8d58eSZhihuan He CLK_EMMC_SEL50_EVEN = 0, 642*8ec8d58eSZhihuan He CLK_EMMC_SEL50_ALWAYS = 1, 643*8ec8d58eSZhihuan He CLK_EMMC_PLL_SEL_SHIFT = 8, 644*8ec8d58eSZhihuan He CLK_EMMC_PLL_SEL_MASK = 0x3 << CLK_EMMC_PLL_SEL_SHIFT, 645*8ec8d58eSZhihuan He CLK_EMMC_PLL_SEL_DPLL = 0, 646*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_SHIFT = 0, 647*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_MASK = 0xff << CLK_EMMC_DIV_CON_SHIFT, 648*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_31 = 31, 649*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_27 = 27, 650*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_23 = 23, 651*8ec8d58eSZhihuan He CLK_EMMC_DIV_CON_15 = 15, 652*8ec8d58eSZhihuan He 653*8ec8d58eSZhihuan He /* CLKSEL_CON42 */ 654*8ec8d58eSZhihuan He CLK_SFC_PLL_SEL_SHIFT = 14, 655*8ec8d58eSZhihuan He CLK_SFC_PLL_SEL_MASK = 0x3 << CLK_SFC_PLL_SEL_SHIFT, 656*8ec8d58eSZhihuan He CLK_SFC_PLL_SEL_DPLL = 0, 657*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_SHIFT = 0, 658*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_MASK = 0x7f << CLK_SFC_DIV_CON_SHIFT, 659*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_65 = 65, 660*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_53 = 53, 661*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_49 = 49, 662*8ec8d58eSZhihuan He CLK_SFC_DIV_CON_31 = 31, 663*8ec8d58eSZhihuan He 664*8ec8d58eSZhihuan He /* CLKSEL_CON43 */ 665*8ec8d58eSZhihuan He RMII_CLK_SEL_SHIFT = 15, 666*8ec8d58eSZhihuan He RMII_CLK_SEL_MASK = 0x1 << RMII_CLK_SEL_SHIFT, 667*8ec8d58eSZhihuan He RMII_CLK_SEL_100M = 1, 668*8ec8d58eSZhihuan He RMII_CLK_SEL_10M = 0, 669*8ec8d58eSZhihuan He RMII_EXTCLKSRC_SEL_SHIFT = 14, 670*8ec8d58eSZhihuan He RMII_EXTCLKSRC_SEL_MASK = 0x1 << RMII_EXTCLKSRC_SEL_SHIFT, 671*8ec8d58eSZhihuan He RMII_EXTCLKSRC_SEL_CLK_MAC = 0, 672*8ec8d58eSZhihuan He CLK_MAC_PLL_SEL_SHIFT = 6, 673*8ec8d58eSZhihuan He CLK_MAC_PLL_SEL_MASK = 0x3 << CLK_MAC_PLL_SEL_SHIFT, 674*8ec8d58eSZhihuan He CLK_MAC_PLL_SEL_DPLL = 0, 675*8ec8d58eSZhihuan He CLK_MAC_DIV_CON_SHIFT = 0, 676*8ec8d58eSZhihuan He CLK_MAC_DIV_CON_MASK = 0x1f << CLK_MAC_DIV_CON_SHIFT, 677*8ec8d58eSZhihuan He CLK_MAC_DIV_CON_31 = 31, 678*8ec8d58eSZhihuan He CLK_MAC_DIV_CON_23 = 23, 679*8ec8d58eSZhihuan He CLK_MAC_DIV_CON_25 = 25, 680*8ec8d58eSZhihuan He 681*8ec8d58eSZhihuan He /* CLKSEL_CON44 */ 682*8ec8d58eSZhihuan He CLK_WIFI_SEL_SHIFT = 7, 683*8ec8d58eSZhihuan He CLK_WIFI_SEL_MASK = 0x1 << CLK_WIFI_SEL_SHIFT, 684*8ec8d58eSZhihuan He CLK_WIFI_SEL_CLK_WIFI = 1, 685*8ec8d58eSZhihuan He CLK_WIFI_PLL_SEL_SHIFT = 6, 686*8ec8d58eSZhihuan He CLK_WIFI_PLL_SEL_MASK = 0x1 << CLK_WIFI_PLL_SEL_SHIFT, 687*8ec8d58eSZhihuan He CLK_WIFI_PLL_SEL_DPLL = 0, 688*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_SHIFT = 0, 689*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_MASK = 0x3f << CLK_WIFI_DIV_CON_SHIFT, 690*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_39 = 39, 691*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_29 = 29, 692*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_49 = 49, 693*8ec8d58eSZhihuan He CLK_WIFI_DIV_CON_19 = 19, 694*8ec8d58eSZhihuan He 695*8ec8d58eSZhihuan He /* CLKSEL_CON45 */ 696*8ec8d58eSZhihuan He PCLK_AUDIO_DIV_CON_SHIFT = 8, 697*8ec8d58eSZhihuan He PCLK_AUDIO_DIV_CON_MASK = 0x1f << PCLK_AUDIO_DIV_CON_SHIFT, 698*8ec8d58eSZhihuan He PCLK_AUDIO_DIV_CON_9 = 9, 699*8ec8d58eSZhihuan He H_PCLK_AUDIO_PLL_SEL_SHIFT = 6, 700*8ec8d58eSZhihuan He H_PCLK_AUDIO_PLL_SEL_MASK = 0x3 << H_PCLK_AUDIO_PLL_SEL_SHIFT, 701*8ec8d58eSZhihuan He H_PCLK_AUDIO_PLL_SEL_VPLL0 = 0, 702*8ec8d58eSZhihuan He HCLK_AUDIO_DIV_CON_SHIFT = 0, 703*8ec8d58eSZhihuan He HCLK_AUDIO_DIV_CON_MASK = 0x1f << HCLK_AUDIO_DIV_CON_SHIFT, 704*8ec8d58eSZhihuan He HCLK_AUDIO_DIV_CON_9 = 9, 705*8ec8d58eSZhihuan He 706*8ec8d58eSZhihuan He /* CLKSEL_CON46 */ 707*8ec8d58eSZhihuan He CLK_PDM_SEL_SHIFT = 15, 708*8ec8d58eSZhihuan He CLK_PDM_SEL_MASK = 0x1 << CLK_PDM_SEL_SHIFT, 709*8ec8d58eSZhihuan He CLK_PDM_SEL_CLK_PDM = 0, 710*8ec8d58eSZhihuan He CLK_PDM_PLL_SEL_SHIFT = 8, 711*8ec8d58eSZhihuan He CLK_PDM_PLL_SEL_MASK = 0x3 << CLK_PDM_PLL_SEL_SHIFT, 712*8ec8d58eSZhihuan He CLK_PDM_PLL_SEL_VPLL0 = 0, 713*8ec8d58eSZhihuan He CLK_PDM_DIV_CON_SHIFT = 0, 714*8ec8d58eSZhihuan He CLK_PDM_DIV_CON_MASK = 0x7f << CLK_PDM_DIV_CON_SHIFT, 715*8ec8d58eSZhihuan He CLK_PDM_DIV_CON_15 = 15, 716*8ec8d58eSZhihuan He 717*8ec8d58eSZhihuan He /* CLKSEL_CON48 */ 718*8ec8d58eSZhihuan He CLK_SPDIFTX_DIV_CON_SHIFT = 0, 719*8ec8d58eSZhihuan He CLK_SPDIFTX_DIV_CON_MASK = 0x7f << CLK_SPDIFTX_DIV_CON_SHIFT, 720*8ec8d58eSZhihuan He CLK_SPDIFTX_DIV_CON_15 = 15, 721*8ec8d58eSZhihuan He 722*8ec8d58eSZhihuan He /* CLKSEL_CON52,CLKSEL_CON56,CLKSEL_CON60,CLKSEL_CON64 */ 723*8ec8d58eSZhihuan He I2S_8CH_OUT_SEL_SHIFT = 15, 724*8ec8d58eSZhihuan He I2S_8CH_OUT_SEL_MASK = 0x1 << I2S_8CH_OUT_SEL_SHIFT, 725*8ec8d58eSZhihuan He I2S_8CH_OUT_SEL_TX_RX = 0, 726*8ec8d58eSZhihuan He I2S_8CH_TX_RX_SEL_SHIFT = 12, 727*8ec8d58eSZhihuan He I2S_8CH_TX_RX_SEL_MASK = 0x1 << I2S_8CH_TX_RX_SEL_SHIFT, 728*8ec8d58eSZhihuan He I2S_8CH_TX_RX_SEL_TX = 0, 729*8ec8d58eSZhihuan He I2S_8CH_TX_SEL_SHIFT = 10, 730*8ec8d58eSZhihuan He I2S_8CH_TX_SEL_MASK = 0x3 << I2S_8CH_TX_SEL_SHIFT, 731*8ec8d58eSZhihuan He I2S_8CH_TX_SEL_TX = 0, 732*8ec8d58eSZhihuan He I2S_8CH_TX_PLL_SEL_SHIFT = 8, 733*8ec8d58eSZhihuan He I2S_8CH_TX_PLL_SEL_MASK = 0x3 << I2S_8CH_TX_PLL_SEL_SHIFT, 734*8ec8d58eSZhihuan He I2S_8CH_TX_PLL_SEL_VPLL1 = 1, 735*8ec8d58eSZhihuan He I2S_8CH_TX_DIV_CON_SHIFT = 0, 736*8ec8d58eSZhihuan He I2S_8CH_TX_DIV_CON_MASK = 0x7f << I2S_8CH_TX_DIV_CON_SHIFT, 737*8ec8d58eSZhihuan He I2S_8CH_TX_DIV_CON_17 = 17, 738*8ec8d58eSZhihuan He 739*8ec8d58eSZhihuan He /* CLKSEL_CON54,CLKSEL_CON58,CLKSEL_CON62,CLKSEL_CON66 */ 740*8ec8d58eSZhihuan He I2S_8CH_RX_TX_SEL_SHIFT = 12, 741*8ec8d58eSZhihuan He I2S_8CH_RX_TX_SEL_MASK = 0x1 << I2S_8CH_RX_TX_SEL_SHIFT, 742*8ec8d58eSZhihuan He I2S_8CH_RX_TX_SEL_RX = 0, 743*8ec8d58eSZhihuan He I2S_8CH_RX_SEL_SHIFT = 10, 744*8ec8d58eSZhihuan He I2S_8CH_RX_SEL_MASK = 0x3 << I2S_8CH_RX_SEL_SHIFT, 745*8ec8d58eSZhihuan He I2S_8CH_RX_SEL_RX = 0, 746*8ec8d58eSZhihuan He I2S_8CH_RX_PLL_SEL_SHIFT = 8, 747*8ec8d58eSZhihuan He I2S_8CH_RX_PLL_SEL_MASK = 0x3 << I2S_8CH_RX_PLL_SEL_SHIFT, 748*8ec8d58eSZhihuan He I2S_8CH_RX_PLL_SEL_VPLL0 = 0, 749*8ec8d58eSZhihuan He I2S_8CH_RX_DIV_CON_SHIFT = 0, 750*8ec8d58eSZhihuan He I2S_8CH_RX_DIV_CON_MASK = 0x7f << I2S_8CH_RX_DIV_CON_SHIFT, 751*8ec8d58eSZhihuan He I2S_8CH_RX_DIV_CON_19 = 19, 752*8ec8d58eSZhihuan He 753*8ec8d58eSZhihuan He /* SOFTRST_CON1 */ 754*8ec8d58eSZhihuan He PRESETN_DDRPHY_REQ_SHIFT = 14, 755*8ec8d58eSZhihuan He PRESETN_DDRPHY_REQ_MASK = 0x1 << PRESETN_DDRPHY_REQ_SHIFT, 756*8ec8d58eSZhihuan He PRESETN_DDRPHY_REQ_EN = 1, 757*8ec8d58eSZhihuan He PRESETN_DDRPHY_REQ_DIS = 0, 758*8ec8d58eSZhihuan He 759*8ec8d58eSZhihuan He RESETN_DDRPHYDIV_REQ_SHIFT = 13, 760*8ec8d58eSZhihuan He RESETN_DDRPHYDIV_REQ_MASK = 0x1 << RESETN_DDRPHYDIV_REQ_SHIFT, 761*8ec8d58eSZhihuan He RESETN_DDRPHYDIV_REQ_EN = 1, 762*8ec8d58eSZhihuan He RESETN_DDRPHYDIV_REQ_DIS = 0, 763*8ec8d58eSZhihuan He 764*8ec8d58eSZhihuan He RESETN_DDRPHY_REQ_SHIFT = 12, 765*8ec8d58eSZhihuan He RESETN_DDRPHY_REQ_MASK = 0x1 << RESETN_DDRPHY_REQ_SHIFT, 766*8ec8d58eSZhihuan He RESETN_DDRPHY_REQ_EN = 1, 767*8ec8d58eSZhihuan He RESETN_DDRPHY_REQ_DIS = 0, 768*8ec8d58eSZhihuan He 769*8ec8d58eSZhihuan He PRESETN_DDRUPCTL_REQ_SHIFT = 6, 770*8ec8d58eSZhihuan He PRESETN_DDRUPCTL_REQ_MASK = 0x1 << PRESETN_DDRUPCTL_REQ_SHIFT, 771*8ec8d58eSZhihuan He PRESETN_DDRUPCTL_REQ_EN = 1, 772*8ec8d58eSZhihuan He PRESETN_DDRUPCTL_REQ_DIS = 0, 773*8ec8d58eSZhihuan He 774*8ec8d58eSZhihuan He RESETN_DDRUPCTL_REQ_SHIFT = 4, 775*8ec8d58eSZhihuan He RESETN_DDRUPCTL_REQ_MASK = 0x1 << RESETN_DDRUPCTL_REQ_SHIFT, 776*8ec8d58eSZhihuan He RESETN_DDRUPCTL_REQ_EN = 1, 777*8ec8d58eSZhihuan He RESETN_DDRUPCTL_REQ_DIS = 0, 778*8ec8d58eSZhihuan He 779*8ec8d58eSZhihuan He /* CLKGATE_CON4 */ 780*8ec8d58eSZhihuan He CLK_PMU_PVTM_CLK_EN_SHIFT = 4, 781*8ec8d58eSZhihuan He CLK_PMU_PVTM_CLK_EN_MASK = 0x1 << CLK_PMU_PVTM_CLK_EN_SHIFT, 782*8ec8d58eSZhihuan He CLK_PMU_PVTM_CLK_EN = 0, 783*8ec8d58eSZhihuan He 784*8ec8d58eSZhihuan He /* SOFTRST_CON5 */ 785*8ec8d58eSZhihuan He RESETN_PMU_PVTM_REQ_SHIFT = 1, 786*8ec8d58eSZhihuan He RESETN_PMU_PVTM_REQ_MASK = 0x1 << RESETN_PMU_PVTM_REQ_SHIFT, 787*8ec8d58eSZhihuan He RESETN_PMU_PVTM_REQ_ACT = 1, 788*8ec8d58eSZhihuan He RESETN_PMU_PVTM_REQ_DIS = 0, 789*8ec8d58eSZhihuan He }; 790*8ec8d58eSZhihuan He 7913d78ac3eSAndy Yan #endif 792