diff options
Diffstat (limited to 'arch/arm/mach-realview')
| -rw-r--r-- | arch/arm/mach-realview/core.c | 106 | ||||
| -rw-r--r-- | arch/arm/mach-realview/include/mach/clkdev.h | 16 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_eb.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_pb1176.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_pb11mp.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_pba8.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-realview/realview_pbx.c | 5 | 
7 files changed, 15 insertions, 132 deletions
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index d22dee96484..68246748058 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c @@ -30,7 +30,6 @@  #include <linux/ata_platform.h>  #include <linux/amba/mmci.h>  #include <linux/gfp.h> -#include <linux/clkdev.h>  #include <linux/mtd/physmap.h>  #include <mach/hardware.h> @@ -225,115 +224,10 @@ struct mmci_platform_data realview_mmc1_plat_data = {  	.cd_invert	= true,  }; -/* - * Clock handling - */ -static const struct icst_params realview_oscvco_params = { -	.ref		= 24000000, -	.vco_max	= ICST307_VCO_MAX, -	.vco_min	= ICST307_VCO_MIN, -	.vd_min		= 4 + 8, -	.vd_max		= 511 + 8, -	.rd_min		= 1 + 2, -	.rd_max		= 127 + 2, -	.s2div		= icst307_s2div, -	.idx2s		= icst307_idx2s, -}; - -static void realview_oscvco_set(struct clk *clk, struct icst_vco vco) -{ -	void __iomem *sys_lock = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_LOCK_OFFSET; -	u32 val; - -	val = readl(clk->vcoreg) & ~0x7ffff; -	val |= vco.v | (vco.r << 9) | (vco.s << 16); - -	writel(0xa05f, sys_lock); -	writel(val, clk->vcoreg); -	writel(0, sys_lock); -} - -static const struct clk_ops oscvco_clk_ops = { -	.round	= icst_clk_round, -	.set	= icst_clk_set, -	.setvco	= realview_oscvco_set, -}; - -static struct clk oscvco_clk = { -	.ops	= &oscvco_clk_ops, -	.params	= &realview_oscvco_params, -}; - -/* - * These are fixed clocks. - */ -static struct clk ref24_clk = { -	.rate	= 24000000, -}; - -static struct clk sp804_clk = { -	.rate	= 1000000, -}; - -static struct clk dummy_apb_pclk; - -static struct clk_lookup lookups[] = { -	{	/* Bus clock */ -		.con_id		= "apb_pclk", -		.clk		= &dummy_apb_pclk, -	}, {	/* UART0 */ -		.dev_id		= "dev:uart0", -		.clk		= &ref24_clk, -	}, {	/* UART1 */ -		.dev_id		= "dev:uart1", -		.clk		= &ref24_clk, -	}, {	/* UART2 */ -		.dev_id		= "dev:uart2", -		.clk		= &ref24_clk, -	}, {	/* UART3 */ -		.dev_id		= "fpga:uart3", -		.clk		= &ref24_clk, -	}, {	/* UART3 is on the dev chip in PB1176 */ -		.dev_id		= "dev:uart3", -		.clk		= &ref24_clk, -	}, {	/* UART4 only exists in PB1176 */ -		.dev_id		= "fpga:uart4", -		.clk		= &ref24_clk, -	}, {	/* KMI0 */ -		.dev_id		= "fpga:kmi0", -		.clk		= &ref24_clk, -	}, {	/* KMI1 */ -		.dev_id		= "fpga:kmi1", -		.clk		= &ref24_clk, -	}, {	/* MMC0 */ -		.dev_id		= "fpga:mmc0", -		.clk		= &ref24_clk, -	}, {	/* CLCD is in the PB1176 and EB DevChip */ -		.dev_id		= "dev:clcd", -		.clk		= &oscvco_clk, -	}, {	/* PB:CLCD */ -		.dev_id		= "issp:clcd", -		.clk		= &oscvco_clk, -	}, {	/* SSP */ -		.dev_id		= "dev:ssp0", -		.clk		= &ref24_clk, -	}, {	/* SP804 timers */ -		.dev_id		= "sp804", -		.clk		= &sp804_clk, -	}, -}; -  void __init realview_init_early(void)  {  	void __iomem *sys = __io_address(REALVIEW_SYS_BASE); -	if (machine_is_realview_pb1176()) -		oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC0_OFFSET; -	else -		oscvco_clk.vcoreg = sys + REALVIEW_SYS_OSC4_OFFSET; - -	clkdev_add_table(lookups, ARRAY_SIZE(lookups)); -  	versatile_sched_clock_init(sys + REALVIEW_SYS_24MHz_OFFSET, 24000000);  } diff --git a/arch/arm/mach-realview/include/mach/clkdev.h b/arch/arm/mach-realview/include/mach/clkdev.h deleted file mode 100644 index e58d0771b64..00000000000 --- a/arch/arm/mach-realview/include/mach/clkdev.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __ASM_MACH_CLKDEV_H -#define __ASM_MACH_CLKDEV_H - -#include <plat/clock.h> - -struct clk { -	unsigned long		rate; -	const struct clk_ops	*ops; -	const struct icst_params *params; -	void __iomem		*vcoreg; -}; - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - -#endif diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 21661ade885..d3b3cd216d6 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c @@ -27,11 +27,11 @@  #include <linux/amba/mmci.h>  #include <linux/amba/pl022.h>  #include <linux/io.h> +#include <linux/platform_data/clk-realview.h>  #include <mach/hardware.h>  #include <asm/irq.h>  #include <asm/mach-types.h> -#include <asm/pmu.h>  #include <asm/pgtable.h>  #include <asm/hardware/gic.h>  #include <asm/hardware/cache-l2x0.h> @@ -296,7 +296,7 @@ static struct resource pmu_resources[] = {  static struct platform_device pmu_device = {  	.name			= "arm-pmu", -	.id			= ARM_PMU_DEVICE_CPU, +	.id			= -1,  	.num_resources		= ARRAY_SIZE(pmu_resources),  	.resource		= pmu_resources,  }; @@ -413,6 +413,7 @@ static void __init realview_eb_timer_init(void)  	else  		timer_irq = IRQ_EB_TIMER0_1; +	realview_clk_init(__io_address(REALVIEW_SYS_BASE), false);  	realview_timer_init(timer_irq);  	realview_eb_twd_init();  } diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index c0ff882c5cb..07d6672ddae 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c @@ -29,11 +29,11 @@  #include <linux/mtd/physmap.h>  #include <linux/mtd/partitions.h>  #include <linux/io.h> +#include <linux/platform_data/clk-realview.h>  #include <mach/hardware.h>  #include <asm/irq.h>  #include <asm/mach-types.h> -#include <asm/pmu.h>  #include <asm/pgtable.h>  #include <asm/hardware/gic.h>  #include <asm/hardware/cache-l2x0.h> @@ -279,7 +279,7 @@ static struct resource pmu_resource = {  static struct platform_device pmu_device = {  	.name			= "arm-pmu", -	.id			= ARM_PMU_DEVICE_CPU, +	.id			= -1,  	.num_resources		= 1,  	.resource		= &pmu_resource,  }; @@ -325,6 +325,7 @@ static void __init realview_pb1176_timer_init(void)  	timer2_va_base = __io_address(REALVIEW_PB1176_TIMER2_3_BASE);  	timer3_va_base = __io_address(REALVIEW_PB1176_TIMER2_3_BASE) + 0x20; +	realview_clk_init(__io_address(REALVIEW_SYS_BASE), true);  	realview_timer_init(IRQ_DC1176_TIMER0);  } diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index 30779ae40c0..ec4fcd9a7e9 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c @@ -27,11 +27,11 @@  #include <linux/amba/mmci.h>  #include <linux/amba/pl022.h>  #include <linux/io.h> +#include <linux/platform_data/clk-realview.h>  #include <mach/hardware.h>  #include <asm/irq.h>  #include <asm/mach-types.h> -#include <asm/pmu.h>  #include <asm/pgtable.h>  #include <asm/hardware/gic.h>  #include <asm/hardware/cache-l2x0.h> @@ -262,7 +262,7 @@ static struct resource pmu_resources[] = {  static struct platform_device pmu_device = {  	.name			= "arm-pmu", -	.id			= ARM_PMU_DEVICE_CPU, +	.id			= -1,  	.num_resources		= ARRAY_SIZE(pmu_resources),  	.resource		= pmu_resources,  }; @@ -311,6 +311,7 @@ static void __init realview_pb11mp_timer_init(void)  	timer2_va_base = __io_address(REALVIEW_PB11MP_TIMER2_3_BASE);  	timer3_va_base = __io_address(REALVIEW_PB11MP_TIMER2_3_BASE) + 0x20; +	realview_clk_init(__io_address(REALVIEW_SYS_BASE), false);  	realview_timer_init(IRQ_TC11MP_TIMER0_1);  	realview_pb11mp_twd_init();  } diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index 081cd72c090..9992431b8a1 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c @@ -27,10 +27,10 @@  #include <linux/amba/mmci.h>  #include <linux/amba/pl022.h>  #include <linux/io.h> +#include <linux/platform_data/clk-realview.h>  #include <asm/irq.h>  #include <asm/mach-types.h> -#include <asm/pmu.h>  #include <asm/pgtable.h>  #include <asm/hardware/gic.h> @@ -240,7 +240,7 @@ static struct resource pmu_resource = {  static struct platform_device pmu_device = {  	.name			= "arm-pmu", -	.id			= ARM_PMU_DEVICE_CPU, +	.id			= -1,  	.num_resources		= 1,  	.resource		= &pmu_resource,  }; @@ -260,6 +260,7 @@ static void __init realview_pba8_timer_init(void)  	timer2_va_base = __io_address(REALVIEW_PBA8_TIMER2_3_BASE);  	timer3_va_base = __io_address(REALVIEW_PBA8_TIMER2_3_BASE) + 0x20; +	realview_clk_init(__io_address(REALVIEW_SYS_BASE), false);  	realview_timer_init(IRQ_PBA8_TIMER0_1);  } diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index 1ce62b9f846..17954a327e1 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c @@ -26,10 +26,10 @@  #include <linux/amba/mmci.h>  #include <linux/amba/pl022.h>  #include <linux/io.h> +#include <linux/platform_data/clk-realview.h>  #include <asm/irq.h>  #include <asm/mach-types.h> -#include <asm/pmu.h>  #include <asm/smp_twd.h>  #include <asm/pgtable.h>  #include <asm/hardware/gic.h> @@ -279,7 +279,7 @@ static struct resource pmu_resources[] = {  static struct platform_device pmu_device = {  	.name			= "arm-pmu", -	.id			= ARM_PMU_DEVICE_CPU, +	.id			= -1,  	.num_resources		= ARRAY_SIZE(pmu_resources),  	.resource		= pmu_resources,  }; @@ -319,6 +319,7 @@ static void __init realview_pbx_timer_init(void)  	timer2_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE);  	timer3_va_base = __io_address(REALVIEW_PBX_TIMER2_3_BASE) + 0x20; +	realview_clk_init(__io_address(REALVIEW_SYS_BASE), false);  	realview_timer_init(IRQ_PBX_TIMER0_1);  	realview_pbx_twd_init();  }  |