ARM: S5PC210: Add I2C0/I2C1/I2C2 support
Subsystems (3)
PATCH v2 3/3 ARM: S5PC210: Add I2C0/I2C1/I2C2 support
From: Kyungmin Park <[email protected]>
Configure proper mux pins and define i2c0/i2c1/i2c2.
v1:
Use the linux/gpio.h
--- arch/arm/mach-s5pv310/Kconfig | 10 ++++++++++ arch/arm/mach-s5pv310/Makefile | 5 +++++ arch/arm/mach-s5pv310/setup-i2c0.c | 12 ++++++++++-- arch/arm/mach-s5pv310/setup-i2c1.c | 25 +++++++++++++++++++++++++ arch/arm/mach-s5pv310/setup-i2c2.c | 25 +++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 arch/arm/mach-s5pv310/setup-i2c1.c create mode 100644 arch/arm/mach-s5pv310/setup-i2c2.c
arch/arm/mach-s5pv310/Kconfig +10 -0
@@ -15,6 +15,16 @@ config CPU_S5PV310 help Enable S5PV310 CPU support +config S5PV310_SETUP_I2C1 + bool + help + Common setup code for i2c bus 1. + +config S5PV310_SETUP_I2C2 + bool + help + Common setup code for i2c bus 2. + # machine support config MACH_SMDKV310
arch/arm/mach-s5pv310/Makefile +5 -0
@@ -23,3 +23,8 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o obj-$(CONFIG_MACH_UNIVERSAL) += mach-universal.o + +# device support + +obj-$(CONFIG_S5PV310_SETUP_I2C1) += setup-i2c1.o +obj-$(CONFIG_S5PV310_SETUP_I2C2) += setup-i2c2.o
arch/arm/mach-s5pv310/setup-i2c0.c +10 -2
@@ -1,4 +1,5 @@ -/* linux/arch/arm/mach-s5pv210/setup-i2c0.c +/* +* linux/arch/arm/mach-s5pv310/setup-i2c0.c * * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. * http://www.samsung.com/
@@ -14,7 +15,14 @@struct platform_device ;/* don't need the contents */ +#include <linux/gpio.h> +#include <plat/iic.h> +#include <plat/gpio-cfg.h> +void s3c_i2c0_cfg_gpio (struct platform_device *dev) { -/* will be implemented later */ +s3c_gpio_cfgpin (S5PV310_GPD1 (0 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (0 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPD1 (1 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (1 ),S3C_GPIO_PULL_UP ); }
arch/arm/mach-s5pv310/setup-i2c1.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* linux/arch/arm/mach-s5pv310/setup-i2c1.c +* +* Copyright (C) 2010 Samsung Electronics Co., Ltd. +* +* I2C1 GPIO configuration. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +struct platform_device ;/* don't need the contents */ + +#include <linux/gpio.h> +#include <plat/iic.h> +#include <plat/gpio-cfg.h> + +void s3c_i2c1_cfg_gpio (struct platform_device *dev) +{ +s3c_gpio_cfgpin (S5PV310_GPD1 (2 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (2 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPD1 (3 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (3 ),S3C_GPIO_PULL_UP ); +}
arch/arm/mach-s5pv310/setup-i2c2.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* linux/arch/arm/mach-s5pv310/setup-i2c2.c +* +* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. +* +* I2C2 GPIO configuration. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +struct platform_device ;/* don't need the contents */ + +#include <linux/gpio.h> +#include <plat/iic.h> +#include <plat/gpio-cfg.h> + +void s3c_i2c2_cfg_gpio (struct platform_device *dev) +{ +s3c_gpio_cfgpin (S5PV310_GPA0 (6 ),S3C_GPIO_SFN (3 )); +s3c_gpio_setpull (S5PV310_GPA0 (6 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPA0 (7 ),S3C_GPIO_SFN (3 )); +s3c_gpio_setpull (S5PV310_GPA0 (7 ),S3C_GPIO_PULL_UP ); +}
Signature · 1 line
1.5.3.3
PATCH v2 3/3 ARM: S5PC210: Add I2C0/I2C1/I2C2 support
Quoted 7 lines · Kyungmin Park
From: Kyungmin Park <[email protected]>
Configure proper mux pins and define i2c0/i2c1/i2c2.
v1:
Use thelinux/gpio.h
In future, please make sure your patch has no problem with scripts/checkpatch.pl.
I got the result of it like following...I will fix it.
--
ERROR: code indent should use tabs where possible
#78: FILE: arch/arm/mach-s5pv310/setup-i2c0.c:24:
+ s3c_gpio_cfgpin(S5PV310_GPD1(0), S3C_GPIO_SFN(2));$
ERROR: code indent should use tabs where possible
#79: FILE: arch/arm/mach-s5pv310/setup-i2c0.c:25:
+ s3c_gpio_setpull(S5PV310_GPD1(0), S3C_GPIO_PULL_UP);$
ERROR: code indent should use tabs where possible
#80: FILE: arch/arm/mach-s5pv310/setup-i2c0.c:26:
+ s3c_gpio_cfgpin(S5PV310_GPD1(1), S3C_GPIO_SFN(2));$
ERROR: code indent should use tabs where possible
#81: FILE: arch/arm/mach-s5pv310/setup-i2c0.c:27:
+ s3c_gpio_setpull(S5PV310_GPD1(1), S3C_GPIO_PULL_UP);$
...
total: 12 errors, 1 warnings, 95 lines checked
--
And if you want to add changes, please add it next of the line of '---'..because no need to add the changes in commit message.
Others looks ok..will apply with fixing coding-style.
Review
Quoted 34 lines
Signed-off-by Kyungmin Park <[email protected]>--- arch/arm/mach-s5pv310/Kconfig | 10 ++++++++++ arch/arm/mach-s5pv310/Makefile | 5 +++++ arch/arm/mach-s5pv310/setup-i2c0.c | 12 ++++++++++-- arch/arm/mach-s5pv310/setup-i2c1.c | 25 +++++++++++++++++++++++++ arch/arm/mach-s5pv310/setup-i2c2.c | 25 +++++++++++++++++++++++++ 5 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 arch/arm/mach-s5pv310/setup-i2c1.c create mode 100644 arch/arm/mach-s5pv310/setup-i2c2.carch/arm/mach-s5pv310/Kconfig +10
-0@@ -15,6 +15,16 @@ config CPU_S5PV310 help Enable S5PV310 CPU support +config S5PV310_SETUP_I2C1 + bool + help + Common setup code for i2c bus 1. + +config S5PV310_SETUP_I2C2 + bool + help + Common setup code for i2c bus 2. + # machine support config MACH_SMDKV310(quoted diff) +0
-0
b/arch/arm/mach-s5pv310/Makefile
Review
Quoted 13 lines
index 5b52132..82dbbaa 100644
arch/arm/mach-s5pv310/Makefile +5
-0@@ -23,3 +23,8 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o obj-$(CONFIG_MACH_UNIVERSAL) += mach-universal.o + +# device support + +obj-$(CONFIG_S5PV310_SETUP_I2C1) += setup-i2c1.o +obj-$(CONFIG_S5PV310_SETUP_I2C2) += setup-i2c2.o(quoted diff) +0
-0
b/arch/arm/mach-s5pv310/setup-
Review
Quoted 28 lines
i2c0.c
index d4f5a81..a29f5e6 100644arch/arm/mach-s5pv310/setup-i2c0.c +10
-2@@ -1,4 +1,5 @@ -/* linux/arch/arm/mach-s5pv210/setup-i2c0.c +/* +* linux/arch/arm/mach-s5pv310/setup-i2c0.c * * Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. * http://www.samsung.com/ @@ -14,7 +15,14 @@struct platform_device ;/* don't need the contents */ +#include <linux/gpio.h> +#include <plat/iic.h> +#include <plat/gpio-cfg.h> +void s3c_i2c0_cfg_gpio (struct platform_device *dev) { -/* will be implemented later */ +s3c_gpio_cfgpin (S5PV310_GPD1 (0 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (0 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPD1 (1 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (1 ),S3C_GPIO_PULL_UP ); }(quoted diff) +0
-0
b/arch/arm/mach-s5pv310/setup-
Review
Quoted 32 lines
i2c1.c
new file mode 100644
index 0000000..8ce6ebdarch/arm/mach-s5pv310/setup-i2c1.c new file +25
-0@@ -0,0 +1,25 @@ +/* +* linux/arch/arm/mach-s5pv310/setup-i2c1.c +* +* Copyright (C) 2010 Samsung Electronics Co., Ltd. +* +* I2C1 GPIO configuration. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +struct platform_device ;/* don't need the contents */ + +#include <linux/gpio.h> +#include <plat/iic.h> +#include <plat/gpio-cfg.h> + +void s3c_i2c1_cfg_gpio (struct platform_device *dev) +{ +s3c_gpio_cfgpin (S5PV310_GPD1 (2 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (2 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPD1 (3 ),S3C_GPIO_SFN (2 )); +s3c_gpio_setpull (S5PV310_GPD1 (3 ),S3C_GPIO_PULL_UP ); +}(quoted diff) +0
-0
b/arch/arm/mach-s5pv310/setup-
Quoted 22 lines
i2c2.c
new file mode 100644
index 0000000..dcae14farch/arm/mach-s5pv310/setup-i2c2.c new file +16
-0@@ -0,0 +1,25 @@ +/* +* linux/arch/arm/mach-s5pv310/setup-i2c2.c +* +* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. +* +* I2C2 GPIO configuration. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +struct platform_device ;/* don't need the contents */ + +#include <linux/gpio.h> +#include <plat/iic.h>
arch/arm/mach-s5pv310/setup-i2c2.c
Quoted 10 lines
arch/arm/mach-s5pv310/setup-i2c2.c new file +9
-1+#include <plat/gpio-cfg.h> + +void s3c_i2c2_cfg_gpio (struct platform_device *dev) +{ +s3c_gpio_cfgpin (S5PV310_GPA0 (6 ),S3C_GPIO_SFN (3 )); +s3c_gpio_setpull (S5PV310_GPA0 (6 ),S3C_GPIO_PULL_UP ); +s3c_gpio_cfgpin (S5PV310_GPA0 (7 ),S3C_GPIO_SFN (3 )); +s3c_gpio_setpull (S5PV310_GPA0 (7 ),S3C_GPIO_PULL_UP ); +} --
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.