diff options
Diffstat (limited to 'drivers/clk')
| -rw-r--r-- | drivers/clk/clk-vt8500.c | 2 | ||||
| -rw-r--r-- | drivers/clk/mxs/clk-imx23.c | 42 | ||||
| -rw-r--r-- | drivers/clk/mxs/clk-imx28.c | 42 | ||||
| -rw-r--r-- | drivers/clk/spear/spear1310_clock.c | 64 | ||||
| -rw-r--r-- | drivers/clk/spear/spear1340_clock.c | 63 | ||||
| -rw-r--r-- | drivers/clk/spear/spear3xx_clock.c | 60 | ||||
| -rw-r--r-- | drivers/clk/spear/spear6xx_clock.c | 31 | ||||
| -rw-r--r-- | drivers/clk/tegra/clk-tegra20.c | 37 | ||||
| -rw-r--r-- | drivers/clk/tegra/clk-tegra30.c | 4 | ||||
| -rw-r--r-- | drivers/clk/ux500/clk-prcc.c | 1 | ||||
| -rw-r--r-- | drivers/clk/ux500/u8500_clk.c | 142 | 
11 files changed, 233 insertions, 255 deletions
diff --git a/drivers/clk/clk-vt8500.c b/drivers/clk/clk-vt8500.c index b5538bba7a1..09c63315e57 100644 --- a/drivers/clk/clk-vt8500.c +++ b/drivers/clk/clk-vt8500.c @@ -157,7 +157,7 @@ static int vt8500_dclk_set_rate(struct clk_hw *hw, unsigned long rate,  	divisor =  parent_rate / rate;  	/* If prate / rate would be decimal, incr the divisor */ -	if (rate * divisor < *prate) +	if (rate * divisor < parent_rate)  		divisor++;  	if (divisor == cdev->div_mask + 1) diff --git a/drivers/clk/mxs/clk-imx23.c b/drivers/clk/mxs/clk-imx23.c index b5c06f9766f..f6a74872f14 100644 --- a/drivers/clk/mxs/clk-imx23.c +++ b/drivers/clk/mxs/clk-imx23.c @@ -15,12 +15,15 @@  #include <linux/init.h>  #include <linux/io.h>  #include <linux/of.h> -#include <mach/common.h> -#include <mach/mx23.h> +#include <linux/of_address.h>  #include "clk.h" -#define DIGCTRL			MX23_IO_ADDRESS(MX23_DIGCTL_BASE_ADDR) -#define CLKCTRL			MX23_IO_ADDRESS(MX23_CLKCTRL_BASE_ADDR) +static void __iomem *clkctrl; +static void __iomem *digctrl; + +#define CLKCTRL clkctrl +#define DIGCTRL digctrl +  #define PLLCTRL0		(CLKCTRL + 0x0000)  #define CPU			(CLKCTRL + 0x0020)  #define HBUS			(CLKCTRL + 0x0030) @@ -48,10 +51,10 @@ static void __init clk_misc_init(void)  	u32 val;  	/* Gate off cpu clock in WFI for power saving */ -	__mxs_setl(1 << BP_CPU_INTERRUPT_WAIT, CPU); +	writel_relaxed(1 << BP_CPU_INTERRUPT_WAIT, CPU + SET);  	/* Clear BYPASS for SAIF */ -	__mxs_clrl(1 << BP_CLKSEQ_BYPASS_SAIF, CLKSEQ); +	writel_relaxed(1 << BP_CLKSEQ_BYPASS_SAIF, CLKSEQ + CLR);  	/* SAIF has to use frac div for functional operation */  	val = readl_relaxed(SAIF); @@ -62,14 +65,14 @@ static void __init clk_misc_init(void)  	 * Source ssp clock from ref_io than ref_xtal,  	 * as ref_xtal only provides 24 MHz as maximum.  	 */ -	__mxs_clrl(1 << BP_CLKSEQ_BYPASS_SSP, CLKSEQ); +	writel_relaxed(1 << BP_CLKSEQ_BYPASS_SSP, CLKSEQ + CLR);  	/*  	 * 480 MHz seems too high to be ssp clock source directly,  	 * so set frac to get a 288 MHz ref_io.  	 */ -	__mxs_clrl(0x3f << BP_FRAC_IOFRAC, FRAC); -	__mxs_setl(30 << BP_FRAC_IOFRAC, FRAC); +	writel_relaxed(0x3f << BP_FRAC_IOFRAC, FRAC + CLR); +	writel_relaxed(30 << BP_FRAC_IOFRAC, FRAC + SET);  }  static const char *sel_pll[]  __initconst = { "pll", "ref_xtal", }; @@ -101,6 +104,14 @@ int __init mx23_clocks_init(void)  	struct device_node *np;  	u32 i; +	np = of_find_compatible_node(NULL, NULL, "fsl,imx23-digctl"); +	digctrl = of_iomap(np, 0); +	WARN_ON(!digctrl); + +	np = of_find_compatible_node(NULL, NULL, "fsl,imx23-clkctrl"); +	clkctrl = of_iomap(np, 0); +	WARN_ON(!clkctrl); +  	clk_misc_init();  	clks[ref_xtal] = mxs_clk_fixed("ref_xtal", 24000000); @@ -153,19 +164,12 @@ int __init mx23_clocks_init(void)  			return PTR_ERR(clks[i]);  		} -	np = of_find_compatible_node(NULL, NULL, "fsl,imx23-clkctrl"); -	if (np) { -		clk_data.clks = clks; -		clk_data.clk_num = ARRAY_SIZE(clks); -		of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); -	} - -	clk_register_clkdev(clks[clk32k], NULL, "timrot"); +	clk_data.clks = clks; +	clk_data.clk_num = ARRAY_SIZE(clks); +	of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);  	for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)  		clk_prepare_enable(clks[clks_init_on[i]]); -	mxs_timer_init(); -  	return 0;  } diff --git a/drivers/clk/mxs/clk-imx28.c b/drivers/clk/mxs/clk-imx28.c index 76ce6c6d111..d0e5eed146d 100644 --- a/drivers/clk/mxs/clk-imx28.c +++ b/drivers/clk/mxs/clk-imx28.c @@ -15,11 +15,12 @@  #include <linux/init.h>  #include <linux/io.h>  #include <linux/of.h> -#include <mach/common.h> -#include <mach/mx28.h> +#include <linux/of_address.h>  #include "clk.h" -#define CLKCTRL			MX28_IO_ADDRESS(MX28_CLKCTRL_BASE_ADDR) +static void __iomem *clkctrl; +#define CLKCTRL clkctrl +  #define PLL0CTRL0		(CLKCTRL + 0x0000)  #define PLL1CTRL0		(CLKCTRL + 0x0020)  #define PLL2CTRL0		(CLKCTRL + 0x0040) @@ -53,7 +54,8 @@  #define BP_FRAC0_IO1FRAC	16  #define BP_FRAC0_IO0FRAC	24 -#define DIGCTRL			MX28_IO_ADDRESS(MX28_DIGCTL_BASE_ADDR) +static void __iomem *digctrl; +#define DIGCTRL digctrl  #define BP_SAIF_CLKMUX		10  /* @@ -72,8 +74,8 @@ int mxs_saif_clkmux_select(unsigned int clkmux)  	if (clkmux > 0x3)  		return -EINVAL; -	__mxs_clrl(0x3 << BP_SAIF_CLKMUX, DIGCTRL); -	__mxs_setl(clkmux << BP_SAIF_CLKMUX, DIGCTRL); +	writel_relaxed(0x3 << BP_SAIF_CLKMUX, DIGCTRL + CLR); +	writel_relaxed(clkmux << BP_SAIF_CLKMUX, DIGCTRL + SET);  	return 0;  } @@ -83,13 +85,13 @@ static void __init clk_misc_init(void)  	u32 val;  	/* Gate off cpu clock in WFI for power saving */ -	__mxs_setl(1 << BP_CPU_INTERRUPT_WAIT, CPU); +	writel_relaxed(1 << BP_CPU_INTERRUPT_WAIT, CPU + SET);  	/* 0 is a bad default value for a divider */ -	__mxs_setl(1 << BP_ENET_DIV_TIME, ENET); +	writel_relaxed(1 << BP_ENET_DIV_TIME, ENET + SET);  	/* Clear BYPASS for SAIF */ -	__mxs_clrl(0x3 << BP_CLKSEQ_BYPASS_SAIF0, CLKSEQ); +	writel_relaxed(0x3 << BP_CLKSEQ_BYPASS_SAIF0, CLKSEQ + CLR);  	/* SAIF has to use frac div for functional operation */  	val = readl_relaxed(SAIF0); @@ -109,7 +111,7 @@ static void __init clk_misc_init(void)  	 * Source ssp clock from ref_io than ref_xtal,  	 * as ref_xtal only provides 24 MHz as maximum.  	 */ -	__mxs_clrl(0xf << BP_CLKSEQ_BYPASS_SSP0, CLKSEQ); +	writel_relaxed(0xf << BP_CLKSEQ_BYPASS_SSP0, CLKSEQ + CLR);  	/*  	 * 480 MHz seems too high to be ssp clock source directly, @@ -156,6 +158,14 @@ int __init mx28_clocks_init(void)  	struct device_node *np;  	u32 i; +	np = of_find_compatible_node(NULL, NULL, "fsl,imx28-digctl"); +	digctrl = of_iomap(np, 0); +	WARN_ON(!digctrl); + +	np = of_find_compatible_node(NULL, NULL, "fsl,imx28-clkctrl"); +	clkctrl = of_iomap(np, 0); +	WARN_ON(!clkctrl); +  	clk_misc_init();  	clks[ref_xtal] = mxs_clk_fixed("ref_xtal", 24000000); @@ -231,20 +241,14 @@ int __init mx28_clocks_init(void)  			return PTR_ERR(clks[i]);  		} -	np = of_find_compatible_node(NULL, NULL, "fsl,imx28-clkctrl"); -	if (np) { -		clk_data.clks = clks; -		clk_data.clk_num = ARRAY_SIZE(clks); -		of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); -	} +	clk_data.clks = clks; +	clk_data.clk_num = ARRAY_SIZE(clks); +	of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); -	clk_register_clkdev(clks[xbus], NULL, "timrot");  	clk_register_clkdev(clks[enet_out], NULL, "enet_out");  	for (i = 0; i < ARRAY_SIZE(clks_init_on); i++)  		clk_prepare_enable(clks[clks_init_on[i]]); -	mxs_timer_init(); -  	return 0;  } diff --git a/drivers/clk/spear/spear1310_clock.c b/drivers/clk/spear/spear1310_clock.c index ed9af427861..aedbbe12f32 100644 --- a/drivers/clk/spear/spear1310_clock.c +++ b/drivers/clk/spear/spear1310_clock.c @@ -17,12 +17,10 @@  #include <linux/io.h>  #include <linux/of_platform.h>  #include <linux/spinlock_types.h> -#include <mach/spear.h>  #include "clk.h" -#define VA_SPEAR1310_RAS_BASE			IOMEM(UL(0xFA400000))  /* PLL related registers and bit values */ -#define SPEAR1310_PLL_CFG			(VA_MISC_BASE + 0x210) +#define SPEAR1310_PLL_CFG			(misc_base + 0x210)  	/* PLL_CFG bit values */  	#define SPEAR1310_CLCD_SYNT_CLK_MASK		1  	#define SPEAR1310_CLCD_SYNT_CLK_SHIFT		31 @@ -35,15 +33,15 @@  	#define SPEAR1310_PLL2_CLK_SHIFT		22  	#define SPEAR1310_PLL1_CLK_SHIFT		20 -#define SPEAR1310_PLL1_CTR			(VA_MISC_BASE + 0x214) -#define SPEAR1310_PLL1_FRQ			(VA_MISC_BASE + 0x218) -#define SPEAR1310_PLL2_CTR			(VA_MISC_BASE + 0x220) -#define SPEAR1310_PLL2_FRQ			(VA_MISC_BASE + 0x224) -#define SPEAR1310_PLL3_CTR			(VA_MISC_BASE + 0x22C) -#define SPEAR1310_PLL3_FRQ			(VA_MISC_BASE + 0x230) -#define SPEAR1310_PLL4_CTR			(VA_MISC_BASE + 0x238) -#define SPEAR1310_PLL4_FRQ			(VA_MISC_BASE + 0x23C) -#define SPEAR1310_PERIP_CLK_CFG			(VA_MISC_BASE + 0x244) +#define SPEAR1310_PLL1_CTR			(misc_base + 0x214) +#define SPEAR1310_PLL1_FRQ			(misc_base + 0x218) +#define SPEAR1310_PLL2_CTR			(misc_base + 0x220) +#define SPEAR1310_PLL2_FRQ			(misc_base + 0x224) +#define SPEAR1310_PLL3_CTR			(misc_base + 0x22C) +#define SPEAR1310_PLL3_FRQ			(misc_base + 0x230) +#define SPEAR1310_PLL4_CTR			(misc_base + 0x238) +#define SPEAR1310_PLL4_FRQ			(misc_base + 0x23C) +#define SPEAR1310_PERIP_CLK_CFG			(misc_base + 0x244)  	/* PERIP_CLK_CFG bit values */  	#define SPEAR1310_GPT_OSC24_VAL			0  	#define SPEAR1310_GPT_APB_VAL			1 @@ -65,7 +63,7 @@  	#define SPEAR1310_C3_CLK_MASK			1  	#define SPEAR1310_C3_CLK_SHIFT			1 -#define SPEAR1310_GMAC_CLK_CFG			(VA_MISC_BASE + 0x248) +#define SPEAR1310_GMAC_CLK_CFG			(misc_base + 0x248)  	#define SPEAR1310_GMAC_PHY_IF_SEL_MASK		3  	#define SPEAR1310_GMAC_PHY_IF_SEL_SHIFT		4  	#define SPEAR1310_GMAC_PHY_CLK_MASK		1 @@ -73,7 +71,7 @@  	#define SPEAR1310_GMAC_PHY_INPUT_CLK_MASK	2  	#define SPEAR1310_GMAC_PHY_INPUT_CLK_SHIFT	1 -#define SPEAR1310_I2S_CLK_CFG			(VA_MISC_BASE + 0x24C) +#define SPEAR1310_I2S_CLK_CFG			(misc_base + 0x24C)  	/* I2S_CLK_CFG register mask */  	#define SPEAR1310_I2S_SCLK_X_MASK		0x1F  	#define SPEAR1310_I2S_SCLK_X_SHIFT		27 @@ -91,21 +89,21 @@  	#define SPEAR1310_I2S_SRC_CLK_MASK		2  	#define SPEAR1310_I2S_SRC_CLK_SHIFT		0 -#define SPEAR1310_C3_CLK_SYNT			(VA_MISC_BASE + 0x250) -#define SPEAR1310_UART_CLK_SYNT			(VA_MISC_BASE + 0x254) -#define SPEAR1310_GMAC_CLK_SYNT			(VA_MISC_BASE + 0x258) -#define SPEAR1310_SDHCI_CLK_SYNT		(VA_MISC_BASE + 0x25C) -#define SPEAR1310_CFXD_CLK_SYNT			(VA_MISC_BASE + 0x260) -#define SPEAR1310_ADC_CLK_SYNT			(VA_MISC_BASE + 0x264) -#define SPEAR1310_AMBA_CLK_SYNT			(VA_MISC_BASE + 0x268) -#define SPEAR1310_CLCD_CLK_SYNT			(VA_MISC_BASE + 0x270) -#define SPEAR1310_RAS_CLK_SYNT0			(VA_MISC_BASE + 0x280) -#define SPEAR1310_RAS_CLK_SYNT1			(VA_MISC_BASE + 0x288) -#define SPEAR1310_RAS_CLK_SYNT2			(VA_MISC_BASE + 0x290) -#define SPEAR1310_RAS_CLK_SYNT3			(VA_MISC_BASE + 0x298) +#define SPEAR1310_C3_CLK_SYNT			(misc_base + 0x250) +#define SPEAR1310_UART_CLK_SYNT			(misc_base + 0x254) +#define SPEAR1310_GMAC_CLK_SYNT			(misc_base + 0x258) +#define SPEAR1310_SDHCI_CLK_SYNT		(misc_base + 0x25C) +#define SPEAR1310_CFXD_CLK_SYNT			(misc_base + 0x260) +#define SPEAR1310_ADC_CLK_SYNT			(misc_base + 0x264) +#define SPEAR1310_AMBA_CLK_SYNT			(misc_base + 0x268) +#define SPEAR1310_CLCD_CLK_SYNT			(misc_base + 0x270) +#define SPEAR1310_RAS_CLK_SYNT0			(misc_base + 0x280) +#define SPEAR1310_RAS_CLK_SYNT1			(misc_base + 0x288) +#define SPEAR1310_RAS_CLK_SYNT2			(misc_base + 0x290) +#define SPEAR1310_RAS_CLK_SYNT3			(misc_base + 0x298)  	/* Check Fractional synthesizer reg masks */ -#define SPEAR1310_PERIP1_CLK_ENB		(VA_MISC_BASE + 0x300) +#define SPEAR1310_PERIP1_CLK_ENB		(misc_base + 0x300)  	/* PERIP1_CLK_ENB register masks */  	#define SPEAR1310_RTC_CLK_ENB			31  	#define SPEAR1310_ADC_CLK_ENB			30 @@ -138,7 +136,7 @@  	#define SPEAR1310_SYSROM_CLK_ENB		1  	#define SPEAR1310_BUS_CLK_ENB			0 -#define SPEAR1310_PERIP2_CLK_ENB		(VA_MISC_BASE + 0x304) +#define SPEAR1310_PERIP2_CLK_ENB		(misc_base + 0x304)  	/* PERIP2_CLK_ENB register masks */  	#define SPEAR1310_THSENS_CLK_ENB		8  	#define SPEAR1310_I2S_REF_PAD_CLK_ENB		7 @@ -150,7 +148,7 @@  	#define SPEAR1310_DDR_CORE_CLK_ENB		1  	#define SPEAR1310_DDR_CTRL_CLK_ENB		0 -#define SPEAR1310_RAS_CLK_ENB			(VA_MISC_BASE + 0x310) +#define SPEAR1310_RAS_CLK_ENB			(misc_base + 0x310)  	/* RAS_CLK_ENB register masks */  	#define SPEAR1310_SYNT3_CLK_ENB			17  	#define SPEAR1310_SYNT2_CLK_ENB			16 @@ -172,7 +170,7 @@  	#define SPEAR1310_ACLK_CLK_ENB			0  /* RAS Area Control Register */ -#define SPEAR1310_RAS_CTRL_REG0			(VA_SPEAR1310_RAS_BASE + 0x000) +#define SPEAR1310_RAS_CTRL_REG0			(ras_base + 0x000)  	#define SPEAR1310_SSP1_CLK_MASK			3  	#define SPEAR1310_SSP1_CLK_SHIFT		26  	#define SPEAR1310_TDM_CLK_MASK			1 @@ -197,12 +195,12 @@  	#define SPEAR1310_PCI_CLK_MASK			1  	#define SPEAR1310_PCI_CLK_SHIFT			0 -#define SPEAR1310_RAS_CTRL_REG1			(VA_SPEAR1310_RAS_BASE + 0x004) +#define SPEAR1310_RAS_CTRL_REG1			(ras_base + 0x004)  	#define SPEAR1310_PHY_CLK_MASK			0x3  	#define SPEAR1310_RMII_PHY_CLK_SHIFT		0  	#define SPEAR1310_SMII_RGMII_PHY_CLK_SHIFT	2 -#define SPEAR1310_RAS_SW_CLK_CTRL		(VA_SPEAR1310_RAS_BASE + 0x0148) +#define SPEAR1310_RAS_SW_CLK_CTRL		(ras_base + 0x0148)  	#define SPEAR1310_CAN1_CLK_ENB			25  	#define SPEAR1310_CAN0_CLK_ENB			24  	#define SPEAR1310_GPT64_CLK_ENB			23 @@ -385,7 +383,7 @@ static const char *ssp1_parents[] = { "ras_apb_clk", "gen_syn1_clk",  static const char *pci_parents[] = { "ras_pll3_clk", "gen_syn2_clk", };  static const char *tdm_parents[] = { "ras_pll3_clk", "gen_syn1_clk", }; -void __init spear1310_clk_init(void) +void __init spear1310_clk_init(void __iomem *misc_base, void __iomem *ras_base)  {  	struct clk *clk, *clk1; diff --git a/drivers/clk/spear/spear1340_clock.c b/drivers/clk/spear/spear1340_clock.c index 82abea366b7..3ceb4507e95 100644 --- a/drivers/clk/spear/spear1340_clock.c +++ b/drivers/clk/spear/spear1340_clock.c @@ -17,18 +17,17 @@  #include <linux/io.h>  #include <linux/of_platform.h>  #include <linux/spinlock_types.h> -#include <mach/spear.h>  #include "clk.h"  /* Clock Configuration Registers */ -#define SPEAR1340_SYS_CLK_CTRL			(VA_MISC_BASE + 0x200) +#define SPEAR1340_SYS_CLK_CTRL			(misc_base + 0x200)  	#define SPEAR1340_HCLK_SRC_SEL_SHIFT	27  	#define SPEAR1340_HCLK_SRC_SEL_MASK	1  	#define SPEAR1340_SCLK_SRC_SEL_SHIFT	23  	#define SPEAR1340_SCLK_SRC_SEL_MASK	3  /* PLL related registers and bit values */ -#define SPEAR1340_PLL_CFG			(VA_MISC_BASE + 0x210) +#define SPEAR1340_PLL_CFG			(misc_base + 0x210)  	/* PLL_CFG bit values */  	#define SPEAR1340_CLCD_SYNT_CLK_MASK		1  	#define SPEAR1340_CLCD_SYNT_CLK_SHIFT		31 @@ -40,15 +39,15 @@  	#define SPEAR1340_PLL2_CLK_SHIFT		22  	#define SPEAR1340_PLL1_CLK_SHIFT		20 -#define SPEAR1340_PLL1_CTR			(VA_MISC_BASE + 0x214) -#define SPEAR1340_PLL1_FRQ			(VA_MISC_BASE + 0x218) -#define SPEAR1340_PLL2_CTR			(VA_MISC_BASE + 0x220) -#define SPEAR1340_PLL2_FRQ			(VA_MISC_BASE + 0x224) -#define SPEAR1340_PLL3_CTR			(VA_MISC_BASE + 0x22C) -#define SPEAR1340_PLL3_FRQ			(VA_MISC_BASE + 0x230) -#define SPEAR1340_PLL4_CTR			(VA_MISC_BASE + 0x238) -#define SPEAR1340_PLL4_FRQ			(VA_MISC_BASE + 0x23C) -#define SPEAR1340_PERIP_CLK_CFG			(VA_MISC_BASE + 0x244) +#define SPEAR1340_PLL1_CTR			(misc_base + 0x214) +#define SPEAR1340_PLL1_FRQ			(misc_base + 0x218) +#define SPEAR1340_PLL2_CTR			(misc_base + 0x220) +#define SPEAR1340_PLL2_FRQ			(misc_base + 0x224) +#define SPEAR1340_PLL3_CTR			(misc_base + 0x22C) +#define SPEAR1340_PLL3_FRQ			(misc_base + 0x230) +#define SPEAR1340_PLL4_CTR			(misc_base + 0x238) +#define SPEAR1340_PLL4_FRQ			(misc_base + 0x23C) +#define SPEAR1340_PERIP_CLK_CFG			(misc_base + 0x244)  	/* PERIP_CLK_CFG bit values */  	#define SPEAR1340_SPDIF_CLK_MASK		1  	#define SPEAR1340_SPDIF_OUT_CLK_SHIFT		15 @@ -66,13 +65,13 @@  	#define SPEAR1340_C3_CLK_MASK			1  	#define SPEAR1340_C3_CLK_SHIFT			1 -#define SPEAR1340_GMAC_CLK_CFG			(VA_MISC_BASE + 0x248) +#define SPEAR1340_GMAC_CLK_CFG			(misc_base + 0x248)  	#define SPEAR1340_GMAC_PHY_CLK_MASK		1  	#define SPEAR1340_GMAC_PHY_CLK_SHIFT		2  	#define SPEAR1340_GMAC_PHY_INPUT_CLK_MASK	2  	#define SPEAR1340_GMAC_PHY_INPUT_CLK_SHIFT	0 -#define SPEAR1340_I2S_CLK_CFG			(VA_MISC_BASE + 0x24C) +#define SPEAR1340_I2S_CLK_CFG			(misc_base + 0x24C)  	/* I2S_CLK_CFG register mask */  	#define SPEAR1340_I2S_SCLK_X_MASK		0x1F  	#define SPEAR1340_I2S_SCLK_X_SHIFT		27 @@ -90,21 +89,21 @@  	#define SPEAR1340_I2S_SRC_CLK_MASK		2  	#define SPEAR1340_I2S_SRC_CLK_SHIFT		0 -#define SPEAR1340_C3_CLK_SYNT			(VA_MISC_BASE + 0x250) -#define SPEAR1340_UART0_CLK_SYNT		(VA_MISC_BASE + 0x254) -#define SPEAR1340_UART1_CLK_SYNT		(VA_MISC_BASE + 0x258) -#define SPEAR1340_GMAC_CLK_SYNT			(VA_MISC_BASE + 0x25C) -#define SPEAR1340_SDHCI_CLK_SYNT		(VA_MISC_BASE + 0x260) -#define SPEAR1340_CFXD_CLK_SYNT			(VA_MISC_BASE + 0x264) -#define SPEAR1340_ADC_CLK_SYNT			(VA_MISC_BASE + 0x270) -#define SPEAR1340_AMBA_CLK_SYNT			(VA_MISC_BASE + 0x274) -#define SPEAR1340_CLCD_CLK_SYNT			(VA_MISC_BASE + 0x27C) -#define SPEAR1340_SYS_CLK_SYNT			(VA_MISC_BASE + 0x284) -#define SPEAR1340_GEN_CLK_SYNT0			(VA_MISC_BASE + 0x28C) -#define SPEAR1340_GEN_CLK_SYNT1			(VA_MISC_BASE + 0x294) -#define SPEAR1340_GEN_CLK_SYNT2			(VA_MISC_BASE + 0x29C) -#define SPEAR1340_GEN_CLK_SYNT3			(VA_MISC_BASE + 0x304) -#define SPEAR1340_PERIP1_CLK_ENB		(VA_MISC_BASE + 0x30C) +#define SPEAR1340_C3_CLK_SYNT			(misc_base + 0x250) +#define SPEAR1340_UART0_CLK_SYNT		(misc_base + 0x254) +#define SPEAR1340_UART1_CLK_SYNT		(misc_base + 0x258) +#define SPEAR1340_GMAC_CLK_SYNT			(misc_base + 0x25C) +#define SPEAR1340_SDHCI_CLK_SYNT		(misc_base + 0x260) +#define SPEAR1340_CFXD_CLK_SYNT			(misc_base + 0x264) +#define SPEAR1340_ADC_CLK_SYNT			(misc_base + 0x270) +#define SPEAR1340_AMBA_CLK_SYNT			(misc_base + 0x274) +#define SPEAR1340_CLCD_CLK_SYNT			(misc_base + 0x27C) +#define SPEAR1340_SYS_CLK_SYNT			(misc_base + 0x284) +#define SPEAR1340_GEN_CLK_SYNT0			(misc_base + 0x28C) +#define SPEAR1340_GEN_CLK_SYNT1			(misc_base + 0x294) +#define SPEAR1340_GEN_CLK_SYNT2			(misc_base + 0x29C) +#define SPEAR1340_GEN_CLK_SYNT3			(misc_base + 0x304) +#define SPEAR1340_PERIP1_CLK_ENB		(misc_base + 0x30C)  	#define SPEAR1340_RTC_CLK_ENB			31  	#define SPEAR1340_ADC_CLK_ENB			30  	#define SPEAR1340_C3_CLK_ENB			29 @@ -133,7 +132,7 @@  	#define SPEAR1340_SYSROM_CLK_ENB		1  	#define SPEAR1340_BUS_CLK_ENB			0 -#define SPEAR1340_PERIP2_CLK_ENB		(VA_MISC_BASE + 0x310) +#define SPEAR1340_PERIP2_CLK_ENB		(misc_base + 0x310)  	#define SPEAR1340_THSENS_CLK_ENB		8  	#define SPEAR1340_I2S_REF_PAD_CLK_ENB		7  	#define SPEAR1340_ACP_CLK_ENB			6 @@ -144,7 +143,7 @@  	#define SPEAR1340_DDR_CORE_CLK_ENB		1  	#define SPEAR1340_DDR_CTRL_CLK_ENB		0 -#define SPEAR1340_PERIP3_CLK_ENB		(VA_MISC_BASE + 0x314) +#define SPEAR1340_PERIP3_CLK_ENB		(misc_base + 0x314)  	#define SPEAR1340_PLGPIO_CLK_ENB		18  	#define SPEAR1340_VIDEO_DEC_CLK_ENB		16  	#define SPEAR1340_VIDEO_ENC_CLK_ENB		15 @@ -441,7 +440,7 @@ static const char *gen_synth0_1_parents[] = { "vco1div4_clk", "vco3div2_clk",  static const char *gen_synth2_3_parents[] = { "vco1div4_clk", "vco2div2_clk",  	"pll2_clk", }; -void __init spear1340_clk_init(void) +void __init spear1340_clk_init(void __iomem *misc_base)  {  	struct clk *clk, *clk1; diff --git a/drivers/clk/spear/spear3xx_clock.c b/drivers/clk/spear/spear3xx_clock.c index 33d3ac588da..f9ec43fd132 100644 --- a/drivers/clk/spear/spear3xx_clock.c +++ b/drivers/clk/spear/spear3xx_clock.c @@ -15,21 +15,20 @@  #include <linux/io.h>  #include <linux/of_platform.h>  #include <linux/spinlock_types.h> -#include <mach/misc_regs.h>  #include "clk.h"  static DEFINE_SPINLOCK(_lock); -#define PLL1_CTR			(MISC_BASE + 0x008) -#define PLL1_FRQ			(MISC_BASE + 0x00C) -#define PLL2_CTR			(MISC_BASE + 0x014) -#define PLL2_FRQ			(MISC_BASE + 0x018) -#define PLL_CLK_CFG			(MISC_BASE + 0x020) +#define PLL1_CTR			(misc_base + 0x008) +#define PLL1_FRQ			(misc_base + 0x00C) +#define PLL2_CTR			(misc_base + 0x014) +#define PLL2_FRQ			(misc_base + 0x018) +#define PLL_CLK_CFG			(misc_base + 0x020)  	/* PLL_CLK_CFG register masks */  	#define MCTR_CLK_SHIFT		28  	#define MCTR_CLK_MASK		3 -#define CORE_CLK_CFG			(MISC_BASE + 0x024) +#define CORE_CLK_CFG			(misc_base + 0x024)  	/* CORE CLK CFG register masks */  	#define GEN_SYNTH2_3_CLK_SHIFT	18  	#define GEN_SYNTH2_3_CLK_MASK	1 @@ -39,7 +38,7 @@ static DEFINE_SPINLOCK(_lock);  	#define PCLK_RATIO_SHIFT	8  	#define PCLK_RATIO_MASK		2 -#define PERIP_CLK_CFG			(MISC_BASE + 0x028) +#define PERIP_CLK_CFG			(misc_base + 0x028)  	/* PERIP_CLK_CFG register masks */  	#define UART_CLK_SHIFT		4  	#define UART_CLK_MASK		1 @@ -50,7 +49,7 @@ static DEFINE_SPINLOCK(_lock);  	#define GPT2_CLK_SHIFT		12  	#define GPT_CLK_MASK		1 -#define PERIP1_CLK_ENB			(MISC_BASE + 0x02C) +#define PERIP1_CLK_ENB			(misc_base + 0x02C)  	/* PERIP1_CLK_ENB register masks */  	#define UART_CLK_ENB		3  	#define SSP_CLK_ENB		5 @@ -69,7 +68,7 @@ static DEFINE_SPINLOCK(_lock);  	#define USBH_CLK_ENB		25  	#define C3_CLK_ENB		31 -#define RAS_CLK_ENB			(MISC_BASE + 0x034) +#define RAS_CLK_ENB			(misc_base + 0x034)  	#define RAS_AHB_CLK_ENB		0  	#define RAS_PLL1_CLK_ENB	1  	#define RAS_APB_CLK_ENB		2 @@ -82,20 +81,20 @@ static DEFINE_SPINLOCK(_lock);  	#define RAS_SYNT2_CLK_ENB	10  	#define RAS_SYNT3_CLK_ENB	11 -#define PRSC0_CLK_CFG			(MISC_BASE + 0x044) -#define PRSC1_CLK_CFG			(MISC_BASE + 0x048) -#define PRSC2_CLK_CFG			(MISC_BASE + 0x04C) -#define AMEM_CLK_CFG			(MISC_BASE + 0x050) +#define PRSC0_CLK_CFG			(misc_base + 0x044) +#define PRSC1_CLK_CFG			(misc_base + 0x048) +#define PRSC2_CLK_CFG			(misc_base + 0x04C) +#define AMEM_CLK_CFG			(misc_base + 0x050)  	#define AMEM_CLK_ENB		0 -#define CLCD_CLK_SYNT			(MISC_BASE + 0x05C) -#define FIRDA_CLK_SYNT			(MISC_BASE + 0x060) -#define UART_CLK_SYNT			(MISC_BASE + 0x064) -#define GMAC_CLK_SYNT			(MISC_BASE + 0x068) -#define GEN0_CLK_SYNT			(MISC_BASE + 0x06C) -#define GEN1_CLK_SYNT			(MISC_BASE + 0x070) -#define GEN2_CLK_SYNT			(MISC_BASE + 0x074) -#define GEN3_CLK_SYNT			(MISC_BASE + 0x078) +#define CLCD_CLK_SYNT			(misc_base + 0x05C) +#define FIRDA_CLK_SYNT			(misc_base + 0x060) +#define UART_CLK_SYNT			(misc_base + 0x064) +#define GMAC_CLK_SYNT			(misc_base + 0x068) +#define GEN0_CLK_SYNT			(misc_base + 0x06C) +#define GEN1_CLK_SYNT			(misc_base + 0x070) +#define GEN2_CLK_SYNT			(misc_base + 0x074) +#define GEN3_CLK_SYNT			(misc_base + 0x078)  /* pll rate configuration table, in ascending order of rates */  static struct pll_rate_tbl pll_rtbl[] = { @@ -211,6 +210,17 @@ static inline void spear310_clk_init(void) { }  /* array of all spear 320 clock lookups */  #ifdef CONFIG_MACH_SPEAR320 + +#define SPEAR320_CONTROL_REG		(soc_config_base + 0x0000) +#define SPEAR320_EXT_CTRL_REG		(soc_config_base + 0x0018) + +	#define SPEAR320_UARTX_PCLK_MASK		0x1 +	#define SPEAR320_UART2_PCLK_SHIFT		8 +	#define SPEAR320_UART3_PCLK_SHIFT		9 +	#define SPEAR320_UART4_PCLK_SHIFT		10 +	#define SPEAR320_UART5_PCLK_SHIFT		11 +	#define SPEAR320_UART6_PCLK_SHIFT		12 +	#define SPEAR320_RS485_PCLK_SHIFT		13  	#define SMII_PCLK_SHIFT				18  	#define SMII_PCLK_MASK				2  	#define SMII_PCLK_VAL_PAD			0x0 @@ -235,7 +245,7 @@ static const char *smii0_parents[] = { "smii_125m_pad", "ras_pll2_clk",  	"ras_syn0_gclk", };  static const char *uartx_parents[] = { "ras_syn1_gclk", "ras_apb_clk", }; -static void __init spear320_clk_init(void) +static void __init spear320_clk_init(void __iomem *soc_config_base)  {  	struct clk *clk; @@ -362,7 +372,7 @@ static void __init spear320_clk_init(void)  static inline void spear320_clk_init(void) { }  #endif -void __init spear3xx_clk_init(void) +void __init spear3xx_clk_init(void __iomem *misc_base, void __iomem *soc_config_base)  {  	struct clk *clk, *clk1; @@ -634,5 +644,5 @@ void __init spear3xx_clk_init(void)  	else if (of_machine_is_compatible("st,spear310"))  		spear310_clk_init();  	else if (of_machine_is_compatible("st,spear320")) -		spear320_clk_init(); +		spear320_clk_init(soc_config_base);  } diff --git a/drivers/clk/spear/spear6xx_clock.c b/drivers/clk/spear/spear6xx_clock.c index e862a333ad3..9406f2426d6 100644 --- a/drivers/clk/spear/spear6xx_clock.c +++ b/drivers/clk/spear/spear6xx_clock.c @@ -13,28 +13,27 @@  #include <linux/clkdev.h>  #include <linux/io.h>  #include <linux/spinlock_types.h> -#include <mach/misc_regs.h>  #include "clk.h"  static DEFINE_SPINLOCK(_lock); -#define PLL1_CTR			(MISC_BASE + 0x008) -#define PLL1_FRQ			(MISC_BASE + 0x00C) -#define PLL2_CTR			(MISC_BASE + 0x014) -#define PLL2_FRQ			(MISC_BASE + 0x018) -#define PLL_CLK_CFG			(MISC_BASE + 0x020) +#define PLL1_CTR			(misc_base + 0x008) +#define PLL1_FRQ			(misc_base + 0x00C) +#define PLL2_CTR			(misc_base + 0x014) +#define PLL2_FRQ			(misc_base + 0x018) +#define PLL_CLK_CFG			(misc_base + 0x020)  	/* PLL_CLK_CFG register masks */  	#define MCTR_CLK_SHIFT		28  	#define MCTR_CLK_MASK		3 -#define CORE_CLK_CFG			(MISC_BASE + 0x024) +#define CORE_CLK_CFG			(misc_base + 0x024)  	/* CORE CLK CFG register masks */  	#define HCLK_RATIO_SHIFT	10  	#define HCLK_RATIO_MASK		2  	#define PCLK_RATIO_SHIFT	8  	#define PCLK_RATIO_MASK		2 -#define PERIP_CLK_CFG			(MISC_BASE + 0x028) +#define PERIP_CLK_CFG			(misc_base + 0x028)  	/* PERIP_CLK_CFG register masks */  	#define CLCD_CLK_SHIFT		2  	#define CLCD_CLK_MASK		2 @@ -48,7 +47,7 @@ static DEFINE_SPINLOCK(_lock);  	#define GPT3_CLK_SHIFT		12  	#define GPT_CLK_MASK		1 -#define PERIP1_CLK_ENB			(MISC_BASE + 0x02C) +#define PERIP1_CLK_ENB			(misc_base + 0x02C)  	/* PERIP1_CLK_ENB register masks */  	#define UART0_CLK_ENB		3  	#define UART1_CLK_ENB		4 @@ -74,13 +73,13 @@ static DEFINE_SPINLOCK(_lock);  	#define USBH0_CLK_ENB		25  	#define USBH1_CLK_ENB		26 -#define PRSC0_CLK_CFG			(MISC_BASE + 0x044) -#define PRSC1_CLK_CFG			(MISC_BASE + 0x048) -#define PRSC2_CLK_CFG			(MISC_BASE + 0x04C) +#define PRSC0_CLK_CFG			(misc_base + 0x044) +#define PRSC1_CLK_CFG			(misc_base + 0x048) +#define PRSC2_CLK_CFG			(misc_base + 0x04C) -#define CLCD_CLK_SYNT			(MISC_BASE + 0x05C) -#define FIRDA_CLK_SYNT			(MISC_BASE + 0x060) -#define UART_CLK_SYNT			(MISC_BASE + 0x064) +#define CLCD_CLK_SYNT			(misc_base + 0x05C) +#define FIRDA_CLK_SYNT			(misc_base + 0x060) +#define UART_CLK_SYNT			(misc_base + 0x064)  /* vco rate configuration table, in ascending order of rates */  static struct pll_rate_tbl pll_rtbl[] = { @@ -115,7 +114,7 @@ static struct gpt_rate_tbl gpt_rtbl[] = {  	{.mscale = 1, .nscale = 0}, /* 83 MHz */  }; -void __init spear6xx_clk_init(void) +void __init spear6xx_clk_init(void __iomem *misc_base)  {  	struct clk *clk, *clk1; diff --git a/drivers/clk/tegra/clk-tegra20.c b/drivers/clk/tegra/clk-tegra20.c index 143ce1f899a..b92d48be4cc 100644 --- a/drivers/clk/tegra/clk-tegra20.c +++ b/drivers/clk/tegra/clk-tegra20.c @@ -711,8 +711,8 @@ static void tegra20_pll_init(void)  }  static const char *cclk_parents[] = { "clk_m", "pll_c", "clk_32k", "pll_m", -				      "pll_p_cclk", "pll_p_out4_cclk", -				      "pll_p_out3_cclk", "clk_d", "pll_x" }; +				      "pll_p", "pll_p_out4", +				      "pll_p_out3", "clk_d", "pll_x" };  static const char *sclk_parents[] = { "clk_m", "pll_c_out1", "pll_p_out4",  				      "pll_p_out3", "pll_p_out2", "clk_d",  				      "clk_32k", "pll_m_out1" }; @@ -721,38 +721,6 @@ static void tegra20_super_clk_init(void)  {  	struct clk *clk; -	/* -	 * DIV_U71 dividers for CCLK, these dividers are used only -	 * if parent clock is fixed rate. -	 */ - -	/* -	 * Clock input to cclk divided from pll_p using -	 * U71 divider of cclk. -	 */ -	clk = tegra_clk_register_divider("pll_p_cclk", "pll_p", -				clk_base + SUPER_CCLK_DIVIDER, 0, -				TEGRA_DIVIDER_INT, 16, 8, 1, NULL); -	clk_register_clkdev(clk, "pll_p_cclk", NULL); - -	/* -	 * Clock input to cclk divided from pll_p_out3 using -	 * U71 divider of cclk. -	 */ -	clk = tegra_clk_register_divider("pll_p_out3_cclk", "pll_p_out3", -				clk_base + SUPER_CCLK_DIVIDER, 0, -				TEGRA_DIVIDER_INT, 16, 8, 1, NULL); -	clk_register_clkdev(clk, "pll_p_out3_cclk", NULL); - -	/* -	 * Clock input to cclk divided from pll_p_out4 using -	 * U71 divider of cclk. -	 */ -	clk = tegra_clk_register_divider("pll_p_out4_cclk", "pll_p_out4", -				clk_base + SUPER_CCLK_DIVIDER, 0, -				TEGRA_DIVIDER_INT, 16, 8, 1, NULL); -	clk_register_clkdev(clk, "pll_p_out4_cclk", NULL); -  	/* CCLK */  	clk = tegra_clk_register_super_mux("cclk", cclk_parents,  			      ARRAY_SIZE(cclk_parents), CLK_SET_RATE_PARENT, @@ -1292,7 +1260,6 @@ static struct tegra_clk_duplicate tegra_clk_duplicates[] = {  	TEGRA_CLK_DUPLICATE(usbd,   "tegra-ehci.0", NULL),  	TEGRA_CLK_DUPLICATE(usbd,   "tegra-otg",    NULL),  	TEGRA_CLK_DUPLICATE(cclk,   NULL,           "cpu"), -	TEGRA_CLK_DUPLICATE(twd,    "smp_twd",      NULL),  	TEGRA_CLK_DUPLICATE(clk_max, NULL, NULL), /* Must be the last entry */  }; diff --git a/drivers/clk/tegra/clk-tegra30.c b/drivers/clk/tegra/clk-tegra30.c index 32c61cb6d0b..f15f147d473 100644 --- a/drivers/clk/tegra/clk-tegra30.c +++ b/drivers/clk/tegra/clk-tegra30.c @@ -22,8 +22,7 @@  #include <linux/of.h>  #include <linux/of_address.h>  #include <linux/clk/tegra.h> - -#include <mach/powergate.h> +#include <linux/tegra-powergate.h>  #include "clk.h" @@ -1931,7 +1930,6 @@ static struct tegra_clk_duplicate tegra_clk_duplicates[] = {  	TEGRA_CLK_DUPLICATE(cml1, "tegra_sata_cml", NULL),  	TEGRA_CLK_DUPLICATE(cml0, "tegra_pcie", "cml"),  	TEGRA_CLK_DUPLICATE(pciex, "tegra_pcie", "pciex"), -	TEGRA_CLK_DUPLICATE(twd, "smp_twd", NULL),  	TEGRA_CLK_DUPLICATE(vcp, "nvavp", "vcp"),  	TEGRA_CLK_DUPLICATE(clk_max, NULL, NULL), /* MUST be the last entry */  }; diff --git a/drivers/clk/ux500/clk-prcc.c b/drivers/clk/ux500/clk-prcc.c index 7eee7f76835..bd4769a8448 100644 --- a/drivers/clk/ux500/clk-prcc.c +++ b/drivers/clk/ux500/clk-prcc.c @@ -13,7 +13,6 @@  #include <linux/io.h>  #include <linux/err.h>  #include <linux/types.h> -#include <mach/hardware.h>  #include "clk.h" diff --git a/drivers/clk/ux500/u8500_clk.c b/drivers/clk/ux500/u8500_clk.c index 6b889a0e90b..0c9b83d98f1 100644 --- a/drivers/clk/ux500/u8500_clk.c +++ b/drivers/clk/ux500/u8500_clk.c @@ -12,10 +12,10 @@  #include <linux/clk-provider.h>  #include <linux/mfd/dbx500-prcmu.h>  #include <linux/platform_data/clk-ux500.h> -#include <mach/db8500-regs.h>  #include "clk.h" -void u8500_clk_init(void) +void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, +		    u32 clkrst5_base, u32 clkrst6_base)  {  	struct prcmu_fw_version *fw_version;  	const char *sgaclk_parent = NULL; @@ -215,147 +215,147 @@ void u8500_clk_init(void)  	 */  	/* PRCC P-clocks */ -	clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", clkrst1_base,  				BIT(0), 0);  	clk_register_clkdev(clk, "apb_pclk", "uart0"); -	clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", clkrst1_base,  				BIT(1), 0);  	clk_register_clkdev(clk, "apb_pclk", "uart1"); -	clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", clkrst1_base,  				BIT(2), 0);  	clk_register_clkdev(clk, "apb_pclk", "nmk-i2c.1"); -	clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", clkrst1_base,  				BIT(3), 0);  	clk_register_clkdev(clk, "apb_pclk", "msp0");  	clk_register_clkdev(clk, "apb_pclk", "ux500-msp-i2s.0"); -	clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", clkrst1_base,  				BIT(4), 0);  	clk_register_clkdev(clk, "apb_pclk", "msp1");  	clk_register_clkdev(clk, "apb_pclk", "ux500-msp-i2s.1"); -	clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", clkrst1_base,  				BIT(5), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi0"); -	clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", clkrst1_base,  				BIT(6), 0);  	clk_register_clkdev(clk, "apb_pclk", "nmk-i2c.2"); -	clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", clkrst1_base,  				BIT(7), 0);  	clk_register_clkdev(clk, NULL, "spi3"); -	clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", clkrst1_base,  				BIT(8), 0);  	clk_register_clkdev(clk, "apb_pclk", "slimbus0"); -	clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", clkrst1_base,  				BIT(9), 0);  	clk_register_clkdev(clk, NULL, "gpio.0");  	clk_register_clkdev(clk, NULL, "gpio.1");  	clk_register_clkdev(clk, NULL, "gpioblock0"); -	clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", clkrst1_base,  				BIT(10), 0);  	clk_register_clkdev(clk, "apb_pclk", "nmk-i2c.4"); -	clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", U8500_CLKRST1_BASE, +	clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", clkrst1_base,  				BIT(11), 0);  	clk_register_clkdev(clk, "apb_pclk", "msp3");  	clk_register_clkdev(clk, "apb_pclk", "ux500-msp-i2s.3"); -	clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", clkrst2_base,  				BIT(0), 0);  	clk_register_clkdev(clk, "apb_pclk", "nmk-i2c.3"); -	clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", clkrst2_base,  				BIT(1), 0);  	clk_register_clkdev(clk, NULL, "spi2"); -	clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", clkrst2_base,  				BIT(2), 0);  	clk_register_clkdev(clk, NULL, "spi1"); -	clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", clkrst2_base,  				BIT(3), 0);  	clk_register_clkdev(clk, NULL, "pwl"); -	clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", clkrst2_base,  				BIT(4), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi4"); -	clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", clkrst2_base,  				BIT(5), 0);  	clk_register_clkdev(clk, "apb_pclk", "msp2");  	clk_register_clkdev(clk, "apb_pclk", "ux500-msp-i2s.2"); -	clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", clkrst2_base,  				BIT(6), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi1"); -	clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", clkrst2_base,  				BIT(7), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi3"); -	clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", clkrst2_base,  				BIT(8), 0);  	clk_register_clkdev(clk, NULL, "spi0"); -	clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", clkrst2_base,  				BIT(9), 0);  	clk_register_clkdev(clk, "hsir_hclk", "ste_hsi.0"); -	clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", clkrst2_base,  				BIT(10), 0);  	clk_register_clkdev(clk, "hsit_hclk", "ste_hsi.0"); -	clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", clkrst2_base,  				BIT(11), 0);  	clk_register_clkdev(clk, NULL, "gpio.6");  	clk_register_clkdev(clk, NULL, "gpio.7");  	clk_register_clkdev(clk, NULL, "gpioblock1"); -	clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", U8500_CLKRST2_BASE, +	clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", clkrst2_base,  				BIT(12), 0); -	clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", clkrst3_base,  				BIT(0), 0);  	clk_register_clkdev(clk, NULL, "fsmc"); -	clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", clkrst3_base,  				BIT(1), 0);  	clk_register_clkdev(clk, "apb_pclk", "ssp0"); -	clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", clkrst3_base,  				BIT(2), 0);  	clk_register_clkdev(clk, "apb_pclk", "ssp1"); -	clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", clkrst3_base,  				BIT(3), 0);  	clk_register_clkdev(clk, "apb_pclk", "nmk-i2c.0"); -	clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", clkrst3_base,  				BIT(4), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi2"); -	clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", clkrst3_base,  				BIT(5), 0);  	clk_register_clkdev(clk, "apb_pclk", "ske");  	clk_register_clkdev(clk, "apb_pclk", "nmk-ske-keypad"); -	clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", clkrst3_base,  				BIT(6), 0);  	clk_register_clkdev(clk, "apb_pclk", "uart2"); -	clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", clkrst3_base,  				BIT(7), 0);  	clk_register_clkdev(clk, "apb_pclk", "sdi5"); -	clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", U8500_CLKRST3_BASE, +	clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", clkrst3_base,  				BIT(8), 0);  	clk_register_clkdev(clk, NULL, "gpio.2");  	clk_register_clkdev(clk, NULL, "gpio.3"); @@ -363,45 +363,45 @@ void u8500_clk_init(void)  	clk_register_clkdev(clk, NULL, "gpio.5");  	clk_register_clkdev(clk, NULL, "gpioblock2"); -	clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", U8500_CLKRST5_BASE, +	clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", clkrst5_base,  				BIT(0), 0);  	clk_register_clkdev(clk, "usb", "musb-ux500.0"); -	clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", U8500_CLKRST5_BASE, +	clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", clkrst5_base,  				BIT(1), 0);  	clk_register_clkdev(clk, NULL, "gpio.8");  	clk_register_clkdev(clk, NULL, "gpioblock3"); -	clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", clkrst6_base,  				BIT(0), 0);  	clk_register_clkdev(clk, "apb_pclk", "rng"); -	clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", clkrst6_base,  				BIT(1), 0);  	clk_register_clkdev(clk, NULL, "cryp0");  	clk_register_clkdev(clk, NULL, "cryp1"); -	clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", clkrst6_base,  				BIT(2), 0);  	clk_register_clkdev(clk, NULL, "hash0"); -	clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", clkrst6_base,  				BIT(3), 0);  	clk_register_clkdev(clk, NULL, "pka"); -	clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", clkrst6_base,  				BIT(4), 0);  	clk_register_clkdev(clk, NULL, "hash1"); -	clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", clkrst6_base,  				BIT(5), 0);  	clk_register_clkdev(clk, NULL, "cfgreg"); -	clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", clkrst6_base,  				BIT(6), 0);  	clk_register_clkdev(clk, "apb_pclk", "mtu0"); -	clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", U8500_CLKRST6_BASE, +	clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", clkrst6_base,  				BIT(7), 0);  	clk_register_clkdev(clk, "apb_pclk", "mtu1"); @@ -415,110 +415,110 @@ void u8500_clk_init(void)  	/* Periph1 */  	clk = clk_reg_prcc_kclk("p1_uart0_kclk", "uartclk", -			U8500_CLKRST1_BASE, BIT(0), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(0), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "uart0");  	clk = clk_reg_prcc_kclk("p1_uart1_kclk", "uartclk", -			U8500_CLKRST1_BASE, BIT(1), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(1), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "uart1");  	clk = clk_reg_prcc_kclk("p1_i2c1_kclk", "i2cclk", -			U8500_CLKRST1_BASE, BIT(2), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(2), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "nmk-i2c.1");  	clk = clk_reg_prcc_kclk("p1_msp0_kclk", "msp02clk", -			U8500_CLKRST1_BASE, BIT(3), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(3), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "msp0");  	clk_register_clkdev(clk, NULL, "ux500-msp-i2s.0");  	clk = clk_reg_prcc_kclk("p1_msp1_kclk", "msp1clk", -			U8500_CLKRST1_BASE, BIT(4), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(4), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "msp1");  	clk_register_clkdev(clk, NULL, "ux500-msp-i2s.1");  	clk = clk_reg_prcc_kclk("p1_sdi0_kclk", "sdmmcclk", -			U8500_CLKRST1_BASE, BIT(5), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(5), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi0");  	clk = clk_reg_prcc_kclk("p1_i2c2_kclk", "i2cclk", -			U8500_CLKRST1_BASE, BIT(6), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(6), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "nmk-i2c.2");  	clk = clk_reg_prcc_kclk("p1_slimbus0_kclk", "slimclk", -			U8500_CLKRST1_BASE, BIT(8), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(8), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "slimbus0");  	clk = clk_reg_prcc_kclk("p1_i2c4_kclk", "i2cclk", -			U8500_CLKRST1_BASE, BIT(9), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(9), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "nmk-i2c.4");  	clk = clk_reg_prcc_kclk("p1_msp3_kclk", "msp1clk", -			U8500_CLKRST1_BASE, BIT(10), CLK_SET_RATE_GATE); +			clkrst1_base, BIT(10), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "msp3");  	clk_register_clkdev(clk, NULL, "ux500-msp-i2s.3");  	/* Periph2 */  	clk = clk_reg_prcc_kclk("p2_i2c3_kclk", "i2cclk", -			U8500_CLKRST2_BASE, BIT(0), CLK_SET_RATE_GATE); +			clkrst2_base, BIT(0), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "nmk-i2c.3");  	clk = clk_reg_prcc_kclk("p2_sdi4_kclk", "sdmmcclk", -			U8500_CLKRST2_BASE, BIT(2), CLK_SET_RATE_GATE); +			clkrst2_base, BIT(2), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi4");  	clk = clk_reg_prcc_kclk("p2_msp2_kclk", "msp02clk", -			U8500_CLKRST2_BASE, BIT(3), CLK_SET_RATE_GATE); +			clkrst2_base, BIT(3), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "msp2");  	clk_register_clkdev(clk, NULL, "ux500-msp-i2s.2");  	clk = clk_reg_prcc_kclk("p2_sdi1_kclk", "sdmmcclk", -			U8500_CLKRST2_BASE, BIT(4), CLK_SET_RATE_GATE); +			clkrst2_base, BIT(4), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi1");  	clk = clk_reg_prcc_kclk("p2_sdi3_kclk", "sdmmcclk", -			U8500_CLKRST2_BASE, BIT(5), CLK_SET_RATE_GATE); +			clkrst2_base, BIT(5), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi3");  	/* Note that rate is received from parent. */  	clk = clk_reg_prcc_kclk("p2_ssirx_kclk", "hsirxclk", -			U8500_CLKRST2_BASE, BIT(6), +			clkrst2_base, BIT(6),  			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);  	clk = clk_reg_prcc_kclk("p2_ssitx_kclk", "hsitxclk", -			U8500_CLKRST2_BASE, BIT(7), +			clkrst2_base, BIT(7),  			CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT);  	/* Periph3 */  	clk = clk_reg_prcc_kclk("p3_ssp0_kclk", "sspclk", -			U8500_CLKRST3_BASE, BIT(1), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(1), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "ssp0");  	clk = clk_reg_prcc_kclk("p3_ssp1_kclk", "sspclk", -			U8500_CLKRST3_BASE, BIT(2), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(2), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "ssp1");  	clk = clk_reg_prcc_kclk("p3_i2c0_kclk", "i2cclk", -			U8500_CLKRST3_BASE, BIT(3), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(3), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "nmk-i2c.0");  	clk = clk_reg_prcc_kclk("p3_sdi2_kclk", "sdmmcclk", -			U8500_CLKRST3_BASE, BIT(4), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(4), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi2");  	clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k", -			U8500_CLKRST3_BASE, BIT(5), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(5), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "ske");  	clk_register_clkdev(clk, NULL, "nmk-ske-keypad");  	clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk", -			U8500_CLKRST3_BASE, BIT(6), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(6), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "uart2");  	clk = clk_reg_prcc_kclk("p3_sdi5_kclk", "sdmmcclk", -			U8500_CLKRST3_BASE, BIT(7), CLK_SET_RATE_GATE); +			clkrst3_base, BIT(7), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "sdi5");  	/* Periph6 */  	clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk", -			U8500_CLKRST6_BASE, BIT(0), CLK_SET_RATE_GATE); +			clkrst6_base, BIT(0), CLK_SET_RATE_GATE);  	clk_register_clkdev(clk, NULL, "rng");  }  |