diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2010-05-20 02:13:06 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-20 05:21:34 -0400 |
commit | c8d833bf5830f141c4680dae8f617d0d0a33605d (patch) | |
tree | ad73e8b8d4d558d1fc60e0a8841947e279198962 /arch/arm/mach-s5pv210 | |
parent | 5b696a67c327f21fc67b60a1518f65e4e7f2749f (diff) |
ARM: S5PV210: add common I2C device helpers
This patch adds I2C platform helpers required by s3c2440-i2c driver.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s5pv210')
-rw-r--r-- | arch/arm/mach-s5pv210/Makefile | 2 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/cpu.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/map.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/setup-i2c0.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/setup-i2c1.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/setup-i2c2.c | 30 |
6 files changed, 79 insertions, 2 deletions
diff --git a/arch/arm/mach-s5pv210/Makefile b/arch/arm/mach-s5pv210/Makefile index 2b061a0292e5..c9aad7faf1ff 100644 --- a/arch/arm/mach-s5pv210/Makefile +++ b/arch/arm/mach-s5pv210/Makefile | |||
@@ -25,3 +25,5 @@ obj-$(CONFIG_MACH_SMDKC110) += mach-smdkc110.o | |||
25 | 25 | ||
26 | obj-y += dev-audio.o | 26 | obj-y += dev-audio.o |
27 | obj-$(CONFIG_S5PV210_SETUP_FB_24BPP) += setup-fb-24bpp.o | 27 | obj-$(CONFIG_S5PV210_SETUP_FB_24BPP) += setup-fb-24bpp.o |
28 | obj-$(CONFIG_S5PV210_SETUP_I2C1) += setup-i2c1.o | ||
29 | obj-$(CONFIG_S5PV210_SETUP_I2C2) += setup-i2c2.o | ||
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c index 2b776eb5d150..2d4a3d2221c5 100644 --- a/arch/arm/mach-s5pv210/cpu.c +++ b/arch/arm/mach-s5pv210/cpu.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <plat/devs.h> | 32 | #include <plat/devs.h> |
33 | #include <plat/clock.h> | 33 | #include <plat/clock.h> |
34 | #include <plat/s5pv210.h> | 34 | #include <plat/s5pv210.h> |
35 | #include <plat/iic-core.h> | ||
35 | 36 | ||
36 | /* Initial IO mappings */ | 37 | /* Initial IO mappings */ |
37 | 38 | ||
@@ -75,6 +76,11 @@ static void s5pv210_idle(void) | |||
75 | void __init s5pv210_map_io(void) | 76 | void __init s5pv210_map_io(void) |
76 | { | 77 | { |
77 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); | 78 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); |
79 | |||
80 | /* the i2c devices are directly compatible with s3c2440 */ | ||
81 | s3c_i2c0_setname("s3c2440-i2c"); | ||
82 | s3c_i2c1_setname("s3c2440-i2c"); | ||
83 | s3c_i2c2_setname("s3c2440-i2c"); | ||
78 | } | 84 | } |
79 | 85 | ||
80 | void __init s5pv210_init_clocks(int xtal) | 86 | void __init s5pv210_init_clocks(int xtal) |
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h index e6bb12c17901..0254e08590e7 100644 --- a/arch/arm/mach-s5pv210/include/mach/map.h +++ b/arch/arm/mach-s5pv210/include/mach/map.h | |||
@@ -26,6 +26,8 @@ | |||
26 | #define S5P_PA_GPIO S5PV210_PA_GPIO | 26 | #define S5P_PA_GPIO S5PV210_PA_GPIO |
27 | 27 | ||
28 | #define S5PV210_PA_IIC0 (0xE1800000) | 28 | #define S5PV210_PA_IIC0 (0xE1800000) |
29 | #define S5PV210_PA_IIC1 (0xFAB00000) | ||
30 | #define S5PV210_PA_IIC2 (0xE1A00000) | ||
29 | 31 | ||
30 | #define S5PV210_PA_TIMER (0xE2500000) | 32 | #define S5PV210_PA_TIMER (0xE2500000) |
31 | #define S5P_PA_TIMER S5PV210_PA_TIMER | 33 | #define S5P_PA_TIMER S5PV210_PA_TIMER |
@@ -80,6 +82,8 @@ | |||
80 | /* compatibiltiy defines. */ | 82 | /* compatibiltiy defines. */ |
81 | #define S3C_PA_UART S5PV210_PA_UART | 83 | #define S3C_PA_UART S5PV210_PA_UART |
82 | #define S3C_PA_IIC S5PV210_PA_IIC0 | 84 | #define S3C_PA_IIC S5PV210_PA_IIC0 |
85 | #define S3C_PA_IIC1 S5PV210_PA_IIC1 | ||
86 | #define S3C_PA_IIC2 S5PV210_PA_IIC2 | ||
83 | #define S3C_PA_FB S5PV210_PA_FB | 87 | #define S3C_PA_FB S5PV210_PA_FB |
84 | 88 | ||
85 | #endif /* __ASM_ARCH_MAP_H */ | 89 | #endif /* __ASM_ARCH_MAP_H */ |
diff --git a/arch/arm/mach-s5pv210/setup-i2c0.c b/arch/arm/mach-s5pv210/setup-i2c0.c index 9ec6845840e5..c718253c70b8 100644 --- a/arch/arm/mach-s5pv210/setup-i2c0.c +++ b/arch/arm/mach-s5pv210/setup-i2c0.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* linux/arch/arm/mach-s5pv210/setup-i2c0.c | 1 | /* linux/arch/arm/mach-s5pv210/setup-i2c0.c |
2 | * | 2 | * |
3 | * Copyright (c) 2009 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. |
4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com/ |
5 | * | 5 | * |
6 | * I2C0 GPIO configuration. | 6 | * I2C0 GPIO configuration. |
@@ -17,9 +17,14 @@ | |||
17 | 17 | ||
18 | struct platform_device; /* don't need the contents */ | 18 | struct platform_device; /* don't need the contents */ |
19 | 19 | ||
20 | #include <mach/gpio.h> | ||
20 | #include <plat/iic.h> | 21 | #include <plat/iic.h> |
22 | #include <plat/gpio-cfg.h> | ||
21 | 23 | ||
22 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) | 24 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) |
23 | { | 25 | { |
24 | /* Will be populated later */ | 26 | s3c_gpio_cfgpin(S5PV210_GPD1(0), S3C_GPIO_SFN(2)); |
27 | s3c_gpio_setpull(S5PV210_GPD1(0), S3C_GPIO_PULL_UP); | ||
28 | s3c_gpio_cfgpin(S5PV210_GPD1(1), S3C_GPIO_SFN(2)); | ||
29 | s3c_gpio_setpull(S5PV210_GPD1(1), S3C_GPIO_PULL_UP); | ||
25 | } | 30 | } |
diff --git a/arch/arm/mach-s5pv210/setup-i2c1.c b/arch/arm/mach-s5pv210/setup-i2c1.c new file mode 100644 index 000000000000..45e0e6ed2ed0 --- /dev/null +++ b/arch/arm/mach-s5pv210/setup-i2c1.c | |||
@@ -0,0 +1,30 @@ | |||
1 | /* linux/arch/arm/mach-s5pv210/setup-i2c1.c | ||
2 | * | ||
3 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * I2C1 GPIO configuration. | ||
7 | * | ||
8 | * Based on plat-s3c64xx/setup-i2c1.c | ||
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 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/types.h> | ||
17 | |||
18 | struct platform_device; /* don't need the contents */ | ||
19 | |||
20 | #include <mach/gpio.h> | ||
21 | #include <plat/iic.h> | ||
22 | #include <plat/gpio-cfg.h> | ||
23 | |||
24 | void s3c_i2c1_cfg_gpio(struct platform_device *dev) | ||
25 | { | ||
26 | s3c_gpio_cfgpin(S5PV210_GPD1(2), S3C_GPIO_SFN(2)); | ||
27 | s3c_gpio_setpull(S5PV210_GPD1(2), S3C_GPIO_PULL_UP); | ||
28 | s3c_gpio_cfgpin(S5PV210_GPD1(3), S3C_GPIO_SFN(2)); | ||
29 | s3c_gpio_setpull(S5PV210_GPD1(3), S3C_GPIO_PULL_UP); | ||
30 | } | ||
diff --git a/arch/arm/mach-s5pv210/setup-i2c2.c b/arch/arm/mach-s5pv210/setup-i2c2.c new file mode 100644 index 000000000000..b11b4bff69ac --- /dev/null +++ b/arch/arm/mach-s5pv210/setup-i2c2.c | |||
@@ -0,0 +1,30 @@ | |||
1 | /* linux/arch/arm/mach-s5pv210/setup-i2c2.c | ||
2 | * | ||
3 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com/ | ||
5 | * | ||
6 | * I2C2 GPIO configuration. | ||
7 | * | ||
8 | * Based on plat-s3c64xx/setup-i2c0.c | ||
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 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/types.h> | ||
17 | |||
18 | struct platform_device; /* don't need the contents */ | ||
19 | |||
20 | #include <mach/gpio.h> | ||
21 | #include <plat/iic.h> | ||
22 | #include <plat/gpio-cfg.h> | ||
23 | |||
24 | void s3c_i2c2_cfg_gpio(struct platform_device *dev) | ||
25 | { | ||
26 | s3c_gpio_cfgpin(S5PV210_GPD1(4), S3C_GPIO_SFN(2)); | ||
27 | s3c_gpio_setpull(S5PV210_GPD1(4), S3C_GPIO_PULL_UP); | ||
28 | s3c_gpio_cfgpin(S5PV210_GPD1(5), S3C_GPIO_SFN(2)); | ||
29 | s3c_gpio_setpull(S5PV210_GPD1(5), S3C_GPIO_PULL_UP); | ||
30 | } | ||