diff options
author | Kyungmin Park <kyungmin.park@samsung.com> | 2010-08-05 04:10:24 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2010-08-05 05:32:42 -0400 |
commit | 793177b5542d99aab0cd35a213fc8ffe72adbb28 (patch) | |
tree | 2ddc12cef172c7b6400f670cf621285b96116d8b | |
parent | acfdc56d541517266eeeeca3a4e5baafaa01c2a1 (diff) |
ARM: S5PV310: Add I2C channel 0, 1 and 2 support
This patch adds configuration of proper mux pins for support
I2C channel 0, 1, and 2 on S5PV310/S5PC210.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
[kgene.kim@samsung.com: coding-style and minor comment fixes]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r-- | arch/arm/mach-s5pv310/Kconfig | 10 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/setup-i2c0.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/setup-i2c1.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/setup-i2c2.c | 25 |
5 files changed, 75 insertions, 2 deletions
diff --git a/arch/arm/mach-s5pv310/Kconfig b/arch/arm/mach-s5pv310/Kconfig index 24ef3cd5b4bc..f9b189234387 100644 --- a/arch/arm/mach-s5pv310/Kconfig +++ b/arch/arm/mach-s5pv310/Kconfig | |||
@@ -15,6 +15,16 @@ config CPU_S5PV310 | |||
15 | help | 15 | help |
16 | Enable S5PV310 CPU support | 16 | Enable S5PV310 CPU support |
17 | 17 | ||
18 | config S5PV310_SETUP_I2C1 | ||
19 | bool | ||
20 | help | ||
21 | Common setup code for i2c bus 1. | ||
22 | |||
23 | config S5PV310_SETUP_I2C2 | ||
24 | bool | ||
25 | help | ||
26 | Common setup code for i2c bus 2. | ||
27 | |||
18 | # machine support | 28 | # machine support |
19 | 29 | ||
20 | config MACH_SMDKV310 | 30 | config MACH_SMDKV310 |
diff --git a/arch/arm/mach-s5pv310/Makefile b/arch/arm/mach-s5pv310/Makefile index 56e7693ad861..967e2c8f7c0b 100644 --- a/arch/arm/mach-s5pv310/Makefile +++ b/arch/arm/mach-s5pv310/Makefile | |||
@@ -22,3 +22,8 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | |||
22 | # machine support | 22 | # machine support |
23 | 23 | ||
24 | obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o | 24 | obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o |
25 | |||
26 | # device support | ||
27 | |||
28 | obj-$(CONFIG_S5PV310_SETUP_I2C1) += setup-i2c1.o | ||
29 | obj-$(CONFIG_S5PV310_SETUP_I2C2) += setup-i2c2.o | ||
diff --git a/arch/arm/mach-s5pv310/setup-i2c0.c b/arch/arm/mach-s5pv310/setup-i2c0.c index d4f5a8106946..436712807383 100644 --- a/arch/arm/mach-s5pv310/setup-i2c0.c +++ b/arch/arm/mach-s5pv310/setup-i2c0.c | |||
@@ -1,4 +1,5 @@ | |||
1 | /* linux/arch/arm/mach-s5pv210/setup-i2c0.c | 1 | /* |
2 | * linux/arch/arm/mach-s5pv310/setup-i2c0.c | ||
2 | * | 3 | * |
3 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. | 4 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. |
4 | * http://www.samsung.com/ | 5 | * http://www.samsung.com/ |
@@ -14,7 +15,14 @@ | |||
14 | 15 | ||
15 | struct platform_device; /* don't need the contents */ | 16 | struct platform_device; /* don't need the contents */ |
16 | 17 | ||
18 | #include <linux/gpio.h> | ||
19 | #include <plat/iic.h> | ||
20 | #include <plat/gpio-cfg.h> | ||
21 | |||
17 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) | 22 | void s3c_i2c0_cfg_gpio(struct platform_device *dev) |
18 | { | 23 | { |
19 | /* will be implemented later */ | 24 | s3c_gpio_cfgpin(S5PV310_GPD1(0), S3C_GPIO_SFN(2)); |
25 | s3c_gpio_setpull(S5PV310_GPD1(0), S3C_GPIO_PULL_UP); | ||
26 | s3c_gpio_cfgpin(S5PV310_GPD1(1), S3C_GPIO_SFN(2)); | ||
27 | s3c_gpio_setpull(S5PV310_GPD1(1), S3C_GPIO_PULL_UP); | ||
20 | } | 28 | } |
diff --git a/arch/arm/mach-s5pv310/setup-i2c1.c b/arch/arm/mach-s5pv310/setup-i2c1.c new file mode 100644 index 000000000000..1ecd5bc35b5a --- /dev/null +++ b/arch/arm/mach-s5pv310/setup-i2c1.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-s5pv310/setup-i2c1.c | ||
3 | * | ||
4 | * Copyright (C) 2010 Samsung Electronics Co., Ltd. | ||
5 | * | ||
6 | * I2C1 GPIO configuration. | ||
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 | struct platform_device; /* don't need the contents */ | ||
14 | |||
15 | #include <linux/gpio.h> | ||
16 | #include <plat/iic.h> | ||
17 | #include <plat/gpio-cfg.h> | ||
18 | |||
19 | void s3c_i2c1_cfg_gpio(struct platform_device *dev) | ||
20 | { | ||
21 | s3c_gpio_cfgpin(S5PV310_GPD1(2), S3C_GPIO_SFN(2)); | ||
22 | s3c_gpio_setpull(S5PV310_GPD1(2), S3C_GPIO_PULL_UP); | ||
23 | s3c_gpio_cfgpin(S5PV310_GPD1(3), S3C_GPIO_SFN(2)); | ||
24 | s3c_gpio_setpull(S5PV310_GPD1(3), S3C_GPIO_PULL_UP); | ||
25 | } | ||
diff --git a/arch/arm/mach-s5pv310/setup-i2c2.c b/arch/arm/mach-s5pv310/setup-i2c2.c new file mode 100644 index 000000000000..4c0d8def660a --- /dev/null +++ b/arch/arm/mach-s5pv310/setup-i2c2.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-s5pv310/setup-i2c2.c | ||
3 | * | ||
4 | * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. | ||
5 | * | ||
6 | * I2C2 GPIO configuration. | ||
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 | struct platform_device; /* don't need the contents */ | ||
14 | |||
15 | #include <linux/gpio.h> | ||
16 | #include <plat/iic.h> | ||
17 | #include <plat/gpio-cfg.h> | ||
18 | |||
19 | void s3c_i2c2_cfg_gpio(struct platform_device *dev) | ||
20 | { | ||
21 | s3c_gpio_cfgpin(S5PV310_GPA0(6), S3C_GPIO_SFN(3)); | ||
22 | s3c_gpio_setpull(S5PV310_GPA0(6), S3C_GPIO_PULL_UP); | ||
23 | s3c_gpio_cfgpin(S5PV310_GPA0(7), S3C_GPIO_SFN(3)); | ||
24 | s3c_gpio_setpull(S5PV310_GPA0(7), S3C_GPIO_PULL_UP); | ||
25 | } | ||