svn commit: r358644 - in stable/12/sys: arm64/rockchip/clk conf dev/extres/clk

Emmanuel Vadot manu at FreeBSD.org
Wed Mar 4 21:01:26 UTC 2020


Author: manu
Date: Wed Mar  4 21:01:25 2020
New Revision: 358644
URL: https://svnweb.freebsd.org/changeset/base/358644

Log:
  MFC r354554-r354558, r355115
  
  r354554 by mmel:
  Implement support for (soft)linked clocks.
  This kind of clock nodes represent temporary placeholder for clocks
  defined later in boot process. Also, these are necessary to break
  circular dependencies occasionally occurring in complex clock graphs.
  
  r354555 by mmel:
  Cleanup Rockchip clocks implementation.
  - style
  - unify dprinf defines
  - make dprinf's 32-bit compatible
  Not a functional change.
  
  Reviewed by:	manu, imp
  Differential Revision:  https://reviews.freebsd.org/D22281
  
  r354556 by mmel:
  Enhance Rockchip clocks implementation.
  - add support for fractional dividers
  - allow to declare fixed and linked clock
  
  Reviewed by:	manu
  Differential Revision:  https://reviews.freebsd.org/D22282
  
  r354557 by mmel:
  Tidy up Rockchip composite clock.
  - add support for log2 based dividers
  - use proper write mask when writing to divider register
  
  Reviewed by:	manu
  Differential Revision:  https://reviews.freebsd.org/D22283
  
  r354558 by mmel:
  Remove explicit declaration of rk_clk_fract_set_freq() function
  forgotten in r354556.
  
  MFC with:	r354556
  Noticed by:	manu
  
  r355115 by mmel:
  Finish implementation of RK3299 clocks.
  - implement of all but mmc clocks. MMC clocks will be added later by own commit.
  - use 'link' clock type for external clocks.
  - use macros for initialization of structure's named members.
  
  Reviewed by:	manu
  Differential Revision:  https://reviews.freebsd.org/D22441

Added:
  stable/12/sys/arm64/rockchip/clk/rk3399_cru_dt.h
     - copied unchanged from r355115, head/sys/arm64/rockchip/clk/rk3399_cru_dt.h
  stable/12/sys/arm64/rockchip/clk/rk_clk_fract.c
     - copied unchanged from r354558, head/sys/arm64/rockchip/clk/rk_clk_fract.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_fract.h
     - copied unchanged from r354558, head/sys/arm64/rockchip/clk/rk_clk_fract.h
  stable/12/sys/dev/extres/clk/clk_link.c
     - copied unchanged from r354558, head/sys/dev/extres/clk/clk_link.c
  stable/12/sys/dev/extres/clk/clk_link.h
     - copied unchanged from r354558, head/sys/dev/extres/clk/clk_link.h
Modified:
  stable/12/sys/arm64/rockchip/clk/rk3399_cru.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_armclk.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_composite.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_composite.h
  stable/12/sys/arm64/rockchip/clk/rk_clk_gate.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_mux.c
  stable/12/sys/arm64/rockchip/clk/rk_clk_pll.c
  stable/12/sys/arm64/rockchip/clk/rk_cru.c
  stable/12/sys/arm64/rockchip/clk/rk_cru.h
  stable/12/sys/conf/files
  stable/12/sys/conf/files.arm64
  stable/12/sys/dev/extres/clk/clk.c
  stable/12/sys/dev/extres/clk/clk.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/arm64/rockchip/clk/rk3399_cru.c
==============================================================================
--- stable/12/sys/arm64/rockchip/clk/rk3399_cru.c	Wed Mar  4 21:01:22 2020	(r358643)
+++ stable/12/sys/arm64/rockchip/clk/rk3399_cru.c	Wed Mar  4 21:01:25 2020	(r358644)
@@ -50,1930 +50,1188 @@ __FBSDID("$FreeBSD$");
 
 #include <arm64/rockchip/clk/rk_cru.h>
 
-/* GATES */
+#include <arm64/rockchip/clk/rk3399_cru_dt.h>
 
-#define	SCLK_USB2PHY0_REF	123
-#define	SCLK_USB2PHY1_REF	124
-#define	SCLK_USB3OTG0_REF	129
-#define	SCLK_USB3OTG1_REF	130
-#define	SCLK_USB3OTG0_SUSPEND	131
-#define	SCLK_USB3OTG1_SUSPEND	132
-#define	ACLK_EMMC_CORE		241
-#define	ACLK_EMMC_NOC		242
-#define	ACLK_EMMC_GRF		243
-#define	ACLK_USB3_NOC		245
-#define	ACLK_USB3OTG0		246
-#define	ACLK_USB3OTG1		247
-#define	ACLK_USB3_RKSOC_AXI_PERF	248
-#define	ACLK_USB3_GRF		249
-#define	PCLK_GPIO2		336
-#define	PCLK_GPIO3		337
-#define	PCLK_GPIO4		338
-#define	PCLK_I2C1		341
-#define	PCLK_I2C2		342
-#define	PCLK_I2C3		343
-#define	PCLK_I2C5		344
-#define	PCLK_I2C6		345
-#define	PCLK_I2C7		346
-#define	PCLK_SPI0		347
-#define	PCLK_SPI1		348
-#define	PCLK_SPI2		349
-#define	PCLK_SPI4		350
-#define	PCLK_SPI5		351
-#define	HCLK_HOST0		456
-#define	HCLK_HOST0_ARB		457
-#define	HCLK_HOST1		458
-#define	HCLK_HOST1_ARB		459
-#define	HCLK_SDMMC		462
+#define	CRU_CLKSEL_CON(x)	(0x100 + (x) * 0x4)
+#define	CRU_CLKGATE_CON(x)	(0x300 + (x) * 0x4)
 
+
+/* GATES */
+
 static struct rk_cru_gate rk3399_gates[] = {
 	/* CRU_CLKGATE_CON0 */
-	CRU_GATE(0, "clk_core_l_lpll_src", "lpll", 0x300, 0)
-	CRU_GATE(0, "clk_core_l_bpll_src", "bpll", 0x300, 1)
-	CRU_GATE(0, "clk_core_l_dpll_src", "dpll", 0x300, 2)
-	CRU_GATE(0, "clk_core_l_gpll_src", "gpll", 0x300, 3)
+	/* 15-8 unused */
+	GATE(SCLK_PVTM_CORE_L, "clk_pvtm_core_l", "xin24m",		0, 7),
+	GATE(0, "pclk_dbg_core_l", "pclk_dbg_core_l_c",			0, 6),
+	GATE(0, "atclk_core_l", "atclk_core_l_c",			0, 5),
+	GATE(0, "aclkm_core_l", "aclkm_core_l_c",			0, 4),
+	GATE(0, "clk_core_l_gpll_src", "gpll",				0, 3),
+	GATE(0, "clk_core_l_dpll_src", "dpll",				0, 2),
+	GATE(0, "clk_core_l_bpll_src", "bpll",				0, 1),
+	GATE(0, "clk_core_l_lpll_src", "lpll",				0, 0),
 
 	/* CRU_CLKGATE_CON1 */
-	CRU_GATE(0, "clk_core_b_lpll_src", "lpll", 0x304, 0)
-	CRU_GATE(0, "clk_core_b_bpll_src", "bpll", 0x304, 1)
-	CRU_GATE(0, "clk_core_b_dpll_src", "dpll", 0x304, 2)
-	CRU_GATE(0, "clk_core_b_gpll_src", "gpll", 0x304, 3)
+	/* 15 - 8 unused */
+	GATE(SCLK_PVTM_CORE_B, "clk_pvtm_core_b", "xin24m",		1, 7),
+	GATE(0, "pclk_dbg_core_b","pclk_dbg_core_b_c",			1, 6),
+	GATE(0, "atclk_core_b", "atclk_core_b_c", 			1, 5),
+	GATE(0, "aclkm_core_b", "aclkm_core_b_c",			1, 4),
+	GATE(0, "clk_core_b_gpll_src", "gpll",				1, 3),
+	GATE(0, "clk_core_b_dpll_src", "dpll",				1, 2),
+	GATE(0, "clk_core_b_bpll_src", "bpll",				1, 1),
+	GATE(0, "clk_core_b_lpll_src", "lpll",				1, 0),
 
+	/* CRU_CLKGATE_CON2 */
+	/* 15 - 11 unused */
+	GATE(0, "npll_cs", "npll",					2, 10),
+	GATE(0, "gpll_cs", "gpll",					2, 9),
+	GATE(0, "cpll_cs", "cpll",					2, 8),
+	GATE(SCLK_CCI_TRACE, "clk_cci_trace", "clk_cci_trace_c",	2, 7),
+	GATE(0, "gpll_cci_trace", "gpll",				2, 6),
+	GATE(0, "cpll_cci_trace", "cpll",				2, 5),
+	GATE(0, "aclk_cci_pre", "aclk_cci_pre_c",			2, 4),
+	GATE(0, "vpll_aclk_cci_src", "vpll",				2, 3),
+	GATE(0, "npll_aclk_cci_src", "npll",				2, 2),
+	GATE(0, "gpll_aclk_cci_src", "gpll",				2, 1),
+	GATE(0, "cpll_aclk_cci_src", "cpll",				2, 0),
+
+	/* CRU_CLKGATE_CON3 */
+	/* 15 - 8 unused */
+	GATE(0, "aclk_center", "aclk_center_c",				3, 7),
+	/* 6 unused */
+	/* 5 unused */
+	GATE(PCLK_DDR, "pclk_ddr", "pclk_ddr_c",			3, 4),
+	GATE(0, "clk_ddrc_gpll_src", "gpll",				3, 3),
+	GATE(0, "clk_ddrc_dpll_src", "dpll",				3, 2),
+	GATE(0, "clk_ddrc_bpll_src", "bpll",				3, 1),
+	GATE(0, "clk_ddrc_lpll_src", "lpll",				3, 0),
+
+
+	/* CRU_CLKGATE_CON4 */
+	/* 15 - 12 unused */
+	GATE(SCLK_PVTM_DDR, "clk_pvtm_ddr", "xin24m",			4, 11),
+	GATE(0, "clk_rga_core", "clk_rga_core_c",			4, 10),
+	GATE(0, "hclk_rga_pre", "hclk_rga_pre_c",			4, 9),
+	GATE(0, "aclk_rga_pre", "aclk_rga_pre_c",			4, 8),
+	GATE(0, "hclk_iep_pre", "hclk_iep_pre_c",			4, 7),
+	GATE(0, "aclk_iep_pre", "aclk_iep_pre_c",			4, 6),
+	GATE(SCLK_VDU_CA, "clk_vdu_ca", "clk_vdu_ca_c",			4, 5),
+	GATE(SCLK_VDU_CORE, "clk_vdu_core", "clk_vdu_core_c",		4, 4),
+	GATE(0, "hclk_vdu_pre", "hclk_vdu_pre_c",			4, 3),
+	GATE(0, "aclk_vdu_pre", "aclk_vdu_pre_c",			4, 2),
+	GATE(0, "hclk_vcodec_pre", "hclk_vcodec_pre_c",			4, 1),
+	GATE(0, "aclk_vcodec_pre", "aclk_vcodec_pre_c",			4, 0),
+
 	/* CRU_CLKGATE_CON5 */
-	CRU_GATE(0, "cpll_aclk_perihp_src", "cpll", 0x314, 0)
-	CRU_GATE(0, "gpll_aclk_perihp_src", "gpll", 0x314, 1)
+	/* 15 - 10 unused */
+	GATE(SCLK_MAC_TX, "clk_rmii_tx", "clk_rmii_src",		5, 9),
+	GATE(SCLK_MAC_RX, "clk_rmii_rx", "clk_rmii_src",		5, 8),
+	GATE(SCLK_MACREF, "clk_mac_ref", "clk_rmii_src",		5, 7),
+	GATE(SCLK_MACREF_OUT, "clk_mac_refout", "clk_rmii_src",		5, 6),
+	GATE(SCLK_MAC, "clk_gmac", "clk_gmac_c",			5, 5),
+	GATE(PCLK_PERIHP, "pclk_perihp", "pclk_perihp_c",		5, 4),
+	GATE(HCLK_PERIHP, "hclk_perihp", "hclk_perihp_c",		5, 3),
+	GATE(ACLK_PERIHP, "aclk_perihp", "aclk_perihp_c",		5, 2),
+	GATE(0, "cpll_aclk_perihp_src", "cpll",				5, 1),
+	GATE(0, "gpll_aclk_perihp_src", "gpll",				5, 0),
 
 	/* CRU_CLKGATE_CON6 */
-	CRU_GATE(0, "gpll_aclk_emmc_src", "gpll", 0x318, 12)
-	CRU_GATE(0, "cpll_aclk_emmc_src", "cpll", 0x318, 13)
-	CRU_GATE(SCLK_USB2PHY0_REF, "clk_usb2phy0_ref", "xin24m", 0x318, 5)
-	CRU_GATE(SCLK_USB2PHY1_REF, "clk_usb2phy1_ref", "xin24m", 0x318, 6)
+	/* 15 unused */
+	GATE(SCLK_EMMC, "clk_emmc", "clk_emmc_c",			6, 14),
+	GATE(0, "cpll_aclk_emmc_src", "cpll",				6, 13),
+	GATE(0, "gpll_aclk_emmc_src", "gpll",				6, 12),
+	GATE(0, "pclk_gmac_pre", "pclk_gmac_pre_c",			6, 11),
+	GATE(0, "aclk_gmac_pre", "aclk_gmac_pre_c",			6, 10),
+	GATE(0, "cpll_aclk_gmac_src", "cpll",				6, 9),
+	GATE(0, "gpll_aclk_gmac_src", "gpll",				6, 8),
+	/* 7 unused */
+	GATE(SCLK_USB2PHY1_REF, "clk_usb2phy1_ref", "xin24m",		6, 6),
+	GATE(SCLK_USB2PHY0_REF, "clk_usb2phy0_ref", "xin24m", 		6, 5),
+	GATE(SCLK_HSICPHY, "clk_hsicphy", "clk_hsicphy_c",		6, 4),
+	GATE(0, "clk_pcie_core_cru", "clk_pcie_core_cru_c",		6, 3),
+	GATE(SCLK_PCIE_PM, "clk_pcie_pm", "clk_pcie_pm_c",		6, 2),
+	GATE(SCLK_SDMMC, "clk_sdmmc", "clk_sdmmc_c",			6, 1),
+	GATE(SCLK_SDIO, "clk_sdio", "clk_sdio_c",			6, 0),
 
 	/* CRU_CLKGATE_CON7 */
-	CRU_GATE(0, "gpll_aclk_perilp0_src", "gpll", 0x31C, 0)
-	CRU_GATE(0, "cpll_aclk_perilp0_src", "cpll", 0x31C, 1)
+	/* 15 - 10 unused */
+	GATE(FCLK_CM0S, "fclk_cm0s", "fclk_cm0s_c",			7, 9),
+	GATE(SCLK_CRYPTO1, "clk_crypto1", "clk_crypto1_c",		7, 8),
+	GATE(SCLK_CRYPTO0, "clk_crypto0", "clk_crypto0_c",		7, 7),
+	GATE(0, "cpll_fclk_cm0s_src", "cpll",				7, 6),
+	GATE(0, "gpll_fclk_cm0s_src", "gpll",				7, 5),
+	GATE(PCLK_PERILP0, "pclk_perilp0", "pclk_perilp0_c",		7, 4),
+	GATE(HCLK_PERILP0, "hclk_perilp0", "hclk_perilp0_c",		7, 3),
+	GATE(ACLK_PERILP0, "aclk_perilp0", "aclk_perilp0_c",		7, 2),
+	GATE(0, "cpll_aclk_perilp0_src", "cpll",			7, 1),
+	GATE(0, "gpll_aclk_perilp0_src", "gpll",			7, 0),
 
 	/* CRU_CLKGATE_CON8 */
-	CRU_GATE(0, "hclk_perilp1_cpll_src", "cpll", 0x320, 1)
-	CRU_GATE(0, "hclk_perilp1_gpll_src", "gpll", 0x320, 0)
+	GATE(SCLK_SPDIF_8CH, "clk_spdif", "clk_spdif_mux",		8, 15),
+	GATE(0, "clk_spdif_frac", "clk_spdif_frac_c",			8, 14),
+	GATE(0, "clk_spdif_div", "clk_spdif_div_c",			8, 13),
+	GATE(SCLK_I2S_8CH_OUT, "clk_i2sout", "clk_i2sout_c",		8, 12),
+	GATE(SCLK_I2S2_8CH, "clk_i2s2", "clk_i2s2_mux",			8, 11),
+	GATE(0, "clk_i2s2_frac", "clk_i2s2_frac_c",			8, 10),
+	GATE(0, "clk_i2s2_div", "clk_i2s2_div_c",			8, 9),
+	GATE(SCLK_I2S1_8CH, "clk_i2s1", "clk_i2s1_mux",			8, 8),
+	GATE(0, "clk_i2s1_frac", "clk_i2s1_frac_c",			8, 7),
+	GATE(0, "clk_i2s1_div", "clk_i2s1_div_c",			8, 6),
+	GATE(SCLK_I2S0_8CH, "clk_i2s0", "clk_i2s0_mux",			8, 5),
+	GATE(0, "clk_i2s0_frac","clk_i2s0_frac_c",			8, 4),
+	GATE(0, "clk_i2s0_div","clk_i2s0_div_c",			8, 3),
+	GATE(PCLK_PERILP1, "pclk_perilp1", "pclk_perilp1_c",		8, 2),
+	GATE(HCLK_PERILP1, "cpll_hclk_perilp1_src", "cpll",		8, 1),
+	GATE(0, "gpll_hclk_perilp1_src", "gpll",			8, 0),
 
-	/* CRU_CLKGATE_CON12 */
-	CRU_GATE(SCLK_USB3OTG0_REF, "sclk_usb3otg0_ref", "xin24m", 0x330, 1)
-	CRU_GATE(SCLK_USB3OTG1_REF, "sclk_usb3otg1_ref", "xin24m", 0x330, 2)
-	CRU_GATE(SCLK_USB3OTG0_SUSPEND, "sclk_usb3otg0_suspend", "xin24m", 0x330, 3)
-	CRU_GATE(SCLK_USB3OTG1_SUSPEND, "sclk_usb3otg1_suspend", "xin24m", 0x330, 4)
+	/* CRU_CLKGATE_CON9 */
+	GATE(SCLK_SPI4, "clk_spi4", "clk_spi4_c", 			9, 15),
+	GATE(SCLK_SPI2, "clk_spi2", "clk_spi2_c",			9, 14),
+	GATE(SCLK_SPI1, "clk_spi1", "clk_spi1_c",			9, 13),
+	GATE(SCLK_SPI0, "clk_spi0", "clk_spi0_c",			9, 12),
+	GATE(SCLK_SARADC, "clk_saradc", "clk_saradc_c",			9, 11),
+	GATE(SCLK_TSADC, "clk_tsadc", "clk_tsadc_c",			9, 10),
+	/* 9 - 8 unused */
+	GATE(0, "clk_uart3_frac", "clk_uart3_frac_c",			9, 7),
+	GATE(0, "clk_uart3_div", "clk_uart3_div_c",			9, 6),
+	GATE(0, "clk_uart2_frac", "clk_uart2_frac_c",			9, 5),
+	GATE(0, "clk_uart2_div", "clk_uart2_div_c",			9, 4),
+	GATE(0, "clk_uart1_frac", "clk_uart1_frac_c",			9, 3),
+	GATE(0, "clk_uart1_div", "clk_uart1_div_c",			9, 2),
+	GATE(0, "clk_uart0_frac", "clk_uart0_frac_c", 			9, 1),
+	GATE(0, "clk_uart0_div", "clk_uart0_div_c",			9, 0),
 
-	/* CRU_CLKGATE_CON20 */
-	CRU_GATE(HCLK_HOST0, "hclk_host0", "hclk_perihp", 0x350, 5)
-	CRU_GATE(HCLK_HOST0_ARB, "hclk_host0_arb", "hclk_perihp", 0x350, 6)
-	CRU_GATE(HCLK_HOST1, "hclk_host1", "hclk_perihp", 0x350, 7)
-	CRU_GATE(HCLK_HOST1_ARB, "hclk_host1_arb", "hclk_perihp", 0x350, 8)
+	/* CRU_CLKGATE_CON10 */
+	GATE(SCLK_VOP1_PWM, "clk_vop1_pwm", "clk_vop1_pwm_c",		10, 15),
+	GATE(SCLK_VOP0_PWM, "clk_vop0_pwm", "clk_vop0_pwm_c",		10, 14),
+	GATE(DCLK_VOP0_DIV, "dclk_vop0_div", "dclk_vop0_div_c",		10, 12),
+	GATE(DCLK_VOP1_DIV, "dclk_vop1_div", "dclk_vop1_div_c",		10, 13),
+	GATE(0, "hclk_vop1_pre", "hclk_vop1_pre_c",			10, 11),
+	GATE(ACLK_VOP1_PRE, "aclk_vop1_pre", "aclk_vop1_pre_c",		10, 10),
+	GATE(0, "hclk_vop0_pre", "hclk_vop0_pre_c",			10, 9),
+	GATE(ACLK_VOP0_PRE, "aclk_vop0_pre", "aclk_vop0_pre_c",		10, 8),
+	GATE(0, "clk_cifout_src", "clk_cifout_src_c",			10, 7),
+	GATE(SCLK_SPDIF_REC_DPTX, "clk_spdif_rec_dptx", "clk_spdif_rec_dptx_c", 10, 6),
+	GATE(SCLK_I2C7, "clk_i2c7", "clk_i2c7_c",			10, 5),
+	GATE(SCLK_I2C3, "clk_i2c3", "clk_i2c3_c",			10, 4),
+	GATE(SCLK_I2C6, "clk_i2c6", "clk_i2c6_c",			10, 3),
+	GATE(SCLK_I2C2, "clk_i2c2", "clk_i2c2_c",			10, 2),
+	GATE(SCLK_I2C5, "clk_i2c5", "clk_i2c5_c",			10, 1),
+	GATE(SCLK_I2C1, "clk_i2c1", "clk_i2c1_c",			10, 0),
 
-	/* CRU_CLKGATE_CON22 */
-	CRU_GATE(PCLK_I2C7, "pclk_rki2c7", "pclk_perilp1", 0x358, 5)
-	CRU_GATE(PCLK_I2C1, "pclk_rki2c1", "pclk_perilp1", 0x358, 6)
-	CRU_GATE(PCLK_I2C5, "pclk_rki2c5", "pclk_perilp1", 0x358, 7)
-	CRU_GATE(PCLK_I2C6, "pclk_rki2c6", "pclk_perilp1", 0x358, 8)
-	CRU_GATE(PCLK_I2C2, "pclk_rki2c2", "pclk_perilp1", 0x358, 9)
-	CRU_GATE(PCLK_I2C3, "pclk_rki2c3", "pclk_perilp1", 0x358, 10)
 
-	/* CRU_CLKGATE_CON23 */
-	CRU_GATE(PCLK_SPI0, "pclk_spi0", "pclk_perilp1", 0x35C, 10)
-	CRU_GATE(PCLK_SPI1, "pclk_spi1", "pclk_perilp1", 0x35C, 11)
-	CRU_GATE(PCLK_SPI2, "pclk_spi2", "pclk_perilp1", 0x35C, 12)
-	CRU_GATE(PCLK_SPI4, "pclk_spi4", "pclk_perilp1", 0x35C, 13)
+	/* CRU_CLKGATE_CON11 */
+	GATE(SCLK_MIPIDPHY_CFG, "clk_mipidphy_cfg", "xin24m",		11, 15),
+	GATE(SCLK_MIPIDPHY_REF, "clk_mipidphy_ref", "xin24m",		11, 14),
+	/* 13-12 unused */
+	GATE(PCLK_EDP, "pclk_edp", "pclk_edp_c",			11, 11),
+	GATE(PCLK_HDCP, "pclk_hdcp", "pclk_hdcp_c",			11, 10),
+	/* 9 unuwsed */
+	GATE(SCLK_DP_CORE, "clk_dp_core", "clk_dp_core_c",		11, 8),
+	GATE(SCLK_HDMI_CEC, "clk_hdmi_cec", "clk_hdmi_cec_c",		11, 7),
+	GATE(SCLK_HDMI_SFR, "clk_hdmi_sfr", "xin24m",			11, 6),
+	GATE(SCLK_ISP1, "clk_isp1", "clk_isp1_c",			11, 5),
+	GATE(SCLK_ISP0, "clk_isp0",  "clk_isp0_c",			11, 4),
+	GATE(HCLK_HDCP, "hclk_hdcp",  "hclk_hdcp_c",			11, 3),
+	GATE(ACLK_HDCP, "aclk_hdcp", "aclk_hdcp_c",			11, 2),
+	GATE(PCLK_VIO, "pclk_vio", "pclk_vio_c",			11, 1),
+	GATE(ACLK_VIO, "aclk_vio", "aclk_vio_c",			11, 0),
 
-	/* CRU_CLKGATE_CON30 */
-	CRU_GATE(ACLK_USB3_NOC, "aclk_usb3_noc", "aclk_usb3", 0x378, 0)
-	CRU_GATE(ACLK_USB3OTG0, "aclk_usb3otg0", "aclk_usb3", 0x378, 1)
-	CRU_GATE(ACLK_USB3OTG1, "aclk_usb3otg1", "aclk_usb3", 0x378, 2)
-	CRU_GATE(ACLK_USB3_RKSOC_AXI_PERF, "aclk_usb3_rksoc_axi_perf", "aclk_usb3", 0x378, 3)
-	CRU_GATE(ACLK_USB3_GRF, "aclk_usb3_grf", "aclk_usb3", 0x378, 4)
+	/* CRU_CLKGATE_CON12 */
+	/* 15 - 14 unused */
+	GATE(HCLK_SD, "hclk_sd", "hclk_sd_c",				12, 13),
+	GATE(ACLK_GIC_PRE, "aclk_gic_pre",  "aclk_gic_pre_c",		12, 12),
+	GATE(HCLK_ISP1, "hclk_isp1", "hclk_isp1_c",			12, 11),
+	GATE(ACLK_ISP1, "aclk_isp1", "aclk_isp1_c",			12, 10),
+	GATE(HCLK_ISP0, "hclk_isp0", "hclk_isp0_c",			12, 9),
+	GATE(ACLK_ISP0, "aclk_isp0",  "aclk_isp0_c",			12, 8),
+	/* 7 unused */
+	GATE(SCLK_PCIEPHY_REF100M, "clk_pciephy_ref100m", "clk_pciephy_ref100m_c", 12, 6),
+	/* 5 unused */
+	GATE(SCLK_USB3OTG1_SUSPEND, "clk_usb3otg1_suspend", "clk_usb3otg1_suspend_c", 12, 4),
+	GATE(SCLK_USB3OTG0_SUSPEND, "clk_usb3otg0_suspend", "clk_usb3otg0_suspend_c", 12, 3),
+	GATE(SCLK_USB3OTG1_REF, "clk_usb3otg1_ref", "xin24m",		12, 2),
+	GATE(SCLK_USB3OTG0_REF, "clk_usb3otg0_ref", "xin24m",		12, 1),
+	GATE(ACLK_USB3, "aclk_usb3",  "aclk_usb3_c", 			12, 0),
 
-	/* CRU_CLKGATE_CON31 */
-	CRU_GATE(PCLK_GPIO2, "pclk_gpio2", "pclk_alive", 0x37c, 3)
-	CRU_GATE(PCLK_GPIO3, "pclk_gpio3", "pclk_alive", 0x37c, 4)
-	CRU_GATE(PCLK_GPIO4, "pclk_gpio4", "pclk_alive", 0x37c, 5)
+	/* CRU_CLKGATE_CON13 */
+	GATE(SCLK_TESTCLKOUT2, "clk_testout2", "clk_testout2_c",	13, 15),
+	GATE(SCLK_TESTCLKOUT1, "clk_testout1",  "clk_testout1_c",	13, 14),
+	GATE(SCLK_SPI5, "clk_spi5",  "clk_spi5_c",			13, 13),
+	GATE(0, "clk_usbphy0_480m_src", "clk_usbphy0_480m",		13, 12),
+	GATE(0, "clk_usbphy1_480m_src", "clk_usbphy1_480m",		13, 12),
+	GATE(0, "clk_test", "clk_test_c",				13, 11),
+	/* 10 unused */
+	GATE(0, "clk_test_frac", "clk_test_frac_c",			13, 9),
+	/* 8 unused */
+	GATE(SCLK_UPHY1_TCPDCORE, "clk_uphy1_tcpdcore", "clk_uphy1_tcpdcore_c", 13, 7),
+	GATE(SCLK_UPHY1_TCPDPHY_REF, "clk_uphy1_tcpdphy_ref", "clk_uphy1_tcpdphy_ref_c", 13, 6),
+	GATE(SCLK_UPHY0_TCPDCORE, "clk_uphy0_tcpdcore", "clk_uphy0_tcpdcore_c", 13, 5),
+	GATE(SCLK_UPHY0_TCPDPHY_REF, "clk_uphy0_tcpdphy_ref", "clk_uphy0_tcpdphy_ref_c", 13, 4),
+	/* 3 - 2 unused */
+	GATE(SCLK_PVTM_GPU, "aclk_pvtm_gpu", "xin24m", 			13, 1),
+	GATE(0, "aclk_gpu_pre", "aclk_gpu_pre_c",			13, 0),
 
-	/* CRU_CLKGATE_CON32 */
-	CRU_GATE(ACLK_EMMC_CORE, "aclk_emmccore", "aclk_emmc", 0x380, 8)
-	CRU_GATE(ACLK_EMMC_NOC, "aclk_emmc_noc", "aclk_emmc", 0x380, 9)
-	CRU_GATE(ACLK_EMMC_GRF, "aclk_emmcgrf", "aclk_emmc", 0x380, 10)
+	/* CRU_CLKGATE_CON14 */
+	/* 15 - 14 unused */
+	GATE(ACLK_PERF_CORE_L, "aclk_perf_core_l", "aclkm_core_l",	14, 13),
+	GATE(ACLK_CORE_ADB400_CORE_L_2_CCI500, "aclk_core_adb400_core_l_2_cci500", "aclkm_core_l", 14, 12),
+	GATE(ACLK_GIC_ADB400_CORE_L_2_GIC, "aclk_core_adb400_core_l_2_gic", "armclkl", 14, 11),
+	GATE(ACLK_GIC_ADB400_GIC_2_CORE_L, "aclk_core_adb400_gic_2_core_l", "armclkl", 14, 10),
+	GATE(0, "clk_dbg_pd_core_l", "armclkl",				14, 9),
+	/* 8 - 7 unused */
+	GATE(ACLK_PERF_CORE_B, "aclk_perf_core_b", "aclkm_core_b", 	14, 6),
+	GATE(ACLK_CORE_ADB400_CORE_B_2_CCI500, "aclk_core_adb400_core_b_2_cci500", "aclkm_core_b", 14, 5),
+	GATE(ACLK_GIC_ADB400_CORE_B_2_GIC, "aclk_core_adb400_core_b_2_gic", "armclkb", 14, 4),
+	GATE(ACLK_GIC_ADB400_GIC_2_CORE_B, "aclk_core_adb400_gic_2_core_b", "armclkb", 14, 3),
+	GATE(0, "pclk_dbg_cxcs_pd_core_b", "pclk_dbg_core_b",		14, 2),
+	GATE(0, "clk_dbg_pd_core_b", "armclkb", 			14, 1),
+	/* 0 unused */
 
-	/* CRU_CLKGATE_CON33 */
-	CRU_GATE(HCLK_SDMMC, "hclk_sdmmc", "hclk_sd", 0x384, 8)
+	/* CRU_CLKGATE_CON15 */
+	/* 15 - 8 unused */
+	GATE(ACLK_CCI_GRF, "aclk_cci_grf", "aclk_cci_pre",		15, 7),
+	GATE(0, "clk_dbg_noc", "clk_cs",				15, 6),
+	GATE(0, "clk_dbg_cxcs", "clk_cs",				15, 5),
+	GATE(ACLK_CCI_NOC1, "aclk_cci_noc1", "aclk_cci_pre",		15, 4),
+	GATE(ACLK_CCI_NOC0, "aclk_cci_noc0", "aclk_cci_pre",		15, 3),
+	GATE(ACLK_CCI, "aclk_cci", "aclk_cci_pre",			15, 2),
+	GATE(ACLK_ADB400M_PD_CORE_B, "aclk_adb400m_pd_core_b", "aclk_cci_pre", 15, 1),
+	GATE(ACLK_ADB400M_PD_CORE_L, "aclk_adb400m_pd_core_l", "aclk_cci_pre", 15, 0),
 
-	/* CRU_CLKGATE_CON34 */
-	CRU_GATE(PCLK_SPI4, "pclk_spi5", "pclk_perilp1", 0x388, 5)
-};
+	/* CRU_CLKGATE_CON16 */
+	/* 15 - 12 unused */
+	GATE(HCLK_RGA_NOC, "hclk_rga_noc", "hclk_rga_pre",		16, 11),
+	GATE(HCLK_RGA, "hclk_rga", "hclk_rga_pre", 			16, 10),
+	GATE(ACLK_RGA_NOC, "aclk_rga_noc", "aclk_rga_pre",		16, 9),
+	GATE(ACLK_RGA, "aclk_rga", "aclk_rga_pre", 			16, 8),
+	/* 7 - 4 unused */
+	GATE(HCLK_IEP_NOC, "hclk_iep_noc", "hclk_iep_pre",		16, 3),
+	GATE(HCLK_IEP, "hclk_iep", "hclk_iep_pre", 			16, 2),
+	GATE(ACLK_IEP_NOC, "aclk_iep_noc", "aclk_iep_pre",		16, 1),
+	GATE(ACLK_IEP, "aclk_iep", "aclk_iep_pre", 			16, 0),
 
 
-/*
- * PLLs
- */
+	/* CRU_CLKGATE_CON17 */
+	/* 15 - 12 unused */
+	GATE(HCLK_VDU_NOC, "hclk_vdu_noc", "hclk_vdu_pre",		17, 11),
+	GATE(HCLK_VDU, "hclk_vdu", "hclk_vdu_pre",			17, 10),
+	GATE(ACLK_VDU_NOC, "aclk_vdu_noc", "aclk_vdu_pre",		17, 9),
+	GATE(ACLK_VDU, "aclk_vdu", "aclk_vdu_pre", 			17, 8),
+	GATE(0, "hclk_vcodec_noc", "hclk_vcodec_pre",			17, 3),
+	GATE(HCLK_VCODEC, "hclk_vcodec", "hclk_vcodec_pre",		17, 2),
+	GATE(0, "aclk_vcodec_noc", "aclk_vcodec_pre",			17, 1),
+	GATE(ACLK_VCODEC, "aclk_vcodec", "aclk_vcodec_pre",		17, 0),
 
-#define PLL_APLLL			1
-#define PLL_APLLB			2
-#define PLL_DPLL			3
-#define PLL_CPLL			4
-#define PLL_GPLL			5
-#define PLL_NPLL			6
-#define PLL_VPLL			7
+	/* CRU_CLKGATE_CON18 */
+	GATE(PCLK_CIC, "pclk_cic", "pclk_ddr",				18, 15),
+	GATE(0, "clk_ddr_mon_timer", "xin24m",				18, 14),
+	GATE(0, "clk_ddr_mon", "clk_ddrc_div2",				18, 13),
+	GATE(PCLK_DDR_MON, "pclk_ddr_mon", "pclk_ddr", 			18, 12),
+	GATE(0, "clk_ddr_cic", "clk_ddrc_div2",				18, 11),
+	GATE(PCLK_CENTER_MAIN_NOC, "pclk_center_main_noc", "pclk_ddr",	18, 10),
+	GATE(0, "clk_ddrcfg_msch1", "clk_ddrc_div2",			18,  9),
+	GATE(0, "clk_ddrphy1", "clk_ddrc_div2",				18,  8),
+	GATE(0, "clk_ddrphy_ctrl1", "clk_ddrc_div2",			18,  7),
+	GATE(0, "clk_ddrc1", "clk_ddrc_div2",				18,  6),
+	GATE(0, "clk_ddr1_msch", "clk_ddrc_div2",			18,  5),
+	GATE(0, "clk_ddrcfg_msch0", "clk_ddrc_div2",			18,  4),
+	GATE(0, "clk_ddrphy0", "clk_ddrc_div2",				18,  3),
+	GATE(0, "clk_ddrphy_ctrl0", "clk_ddrc_div2",			18,  2),
+	GATE(0, "clk_ddrc0", "clk_ddrc_div2",				18,  1),
 
-static struct rk_clk_pll_rate rk3399_pll_rates[] = {
-	{
-		.freq = 2208000000,
-		.refdiv = 1,
-		.fbdiv = 92,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2184000000,
-		.refdiv = 1,
-		.fbdiv = 91,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2160000000,
-		.refdiv = 1,
-		.fbdiv = 90,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2136000000,
-		.refdiv = 1,
-		.fbdiv = 89,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2112000000,
-		.refdiv = 1,
-		.fbdiv = 88,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2088000000,
-		.refdiv = 1,
-		.fbdiv = 87,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2064000000,
-		.refdiv = 1,
-		.fbdiv = 86,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2040000000,
-		.refdiv = 1,
-		.fbdiv = 85,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 2016000000,
-		.refdiv = 1,
-		.fbdiv = 84,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1992000000,
-		.refdiv = 1,
-		.fbdiv = 83,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1968000000,
-		.refdiv = 1,
-		.fbdiv = 82,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1944000000,
-		.refdiv = 1,
-		.fbdiv = 81,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1920000000,
-		.refdiv = 1,
-		.fbdiv = 80,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1896000000,
-		.refdiv = 1,
-		.fbdiv = 79,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1872000000,
-		.refdiv = 1,
-		.fbdiv = 78,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1848000000,
-		.refdiv = 1,
-		.fbdiv = 77,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1824000000,
-		.refdiv = 1,
-		.fbdiv = 76,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1800000000,
-		.refdiv = 1,
-		.fbdiv = 75,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1776000000,
-		.refdiv = 1,
-		.fbdiv = 74,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1752000000,
-		.refdiv = 1,
-		.fbdiv = 73,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1728000000,
-		.refdiv = 1,
-		.fbdiv = 72,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1704000000,
-		.refdiv = 1,
-		.fbdiv = 71,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1680000000,
-		.refdiv = 1,
-		.fbdiv = 70,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1656000000,
-		.refdiv = 1,
-		.fbdiv = 69,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1632000000,
-		.refdiv = 1,
-		.fbdiv = 68,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1608000000,
-		.refdiv = 1,
-		.fbdiv = 67,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1600000000,
-		.refdiv = 3,
-		.fbdiv = 200,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1584000000,
-		.refdiv = 1,
-		.fbdiv = 66,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1560000000,
-		.refdiv = 1,
-		.fbdiv = 65,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1536000000,
-		.refdiv = 1,
-		.fbdiv = 64,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1512000000,
-		.refdiv = 1,
-		.fbdiv = 63,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1488000000,
-		.refdiv = 1,
-		.fbdiv = 62,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1464000000,
-		.refdiv = 1,
-		.fbdiv = 61,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1440000000,
-		.refdiv = 1,
-		.fbdiv = 60,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1416000000,
-		.refdiv = 1,
-		.fbdiv = 59,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1392000000,
-		.refdiv = 1,
-		.fbdiv = 58,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1368000000,
-		.refdiv = 1,
-		.fbdiv = 57,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1344000000,
-		.refdiv = 1,
-		.fbdiv = 56,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1320000000,
-		.refdiv = 1,
-		.fbdiv = 55,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1296000000,
-		.refdiv = 1,
-		.fbdiv = 54,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1272000000,
-		.refdiv = 1,
-		.fbdiv = 53,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1248000000,
-		.refdiv = 1,
-		.fbdiv = 52,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1200000000,
-		.refdiv = 1,
-		.fbdiv = 50,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1188000000,
-		.refdiv = 2,
-		.fbdiv = 99,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1104000000,
-		.refdiv = 1,
-		.fbdiv = 46,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1100000000,
-		.refdiv = 12,
-		.fbdiv = 550,
-		.postdiv1 = 1,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1008000000,
-		.refdiv = 1,
-		.fbdiv = 84,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 1000000000,
-		.refdiv = 1,
-		.fbdiv = 125,
-		.postdiv1 = 3,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 984000000,
-		.refdiv = 1,
-		.fbdiv = 82,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 960000000,
-		.refdiv = 1,
-		.fbdiv = 80,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 936000000,
-		.refdiv = 1,
-		.fbdiv = 78,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 912000000,
-		.refdiv = 1,
-		.fbdiv = 76,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 900000000,
-		.refdiv = 4,
-		.fbdiv = 300,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 888000000,
-		.refdiv = 1,
-		.fbdiv = 74,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 864000000,
-		.refdiv = 1,
-		.fbdiv = 72,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 840000000,
-		.refdiv = 1,
-		.fbdiv = 70,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 816000000,
-		.refdiv = 1,
-		.fbdiv = 68,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 800000000,
-		.refdiv = 1,
-		.fbdiv = 100,
-		.postdiv1 = 3,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 700000000,
-		.refdiv = 6,
-		.fbdiv = 350,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 696000000,
-		.refdiv = 1,
-		.fbdiv = 58,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 676000000,
-		.refdiv = 3,
-		.fbdiv = 169,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 600000000,
-		.refdiv = 1,
-		.fbdiv = 75,
-		.postdiv1 = 3,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 594000000,
-		.refdiv = 1,
-		.fbdiv = 99,
-		.postdiv1 = 4,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 533250000,
-		.refdiv = 8,
-		.fbdiv = 711,
-		.postdiv1 = 4,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 504000000,
-		.refdiv = 1,
-		.fbdiv = 63,
-		.postdiv1 = 3,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 500000000,
-		.refdiv = 6,
-		.fbdiv = 250,
-		.postdiv1 = 2,
-		.postdiv2 = 1,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 408000000,
-		.refdiv = 1,
-		.fbdiv = 68,
-		.postdiv1 = 2,
-		.postdiv2 = 2,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 312000000,
-		.refdiv = 1,
-		.fbdiv = 52,
-		.postdiv1 = 2,
-		.postdiv2 = 2,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 297000000,
-		.refdiv = 1,
-		.fbdiv = 99,
-		.postdiv1 = 4,
-		.postdiv2 = 2,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 216000000,
-		.refdiv = 1,
-		.fbdiv = 72,
-		.postdiv1 = 4,
-		.postdiv2 = 2,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 148500000,
-		.refdiv = 1,
-		.fbdiv = 99,
-		.postdiv1 = 4,
-		.postdiv2 = 4,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 106500000,
-		.refdiv = 1,
-		.fbdiv = 71,
-		.postdiv1 = 4,
-		.postdiv2 = 4,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 96000000,
-		.refdiv = 1,
-		.fbdiv = 64,
-		.postdiv1 = 4,
-		.postdiv2 = 4,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 74250000,
-		.refdiv = 2,
-		.fbdiv = 99,
-		.postdiv1 = 4,
-		.postdiv2 = 4,
-		.dsmpd = 1,
-	},
-	{
-		.freq = 65000000,
-		.refdiv = 1,
-		.fbdiv = 65,
-		.postdiv1 = 6,
-		.postdiv2 = 4,
-		.dsmpd = 1,
-	},

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list