diff options
Diffstat (limited to 'arch/arm/mach-exynos4/include/mach')
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/entry-macro.S | 23 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/exynos4-clock.h | 43 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/irqs.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/map.h | 4 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-clock.h | 54 | ||||
| -rw-r--r-- | arch/arm/mach-exynos4/include/mach/regs-mct.h | 5 | 
6 files changed, 104 insertions, 27 deletions
| diff --git a/arch/arm/mach-exynos4/include/mach/entry-macro.S b/arch/arm/mach-exynos4/include/mach/entry-macro.S index 006a4f4c65c6..f5e9fd8e37b4 100644 --- a/arch/arm/mach-exynos4/include/mach/entry-macro.S +++ b/arch/arm/mach-exynos4/include/mach/entry-macro.S @@ -17,12 +17,25 @@  		.endm  		.macro  get_irqnr_preamble, base, tmp -		ldr	\base, =gic_cpu_base_addr +		mov	\tmp, #0 + +		mrc	p15, 0, \base, c0, c0, 5 +		and	\base, \base, #3 +		cmp	\base, #0 +		beq	1f + +		ldr	\tmp, =gic_bank_offset +		ldr	\tmp, [\tmp] +		cmp	\base, #1 +		beq	1f + +		cmp	\base, #2 +		addeq	\tmp, \tmp, \tmp +		addne	\tmp, \tmp, \tmp, LSL #1 + +1:		ldr	\base, =gic_cpu_base_addr  		ldr	\base, [\base] -		mrc     p15, 0, \tmp, c0, c0, 5 -		and     \tmp, \tmp, #3 -		cmp     \tmp, #1 -		addeq   \base, \base, #EXYNOS4_GIC_BANK_OFFSET +		add	\base, \base, \tmp  		.endm  		.macro  arch_ret_to_user, tmp1, tmp2 diff --git a/arch/arm/mach-exynos4/include/mach/exynos4-clock.h b/arch/arm/mach-exynos4/include/mach/exynos4-clock.h new file mode 100644 index 000000000000..a07fcbf55251 --- /dev/null +++ b/arch/arm/mach-exynos4/include/mach/exynos4-clock.h @@ -0,0 +1,43 @@ +/* + * linux/arch/arm/mach-exynos4/include/mach/exynos4-clock.h + * + * Copyright (c) 2011 Samsung Electronics Co., Ltd. + *		http://www.samsung.com + * + * Header file for exynos4 clock support + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#ifndef __ASM_ARCH_CLOCK_H +#define __ASM_ARCH_CLOCK_H __FILE__ + +#include <linux/clk.h> + +extern struct clk clk_sclk_hdmi27m; +extern struct clk clk_sclk_usbphy0; +extern struct clk clk_sclk_usbphy1; +extern struct clk clk_sclk_hdmiphy; + +extern struct clksrc_clk clk_sclk_apll; +extern struct clksrc_clk clk_mout_mpll; +extern struct clksrc_clk clk_aclk_133; +extern struct clksrc_clk clk_mout_epll; +extern struct clksrc_clk clk_sclk_vpll; + +extern struct clk *clkset_corebus_list[]; +extern struct clksrc_sources clkset_mout_corebus; + +extern struct clk *clkset_aclk_top_list[]; +extern struct clksrc_sources clkset_aclk; + +extern struct clk *clkset_group_list[]; +extern struct clksrc_sources clkset_group; + +extern int exynos4_clksrc_mask_fsys_ctrl(struct clk *clk, int enable); +extern int exynos4_clk_ip_fsys_ctrl(struct clk *clk, int enable); +extern int exynos4_clk_ip_lcd1_ctrl(struct clk *clk, int enable); + +#endif /* __ASM_ARCH_CLOCK_H */ diff --git a/arch/arm/mach-exynos4/include/mach/irqs.h b/arch/arm/mach-exynos4/include/mach/irqs.h index f8952f8f3757..2d3f6bcd9bc0 100644 --- a/arch/arm/mach-exynos4/include/mach/irqs.h +++ b/arch/arm/mach-exynos4/include/mach/irqs.h @@ -19,6 +19,8 @@  #define IRQ_PPI(x)		S5P_IRQ(x+16) +#define IRQ_MCT_LOCALTIMER	IRQ_PPI(12) +  /* SPI: Shared Peripheral Interrupt */  #define IRQ_SPI(x)		S5P_IRQ(x+32) diff --git a/arch/arm/mach-exynos4/include/mach/map.h b/arch/arm/mach-exynos4/include/mach/map.h index d32296dc65e2..9f97eb8499ee 100644 --- a/arch/arm/mach-exynos4/include/mach/map.h +++ b/arch/arm/mach-exynos4/include/mach/map.h @@ -23,7 +23,8 @@  #include <plat/map-s5p.h> -#define EXYNOS4_PA_SYSRAM		0x02020000 +#define EXYNOS4_PA_SYSRAM0		0x02025000 +#define EXYNOS4_PA_SYSRAM1		0x02020000  #define EXYNOS4_PA_FIMC0		0x11800000  #define EXYNOS4_PA_FIMC1		0x11810000 @@ -61,7 +62,6 @@  #define EXYNOS4_PA_GIC_CPU		0x10480000  #define EXYNOS4_PA_GIC_DIST		0x10490000 -#define EXYNOS4_GIC_BANK_OFFSET		0x8000  #define EXYNOS4_PA_COREPERI		0x10500000  #define EXYNOS4_PA_TWD			0x10500600 diff --git a/arch/arm/mach-exynos4/include/mach/regs-clock.h b/arch/arm/mach-exynos4/include/mach/regs-clock.h index d493fdb422ff..6c37ebe94829 100644 --- a/arch/arm/mach-exynos4/include/mach/regs-clock.h +++ b/arch/arm/mach-exynos4/include/mach/regs-clock.h @@ -13,6 +13,7 @@  #ifndef __ASM_ARCH_REGS_CLOCK_H  #define __ASM_ARCH_REGS_CLOCK_H __FILE__ +#include <plat/cpu.h>  #include <mach/map.h>  #define S5P_CLKREG(x)			(S5P_VA_CMU + (x)) @@ -41,12 +42,20 @@  #define S5P_CLKSRC_G3D			S5P_CLKREG(0x0C22C)  #define S5P_CLKSRC_IMAGE		S5P_CLKREG(0x0C230)  #define S5P_CLKSRC_LCD0			S5P_CLKREG(0x0C234) -#define S5P_CLKSRC_LCD1			S5P_CLKREG(0x0C238)  #define S5P_CLKSRC_MAUDIO		S5P_CLKREG(0x0C23C)  #define S5P_CLKSRC_FSYS			S5P_CLKREG(0x0C240)  #define S5P_CLKSRC_PERIL0		S5P_CLKREG(0x0C250)  #define S5P_CLKSRC_PERIL1		S5P_CLKREG(0x0C254) +#define S5P_CLKSRC_MASK_TOP		S5P_CLKREG(0x0C310) +#define S5P_CLKSRC_MASK_CAM		S5P_CLKREG(0x0C320) +#define S5P_CLKSRC_MASK_TV		S5P_CLKREG(0x0C324) +#define S5P_CLKSRC_MASK_LCD0		S5P_CLKREG(0x0C334) +#define S5P_CLKSRC_MASK_MAUDIO		S5P_CLKREG(0x0C33C) +#define S5P_CLKSRC_MASK_FSYS		S5P_CLKREG(0x0C340) +#define S5P_CLKSRC_MASK_PERIL0		S5P_CLKREG(0x0C350) +#define S5P_CLKSRC_MASK_PERIL1		S5P_CLKREG(0x0C354) +  #define S5P_CLKDIV_TOP			S5P_CLKREG(0x0C510)  #define S5P_CLKDIV_CAM			S5P_CLKREG(0x0C520)  #define S5P_CLKDIV_TV			S5P_CLKREG(0x0C524) @@ -54,7 +63,6 @@  #define S5P_CLKDIV_G3D			S5P_CLKREG(0x0C52C)  #define S5P_CLKDIV_IMAGE		S5P_CLKREG(0x0C530)  #define S5P_CLKDIV_LCD0			S5P_CLKREG(0x0C534) -#define S5P_CLKDIV_LCD1			S5P_CLKREG(0x0C538)  #define S5P_CLKDIV_MAUDIO		S5P_CLKREG(0x0C53C)  #define S5P_CLKDIV_FSYS0		S5P_CLKREG(0x0C540)  #define S5P_CLKDIV_FSYS1		S5P_CLKREG(0x0C544) @@ -68,16 +76,6 @@  #define S5P_CLKDIV_PERIL5		S5P_CLKREG(0x0C564)  #define S5P_CLKDIV2_RATIO		S5P_CLKREG(0x0C580) -#define S5P_CLKSRC_MASK_TOP		S5P_CLKREG(0x0C310) -#define S5P_CLKSRC_MASK_CAM		S5P_CLKREG(0x0C320) -#define S5P_CLKSRC_MASK_TV		S5P_CLKREG(0x0C324) -#define S5P_CLKSRC_MASK_LCD0		S5P_CLKREG(0x0C334) -#define S5P_CLKSRC_MASK_LCD1		S5P_CLKREG(0x0C338) -#define S5P_CLKSRC_MASK_MAUDIO		S5P_CLKREG(0x0C33C) -#define S5P_CLKSRC_MASK_FSYS		S5P_CLKREG(0x0C340) -#define S5P_CLKSRC_MASK_PERIL0		S5P_CLKREG(0x0C350) -#define S5P_CLKSRC_MASK_PERIL1		S5P_CLKREG(0x0C354) -  #define S5P_CLKDIV_STAT_TOP		S5P_CLKREG(0x0C610)  #define S5P_CLKGATE_SCLKCAM		S5P_CLKREG(0x0C820) @@ -85,13 +83,20 @@  #define S5P_CLKGATE_IP_TV		S5P_CLKREG(0x0C924)  #define S5P_CLKGATE_IP_MFC		S5P_CLKREG(0x0C928)  #define S5P_CLKGATE_IP_G3D		S5P_CLKREG(0x0C92C) -#define S5P_CLKGATE_IP_IMAGE		S5P_CLKREG(0x0C930) +#define S5P_CLKGATE_IP_IMAGE		(soc_is_exynos4210() ? \ +					S5P_CLKREG(0x0C930) : \ +					S5P_CLKREG(0x04930)) +#define S5P_CLKGATE_IP_IMAGE_4210	S5P_CLKREG(0x0C930) +#define S5P_CLKGATE_IP_IMAGE_4212	S5P_CLKREG(0x04930)  #define S5P_CLKGATE_IP_LCD0		S5P_CLKREG(0x0C934) -#define S5P_CLKGATE_IP_LCD1		S5P_CLKREG(0x0C938)  #define S5P_CLKGATE_IP_FSYS		S5P_CLKREG(0x0C940)  #define S5P_CLKGATE_IP_GPS		S5P_CLKREG(0x0C94C)  #define S5P_CLKGATE_IP_PERIL		S5P_CLKREG(0x0C950) -#define S5P_CLKGATE_IP_PERIR		S5P_CLKREG(0x0C960) +#define S5P_CLKGATE_IP_PERIR		(soc_is_exynos4210() ? \ +					S5P_CLKREG(0x0C960) : \ +					S5P_CLKREG(0x08960)) +#define S5P_CLKGATE_IP_PERIR_4210	S5P_CLKREG(0x0C960) +#define S5P_CLKGATE_IP_PERIR_4212	S5P_CLKREG(0x08960)  #define S5P_CLKGATE_BLOCK		S5P_CLKREG(0x0C970)  #define S5P_CLKSRC_MASK_DMC		S5P_CLKREG(0x10300) @@ -102,11 +107,17 @@  #define S5P_CLKGATE_IP_DMC		S5P_CLKREG(0x10900)  #define S5P_APLL_LOCK			S5P_CLKREG(0x14000) -#define S5P_MPLL_LOCK			S5P_CLKREG(0x14004) +#define S5P_MPLL_LOCK			(soc_is_exynos4210() ? \ +					S5P_CLKREG(0x14004) :  \ +					S5P_CLKREG(0x10008))  #define S5P_APLL_CON0			S5P_CLKREG(0x14100)  #define S5P_APLL_CON1			S5P_CLKREG(0x14104) -#define S5P_MPLL_CON0			S5P_CLKREG(0x14108) -#define S5P_MPLL_CON1			S5P_CLKREG(0x1410C) +#define S5P_MPLL_CON0			(soc_is_exynos4210() ? \ +					S5P_CLKREG(0x14108) : \ +					S5P_CLKREG(0x10108)) +#define S5P_MPLL_CON1			(soc_is_exynos4210() ? \ +					S5P_CLKREG(0x1410C) : \ +					S5P_CLKREG(0x1010C))  #define S5P_CLKSRC_CPU			S5P_CLKREG(0x14200)  #define S5P_CLKMUX_STATCPU		S5P_CLKREG(0x14400) @@ -183,6 +194,13 @@  #define S5P_CLKDIV_BUS_GPLR_SHIFT	(4)  #define S5P_CLKDIV_BUS_GPLR_MASK	(0x7 << S5P_CLKDIV_BUS_GPLR_SHIFT) +/* Only for EXYNOS4210 */ + +#define S5P_CLKSRC_LCD1			S5P_CLKREG(0x0C238) +#define S5P_CLKSRC_MASK_LCD1		S5P_CLKREG(0x0C338) +#define S5P_CLKDIV_LCD1			S5P_CLKREG(0x0C538) +#define S5P_CLKGATE_IP_LCD1		S5P_CLKREG(0x0C938) +  /* Compatibility defines and inclusion */  #include <mach/regs-pmu.h> diff --git a/arch/arm/mach-exynos4/include/mach/regs-mct.h b/arch/arm/mach-exynos4/include/mach/regs-mct.h index ca9c8434b023..80dd02ad6d61 100644 --- a/arch/arm/mach-exynos4/include/mach/regs-mct.h +++ b/arch/arm/mach-exynos4/include/mach/regs-mct.h @@ -31,8 +31,9 @@  #define EXYNOS4_MCT_G_INT_ENB		EXYNOS4_MCTREG(0x248)  #define EXYNOS4_MCT_G_WSTAT		EXYNOS4_MCTREG(0x24C) -#define EXYNOS4_MCT_L0_BASE		EXYNOS4_MCTREG(0x300) -#define EXYNOS4_MCT_L1_BASE		EXYNOS4_MCTREG(0x400) +#define _EXYNOS4_MCT_L_BASE		EXYNOS4_MCTREG(0x300) +#define EXYNOS4_MCT_L_BASE(x)		(_EXYNOS4_MCT_L_BASE + (0x100 * x)) +#define EXYNOS4_MCT_L_MASK		(0xffffff00)  #define MCT_L_TCNTB_OFFSET		(0x00)  #define MCT_L_ICNTB_OFFSET		(0x08) | 
