diff options
author | Kukjin Kim <kgene.kim@samsung.com> | 2011-11-06 00:54:56 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-11-06 00:54:56 -0400 |
commit | 830145796a5c8f1ca3f87ea619063c1d99a57df5 (patch) | |
tree | e72a0ecacfcce228c46d93c946cfd65a44cc1fd3 /arch/arm/mach-exynos/include/mach | |
parent | e700e41d9abfbf9fee01e979a41b185695132c19 (diff) |
ARM: EXYNOS: Add ARCH_EXYNOS and reorganize arch/arm/mach-exynos
The arch/arm/mach-exynos4 directory (CONFIG_ARCH_EXYNOS4) has
made for plaforms based on EXYNOS4 SoCs. But since upcoming
Samsung's SoCs such as EXYNOS5 (ARM Cortex A15) can reuse most
codes in current mach-exynos4, one mach-exynos directory will
be used for them.
This patch changes to CONFIG_ARCH_EXYNOS (arch/arm/mach-exynos)
but keeps original CONFIG_ARCH_EXYNOS4 in mach-exynos/Kconfig to
avoid changing in driver side.
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/mach-exynos/include/mach')
27 files changed, 1719 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/include/mach/debug-macro.S b/arch/arm/mach-exynos/include/mach/debug-macro.S new file mode 100644 index 000000000000..6cacf16a67a6 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/debug-macro.S | |||
@@ -0,0 +1,35 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/debug-macro.S | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Based on arch/arm/mach-s3c6400/include/mach/debug-macro.S | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | /* pull in the relevant register and map files. */ | ||
14 | |||
15 | #include <mach/map.h> | ||
16 | |||
17 | /* note, for the boot process to work we have to keep the UART | ||
18 | * virtual address aligned to an 1MiB boundary for the L1 | ||
19 | * mapping the head code makes. We keep the UART virtual address | ||
20 | * aligned and add in the offset when we load the value here. | ||
21 | */ | ||
22 | |||
23 | .macro addruart, rp, rv, tmp | ||
24 | ldr \rp, = S3C_PA_UART | ||
25 | ldr \rv, = S3C_VA_UART | ||
26 | #if CONFIG_DEBUG_S3C_UART != 0 | ||
27 | add \rp, \rp, #(0x10000 * CONFIG_DEBUG_S3C_UART) | ||
28 | add \rv, \rv, #(0x10000 * CONFIG_DEBUG_S3C_UART) | ||
29 | #endif | ||
30 | .endm | ||
31 | |||
32 | #define fifo_full fifo_full_s5pv210 | ||
33 | #define fifo_level fifo_level_s5pv210 | ||
34 | |||
35 | #include <plat/debug-macro.S> | ||
diff --git a/arch/arm/mach-exynos/include/mach/dma.h b/arch/arm/mach-exynos/include/mach/dma.h new file mode 100644 index 000000000000..201842a3769e --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/dma.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Samsung Electronics Co. Ltd. | ||
3 | * Jaswinder Singh <jassi.brar@samsung.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation; either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __MACH_DMA_H | ||
21 | #define __MACH_DMA_H | ||
22 | |||
23 | /* This platform uses the common DMA API driver for PL330 */ | ||
24 | #include <plat/dma-pl330.h> | ||
25 | |||
26 | #endif /* __MACH_DMA_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/dwmci.h b/arch/arm/mach-exynos/include/mach/dwmci.h new file mode 100644 index 000000000000..7ce657459cc0 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/dwmci.h | |||
@@ -0,0 +1,20 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/dwmci.h | ||
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * Synopsys DesignWare Mobile Storage for EXYNOS4210 | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARM_ARCH_DWMCI_H | ||
14 | #define __ASM_ARM_ARCH_DWMCI_H __FILE__ | ||
15 | |||
16 | #include <linux/mmc/dw_mmc.h> | ||
17 | |||
18 | extern void exynos4_dwmci_set_platdata(struct dw_mci_board *pd); | ||
19 | |||
20 | #endif /* __ASM_ARM_ARCH_DWMCI_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/entry-macro.S b/arch/arm/mach-exynos/include/mach/entry-macro.S new file mode 100644 index 000000000000..f5e9fd8e37b4 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/entry-macro.S | |||
@@ -0,0 +1,91 @@ | |||
1 | /* arch/arm/mach-exynos4/include/mach/entry-macro.S | ||
2 | * | ||
3 | * Cloned from arch/arm/mach-realview/include/mach/entry-macro.S | ||
4 | * | ||
5 | * Low-level IRQ helper macros for EXYNOS4 platforms | ||
6 | * | ||
7 | * This file is licensed under the terms of the GNU General Public | ||
8 | * License version 2. This program is licensed "as is" without any | ||
9 | * warranty of any kind, whether express or implied. | ||
10 | */ | ||
11 | |||
12 | #include <mach/hardware.h> | ||
13 | #include <mach/map.h> | ||
14 | #include <asm/hardware/gic.h> | ||
15 | |||
16 | .macro disable_fiq | ||
17 | .endm | ||
18 | |||
19 | .macro get_irqnr_preamble, base, tmp | ||
20 | mov \tmp, #0 | ||
21 | |||
22 | mrc p15, 0, \base, c0, c0, 5 | ||
23 | and \base, \base, #3 | ||
24 | cmp \base, #0 | ||
25 | beq 1f | ||
26 | |||
27 | ldr \tmp, =gic_bank_offset | ||
28 | ldr \tmp, [\tmp] | ||
29 | cmp \base, #1 | ||
30 | beq 1f | ||
31 | |||
32 | cmp \base, #2 | ||
33 | addeq \tmp, \tmp, \tmp | ||
34 | addne \tmp, \tmp, \tmp, LSL #1 | ||
35 | |||
36 | 1: ldr \base, =gic_cpu_base_addr | ||
37 | ldr \base, [\base] | ||
38 | add \base, \base, \tmp | ||
39 | .endm | ||
40 | |||
41 | .macro arch_ret_to_user, tmp1, tmp2 | ||
42 | .endm | ||
43 | |||
44 | /* | ||
45 | * The interrupt numbering scheme is defined in the | ||
46 | * interrupt controller spec. To wit: | ||
47 | * | ||
48 | * Interrupts 0-15 are IPI | ||
49 | * 16-28 are reserved | ||
50 | * 29-31 are local. We allow 30 to be used for the watchdog. | ||
51 | * 32-1020 are global | ||
52 | * 1021-1022 are reserved | ||
53 | * 1023 is "spurious" (no interrupt) | ||
54 | * | ||
55 | * For now, we ignore all local interrupts so only return an interrupt if it's | ||
56 | * between 30 and 1020. The test_for_ipi routine below will pick up on IPIs. | ||
57 | * | ||
58 | * A simple read from the controller will tell us the number of the highest | ||
59 | * priority enabled interrupt. We then just need to check whether it is in the | ||
60 | * valid range for an IRQ (30-1020 inclusive). | ||
61 | */ | ||
62 | |||
63 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | ||
64 | |||
65 | ldr \irqstat, [\base, #GIC_CPU_INTACK] /* bits 12-10 = src CPU, 9-0 = int # */ | ||
66 | |||
67 | ldr \tmp, =1021 | ||
68 | |||
69 | bic \irqnr, \irqstat, #0x1c00 | ||
70 | |||
71 | cmp \irqnr, #15 | ||
72 | cmpcc \irqnr, \irqnr | ||
73 | cmpne \irqnr, \tmp | ||
74 | cmpcs \irqnr, \irqnr | ||
75 | addne \irqnr, \irqnr, #32 | ||
76 | |||
77 | .endm | ||
78 | |||
79 | /* We assume that irqstat (the raw value of the IRQ acknowledge | ||
80 | * register) is preserved from the macro above. | ||
81 | * If there is an IPI, we immediately signal end of interrupt on the | ||
82 | * controller, since this requires the original irqstat value which | ||
83 | * we won't easily be able to recreate later. | ||
84 | */ | ||
85 | |||
86 | .macro test_for_ipi, irqnr, irqstat, base, tmp | ||
87 | bic \irqnr, \irqstat, #0x1c00 | ||
88 | cmp \irqnr, #16 | ||
89 | strcc \irqstat, [\base, #GIC_CPU_EOI] | ||
90 | cmpcs \irqnr, \irqnr | ||
91 | .endm | ||
diff --git a/arch/arm/mach-exynos/include/mach/exynos4-clock.h b/arch/arm/mach-exynos/include/mach/exynos4-clock.h new file mode 100644 index 000000000000..a07fcbf55251 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/exynos4-clock.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-exynos4/include/mach/exynos4-clock.h | ||
3 | * | ||
4 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
5 | * http://www.samsung.com | ||
6 | * | ||
7 | * Header file for exynos4 clock support | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | #ifndef __ASM_ARCH_CLOCK_H | ||
15 | #define __ASM_ARCH_CLOCK_H __FILE__ | ||
16 | |||
17 | #include <linux/clk.h> | ||
18 | |||
19 | extern struct clk clk_sclk_hdmi27m; | ||
20 | extern struct clk clk_sclk_usbphy0; | ||
21 | extern struct clk clk_sclk_usbphy1; | ||
22 | extern struct clk clk_sclk_hdmiphy; | ||
23 | |||
24 | extern struct clksrc_clk clk_sclk_apll; | ||
25 | extern struct clksrc_clk clk_mout_mpll; | ||
26 | extern struct clksrc_clk clk_aclk_133; | ||
27 | extern struct clksrc_clk clk_mout_epll; | ||
28 | extern struct clksrc_clk clk_sclk_vpll; | ||
29 | |||
30 | extern struct clk *clkset_corebus_list[]; | ||
31 | extern struct clksrc_sources clkset_mout_corebus; | ||
32 | |||
33 | extern struct clk *clkset_aclk_top_list[]; | ||
34 | extern struct clksrc_sources clkset_aclk; | ||
35 | |||
36 | extern struct clk *clkset_group_list[]; | ||
37 | extern struct clksrc_sources clkset_group; | ||
38 | |||
39 | extern int exynos4_clksrc_mask_fsys_ctrl(struct clk *clk, int enable); | ||
40 | extern int exynos4_clk_ip_fsys_ctrl(struct clk *clk, int enable); | ||
41 | extern int exynos4_clk_ip_lcd1_ctrl(struct clk *clk, int enable); | ||
42 | |||
43 | #endif /* __ASM_ARCH_CLOCK_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/gpio.h b/arch/arm/mach-exynos/include/mach/gpio.h new file mode 100644 index 000000000000..80523ca9bb49 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/gpio.h | |||
@@ -0,0 +1,149 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/gpio.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - GPIO lib support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_GPIO_H | ||
14 | #define __ASM_ARCH_GPIO_H __FILE__ | ||
15 | |||
16 | /* Practically, GPIO banks up to GPZ are the configurable gpio banks */ | ||
17 | |||
18 | /* GPIO bank sizes */ | ||
19 | #define EXYNOS4_GPIO_A0_NR (8) | ||
20 | #define EXYNOS4_GPIO_A1_NR (6) | ||
21 | #define EXYNOS4_GPIO_B_NR (8) | ||
22 | #define EXYNOS4_GPIO_C0_NR (5) | ||
23 | #define EXYNOS4_GPIO_C1_NR (5) | ||
24 | #define EXYNOS4_GPIO_D0_NR (4) | ||
25 | #define EXYNOS4_GPIO_D1_NR (4) | ||
26 | #define EXYNOS4_GPIO_E0_NR (5) | ||
27 | #define EXYNOS4_GPIO_E1_NR (8) | ||
28 | #define EXYNOS4_GPIO_E2_NR (6) | ||
29 | #define EXYNOS4_GPIO_E3_NR (8) | ||
30 | #define EXYNOS4_GPIO_E4_NR (8) | ||
31 | #define EXYNOS4_GPIO_F0_NR (8) | ||
32 | #define EXYNOS4_GPIO_F1_NR (8) | ||
33 | #define EXYNOS4_GPIO_F2_NR (8) | ||
34 | #define EXYNOS4_GPIO_F3_NR (6) | ||
35 | #define EXYNOS4_GPIO_J0_NR (8) | ||
36 | #define EXYNOS4_GPIO_J1_NR (5) | ||
37 | #define EXYNOS4_GPIO_K0_NR (7) | ||
38 | #define EXYNOS4_GPIO_K1_NR (7) | ||
39 | #define EXYNOS4_GPIO_K2_NR (7) | ||
40 | #define EXYNOS4_GPIO_K3_NR (7) | ||
41 | #define EXYNOS4_GPIO_L0_NR (8) | ||
42 | #define EXYNOS4_GPIO_L1_NR (3) | ||
43 | #define EXYNOS4_GPIO_L2_NR (8) | ||
44 | #define EXYNOS4_GPIO_X0_NR (8) | ||
45 | #define EXYNOS4_GPIO_X1_NR (8) | ||
46 | #define EXYNOS4_GPIO_X2_NR (8) | ||
47 | #define EXYNOS4_GPIO_X3_NR (8) | ||
48 | #define EXYNOS4_GPIO_Y0_NR (6) | ||
49 | #define EXYNOS4_GPIO_Y1_NR (4) | ||
50 | #define EXYNOS4_GPIO_Y2_NR (6) | ||
51 | #define EXYNOS4_GPIO_Y3_NR (8) | ||
52 | #define EXYNOS4_GPIO_Y4_NR (8) | ||
53 | #define EXYNOS4_GPIO_Y5_NR (8) | ||
54 | #define EXYNOS4_GPIO_Y6_NR (8) | ||
55 | #define EXYNOS4_GPIO_Z_NR (7) | ||
56 | |||
57 | /* GPIO bank numbers */ | ||
58 | |||
59 | #define EXYNOS4_GPIO_NEXT(__gpio) \ | ||
60 | ((__gpio##_START) + (__gpio##_NR) + CONFIG_S3C_GPIO_SPACE + 1) | ||
61 | |||
62 | enum s5p_gpio_number { | ||
63 | EXYNOS4_GPIO_A0_START = 0, | ||
64 | EXYNOS4_GPIO_A1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_A0), | ||
65 | EXYNOS4_GPIO_B_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_A1), | ||
66 | EXYNOS4_GPIO_C0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_B), | ||
67 | EXYNOS4_GPIO_C1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_C0), | ||
68 | EXYNOS4_GPIO_D0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_C1), | ||
69 | EXYNOS4_GPIO_D1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_D0), | ||
70 | EXYNOS4_GPIO_E0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_D1), | ||
71 | EXYNOS4_GPIO_E1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E0), | ||
72 | EXYNOS4_GPIO_E2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E1), | ||
73 | EXYNOS4_GPIO_E3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E2), | ||
74 | EXYNOS4_GPIO_E4_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E3), | ||
75 | EXYNOS4_GPIO_F0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_E4), | ||
76 | EXYNOS4_GPIO_F1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F0), | ||
77 | EXYNOS4_GPIO_F2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F1), | ||
78 | EXYNOS4_GPIO_F3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F2), | ||
79 | EXYNOS4_GPIO_J0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_F3), | ||
80 | EXYNOS4_GPIO_J1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_J0), | ||
81 | EXYNOS4_GPIO_K0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_J1), | ||
82 | EXYNOS4_GPIO_K1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K0), | ||
83 | EXYNOS4_GPIO_K2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K1), | ||
84 | EXYNOS4_GPIO_K3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K2), | ||
85 | EXYNOS4_GPIO_L0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_K3), | ||
86 | EXYNOS4_GPIO_L1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L0), | ||
87 | EXYNOS4_GPIO_L2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L1), | ||
88 | EXYNOS4_GPIO_X0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_L2), | ||
89 | EXYNOS4_GPIO_X1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X0), | ||
90 | EXYNOS4_GPIO_X2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X1), | ||
91 | EXYNOS4_GPIO_X3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X2), | ||
92 | EXYNOS4_GPIO_Y0_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_X3), | ||
93 | EXYNOS4_GPIO_Y1_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y0), | ||
94 | EXYNOS4_GPIO_Y2_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y1), | ||
95 | EXYNOS4_GPIO_Y3_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y2), | ||
96 | EXYNOS4_GPIO_Y4_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y3), | ||
97 | EXYNOS4_GPIO_Y5_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y4), | ||
98 | EXYNOS4_GPIO_Y6_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y5), | ||
99 | EXYNOS4_GPIO_Z_START = EXYNOS4_GPIO_NEXT(EXYNOS4_GPIO_Y6), | ||
100 | }; | ||
101 | |||
102 | /* EXYNOS4 GPIO number definitions */ | ||
103 | #define EXYNOS4_GPA0(_nr) (EXYNOS4_GPIO_A0_START + (_nr)) | ||
104 | #define EXYNOS4_GPA1(_nr) (EXYNOS4_GPIO_A1_START + (_nr)) | ||
105 | #define EXYNOS4_GPB(_nr) (EXYNOS4_GPIO_B_START + (_nr)) | ||
106 | #define EXYNOS4_GPC0(_nr) (EXYNOS4_GPIO_C0_START + (_nr)) | ||
107 | #define EXYNOS4_GPC1(_nr) (EXYNOS4_GPIO_C1_START + (_nr)) | ||
108 | #define EXYNOS4_GPD0(_nr) (EXYNOS4_GPIO_D0_START + (_nr)) | ||
109 | #define EXYNOS4_GPD1(_nr) (EXYNOS4_GPIO_D1_START + (_nr)) | ||
110 | #define EXYNOS4_GPE0(_nr) (EXYNOS4_GPIO_E0_START + (_nr)) | ||
111 | #define EXYNOS4_GPE1(_nr) (EXYNOS4_GPIO_E1_START + (_nr)) | ||
112 | #define EXYNOS4_GPE2(_nr) (EXYNOS4_GPIO_E2_START + (_nr)) | ||
113 | #define EXYNOS4_GPE3(_nr) (EXYNOS4_GPIO_E3_START + (_nr)) | ||
114 | #define EXYNOS4_GPE4(_nr) (EXYNOS4_GPIO_E4_START + (_nr)) | ||
115 | #define EXYNOS4_GPF0(_nr) (EXYNOS4_GPIO_F0_START + (_nr)) | ||
116 | #define EXYNOS4_GPF1(_nr) (EXYNOS4_GPIO_F1_START + (_nr)) | ||
117 | #define EXYNOS4_GPF2(_nr) (EXYNOS4_GPIO_F2_START + (_nr)) | ||
118 | #define EXYNOS4_GPF3(_nr) (EXYNOS4_GPIO_F3_START + (_nr)) | ||
119 | #define EXYNOS4_GPJ0(_nr) (EXYNOS4_GPIO_J0_START + (_nr)) | ||
120 | #define EXYNOS4_GPJ1(_nr) (EXYNOS4_GPIO_J1_START + (_nr)) | ||
121 | #define EXYNOS4_GPK0(_nr) (EXYNOS4_GPIO_K0_START + (_nr)) | ||
122 | #define EXYNOS4_GPK1(_nr) (EXYNOS4_GPIO_K1_START + (_nr)) | ||
123 | #define EXYNOS4_GPK2(_nr) (EXYNOS4_GPIO_K2_START + (_nr)) | ||
124 | #define EXYNOS4_GPK3(_nr) (EXYNOS4_GPIO_K3_START + (_nr)) | ||
125 | #define EXYNOS4_GPL0(_nr) (EXYNOS4_GPIO_L0_START + (_nr)) | ||
126 | #define EXYNOS4_GPL1(_nr) (EXYNOS4_GPIO_L1_START + (_nr)) | ||
127 | #define EXYNOS4_GPL2(_nr) (EXYNOS4_GPIO_L2_START + (_nr)) | ||
128 | #define EXYNOS4_GPX0(_nr) (EXYNOS4_GPIO_X0_START + (_nr)) | ||
129 | #define EXYNOS4_GPX1(_nr) (EXYNOS4_GPIO_X1_START + (_nr)) | ||
130 | #define EXYNOS4_GPX2(_nr) (EXYNOS4_GPIO_X2_START + (_nr)) | ||
131 | #define EXYNOS4_GPX3(_nr) (EXYNOS4_GPIO_X3_START + (_nr)) | ||
132 | #define EXYNOS4_GPY0(_nr) (EXYNOS4_GPIO_Y0_START + (_nr)) | ||
133 | #define EXYNOS4_GPY1(_nr) (EXYNOS4_GPIO_Y1_START + (_nr)) | ||
134 | #define EXYNOS4_GPY2(_nr) (EXYNOS4_GPIO_Y2_START + (_nr)) | ||
135 | #define EXYNOS4_GPY3(_nr) (EXYNOS4_GPIO_Y3_START + (_nr)) | ||
136 | #define EXYNOS4_GPY4(_nr) (EXYNOS4_GPIO_Y4_START + (_nr)) | ||
137 | #define EXYNOS4_GPY5(_nr) (EXYNOS4_GPIO_Y5_START + (_nr)) | ||
138 | #define EXYNOS4_GPY6(_nr) (EXYNOS4_GPIO_Y6_START + (_nr)) | ||
139 | #define EXYNOS4_GPZ(_nr) (EXYNOS4_GPIO_Z_START + (_nr)) | ||
140 | |||
141 | /* the end of the EXYNOS4 specific gpios */ | ||
142 | #define EXYNOS4_GPIO_END (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + 1) | ||
143 | #define S3C_GPIO_END EXYNOS4_GPIO_END | ||
144 | |||
145 | /* define the number of gpios we need to the one after the GPZ() range */ | ||
146 | #define ARCH_NR_GPIOS (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + \ | ||
147 | CONFIG_SAMSUNG_GPIO_EXTRA + 1) | ||
148 | |||
149 | #endif /* __ASM_ARCH_GPIO_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/hardware.h b/arch/arm/mach-exynos/include/mach/hardware.h new file mode 100644 index 000000000000..5109eb232f23 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/hardware.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/hardware.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - Hardware support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_HARDWARE_H | ||
14 | #define __ASM_ARCH_HARDWARE_H __FILE__ | ||
15 | |||
16 | /* currently nothing here, placeholder */ | ||
17 | |||
18 | #endif /* __ASM_ARCH_HARDWARE_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/io.h b/arch/arm/mach-exynos/include/mach/io.h new file mode 100644 index 000000000000..d5478d247535 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/io.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/io.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Copyright 2008-2010 Ben Dooks <ben-linux@fluff.org> | ||
7 | * | ||
8 | * Based on arch/arm/mach-s5p6442/include/mach/io.h | ||
9 | * | ||
10 | * Default IO routines for EXYNOS4 | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or modify | ||
13 | * it under the terms of the GNU General Public License version 2 as | ||
14 | * published by the Free Software Foundation. | ||
15 | */ | ||
16 | |||
17 | #ifndef __ASM_ARM_ARCH_IO_H | ||
18 | #define __ASM_ARM_ARCH_IO_H __FILE__ | ||
19 | |||
20 | /* No current ISA/PCI bus support. */ | ||
21 | #define __io(a) __typesafe_io(a) | ||
22 | #define __mem_pci(a) (a) | ||
23 | |||
24 | #define IO_SPACE_LIMIT (0xFFFFFFFF) | ||
25 | |||
26 | #endif /* __ASM_ARM_ARCH_IO_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/irqs.h b/arch/arm/mach-exynos/include/mach/irqs.h new file mode 100644 index 000000000000..dfd4b7eecb90 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/irqs.h | |||
@@ -0,0 +1,169 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/irqs.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - IRQ definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_IRQS_H | ||
14 | #define __ASM_ARCH_IRQS_H __FILE__ | ||
15 | |||
16 | #include <plat/irqs.h> | ||
17 | |||
18 | /* PPI: Private Peripheral Interrupt */ | ||
19 | |||
20 | #define IRQ_PPI(x) S5P_IRQ(x+16) | ||
21 | |||
22 | #define IRQ_MCT_LOCALTIMER IRQ_PPI(12) | ||
23 | |||
24 | /* SPI: Shared Peripheral Interrupt */ | ||
25 | |||
26 | #define IRQ_SPI(x) S5P_IRQ(x+32) | ||
27 | |||
28 | #define IRQ_EINT0 IRQ_SPI(16) | ||
29 | #define IRQ_EINT1 IRQ_SPI(17) | ||
30 | #define IRQ_EINT2 IRQ_SPI(18) | ||
31 | #define IRQ_EINT3 IRQ_SPI(19) | ||
32 | #define IRQ_EINT4 IRQ_SPI(20) | ||
33 | #define IRQ_EINT5 IRQ_SPI(21) | ||
34 | #define IRQ_EINT6 IRQ_SPI(22) | ||
35 | #define IRQ_EINT7 IRQ_SPI(23) | ||
36 | #define IRQ_EINT8 IRQ_SPI(24) | ||
37 | #define IRQ_EINT9 IRQ_SPI(25) | ||
38 | #define IRQ_EINT10 IRQ_SPI(26) | ||
39 | #define IRQ_EINT11 IRQ_SPI(27) | ||
40 | #define IRQ_EINT12 IRQ_SPI(28) | ||
41 | #define IRQ_EINT13 IRQ_SPI(29) | ||
42 | #define IRQ_EINT14 IRQ_SPI(30) | ||
43 | #define IRQ_EINT15 IRQ_SPI(31) | ||
44 | #define IRQ_EINT16_31 IRQ_SPI(32) | ||
45 | |||
46 | #define IRQ_PDMA0 IRQ_SPI(35) | ||
47 | #define IRQ_PDMA1 IRQ_SPI(36) | ||
48 | #define IRQ_TIMER0_VIC IRQ_SPI(37) | ||
49 | #define IRQ_TIMER1_VIC IRQ_SPI(38) | ||
50 | #define IRQ_TIMER2_VIC IRQ_SPI(39) | ||
51 | #define IRQ_TIMER3_VIC IRQ_SPI(40) | ||
52 | #define IRQ_TIMER4_VIC IRQ_SPI(41) | ||
53 | #define IRQ_MCT_L0 IRQ_SPI(42) | ||
54 | #define IRQ_WDT IRQ_SPI(43) | ||
55 | #define IRQ_RTC_ALARM IRQ_SPI(44) | ||
56 | #define IRQ_RTC_TIC IRQ_SPI(45) | ||
57 | #define IRQ_GPIO_XB IRQ_SPI(46) | ||
58 | #define IRQ_GPIO_XA IRQ_SPI(47) | ||
59 | #define IRQ_MCT_L1 IRQ_SPI(48) | ||
60 | |||
61 | #define IRQ_UART0 IRQ_SPI(52) | ||
62 | #define IRQ_UART1 IRQ_SPI(53) | ||
63 | #define IRQ_UART2 IRQ_SPI(54) | ||
64 | #define IRQ_UART3 IRQ_SPI(55) | ||
65 | #define IRQ_UART4 IRQ_SPI(56) | ||
66 | #define IRQ_MCT_G0 IRQ_SPI(57) | ||
67 | #define IRQ_IIC IRQ_SPI(58) | ||
68 | #define IRQ_IIC1 IRQ_SPI(59) | ||
69 | #define IRQ_IIC2 IRQ_SPI(60) | ||
70 | #define IRQ_IIC3 IRQ_SPI(61) | ||
71 | #define IRQ_IIC4 IRQ_SPI(62) | ||
72 | #define IRQ_IIC5 IRQ_SPI(63) | ||
73 | #define IRQ_IIC6 IRQ_SPI(64) | ||
74 | #define IRQ_IIC7 IRQ_SPI(65) | ||
75 | |||
76 | #define IRQ_USB_HOST IRQ_SPI(70) | ||
77 | #define IRQ_USB_HSOTG IRQ_SPI(71) | ||
78 | #define IRQ_MODEM_IF IRQ_SPI(72) | ||
79 | #define IRQ_HSMMC0 IRQ_SPI(73) | ||
80 | #define IRQ_HSMMC1 IRQ_SPI(74) | ||
81 | #define IRQ_HSMMC2 IRQ_SPI(75) | ||
82 | #define IRQ_HSMMC3 IRQ_SPI(76) | ||
83 | #define IRQ_DWMCI IRQ_SPI(77) | ||
84 | |||
85 | #define IRQ_MIPI_CSIS0 IRQ_SPI(78) | ||
86 | #define IRQ_MIPI_CSIS1 IRQ_SPI(80) | ||
87 | |||
88 | #define IRQ_ONENAND_AUDI IRQ_SPI(82) | ||
89 | #define IRQ_ROTATOR IRQ_SPI(83) | ||
90 | #define IRQ_FIMC0 IRQ_SPI(84) | ||
91 | #define IRQ_FIMC1 IRQ_SPI(85) | ||
92 | #define IRQ_FIMC2 IRQ_SPI(86) | ||
93 | #define IRQ_FIMC3 IRQ_SPI(87) | ||
94 | #define IRQ_JPEG IRQ_SPI(88) | ||
95 | #define IRQ_2D IRQ_SPI(89) | ||
96 | #define IRQ_PCIE IRQ_SPI(90) | ||
97 | |||
98 | #define IRQ_MIXER IRQ_SPI(91) | ||
99 | #define IRQ_HDMI IRQ_SPI(92) | ||
100 | #define IRQ_IIC_HDMIPHY IRQ_SPI(93) | ||
101 | #define IRQ_MFC IRQ_SPI(94) | ||
102 | #define IRQ_SDO IRQ_SPI(95) | ||
103 | |||
104 | #define IRQ_AUDIO_SS IRQ_SPI(96) | ||
105 | #define IRQ_I2S0 IRQ_SPI(97) | ||
106 | #define IRQ_I2S1 IRQ_SPI(98) | ||
107 | #define IRQ_I2S2 IRQ_SPI(99) | ||
108 | #define IRQ_AC97 IRQ_SPI(100) | ||
109 | |||
110 | #define IRQ_SPDIF IRQ_SPI(104) | ||
111 | #define IRQ_ADC0 IRQ_SPI(105) | ||
112 | #define IRQ_PEN0 IRQ_SPI(106) | ||
113 | #define IRQ_ADC1 IRQ_SPI(107) | ||
114 | #define IRQ_PEN1 IRQ_SPI(108) | ||
115 | #define IRQ_KEYPAD IRQ_SPI(109) | ||
116 | #define IRQ_PMU IRQ_SPI(110) | ||
117 | #define IRQ_GPS IRQ_SPI(111) | ||
118 | #define IRQ_INTFEEDCTRL_SSS IRQ_SPI(112) | ||
119 | #define IRQ_SLIMBUS IRQ_SPI(113) | ||
120 | |||
121 | #define IRQ_TSI IRQ_SPI(115) | ||
122 | #define IRQ_SATA IRQ_SPI(116) | ||
123 | |||
124 | #define MAX_IRQ_IN_COMBINER 8 | ||
125 | #define COMBINER_GROUP(x) ((x) * MAX_IRQ_IN_COMBINER + IRQ_SPI(128)) | ||
126 | #define COMBINER_IRQ(x, y) (COMBINER_GROUP(x) + y) | ||
127 | |||
128 | #define IRQ_SYSMMU_MDMA0_0 COMBINER_IRQ(4, 0) | ||
129 | #define IRQ_SYSMMU_SSS_0 COMBINER_IRQ(4, 1) | ||
130 | #define IRQ_SYSMMU_FIMC0_0 COMBINER_IRQ(4, 2) | ||
131 | #define IRQ_SYSMMU_FIMC1_0 COMBINER_IRQ(4, 3) | ||
132 | #define IRQ_SYSMMU_FIMC2_0 COMBINER_IRQ(4, 4) | ||
133 | #define IRQ_SYSMMU_FIMC3_0 COMBINER_IRQ(4, 5) | ||
134 | #define IRQ_SYSMMU_JPEG_0 COMBINER_IRQ(4, 6) | ||
135 | #define IRQ_SYSMMU_2D_0 COMBINER_IRQ(4, 7) | ||
136 | |||
137 | #define IRQ_SYSMMU_ROTATOR_0 COMBINER_IRQ(5, 0) | ||
138 | #define IRQ_SYSMMU_MDMA1_0 COMBINER_IRQ(5, 1) | ||
139 | #define IRQ_SYSMMU_LCD0_M0_0 COMBINER_IRQ(5, 2) | ||
140 | #define IRQ_SYSMMU_LCD1_M1_0 COMBINER_IRQ(5, 3) | ||
141 | #define IRQ_SYSMMU_TV_M0_0 COMBINER_IRQ(5, 4) | ||
142 | #define IRQ_SYSMMU_MFC_M0_0 COMBINER_IRQ(5, 5) | ||
143 | #define IRQ_SYSMMU_MFC_M1_0 COMBINER_IRQ(5, 6) | ||
144 | #define IRQ_SYSMMU_PCIE_0 COMBINER_IRQ(5, 7) | ||
145 | |||
146 | #define IRQ_FIMD0_FIFO COMBINER_IRQ(11, 0) | ||
147 | #define IRQ_FIMD0_VSYNC COMBINER_IRQ(11, 1) | ||
148 | #define IRQ_FIMD0_SYSTEM COMBINER_IRQ(11, 2) | ||
149 | |||
150 | #define MAX_COMBINER_NR 16 | ||
151 | |||
152 | #define IRQ_ADC IRQ_ADC0 | ||
153 | #define IRQ_TC IRQ_PEN0 | ||
154 | |||
155 | #define S5P_IRQ_EINT_BASE COMBINER_IRQ(MAX_COMBINER_NR, 0) | ||
156 | |||
157 | #define S5P_EINT_BASE1 (S5P_IRQ_EINT_BASE + 0) | ||
158 | #define S5P_EINT_BASE2 (S5P_IRQ_EINT_BASE + 16) | ||
159 | |||
160 | /* optional GPIO interrupts */ | ||
161 | #define S5P_GPIOINT_BASE (S5P_IRQ_EINT_BASE + 32) | ||
162 | #define IRQ_GPIO1_NR_GROUPS 16 | ||
163 | #define IRQ_GPIO2_NR_GROUPS 9 | ||
164 | #define IRQ_GPIO_END (S5P_GPIOINT_BASE + S5P_GPIOINT_COUNT) | ||
165 | |||
166 | /* Set the default NR_IRQS */ | ||
167 | #define NR_IRQS (IRQ_GPIO_END + 64) | ||
168 | |||
169 | #endif /* __ASM_ARCH_IRQS_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h new file mode 100644 index 000000000000..058541d45af0 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/map.h | |||
@@ -0,0 +1,197 @@ | |||
1 | /* linux/arch/arm/mach-exynos/include/mach/map.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * EXYNOS4 - Memory map definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_MAP_H | ||
14 | #define __ASM_ARCH_MAP_H __FILE__ | ||
15 | |||
16 | #include <plat/map-base.h> | ||
17 | |||
18 | /* | ||
19 | * EXYNOS4 UART offset is 0x10000 but the older S5P SoCs are 0x400. | ||
20 | * So need to define it, and here is to avoid redefinition warning. | ||
21 | */ | ||
22 | #define S3C_UART_OFFSET (0x10000) | ||
23 | |||
24 | #include <plat/map-s5p.h> | ||
25 | |||
26 | #define EXYNOS4_PA_SYSRAM0 0x02025000 | ||
27 | #define EXYNOS4_PA_SYSRAM1 0x02020000 | ||
28 | |||
29 | #define EXYNOS4_PA_FIMC0 0x11800000 | ||
30 | #define EXYNOS4_PA_FIMC1 0x11810000 | ||
31 | #define EXYNOS4_PA_FIMC2 0x11820000 | ||
32 | #define EXYNOS4_PA_FIMC3 0x11830000 | ||
33 | |||
34 | #define EXYNOS4_PA_I2S0 0x03830000 | ||
35 | #define EXYNOS4_PA_I2S1 0xE3100000 | ||
36 | #define EXYNOS4_PA_I2S2 0xE2A00000 | ||
37 | |||
38 | #define EXYNOS4_PA_PCM0 0x03840000 | ||
39 | #define EXYNOS4_PA_PCM1 0x13980000 | ||
40 | #define EXYNOS4_PA_PCM2 0x13990000 | ||
41 | |||
42 | #define EXYNOS4_PA_SROM_BANK(x) (0x04000000 + ((x) * 0x01000000)) | ||
43 | |||
44 | #define EXYNOS4_PA_ONENAND 0x0C000000 | ||
45 | #define EXYNOS4_PA_ONENAND_DMA 0x0C600000 | ||
46 | |||
47 | #define EXYNOS4_PA_CHIPID 0x10000000 | ||
48 | |||
49 | #define EXYNOS4_PA_SYSCON 0x10010000 | ||
50 | #define EXYNOS4_PA_PMU 0x10020000 | ||
51 | #define EXYNOS4_PA_CMU 0x10030000 | ||
52 | |||
53 | #define EXYNOS4_PA_SYSTIMER 0x10050000 | ||
54 | #define EXYNOS4_PA_WATCHDOG 0x10060000 | ||
55 | #define EXYNOS4_PA_RTC 0x10070000 | ||
56 | |||
57 | #define EXYNOS4_PA_KEYPAD 0x100A0000 | ||
58 | |||
59 | #define EXYNOS4_PA_DMC0 0x10400000 | ||
60 | |||
61 | #define EXYNOS4_PA_COMBINER 0x10440000 | ||
62 | |||
63 | #define EXYNOS4_PA_GIC_CPU 0x10480000 | ||
64 | #define EXYNOS4_PA_GIC_DIST 0x10490000 | ||
65 | |||
66 | #define EXYNOS4_PA_COREPERI 0x10500000 | ||
67 | #define EXYNOS4_PA_TWD 0x10500600 | ||
68 | #define EXYNOS4_PA_L2CC 0x10502000 | ||
69 | |||
70 | #define EXYNOS4_PA_MDMA 0x10810000 | ||
71 | #define EXYNOS4_PA_PDMA0 0x12680000 | ||
72 | #define EXYNOS4_PA_PDMA1 0x12690000 | ||
73 | |||
74 | #define EXYNOS4_PA_SYSMMU_MDMA 0x10A40000 | ||
75 | #define EXYNOS4_PA_SYSMMU_SSS 0x10A50000 | ||
76 | #define EXYNOS4_PA_SYSMMU_FIMC0 0x11A20000 | ||
77 | #define EXYNOS4_PA_SYSMMU_FIMC1 0x11A30000 | ||
78 | #define EXYNOS4_PA_SYSMMU_FIMC2 0x11A40000 | ||
79 | #define EXYNOS4_PA_SYSMMU_FIMC3 0x11A50000 | ||
80 | #define EXYNOS4_PA_SYSMMU_JPEG 0x11A60000 | ||
81 | #define EXYNOS4_PA_SYSMMU_FIMD0 0x11E20000 | ||
82 | #define EXYNOS4_PA_SYSMMU_FIMD1 0x12220000 | ||
83 | #define EXYNOS4_PA_SYSMMU_PCIe 0x12620000 | ||
84 | #define EXYNOS4_PA_SYSMMU_G2D 0x12A20000 | ||
85 | #define EXYNOS4_PA_SYSMMU_ROTATOR 0x12A30000 | ||
86 | #define EXYNOS4_PA_SYSMMU_MDMA2 0x12A40000 | ||
87 | #define EXYNOS4_PA_SYSMMU_TV 0x12E20000 | ||
88 | #define EXYNOS4_PA_SYSMMU_MFC_L 0x13620000 | ||
89 | #define EXYNOS4_PA_SYSMMU_MFC_R 0x13630000 | ||
90 | |||
91 | #define EXYNOS4_PA_GPIO1 0x11400000 | ||
92 | #define EXYNOS4_PA_GPIO2 0x11000000 | ||
93 | #define EXYNOS4_PA_GPIO3 0x03860000 | ||
94 | |||
95 | #define EXYNOS4_PA_MIPI_CSIS0 0x11880000 | ||
96 | #define EXYNOS4_PA_MIPI_CSIS1 0x11890000 | ||
97 | |||
98 | #define EXYNOS4_PA_FIMD0 0x11C00000 | ||
99 | |||
100 | #define EXYNOS4_PA_HSMMC(x) (0x12510000 + ((x) * 0x10000)) | ||
101 | #define EXYNOS4_PA_DWMCI 0x12550000 | ||
102 | |||
103 | #define EXYNOS4_PA_SATA 0x12560000 | ||
104 | #define EXYNOS4_PA_SATAPHY 0x125D0000 | ||
105 | #define EXYNOS4_PA_SATAPHY_CTRL 0x126B0000 | ||
106 | |||
107 | #define EXYNOS4_PA_SROMC 0x12570000 | ||
108 | |||
109 | #define EXYNOS4_PA_EHCI 0x12580000 | ||
110 | #define EXYNOS4_PA_HSPHY 0x125B0000 | ||
111 | #define EXYNOS4_PA_MFC 0x13400000 | ||
112 | |||
113 | #define EXYNOS4_PA_UART 0x13800000 | ||
114 | |||
115 | #define EXYNOS4_PA_VP 0x12C00000 | ||
116 | #define EXYNOS4_PA_MIXER 0x12C10000 | ||
117 | #define EXYNOS4_PA_SDO 0x12C20000 | ||
118 | #define EXYNOS4_PA_HDMI 0x12D00000 | ||
119 | #define EXYNOS4_PA_IIC_HDMIPHY 0x138E0000 | ||
120 | |||
121 | #define EXYNOS4_PA_IIC(x) (0x13860000 + ((x) * 0x10000)) | ||
122 | |||
123 | #define EXYNOS4_PA_ADC 0x13910000 | ||
124 | #define EXYNOS4_PA_ADC1 0x13911000 | ||
125 | |||
126 | #define EXYNOS4_PA_AC97 0x139A0000 | ||
127 | |||
128 | #define EXYNOS4_PA_SPDIF 0x139B0000 | ||
129 | |||
130 | #define EXYNOS4_PA_TIMER 0x139D0000 | ||
131 | |||
132 | #define EXYNOS4_PA_SDRAM 0x40000000 | ||
133 | |||
134 | /* Compatibiltiy Defines */ | ||
135 | |||
136 | #define S3C_PA_HSMMC0 EXYNOS4_PA_HSMMC(0) | ||
137 | #define S3C_PA_HSMMC1 EXYNOS4_PA_HSMMC(1) | ||
138 | #define S3C_PA_HSMMC2 EXYNOS4_PA_HSMMC(2) | ||
139 | #define S3C_PA_HSMMC3 EXYNOS4_PA_HSMMC(3) | ||
140 | #define S3C_PA_IIC EXYNOS4_PA_IIC(0) | ||
141 | #define S3C_PA_IIC1 EXYNOS4_PA_IIC(1) | ||
142 | #define S3C_PA_IIC2 EXYNOS4_PA_IIC(2) | ||
143 | #define S3C_PA_IIC3 EXYNOS4_PA_IIC(3) | ||
144 | #define S3C_PA_IIC4 EXYNOS4_PA_IIC(4) | ||
145 | #define S3C_PA_IIC5 EXYNOS4_PA_IIC(5) | ||
146 | #define S3C_PA_IIC6 EXYNOS4_PA_IIC(6) | ||
147 | #define S3C_PA_IIC7 EXYNOS4_PA_IIC(7) | ||
148 | #define S3C_PA_RTC EXYNOS4_PA_RTC | ||
149 | #define S3C_PA_WDT EXYNOS4_PA_WATCHDOG | ||
150 | #define S3C_PA_UART EXYNOS4_PA_UART | ||
151 | |||
152 | #define S5P_PA_CHIPID EXYNOS4_PA_CHIPID | ||
153 | #define S5P_PA_EHCI EXYNOS4_PA_EHCI | ||
154 | #define S5P_PA_FIMC0 EXYNOS4_PA_FIMC0 | ||
155 | #define S5P_PA_FIMC1 EXYNOS4_PA_FIMC1 | ||
156 | #define S5P_PA_FIMC2 EXYNOS4_PA_FIMC2 | ||
157 | #define S5P_PA_FIMC3 EXYNOS4_PA_FIMC3 | ||
158 | #define S5P_PA_FIMD0 EXYNOS4_PA_FIMD0 | ||
159 | #define S5P_PA_HDMI EXYNOS4_PA_HDMI | ||
160 | #define S5P_PA_IIC_HDMIPHY EXYNOS4_PA_IIC_HDMIPHY | ||
161 | #define S5P_PA_MFC EXYNOS4_PA_MFC | ||
162 | #define S5P_PA_MIPI_CSIS0 EXYNOS4_PA_MIPI_CSIS0 | ||
163 | #define S5P_PA_MIPI_CSIS1 EXYNOS4_PA_MIPI_CSIS1 | ||
164 | #define S5P_PA_MIXER EXYNOS4_PA_MIXER | ||
165 | #define S5P_PA_ONENAND EXYNOS4_PA_ONENAND | ||
166 | #define S5P_PA_ONENAND_DMA EXYNOS4_PA_ONENAND_DMA | ||
167 | #define S5P_PA_SDO EXYNOS4_PA_SDO | ||
168 | #define S5P_PA_SDRAM EXYNOS4_PA_SDRAM | ||
169 | #define S5P_PA_SROMC EXYNOS4_PA_SROMC | ||
170 | #define S5P_PA_SYSCON EXYNOS4_PA_SYSCON | ||
171 | #define S5P_PA_TIMER EXYNOS4_PA_TIMER | ||
172 | #define S5P_PA_VP EXYNOS4_PA_VP | ||
173 | |||
174 | #define SAMSUNG_PA_ADC EXYNOS4_PA_ADC | ||
175 | #define SAMSUNG_PA_ADC1 EXYNOS4_PA_ADC1 | ||
176 | #define SAMSUNG_PA_KEYPAD EXYNOS4_PA_KEYPAD | ||
177 | |||
178 | #define EXYNOS_PA_COMBINER EXYNOS4_PA_COMBINER | ||
179 | #define EXYNOS_PA_GIC_CPU EXYNOS4_PA_GIC_CPU | ||
180 | #define EXYNOS_PA_GIC_DIST EXYNOS4_PA_GIC_DIST | ||
181 | #define EXYNOS_PA_PMU EXYNOS4_PA_PMU | ||
182 | #define EXYNOS_PA_SYSTIMER EXYNOS4_PA_SYSTIMER | ||
183 | |||
184 | /* Compatibility UART */ | ||
185 | |||
186 | #define S3C_VA_UARTx(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET)) | ||
187 | |||
188 | #define S5P_PA_UART(x) (S3C_PA_UART + ((x) * S3C_UART_OFFSET)) | ||
189 | #define S5P_PA_UART0 S5P_PA_UART(0) | ||
190 | #define S5P_PA_UART1 S5P_PA_UART(1) | ||
191 | #define S5P_PA_UART2 S5P_PA_UART(2) | ||
192 | #define S5P_PA_UART3 S5P_PA_UART(3) | ||
193 | #define S5P_PA_UART4 S5P_PA_UART(4) | ||
194 | |||
195 | #define S5P_SZ_UART SZ_256 | ||
196 | |||
197 | #endif /* __ASM_ARCH_MAP_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/memory.h b/arch/arm/mach-exynos/include/mach/memory.h new file mode 100644 index 000000000000..374ef2cf7152 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/memory.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/memory.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - Memory definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_MEMORY_H | ||
14 | #define __ASM_ARCH_MEMORY_H __FILE__ | ||
15 | |||
16 | #define PLAT_PHYS_OFFSET UL(0x40000000) | ||
17 | |||
18 | /* Maximum of 256MiB in one bank */ | ||
19 | #define MAX_PHYSMEM_BITS 32 | ||
20 | #define SECTION_SIZE_BITS 28 | ||
21 | |||
22 | #endif /* __ASM_ARCH_MEMORY_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/pm-core.h b/arch/arm/mach-exynos/include/mach/pm-core.h new file mode 100644 index 000000000000..9d8da51e35ca --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/pm-core.h | |||
@@ -0,0 +1,65 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/pm-core.h | ||
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Based on arch/arm/mach-s3c2410/include/mach/pm-core.h, | ||
7 | * Copyright 2008 Simtec Electronics | ||
8 | * Ben Dooks <ben@simtec.co.uk> | ||
9 | * http://armlinux.simtec.co.uk/ | ||
10 | * | ||
11 | * EXYNOS4210 - PM core support for arch/arm/plat-s5p/pm.c | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or modify | ||
14 | * it under the terms of the GNU General Public License version 2 as | ||
15 | * published by the Free Software Foundation. | ||
16 | */ | ||
17 | |||
18 | #ifndef __ASM_ARCH_PM_CORE_H | ||
19 | #define __ASM_ARCH_PM_CORE_H __FILE__ | ||
20 | |||
21 | #include <mach/regs-pmu.h> | ||
22 | |||
23 | static inline void s3c_pm_debug_init_uart(void) | ||
24 | { | ||
25 | /* nothing here yet */ | ||
26 | } | ||
27 | |||
28 | static inline void s3c_pm_arch_prepare_irqs(void) | ||
29 | { | ||
30 | unsigned int tmp; | ||
31 | tmp = __raw_readl(S5P_WAKEUP_MASK); | ||
32 | tmp &= ~(1 << 31); | ||
33 | __raw_writel(tmp, S5P_WAKEUP_MASK); | ||
34 | |||
35 | __raw_writel(s3c_irqwake_intmask, S5P_WAKEUP_MASK); | ||
36 | __raw_writel(s3c_irqwake_eintmask, S5P_EINT_WAKEUP_MASK); | ||
37 | } | ||
38 | |||
39 | static inline void s3c_pm_arch_stop_clocks(void) | ||
40 | { | ||
41 | /* nothing here yet */ | ||
42 | } | ||
43 | |||
44 | static inline void s3c_pm_arch_show_resume_irqs(void) | ||
45 | { | ||
46 | /* nothing here yet */ | ||
47 | } | ||
48 | |||
49 | static inline void s3c_pm_arch_update_uart(void __iomem *regs, | ||
50 | struct pm_uart_save *save) | ||
51 | { | ||
52 | /* nothing here yet */ | ||
53 | } | ||
54 | |||
55 | static inline void s3c_pm_restored_gpios(void) | ||
56 | { | ||
57 | /* nothing here yet */ | ||
58 | } | ||
59 | |||
60 | static inline void samsung_pm_saved_gpios(void) | ||
61 | { | ||
62 | /* nothing here yet */ | ||
63 | } | ||
64 | |||
65 | #endif /* __ASM_ARCH_PM_CORE_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/pmu.h b/arch/arm/mach-exynos/include/mach/pmu.h new file mode 100644 index 000000000000..632dd5630138 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/pmu.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/pmu.h | ||
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * EXYNOS4210 - PMU(Power Management Unit) support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_PMU_H | ||
14 | #define __ASM_ARCH_PMU_H __FILE__ | ||
15 | |||
16 | #define PMU_TABLE_END NULL | ||
17 | |||
18 | enum sys_powerdown { | ||
19 | SYS_AFTR, | ||
20 | SYS_LPA, | ||
21 | SYS_SLEEP, | ||
22 | NUM_SYS_POWERDOWN, | ||
23 | }; | ||
24 | |||
25 | struct exynos4_pmu_conf { | ||
26 | void __iomem *reg; | ||
27 | unsigned int val[NUM_SYS_POWERDOWN]; | ||
28 | }; | ||
29 | |||
30 | extern void exynos4_sys_powerdown_conf(enum sys_powerdown mode); | ||
31 | |||
32 | #endif /* __ASM_ARCH_PMU_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-audss.h b/arch/arm/mach-exynos/include/mach/regs-audss.h new file mode 100644 index 000000000000..ca5a8b64218a --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-audss.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* arch/arm/mach-exynos4/include/mach/regs-audss.h | ||
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Exynos4 Audio SubSystem clock register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __PLAT_REGS_AUDSS_H | ||
14 | #define __PLAT_REGS_AUDSS_H __FILE__ | ||
15 | |||
16 | #define EXYNOS4_AUDSS_INT_MEM (0x03000000) | ||
17 | |||
18 | #endif /* _PLAT_REGS_AUDSS_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-clock.h b/arch/arm/mach-exynos/include/mach/regs-clock.h new file mode 100644 index 000000000000..6c37ebe94829 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-clock.h | |||
@@ -0,0 +1,210 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-clock.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - Clock register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_CLOCK_H | ||
14 | #define __ASM_ARCH_REGS_CLOCK_H __FILE__ | ||
15 | |||
16 | #include <plat/cpu.h> | ||
17 | #include <mach/map.h> | ||
18 | |||
19 | #define S5P_CLKREG(x) (S5P_VA_CMU + (x)) | ||
20 | |||
21 | #define S5P_CLKDIV_LEFTBUS S5P_CLKREG(0x04500) | ||
22 | #define S5P_CLKDIV_STAT_LEFTBUS S5P_CLKREG(0x04600) | ||
23 | #define S5P_CLKGATE_IP_LEFTBUS S5P_CLKREG(0x04800) | ||
24 | |||
25 | #define S5P_CLKDIV_RIGHTBUS S5P_CLKREG(0x08500) | ||
26 | #define S5P_CLKDIV_STAT_RIGHTBUS S5P_CLKREG(0x08600) | ||
27 | #define S5P_CLKGATE_IP_RIGHTBUS S5P_CLKREG(0x08800) | ||
28 | |||
29 | #define S5P_EPLL_LOCK S5P_CLKREG(0x0C010) | ||
30 | #define S5P_VPLL_LOCK S5P_CLKREG(0x0C020) | ||
31 | |||
32 | #define S5P_EPLL_CON0 S5P_CLKREG(0x0C110) | ||
33 | #define S5P_EPLL_CON1 S5P_CLKREG(0x0C114) | ||
34 | #define S5P_VPLL_CON0 S5P_CLKREG(0x0C120) | ||
35 | #define S5P_VPLL_CON1 S5P_CLKREG(0x0C124) | ||
36 | |||
37 | #define S5P_CLKSRC_TOP0 S5P_CLKREG(0x0C210) | ||
38 | #define S5P_CLKSRC_TOP1 S5P_CLKREG(0x0C214) | ||
39 | #define S5P_CLKSRC_CAM S5P_CLKREG(0x0C220) | ||
40 | #define S5P_CLKSRC_TV S5P_CLKREG(0x0C224) | ||
41 | #define S5P_CLKSRC_MFC S5P_CLKREG(0x0C228) | ||
42 | #define S5P_CLKSRC_G3D S5P_CLKREG(0x0C22C) | ||
43 | #define S5P_CLKSRC_IMAGE S5P_CLKREG(0x0C230) | ||
44 | #define S5P_CLKSRC_LCD0 S5P_CLKREG(0x0C234) | ||
45 | #define S5P_CLKSRC_MAUDIO S5P_CLKREG(0x0C23C) | ||
46 | #define S5P_CLKSRC_FSYS S5P_CLKREG(0x0C240) | ||
47 | #define S5P_CLKSRC_PERIL0 S5P_CLKREG(0x0C250) | ||
48 | #define S5P_CLKSRC_PERIL1 S5P_CLKREG(0x0C254) | ||
49 | |||
50 | #define S5P_CLKSRC_MASK_TOP S5P_CLKREG(0x0C310) | ||
51 | #define S5P_CLKSRC_MASK_CAM S5P_CLKREG(0x0C320) | ||
52 | #define S5P_CLKSRC_MASK_TV S5P_CLKREG(0x0C324) | ||
53 | #define S5P_CLKSRC_MASK_LCD0 S5P_CLKREG(0x0C334) | ||
54 | #define S5P_CLKSRC_MASK_MAUDIO S5P_CLKREG(0x0C33C) | ||
55 | #define S5P_CLKSRC_MASK_FSYS S5P_CLKREG(0x0C340) | ||
56 | #define S5P_CLKSRC_MASK_PERIL0 S5P_CLKREG(0x0C350) | ||
57 | #define S5P_CLKSRC_MASK_PERIL1 S5P_CLKREG(0x0C354) | ||
58 | |||
59 | #define S5P_CLKDIV_TOP S5P_CLKREG(0x0C510) | ||
60 | #define S5P_CLKDIV_CAM S5P_CLKREG(0x0C520) | ||
61 | #define S5P_CLKDIV_TV S5P_CLKREG(0x0C524) | ||
62 | #define S5P_CLKDIV_MFC S5P_CLKREG(0x0C528) | ||
63 | #define S5P_CLKDIV_G3D S5P_CLKREG(0x0C52C) | ||
64 | #define S5P_CLKDIV_IMAGE S5P_CLKREG(0x0C530) | ||
65 | #define S5P_CLKDIV_LCD0 S5P_CLKREG(0x0C534) | ||
66 | #define S5P_CLKDIV_MAUDIO S5P_CLKREG(0x0C53C) | ||
67 | #define S5P_CLKDIV_FSYS0 S5P_CLKREG(0x0C540) | ||
68 | #define S5P_CLKDIV_FSYS1 S5P_CLKREG(0x0C544) | ||
69 | #define S5P_CLKDIV_FSYS2 S5P_CLKREG(0x0C548) | ||
70 | #define S5P_CLKDIV_FSYS3 S5P_CLKREG(0x0C54C) | ||
71 | #define S5P_CLKDIV_PERIL0 S5P_CLKREG(0x0C550) | ||
72 | #define S5P_CLKDIV_PERIL1 S5P_CLKREG(0x0C554) | ||
73 | #define S5P_CLKDIV_PERIL2 S5P_CLKREG(0x0C558) | ||
74 | #define S5P_CLKDIV_PERIL3 S5P_CLKREG(0x0C55C) | ||
75 | #define S5P_CLKDIV_PERIL4 S5P_CLKREG(0x0C560) | ||
76 | #define S5P_CLKDIV_PERIL5 S5P_CLKREG(0x0C564) | ||
77 | #define S5P_CLKDIV2_RATIO S5P_CLKREG(0x0C580) | ||
78 | |||
79 | #define S5P_CLKDIV_STAT_TOP S5P_CLKREG(0x0C610) | ||
80 | |||
81 | #define S5P_CLKGATE_SCLKCAM S5P_CLKREG(0x0C820) | ||
82 | #define S5P_CLKGATE_IP_CAM S5P_CLKREG(0x0C920) | ||
83 | #define S5P_CLKGATE_IP_TV S5P_CLKREG(0x0C924) | ||
84 | #define S5P_CLKGATE_IP_MFC S5P_CLKREG(0x0C928) | ||
85 | #define S5P_CLKGATE_IP_G3D S5P_CLKREG(0x0C92C) | ||
86 | #define S5P_CLKGATE_IP_IMAGE (soc_is_exynos4210() ? \ | ||
87 | S5P_CLKREG(0x0C930) : \ | ||
88 | S5P_CLKREG(0x04930)) | ||
89 | #define S5P_CLKGATE_IP_IMAGE_4210 S5P_CLKREG(0x0C930) | ||
90 | #define S5P_CLKGATE_IP_IMAGE_4212 S5P_CLKREG(0x04930) | ||
91 | #define S5P_CLKGATE_IP_LCD0 S5P_CLKREG(0x0C934) | ||
92 | #define S5P_CLKGATE_IP_FSYS S5P_CLKREG(0x0C940) | ||
93 | #define S5P_CLKGATE_IP_GPS S5P_CLKREG(0x0C94C) | ||
94 | #define S5P_CLKGATE_IP_PERIL S5P_CLKREG(0x0C950) | ||
95 | #define S5P_CLKGATE_IP_PERIR (soc_is_exynos4210() ? \ | ||
96 | S5P_CLKREG(0x0C960) : \ | ||
97 | S5P_CLKREG(0x08960)) | ||
98 | #define S5P_CLKGATE_IP_PERIR_4210 S5P_CLKREG(0x0C960) | ||
99 | #define S5P_CLKGATE_IP_PERIR_4212 S5P_CLKREG(0x08960) | ||
100 | #define S5P_CLKGATE_BLOCK S5P_CLKREG(0x0C970) | ||
101 | |||
102 | #define S5P_CLKSRC_MASK_DMC S5P_CLKREG(0x10300) | ||
103 | #define S5P_CLKSRC_DMC S5P_CLKREG(0x10200) | ||
104 | #define S5P_CLKDIV_DMC0 S5P_CLKREG(0x10500) | ||
105 | #define S5P_CLKDIV_DMC1 S5P_CLKREG(0x10504) | ||
106 | #define S5P_CLKDIV_STAT_DMC0 S5P_CLKREG(0x10600) | ||
107 | #define S5P_CLKGATE_IP_DMC S5P_CLKREG(0x10900) | ||
108 | |||
109 | #define S5P_APLL_LOCK S5P_CLKREG(0x14000) | ||
110 | #define S5P_MPLL_LOCK (soc_is_exynos4210() ? \ | ||
111 | S5P_CLKREG(0x14004) : \ | ||
112 | S5P_CLKREG(0x10008)) | ||
113 | #define S5P_APLL_CON0 S5P_CLKREG(0x14100) | ||
114 | #define S5P_APLL_CON1 S5P_CLKREG(0x14104) | ||
115 | #define S5P_MPLL_CON0 (soc_is_exynos4210() ? \ | ||
116 | S5P_CLKREG(0x14108) : \ | ||
117 | S5P_CLKREG(0x10108)) | ||
118 | #define S5P_MPLL_CON1 (soc_is_exynos4210() ? \ | ||
119 | S5P_CLKREG(0x1410C) : \ | ||
120 | S5P_CLKREG(0x1010C)) | ||
121 | |||
122 | #define S5P_CLKSRC_CPU S5P_CLKREG(0x14200) | ||
123 | #define S5P_CLKMUX_STATCPU S5P_CLKREG(0x14400) | ||
124 | |||
125 | #define S5P_CLKDIV_CPU S5P_CLKREG(0x14500) | ||
126 | #define S5P_CLKDIV_CPU1 S5P_CLKREG(0x14504) | ||
127 | #define S5P_CLKDIV_STATCPU S5P_CLKREG(0x14600) | ||
128 | #define S5P_CLKDIV_STATCPU1 S5P_CLKREG(0x14604) | ||
129 | |||
130 | #define S5P_CLKGATE_SCLKCPU S5P_CLKREG(0x14800) | ||
131 | #define S5P_CLKGATE_IP_CPU S5P_CLKREG(0x14900) | ||
132 | |||
133 | #define S5P_APLL_LOCKTIME (0x1C20) /* 300us */ | ||
134 | |||
135 | #define S5P_APLLCON0_ENABLE_SHIFT (31) | ||
136 | #define S5P_APLLCON0_LOCKED_SHIFT (29) | ||
137 | #define S5P_APLL_VAL_1000 ((250 << 16) | (6 << 8) | 1) | ||
138 | #define S5P_APLL_VAL_800 ((200 << 16) | (6 << 8) | 1) | ||
139 | |||
140 | #define S5P_EPLLCON0_ENABLE_SHIFT (31) | ||
141 | #define S5P_EPLLCON0_LOCKED_SHIFT (29) | ||
142 | |||
143 | #define S5P_VPLLCON0_ENABLE_SHIFT (31) | ||
144 | #define S5P_VPLLCON0_LOCKED_SHIFT (29) | ||
145 | |||
146 | #define S5P_CLKSRC_CPU_MUXCORE_SHIFT (16) | ||
147 | #define S5P_CLKMUX_STATCPU_MUXCORE_MASK (0x7 << S5P_CLKSRC_CPU_MUXCORE_SHIFT) | ||
148 | |||
149 | #define S5P_CLKDIV_CPU0_CORE_SHIFT (0) | ||
150 | #define S5P_CLKDIV_CPU0_CORE_MASK (0x7 << S5P_CLKDIV_CPU0_CORE_SHIFT) | ||
151 | #define S5P_CLKDIV_CPU0_COREM0_SHIFT (4) | ||
152 | #define S5P_CLKDIV_CPU0_COREM0_MASK (0x7 << S5P_CLKDIV_CPU0_COREM0_SHIFT) | ||
153 | #define S5P_CLKDIV_CPU0_COREM1_SHIFT (8) | ||
154 | #define S5P_CLKDIV_CPU0_COREM1_MASK (0x7 << S5P_CLKDIV_CPU0_COREM1_SHIFT) | ||
155 | #define S5P_CLKDIV_CPU0_PERIPH_SHIFT (12) | ||
156 | #define S5P_CLKDIV_CPU0_PERIPH_MASK (0x7 << S5P_CLKDIV_CPU0_PERIPH_SHIFT) | ||
157 | #define S5P_CLKDIV_CPU0_ATB_SHIFT (16) | ||
158 | #define S5P_CLKDIV_CPU0_ATB_MASK (0x7 << S5P_CLKDIV_CPU0_ATB_SHIFT) | ||
159 | #define S5P_CLKDIV_CPU0_PCLKDBG_SHIFT (20) | ||
160 | #define S5P_CLKDIV_CPU0_PCLKDBG_MASK (0x7 << S5P_CLKDIV_CPU0_PCLKDBG_SHIFT) | ||
161 | #define S5P_CLKDIV_CPU0_APLL_SHIFT (24) | ||
162 | #define S5P_CLKDIV_CPU0_APLL_MASK (0x7 << S5P_CLKDIV_CPU0_APLL_SHIFT) | ||
163 | |||
164 | #define S5P_CLKDIV_DMC0_ACP_SHIFT (0) | ||
165 | #define S5P_CLKDIV_DMC0_ACP_MASK (0x7 << S5P_CLKDIV_DMC0_ACP_SHIFT) | ||
166 | #define S5P_CLKDIV_DMC0_ACPPCLK_SHIFT (4) | ||
167 | #define S5P_CLKDIV_DMC0_ACPPCLK_MASK (0x7 << S5P_CLKDIV_DMC0_ACPPCLK_SHIFT) | ||
168 | #define S5P_CLKDIV_DMC0_DPHY_SHIFT (8) | ||
169 | #define S5P_CLKDIV_DMC0_DPHY_MASK (0x7 << S5P_CLKDIV_DMC0_DPHY_SHIFT) | ||
170 | #define S5P_CLKDIV_DMC0_DMC_SHIFT (12) | ||
171 | #define S5P_CLKDIV_DMC0_DMC_MASK (0x7 << S5P_CLKDIV_DMC0_DMC_SHIFT) | ||
172 | #define S5P_CLKDIV_DMC0_DMCD_SHIFT (16) | ||
173 | #define S5P_CLKDIV_DMC0_DMCD_MASK (0x7 << S5P_CLKDIV_DMC0_DMCD_SHIFT) | ||
174 | #define S5P_CLKDIV_DMC0_DMCP_SHIFT (20) | ||
175 | #define S5P_CLKDIV_DMC0_DMCP_MASK (0x7 << S5P_CLKDIV_DMC0_DMCP_SHIFT) | ||
176 | #define S5P_CLKDIV_DMC0_COPY2_SHIFT (24) | ||
177 | #define S5P_CLKDIV_DMC0_COPY2_MASK (0x7 << S5P_CLKDIV_DMC0_COPY2_SHIFT) | ||
178 | #define S5P_CLKDIV_DMC0_CORETI_SHIFT (28) | ||
179 | #define S5P_CLKDIV_DMC0_CORETI_MASK (0x7 << S5P_CLKDIV_DMC0_CORETI_SHIFT) | ||
180 | |||
181 | #define S5P_CLKDIV_TOP_ACLK200_SHIFT (0) | ||
182 | #define S5P_CLKDIV_TOP_ACLK200_MASK (0x7 << S5P_CLKDIV_TOP_ACLK200_SHIFT) | ||
183 | #define S5P_CLKDIV_TOP_ACLK100_SHIFT (4) | ||
184 | #define S5P_CLKDIV_TOP_ACLK100_MASK (0xf << S5P_CLKDIV_TOP_ACLK100_SHIFT) | ||
185 | #define S5P_CLKDIV_TOP_ACLK160_SHIFT (8) | ||
186 | #define S5P_CLKDIV_TOP_ACLK160_MASK (0x7 << S5P_CLKDIV_TOP_ACLK160_SHIFT) | ||
187 | #define S5P_CLKDIV_TOP_ACLK133_SHIFT (12) | ||
188 | #define S5P_CLKDIV_TOP_ACLK133_MASK (0x7 << S5P_CLKDIV_TOP_ACLK133_SHIFT) | ||
189 | #define S5P_CLKDIV_TOP_ONENAND_SHIFT (16) | ||
190 | #define S5P_CLKDIV_TOP_ONENAND_MASK (0x7 << S5P_CLKDIV_TOP_ONENAND_SHIFT) | ||
191 | |||
192 | #define S5P_CLKDIV_BUS_GDLR_SHIFT (0) | ||
193 | #define S5P_CLKDIV_BUS_GDLR_MASK (0x7 << S5P_CLKDIV_BUS_GDLR_SHIFT) | ||
194 | #define S5P_CLKDIV_BUS_GPLR_SHIFT (4) | ||
195 | #define S5P_CLKDIV_BUS_GPLR_MASK (0x7 << S5P_CLKDIV_BUS_GPLR_SHIFT) | ||
196 | |||
197 | /* Only for EXYNOS4210 */ | ||
198 | |||
199 | #define S5P_CLKSRC_LCD1 S5P_CLKREG(0x0C238) | ||
200 | #define S5P_CLKSRC_MASK_LCD1 S5P_CLKREG(0x0C338) | ||
201 | #define S5P_CLKDIV_LCD1 S5P_CLKREG(0x0C538) | ||
202 | #define S5P_CLKGATE_IP_LCD1 S5P_CLKREG(0x0C938) | ||
203 | |||
204 | /* Compatibility defines and inclusion */ | ||
205 | |||
206 | #include <mach/regs-pmu.h> | ||
207 | |||
208 | #define S5P_EPLL_CON S5P_EPLL_CON0 | ||
209 | |||
210 | #endif /* __ASM_ARCH_REGS_CLOCK_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-gpio.h b/arch/arm/mach-exynos/include/mach/regs-gpio.h new file mode 100644 index 000000000000..1401b21663a5 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-gpio.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-gpio.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - GPIO (including EINT) register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_GPIO_H | ||
14 | #define __ASM_ARCH_REGS_GPIO_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | #include <mach/irqs.h> | ||
18 | |||
19 | #define EXYNOS4_EINT40CON (S5P_VA_GPIO2 + 0xE00) | ||
20 | #define S5P_EINT_CON(x) (EXYNOS4_EINT40CON + ((x) * 0x4)) | ||
21 | |||
22 | #define EXYNOS4_EINT40FLTCON0 (S5P_VA_GPIO2 + 0xE80) | ||
23 | #define S5P_EINT_FLTCON(x) (EXYNOS4_EINT40FLTCON0 + ((x) * 0x4)) | ||
24 | |||
25 | #define EXYNOS4_EINT40MASK (S5P_VA_GPIO2 + 0xF00) | ||
26 | #define S5P_EINT_MASK(x) (EXYNOS4_EINT40MASK + ((x) * 0x4)) | ||
27 | |||
28 | #define EXYNOS4_EINT40PEND (S5P_VA_GPIO2 + 0xF40) | ||
29 | #define S5P_EINT_PEND(x) (EXYNOS4_EINT40PEND + ((x) * 0x4)) | ||
30 | |||
31 | #define EINT_REG_NR(x) (EINT_OFFSET(x) >> 3) | ||
32 | |||
33 | #define eint_irq_to_bit(irq) (1 << (EINT_OFFSET(irq) & 0x7)) | ||
34 | |||
35 | #define EINT_MODE S3C_GPIO_SFN(0xf) | ||
36 | |||
37 | #define EINT_GPIO_0(x) EXYNOS4_GPX0(x) | ||
38 | #define EINT_GPIO_1(x) EXYNOS4_GPX1(x) | ||
39 | #define EINT_GPIO_2(x) EXYNOS4_GPX2(x) | ||
40 | #define EINT_GPIO_3(x) EXYNOS4_GPX3(x) | ||
41 | |||
42 | #endif /* __ASM_ARCH_REGS_GPIO_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-irq.h b/arch/arm/mach-exynos/include/mach/regs-irq.h new file mode 100644 index 000000000000..9c7b4bfd546f --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-irq.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-irq.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - IRQ register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_IRQ_H | ||
14 | #define __ASM_ARCH_REGS_IRQ_H __FILE__ | ||
15 | |||
16 | #include <asm/hardware/gic.h> | ||
17 | #include <mach/map.h> | ||
18 | |||
19 | #endif /* __ASM_ARCH_REGS_IRQ_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-mct.h b/arch/arm/mach-exynos/include/mach/regs-mct.h new file mode 100644 index 000000000000..80dd02ad6d61 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-mct.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* arch/arm/mach-exynos4/include/mach/regs-mct.h | ||
2 | * | ||
3 | * Copyright (c) 2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 MCT configutation | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_MCT_H | ||
14 | #define __ASM_ARCH_REGS_MCT_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | |||
18 | #define EXYNOS4_MCTREG(x) (S5P_VA_SYSTIMER + (x)) | ||
19 | |||
20 | #define EXYNOS4_MCT_G_CNT_L EXYNOS4_MCTREG(0x100) | ||
21 | #define EXYNOS4_MCT_G_CNT_U EXYNOS4_MCTREG(0x104) | ||
22 | #define EXYNOS4_MCT_G_CNT_WSTAT EXYNOS4_MCTREG(0x110) | ||
23 | |||
24 | #define EXYNOS4_MCT_G_COMP0_L EXYNOS4_MCTREG(0x200) | ||
25 | #define EXYNOS4_MCT_G_COMP0_U EXYNOS4_MCTREG(0x204) | ||
26 | #define EXYNOS4_MCT_G_COMP0_ADD_INCR EXYNOS4_MCTREG(0x208) | ||
27 | |||
28 | #define EXYNOS4_MCT_G_TCON EXYNOS4_MCTREG(0x240) | ||
29 | |||
30 | #define EXYNOS4_MCT_G_INT_CSTAT EXYNOS4_MCTREG(0x244) | ||
31 | #define EXYNOS4_MCT_G_INT_ENB EXYNOS4_MCTREG(0x248) | ||
32 | #define EXYNOS4_MCT_G_WSTAT EXYNOS4_MCTREG(0x24C) | ||
33 | |||
34 | #define _EXYNOS4_MCT_L_BASE EXYNOS4_MCTREG(0x300) | ||
35 | #define EXYNOS4_MCT_L_BASE(x) (_EXYNOS4_MCT_L_BASE + (0x100 * x)) | ||
36 | #define EXYNOS4_MCT_L_MASK (0xffffff00) | ||
37 | |||
38 | #define MCT_L_TCNTB_OFFSET (0x00) | ||
39 | #define MCT_L_ICNTB_OFFSET (0x08) | ||
40 | #define MCT_L_TCON_OFFSET (0x20) | ||
41 | #define MCT_L_INT_CSTAT_OFFSET (0x30) | ||
42 | #define MCT_L_INT_ENB_OFFSET (0x34) | ||
43 | #define MCT_L_WSTAT_OFFSET (0x40) | ||
44 | |||
45 | #define MCT_G_TCON_START (1 << 8) | ||
46 | #define MCT_G_TCON_COMP0_AUTO_INC (1 << 1) | ||
47 | #define MCT_G_TCON_COMP0_ENABLE (1 << 0) | ||
48 | |||
49 | #define MCT_L_TCON_INTERVAL_MODE (1 << 2) | ||
50 | #define MCT_L_TCON_INT_START (1 << 1) | ||
51 | #define MCT_L_TCON_TIMER_START (1 << 0) | ||
52 | |||
53 | #endif /* __ASM_ARCH_REGS_MCT_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-mem.h b/arch/arm/mach-exynos/include/mach/regs-mem.h new file mode 100644 index 000000000000..0368b5a27252 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-mem.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-mem.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - SROMC and DMC register definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_MEM_H | ||
14 | #define __ASM_ARCH_REGS_MEM_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | |||
18 | #define S5P_DMC0_MEMCON_OFFSET 0x04 | ||
19 | |||
20 | #define S5P_DMC0_MEMTYPE_SHIFT 8 | ||
21 | #define S5P_DMC0_MEMTYPE_MASK 0xF | ||
22 | |||
23 | #endif /* __ASM_ARCH_REGS_MEM_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-pmu.h b/arch/arm/mach-exynos/include/mach/regs-pmu.h new file mode 100644 index 000000000000..4fff8e938fec --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-pmu.h | |||
@@ -0,0 +1,220 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-pmu.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - Power management unit definition | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_PMU_H | ||
14 | #define __ASM_ARCH_REGS_PMU_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | |||
18 | #define S5P_PMUREG(x) (S5P_VA_PMU + (x)) | ||
19 | |||
20 | #define S5P_CENTRAL_SEQ_CONFIGURATION S5P_PMUREG(0x0200) | ||
21 | |||
22 | #define S5P_CENTRAL_LOWPWR_CFG (1 << 16) | ||
23 | |||
24 | #define S5P_CENTRAL_SEQ_OPTION S5P_PMUREG(0x0208) | ||
25 | |||
26 | #define S5P_USE_STANDBY_WFI0 (1 << 16) | ||
27 | #define S5P_USE_STANDBY_WFI1 (1 << 17) | ||
28 | #define S5P_USE_STANDBYWFI_ISP_ARM (1 << 18) | ||
29 | #define S5P_USE_STANDBY_WFE0 (1 << 24) | ||
30 | #define S5P_USE_STANDBY_WFE1 (1 << 25) | ||
31 | #define S5P_USE_STANDBYWFE_ISP_ARM (1 << 26) | ||
32 | |||
33 | #define S5P_SWRESET S5P_PMUREG(0x0400) | ||
34 | |||
35 | #define S5P_WAKEUP_STAT S5P_PMUREG(0x0600) | ||
36 | #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) | ||
37 | #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) | ||
38 | |||
39 | #define S5P_HDMI_PHY_CONTROL S5P_PMUREG(0x0700) | ||
40 | #define S5P_HDMI_PHY_ENABLE (1 << 0) | ||
41 | |||
42 | #define S5P_DAC_PHY_CONTROL S5P_PMUREG(0x070C) | ||
43 | #define S5P_DAC_PHY_ENABLE (1 << 0) | ||
44 | |||
45 | #define S5P_MIPI_DPHY_CONTROL(n) S5P_PMUREG(0x0710 + (n) * 4) | ||
46 | #define S5P_MIPI_DPHY_ENABLE (1 << 0) | ||
47 | #define S5P_MIPI_DPHY_SRESETN (1 << 1) | ||
48 | #define S5P_MIPI_DPHY_MRESETN (1 << 2) | ||
49 | |||
50 | #define S5P_INFORM0 S5P_PMUREG(0x0800) | ||
51 | #define S5P_INFORM1 S5P_PMUREG(0x0804) | ||
52 | #define S5P_INFORM2 S5P_PMUREG(0x0808) | ||
53 | #define S5P_INFORM3 S5P_PMUREG(0x080C) | ||
54 | #define S5P_INFORM4 S5P_PMUREG(0x0810) | ||
55 | #define S5P_INFORM5 S5P_PMUREG(0x0814) | ||
56 | #define S5P_INFORM6 S5P_PMUREG(0x0818) | ||
57 | #define S5P_INFORM7 S5P_PMUREG(0x081C) | ||
58 | |||
59 | #define S5P_ARM_CORE0_LOWPWR S5P_PMUREG(0x1000) | ||
60 | #define S5P_DIS_IRQ_CORE0 S5P_PMUREG(0x1004) | ||
61 | #define S5P_DIS_IRQ_CENTRAL0 S5P_PMUREG(0x1008) | ||
62 | #define S5P_ARM_CORE1_LOWPWR S5P_PMUREG(0x1010) | ||
63 | #define S5P_DIS_IRQ_CORE1 S5P_PMUREG(0x1014) | ||
64 | #define S5P_DIS_IRQ_CENTRAL1 S5P_PMUREG(0x1018) | ||
65 | #define S5P_ARM_COMMON_LOWPWR S5P_PMUREG(0x1080) | ||
66 | #define S5P_L2_0_LOWPWR S5P_PMUREG(0x10C0) | ||
67 | #define S5P_L2_1_LOWPWR S5P_PMUREG(0x10C4) | ||
68 | #define S5P_CMU_ACLKSTOP_LOWPWR S5P_PMUREG(0x1100) | ||
69 | #define S5P_CMU_SCLKSTOP_LOWPWR S5P_PMUREG(0x1104) | ||
70 | #define S5P_CMU_RESET_LOWPWR S5P_PMUREG(0x110C) | ||
71 | #define S5P_APLL_SYSCLK_LOWPWR S5P_PMUREG(0x1120) | ||
72 | #define S5P_MPLL_SYSCLK_LOWPWR S5P_PMUREG(0x1124) | ||
73 | #define S5P_VPLL_SYSCLK_LOWPWR S5P_PMUREG(0x1128) | ||
74 | #define S5P_EPLL_SYSCLK_LOWPWR S5P_PMUREG(0x112C) | ||
75 | #define S5P_CMU_CLKSTOP_GPS_ALIVE_LOWPWR S5P_PMUREG(0x1138) | ||
76 | #define S5P_CMU_RESET_GPSALIVE_LOWPWR S5P_PMUREG(0x113C) | ||
77 | #define S5P_CMU_CLKSTOP_CAM_LOWPWR S5P_PMUREG(0x1140) | ||
78 | #define S5P_CMU_CLKSTOP_TV_LOWPWR S5P_PMUREG(0x1144) | ||
79 | #define S5P_CMU_CLKSTOP_MFC_LOWPWR S5P_PMUREG(0x1148) | ||
80 | #define S5P_CMU_CLKSTOP_G3D_LOWPWR S5P_PMUREG(0x114C) | ||
81 | #define S5P_CMU_CLKSTOP_LCD0_LOWPWR S5P_PMUREG(0x1150) | ||
82 | #define S5P_CMU_CLKSTOP_MAUDIO_LOWPWR S5P_PMUREG(0x1158) | ||
83 | #define S5P_CMU_CLKSTOP_GPS_LOWPWR S5P_PMUREG(0x115C) | ||
84 | #define S5P_CMU_RESET_CAM_LOWPWR S5P_PMUREG(0x1160) | ||
85 | #define S5P_CMU_RESET_TV_LOWPWR S5P_PMUREG(0x1164) | ||
86 | #define S5P_CMU_RESET_MFC_LOWPWR S5P_PMUREG(0x1168) | ||
87 | #define S5P_CMU_RESET_G3D_LOWPWR S5P_PMUREG(0x116C) | ||
88 | #define S5P_CMU_RESET_LCD0_LOWPWR S5P_PMUREG(0x1170) | ||
89 | #define S5P_CMU_RESET_MAUDIO_LOWPWR S5P_PMUREG(0x1178) | ||
90 | #define S5P_CMU_RESET_GPS_LOWPWR S5P_PMUREG(0x117C) | ||
91 | #define S5P_TOP_BUS_LOWPWR S5P_PMUREG(0x1180) | ||
92 | #define S5P_TOP_RETENTION_LOWPWR S5P_PMUREG(0x1184) | ||
93 | #define S5P_TOP_PWR_LOWPWR S5P_PMUREG(0x1188) | ||
94 | #define S5P_LOGIC_RESET_LOWPWR S5P_PMUREG(0x11A0) | ||
95 | #define S5P_ONENAND_MEM_LOWPWR S5P_PMUREG(0x11C0) | ||
96 | #define S5P_G2D_ACP_MEM_LOWPWR S5P_PMUREG(0x11C8) | ||
97 | #define S5P_USBOTG_MEM_LOWPWR S5P_PMUREG(0x11CC) | ||
98 | #define S5P_HSMMC_MEM_LOWPWR S5P_PMUREG(0x11D0) | ||
99 | #define S5P_CSSYS_MEM_LOWPWR S5P_PMUREG(0x11D4) | ||
100 | #define S5P_SECSS_MEM_LOWPWR S5P_PMUREG(0x11D8) | ||
101 | #define S5P_PAD_RETENTION_DRAM_LOWPWR S5P_PMUREG(0x1200) | ||
102 | #define S5P_PAD_RETENTION_MAUDIO_LOWPWR S5P_PMUREG(0x1204) | ||
103 | #define S5P_PAD_RETENTION_GPIO_LOWPWR S5P_PMUREG(0x1220) | ||
104 | #define S5P_PAD_RETENTION_UART_LOWPWR S5P_PMUREG(0x1224) | ||
105 | #define S5P_PAD_RETENTION_MMCA_LOWPWR S5P_PMUREG(0x1228) | ||
106 | #define S5P_PAD_RETENTION_MMCB_LOWPWR S5P_PMUREG(0x122C) | ||
107 | #define S5P_PAD_RETENTION_EBIA_LOWPWR S5P_PMUREG(0x1230) | ||
108 | #define S5P_PAD_RETENTION_EBIB_LOWPWR S5P_PMUREG(0x1234) | ||
109 | #define S5P_PAD_RETENTION_ISOLATION_LOWPWR S5P_PMUREG(0x1240) | ||
110 | #define S5P_PAD_RETENTION_ALV_SEL_LOWPWR S5P_PMUREG(0x1260) | ||
111 | #define S5P_XUSBXTI_LOWPWR S5P_PMUREG(0x1280) | ||
112 | #define S5P_XXTI_LOWPWR S5P_PMUREG(0x1284) | ||
113 | #define S5P_EXT_REGULATOR_LOWPWR S5P_PMUREG(0x12C0) | ||
114 | #define S5P_GPIO_MODE_LOWPWR S5P_PMUREG(0x1300) | ||
115 | #define S5P_GPIO_MODE_MAUDIO_LOWPWR S5P_PMUREG(0x1340) | ||
116 | #define S5P_CAM_LOWPWR S5P_PMUREG(0x1380) | ||
117 | #define S5P_TV_LOWPWR S5P_PMUREG(0x1384) | ||
118 | #define S5P_MFC_LOWPWR S5P_PMUREG(0x1388) | ||
119 | #define S5P_G3D_LOWPWR S5P_PMUREG(0x138C) | ||
120 | #define S5P_LCD0_LOWPWR S5P_PMUREG(0x1390) | ||
121 | #define S5P_MAUDIO_LOWPWR S5P_PMUREG(0x1398) | ||
122 | #define S5P_GPS_LOWPWR S5P_PMUREG(0x139C) | ||
123 | #define S5P_GPS_ALIVE_LOWPWR S5P_PMUREG(0x13A0) | ||
124 | |||
125 | #define S5P_ARM_CORE0_CONFIGURATION S5P_PMUREG(0x2000) | ||
126 | #define S5P_ARM_CORE0_OPTION S5P_PMUREG(0x2008) | ||
127 | #define S5P_ARM_CORE1_CONFIGURATION S5P_PMUREG(0x2080) | ||
128 | #define S5P_ARM_CORE1_STATUS S5P_PMUREG(0x2084) | ||
129 | #define S5P_ARM_CORE1_OPTION S5P_PMUREG(0x2088) | ||
130 | |||
131 | #define S5P_ARM_COMMON_OPTION S5P_PMUREG(0x2408) | ||
132 | #define S5P_TOP_PWR_OPTION S5P_PMUREG(0x2C48) | ||
133 | #define S5P_CAM_OPTION S5P_PMUREG(0x3C08) | ||
134 | #define S5P_TV_OPTION S5P_PMUREG(0x3C28) | ||
135 | #define S5P_MFC_OPTION S5P_PMUREG(0x3C48) | ||
136 | #define S5P_G3D_OPTION S5P_PMUREG(0x3C68) | ||
137 | #define S5P_LCD0_OPTION S5P_PMUREG(0x3C88) | ||
138 | #define S5P_LCD1_OPTION S5P_PMUREG(0x3CA8) | ||
139 | #define S5P_MAUDIO_OPTION S5P_PMUREG(0x3CC8) | ||
140 | #define S5P_GPS_OPTION S5P_PMUREG(0x3CE8) | ||
141 | #define S5P_GPS_ALIVE_OPTION S5P_PMUREG(0x3D08) | ||
142 | |||
143 | #define S5P_PAD_RET_MAUDIO_OPTION S5P_PMUREG(0x3028) | ||
144 | #define S5P_PAD_RET_GPIO_OPTION S5P_PMUREG(0x3108) | ||
145 | #define S5P_PAD_RET_UART_OPTION S5P_PMUREG(0x3128) | ||
146 | #define S5P_PAD_RET_MMCA_OPTION S5P_PMUREG(0x3148) | ||
147 | #define S5P_PAD_RET_MMCB_OPTION S5P_PMUREG(0x3168) | ||
148 | #define S5P_PAD_RET_EBIA_OPTION S5P_PMUREG(0x3188) | ||
149 | #define S5P_PAD_RET_EBIB_OPTION S5P_PMUREG(0x31A8) | ||
150 | |||
151 | #define S5P_PMU_CAM_CONF S5P_PMUREG(0x3C00) | ||
152 | #define S5P_PMU_TV_CONF S5P_PMUREG(0x3C20) | ||
153 | #define S5P_PMU_MFC_CONF S5P_PMUREG(0x3C40) | ||
154 | #define S5P_PMU_G3D_CONF S5P_PMUREG(0x3C60) | ||
155 | #define S5P_PMU_LCD0_CONF S5P_PMUREG(0x3C80) | ||
156 | #define S5P_PMU_GPS_CONF S5P_PMUREG(0x3CE0) | ||
157 | |||
158 | #define S5P_PMU_SATA_PHY_CONTROL_EN 0x1 | ||
159 | #define S5P_CORE_LOCAL_PWR_EN 0x3 | ||
160 | #define S5P_INT_LOCAL_PWR_EN 0x7 | ||
161 | |||
162 | #define S5P_CHECK_SLEEP 0x00000BAD | ||
163 | |||
164 | /* Only for EXYNOS4210 */ | ||
165 | #define S5P_USBHOST_PHY_CONTROL S5P_PMUREG(0x0708) | ||
166 | #define S5P_USBHOST_PHY_ENABLE (1 << 0) | ||
167 | |||
168 | #define S5P_PMU_SATA_PHY_CONTROL S5P_PMUREG(0x0720) | ||
169 | |||
170 | #define S5P_CMU_CLKSTOP_LCD1_LOWPWR S5P_PMUREG(0x1154) | ||
171 | #define S5P_CMU_RESET_LCD1_LOWPWR S5P_PMUREG(0x1174) | ||
172 | #define S5P_MODIMIF_MEM_LOWPWR S5P_PMUREG(0x11C4) | ||
173 | #define S5P_PCIE_MEM_LOWPWR S5P_PMUREG(0x11E0) | ||
174 | #define S5P_SATA_MEM_LOWPWR S5P_PMUREG(0x11E4) | ||
175 | #define S5P_LCD1_LOWPWR S5P_PMUREG(0x1394) | ||
176 | |||
177 | #define S5P_PMU_LCD1_CONF S5P_PMUREG(0x3CA0) | ||
178 | |||
179 | /* Only for EXYNOS4212 */ | ||
180 | #define S5P_ISP_ARM_LOWPWR S5P_PMUREG(0x1050) | ||
181 | #define S5P_DIS_IRQ_ISP_ARM_LOCAL_LOWPWR S5P_PMUREG(0x1054) | ||
182 | #define S5P_DIS_IRQ_ISP_ARM_CENTRAL_LOWPWR S5P_PMUREG(0x1058) | ||
183 | #define S5P_CMU_ACLKSTOP_COREBLK_LOWPWR S5P_PMUREG(0x1110) | ||
184 | #define S5P_CMU_SCLKSTOP_COREBLK_LOWPWR S5P_PMUREG(0x1114) | ||
185 | #define S5P_CMU_RESET_COREBLK_LOWPWR S5P_PMUREG(0x111C) | ||
186 | #define S5P_MPLLUSER_SYSCLK_LOWPWR S5P_PMUREG(0x1130) | ||
187 | #define S5P_CMU_CLKSTOP_ISP_LOWPWR S5P_PMUREG(0x1154) | ||
188 | #define S5P_CMU_RESET_ISP_LOWPWR S5P_PMUREG(0x1174) | ||
189 | #define S5P_TOP_BUS_COREBLK_LOWPWR S5P_PMUREG(0x1190) | ||
190 | #define S5P_TOP_RETENTION_COREBLK_LOWPWR S5P_PMUREG(0x1194) | ||
191 | #define S5P_TOP_PWR_COREBLK_LOWPWR S5P_PMUREG(0x1198) | ||
192 | #define S5P_OSCCLK_GATE_LOWPWR S5P_PMUREG(0x11A4) | ||
193 | #define S5P_LOGIC_RESET_COREBLK_LOWPWR S5P_PMUREG(0x11B0) | ||
194 | #define S5P_OSCCLK_GATE_COREBLK_LOWPWR S5P_PMUREG(0x11B4) | ||
195 | #define S5P_HSI_MEM_LOWPWR S5P_PMUREG(0x11C4) | ||
196 | #define S5P_ROTATOR_MEM_LOWPWR S5P_PMUREG(0x11DC) | ||
197 | #define S5P_PAD_RETENTION_GPIO_COREBLK_LOWPWR S5P_PMUREG(0x123C) | ||
198 | #define S5P_PAD_ISOLATION_COREBLK_LOWPWR S5P_PMUREG(0x1250) | ||
199 | #define S5P_GPIO_MODE_COREBLK_LOWPWR S5P_PMUREG(0x1320) | ||
200 | #define S5P_TOP_ASB_RESET_LOWPWR S5P_PMUREG(0x1344) | ||
201 | #define S5P_TOP_ASB_ISOLATION_LOWPWR S5P_PMUREG(0x1348) | ||
202 | #define S5P_ISP_LOWPWR S5P_PMUREG(0x1394) | ||
203 | #define S5P_DRAM_FREQ_DOWN_LOWPWR S5P_PMUREG(0x13B0) | ||
204 | #define S5P_DDRPHY_DLLOFF_LOWPWR S5P_PMUREG(0x13B4) | ||
205 | #define S5P_CMU_SYSCLK_ISP_LOWPWR S5P_PMUREG(0x13B8) | ||
206 | #define S5P_CMU_SYSCLK_GPS_LOWPWR S5P_PMUREG(0x13BC) | ||
207 | #define S5P_LPDDR_PHY_DLL_LOCK_LOWPWR S5P_PMUREG(0x13C0) | ||
208 | |||
209 | #define S5P_ARM_L2_0_OPTION S5P_PMUREG(0x2608) | ||
210 | #define S5P_ARM_L2_1_OPTION S5P_PMUREG(0x2628) | ||
211 | #define S5P_ONENAND_MEM_OPTION S5P_PMUREG(0x2E08) | ||
212 | #define S5P_HSI_MEM_OPTION S5P_PMUREG(0x2E28) | ||
213 | #define S5P_G2D_ACP_MEM_OPTION S5P_PMUREG(0x2E48) | ||
214 | #define S5P_USBOTG_MEM_OPTION S5P_PMUREG(0x2E68) | ||
215 | #define S5P_HSMMC_MEM_OPTION S5P_PMUREG(0x2E88) | ||
216 | #define S5P_CSSYS_MEM_OPTION S5P_PMUREG(0x2EA8) | ||
217 | #define S5P_SECSS_MEM_OPTION S5P_PMUREG(0x2EC8) | ||
218 | #define S5P_ROTATOR_MEM_OPTION S5P_PMUREG(0x2F48) | ||
219 | |||
220 | #endif /* __ASM_ARCH_REGS_PMU_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-sysmmu.h b/arch/arm/mach-exynos/include/mach/regs-sysmmu.h new file mode 100644 index 000000000000..68ff6ad08a2b --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-sysmmu.h | |||
@@ -0,0 +1,28 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/regs-sysmmu.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - System MMU register | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_SYSMMU_H | ||
14 | #define __ASM_ARCH_REGS_SYSMMU_H __FILE__ | ||
15 | |||
16 | #define S5P_MMU_CTRL 0x000 | ||
17 | #define S5P_MMU_CFG 0x004 | ||
18 | #define S5P_MMU_STATUS 0x008 | ||
19 | #define S5P_MMU_FLUSH 0x00C | ||
20 | #define S5P_PT_BASE_ADDR 0x014 | ||
21 | #define S5P_INT_STATUS 0x018 | ||
22 | #define S5P_INT_CLEAR 0x01C | ||
23 | #define S5P_PAGE_FAULT_ADDR 0x024 | ||
24 | #define S5P_AW_FAULT_ADDR 0x028 | ||
25 | #define S5P_AR_FAULT_ADDR 0x02C | ||
26 | #define S5P_DEFAULT_SLAVE_ADDR 0x030 | ||
27 | |||
28 | #endif /* __ASM_ARCH_REGS_SYSMMU_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/regs-usb-phy.h b/arch/arm/mach-exynos/include/mach/regs-usb-phy.h new file mode 100644 index 000000000000..c337cf3a71bf --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/regs-usb-phy.h | |||
@@ -0,0 +1,64 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Samsung Electronics Co.Ltd | ||
3 | * Author: Joonyoung Shim <jy0922.shim@samsung.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License as published by the | ||
7 | * Free Software Foundation; either version 2 of the License, or (at your | ||
8 | * option) any later version. | ||
9 | */ | ||
10 | |||
11 | #ifndef __PLAT_S5P_REGS_USB_PHY_H | ||
12 | #define __PLAT_S5P_REGS_USB_PHY_H | ||
13 | |||
14 | #define EXYNOS4_HSOTG_PHYREG(x) ((x) + S3C_VA_USB_HSPHY) | ||
15 | |||
16 | #define EXYNOS4_PHYPWR EXYNOS4_HSOTG_PHYREG(0x00) | ||
17 | #define PHY1_HSIC_NORMAL_MASK (0xf << 9) | ||
18 | #define PHY1_HSIC1_SLEEP (1 << 12) | ||
19 | #define PHY1_HSIC1_FORCE_SUSPEND (1 << 11) | ||
20 | #define PHY1_HSIC0_SLEEP (1 << 10) | ||
21 | #define PHY1_HSIC0_FORCE_SUSPEND (1 << 9) | ||
22 | |||
23 | #define PHY1_STD_NORMAL_MASK (0x7 << 6) | ||
24 | #define PHY1_STD_SLEEP (1 << 8) | ||
25 | #define PHY1_STD_ANALOG_POWERDOWN (1 << 7) | ||
26 | #define PHY1_STD_FORCE_SUSPEND (1 << 6) | ||
27 | |||
28 | #define PHY0_NORMAL_MASK (0x39 << 0) | ||
29 | #define PHY0_SLEEP (1 << 5) | ||
30 | #define PHY0_OTG_DISABLE (1 << 4) | ||
31 | #define PHY0_ANALOG_POWERDOWN (1 << 3) | ||
32 | #define PHY0_FORCE_SUSPEND (1 << 0) | ||
33 | |||
34 | #define EXYNOS4_PHYCLK EXYNOS4_HSOTG_PHYREG(0x04) | ||
35 | #define PHY1_COMMON_ON_N (1 << 7) | ||
36 | #define PHY0_COMMON_ON_N (1 << 4) | ||
37 | #define PHY0_ID_PULLUP (1 << 2) | ||
38 | #define CLKSEL_MASK (0x3 << 0) | ||
39 | #define CLKSEL_SHIFT (0) | ||
40 | #define CLKSEL_48M (0x0 << 0) | ||
41 | #define CLKSEL_12M (0x2 << 0) | ||
42 | #define CLKSEL_24M (0x3 << 0) | ||
43 | |||
44 | #define EXYNOS4_RSTCON EXYNOS4_HSOTG_PHYREG(0x08) | ||
45 | #define HOST_LINK_PORT_SWRST_MASK (0xf << 6) | ||
46 | #define HOST_LINK_PORT2_SWRST (1 << 9) | ||
47 | #define HOST_LINK_PORT1_SWRST (1 << 8) | ||
48 | #define HOST_LINK_PORT0_SWRST (1 << 7) | ||
49 | #define HOST_LINK_ALL_SWRST (1 << 6) | ||
50 | |||
51 | #define PHY1_SWRST_MASK (0x7 << 3) | ||
52 | #define PHY1_HSIC_SWRST (1 << 5) | ||
53 | #define PHY1_STD_SWRST (1 << 4) | ||
54 | #define PHY1_ALL_SWRST (1 << 3) | ||
55 | |||
56 | #define PHY0_SWRST_MASK (0x7 << 0) | ||
57 | #define PHY0_PHYLINK_SWRST (1 << 2) | ||
58 | #define PHY0_HLINK_SWRST (1 << 1) | ||
59 | #define PHY0_SWRST (1 << 0) | ||
60 | |||
61 | #define EXYNOS4_PHY1CON EXYNOS4_HSOTG_PHYREG(0x34) | ||
62 | #define FPENABLEN (1 << 0) | ||
63 | |||
64 | #endif /* __PLAT_S5P_REGS_USB_PHY_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/sysmmu.h b/arch/arm/mach-exynos/include/mach/sysmmu.h new file mode 100644 index 000000000000..6a5fbb534e82 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/sysmmu.h | |||
@@ -0,0 +1,46 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/sysmmu.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Samsung sysmmu driver for EXYNOS4 | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARM_ARCH_SYSMMU_H | ||
14 | #define __ASM_ARM_ARCH_SYSMMU_H __FILE__ | ||
15 | |||
16 | enum exynos4_sysmmu_ips { | ||
17 | SYSMMU_MDMA, | ||
18 | SYSMMU_SSS, | ||
19 | SYSMMU_FIMC0, | ||
20 | SYSMMU_FIMC1, | ||
21 | SYSMMU_FIMC2, | ||
22 | SYSMMU_FIMC3, | ||
23 | SYSMMU_JPEG, | ||
24 | SYSMMU_FIMD0, | ||
25 | SYSMMU_FIMD1, | ||
26 | SYSMMU_PCIe, | ||
27 | SYSMMU_G2D, | ||
28 | SYSMMU_ROTATOR, | ||
29 | SYSMMU_MDMA2, | ||
30 | SYSMMU_TV, | ||
31 | SYSMMU_MFC_L, | ||
32 | SYSMMU_MFC_R, | ||
33 | EXYNOS4_SYSMMU_TOTAL_IPNUM, | ||
34 | }; | ||
35 | |||
36 | #define S5P_SYSMMU_TOTAL_IPNUM EXYNOS4_SYSMMU_TOTAL_IPNUM | ||
37 | |||
38 | extern const char *sysmmu_ips_name[EXYNOS4_SYSMMU_TOTAL_IPNUM]; | ||
39 | |||
40 | typedef enum exynos4_sysmmu_ips sysmmu_ips; | ||
41 | |||
42 | void sysmmu_clk_init(struct device *dev, sysmmu_ips ips); | ||
43 | void sysmmu_clk_enable(sysmmu_ips ips); | ||
44 | void sysmmu_clk_disable(sysmmu_ips ips); | ||
45 | |||
46 | #endif /* __ASM_ARM_ARCH_SYSMMU_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/system.h b/arch/arm/mach-exynos/include/mach/system.h new file mode 100644 index 000000000000..5e3220c18fc7 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/system.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/system.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - system support header | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_SYSTEM_H | ||
14 | #define __ASM_ARCH_SYSTEM_H __FILE__ | ||
15 | |||
16 | #include <plat/system-reset.h> | ||
17 | |||
18 | static void arch_idle(void) | ||
19 | { | ||
20 | /* nothing here yet */ | ||
21 | } | ||
22 | #endif /* __ASM_ARCH_SYSTEM_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/timex.h b/arch/arm/mach-exynos/include/mach/timex.h new file mode 100644 index 000000000000..6d138750a708 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/timex.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/timex.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Copyright (c) 2003-2010 Simtec Electronics | ||
7 | * Ben Dooks <ben@simtec.co.uk> | ||
8 | * | ||
9 | * Based on arch/arm/mach-s5p6442/include/mach/timex.h | ||
10 | * | ||
11 | * EXYNOS4 - time parameters | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or modify | ||
14 | * it under the terms of the GNU General Public License version 2 as | ||
15 | * published by the Free Software Foundation. | ||
16 | */ | ||
17 | |||
18 | #ifndef __ASM_ARCH_TIMEX_H | ||
19 | #define __ASM_ARCH_TIMEX_H __FILE__ | ||
20 | |||
21 | /* CLOCK_TICK_RATE needs to be evaluatable by the cpp, so making it | ||
22 | * a variable is useless. It seems as long as we make our timers an | ||
23 | * exact multiple of HZ, any value that makes a 1->1 correspondence | ||
24 | * for the time conversion functions to/from jiffies is acceptable. | ||
25 | */ | ||
26 | |||
27 | #define CLOCK_TICK_RATE 12000000 | ||
28 | |||
29 | #endif /* __ASM_ARCH_TIMEX_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/uncompress.h b/arch/arm/mach-exynos/include/mach/uncompress.h new file mode 100644 index 000000000000..21d97bcd9acb --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/uncompress.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/uncompress.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * EXYNOS4 - uncompress code | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_UNCOMPRESS_H | ||
14 | #define __ASM_ARCH_UNCOMPRESS_H __FILE__ | ||
15 | |||
16 | #include <mach/map.h> | ||
17 | #include <plat/uncompress.h> | ||
18 | |||
19 | static void arch_detect_cpu(void) | ||
20 | { | ||
21 | /* we do not need to do any cpu detection here at the moment. */ | ||
22 | |||
23 | /* | ||
24 | * For preventing FIFO overrun or infinite loop of UART console, | ||
25 | * fifo_max should be the minimum fifo size of all of the UART channels | ||
26 | */ | ||
27 | fifo_mask = S5PV210_UFSTAT_TXMASK; | ||
28 | fifo_max = 15 << S5PV210_UFSTAT_TXSHIFT; | ||
29 | } | ||
30 | #endif /* __ASM_ARCH_UNCOMPRESS_H */ | ||
diff --git a/arch/arm/mach-exynos/include/mach/vmalloc.h b/arch/arm/mach-exynos/include/mach/vmalloc.h new file mode 100644 index 000000000000..284330e571d2 --- /dev/null +++ b/arch/arm/mach-exynos/include/mach/vmalloc.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/include/mach/vmalloc.h | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * Copyright 2010 Ben Dooks <ben-linux@fluff.org> | ||
7 | * | ||
8 | * Based on arch/arm/mach-s5p6440/include/mach/vmalloc.h | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | * | ||
14 | * EXYNOS4 vmalloc definition | ||
15 | */ | ||
16 | |||
17 | #ifndef __ASM_ARCH_VMALLOC_H | ||
18 | #define __ASM_ARCH_VMALLOC_H __FILE__ | ||
19 | |||
20 | #define VMALLOC_END 0xF6000000UL | ||
21 | |||
22 | #endif /* __ASM_ARCH_VMALLOC_H */ | ||