From patchwork Mon Sep 24 06:49:21 2012
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Piotr Wilczek
X-Patchwork-Id: 186308
X-Patchwork-Delegate: promsoft@gmail.com
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Received: from theia.denx.de (theia.denx.de [85.214.87.163])
by ozlabs.org (Postfix) with ESMTP id 6222E2C0084
for ;
Mon, 24 Sep 2012 16:50:51 +1000 (EST)
Received: from localhost (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id A8C79280A0;
Mon, 24 Sep 2012 08:50:48 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at theia.denx.de
Received: from theia.denx.de ([127.0.0.1])
by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id EkSP2SFdpiEL; Mon, 24 Sep 2012 08:50:48 +0200 (CEST)
Received: from theia.denx.de (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id 248C82808B;
Mon, 24 Sep 2012 08:50:38 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
by theia.denx.de (Postfix) with ESMTP id 1993728083
for ; Mon, 24 Sep 2012 08:50:00 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at theia.denx.de
Received: from theia.denx.de ([127.0.0.1])
by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 91icaTIDOcrP for ;
Mon, 24 Sep 2012 08:49:59 +0200 (CEST)
X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5
NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested)
Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34])
by theia.denx.de (Postfix) with ESMTP id 716242808D
for ; Mon, 24 Sep 2012 08:49:49 +0200 (CEST)
Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26])
by mailout4.samsung.com
(Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit
(built Nov
17 2011)) with ESMTP id <0MAU001EADLP4OP0@mailout4.samsung.com> for
u-boot@lists.denx.de; Mon, 24 Sep 2012 15:49:47 +0900 (KST)
X-AuditID: cbfee61a-b7f726d000000ec7-05-5060028b345a
Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA)
with SMTP id 19.FD.03783.B8200605;
Mon, 24 Sep 2012 15:49:47 +0900 (KST)
Received: from mcdsrvbld02.digital.local ([106.116.37.23])
by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01
(7.0.4.24.0) 64bit (built Nov 17 2011))
with ESMTPA id <0MAU00IFRDMGFT70@mmp2.samsung.com> for
u-boot@lists.denx.de; Mon, 24 Sep 2012 15:49:47 +0900 (KST)
From: Piotr Wilczek
To: u-boot@lists.denx.de
Date: Mon, 24 Sep 2012 08:49:21 +0200
Message-id: <1348469362-17314-5-git-send-email-p.wilczek@samsung.com>
X-Mailer: git-send-email 1.7.10
In-reply-to: <1348469362-17314-1-git-send-email-p.wilczek@samsung.com>
References: <1348469362-17314-1-git-send-email-p.wilczek@samsung.com>
X-Brightmail-Tracker:
H4sIAAAAAAAAA+NgFnrIJMWRmVeSWpSXmKPExsVy+t9jQd1upoQAg+dHOCze7u1kd2D0OHtn
B2MAYxSXTUpqTmZZapG+XQJXRtsulYJzIhX/DzQxNjB+F+hi5OSQEDCReL+pmRHCFpO4cG89
WxcjF4eQwHRGidmn/0I5i5kklj2bywJSxSagLbH8zRuwDhEBCYlf/VcZQYqYBZYxSjQ0/GYH
SQgLOEh8WPCFtYuRg4NFQFViwQkvkDCvgKvEhKmXWCG2yUs8vd/HBmJzCrhJfHn2kxmkXAio
Zuq05AmMvAsYGVYxiqYWJBcUJ6XnGuoVJ+YWl+al6yXn525iBHv8mdQOxpUNFocYBTgYlXh4
Oc/HBwixJpYVV+YeYpTgYFYS4Y14BhTiTUmsrEotyo8vKs1JLT7EKM3BoiTOK/wpMEBIID2x
JDU7NbUgtQgmy8TBKdXAKOb6YHKp/I1Un0rhd5GHlCNS1L88LuzxC3MRvyfitEdn57W0JSGL
f6znVLB+ITXT6z9PzIyNy/w9OO/MVvRMfnKJYU3G1jkM737GZujxXQra1eDpEGbzx1x4kWrF
moLVp561aTOeik5SbqrYJ39C22G/3vH/anOUQsXcVV00mA/rMkprPpZWYinOSDTUYi4qTgQA
3tNQSfQBAAA=
Cc: Piotr Wilczek ,
Kyungmin Park
Subject: [U-Boot] [PATCH 4/5] DRIVERS: I2C: Modify I2C driver for EXYNOS4
X-BeenThere: u-boot@lists.denx.de
X-Mailman-Version: 2.1.11
Precedence: list
List-Id: U-Boot discussion
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
MIME-Version: 1.0
Sender: u-boot-bounces@lists.denx.de
Errors-To: u-boot-bounces@lists.denx.de
This patch modifies the S3C i2c driver to support both EXYNOS4 and EXYNOS5
Signed-off-by: Piotr Wilczek
Signed-off-by: Kyungmin Park
CC: Minkyu Kang
---
drivers/i2c/s3c24x0_i2c.c | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
index 9bc4c7f..90d297a 100644
--- a/drivers/i2c/s3c24x0_i2c.c
+++ b/drivers/i2c/s3c24x0_i2c.c
@@ -27,7 +27,7 @@
*/
#include
-#ifdef CONFIG_EXYNOS5
+#if (defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
#include
#include
#else
@@ -62,7 +62,7 @@
static unsigned int g_current_bus; /* Stores Current I2C Bus */
-#ifndef CONFIG_EXYNOS5
+#if !(defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
static int GetI2CSDA(void)
{
struct s3c24x0_gpio *gpio = s3c24x0_get_base_gpio();
@@ -121,7 +121,12 @@ static void ReadWriteByte(struct s3c24x0_i2c *i2c)
static struct s3c24x0_i2c *get_base_i2c(void)
{
-#ifdef CONFIG_EXYNOS5
+#ifdef CONFIG_EXYNOS4
+ struct s3c24x0_i2c *i2c = (struct s3c24x0_i2c *)(samsung_get_base_i2c()
+ + (EXYNOS4_I2C_SPACING
+ * g_current_bus));
+ return i2c;
+#elif defined CONFIG_EXYNOS5
struct s3c24x0_i2c *i2c = (struct s3c24x0_i2c *)(samsung_get_base_i2c()
+ (EXYNOS5_I2C_SPACING
* g_current_bus));
@@ -134,7 +139,7 @@ static struct s3c24x0_i2c *get_base_i2c(void)
static void i2c_ch_init(struct s3c24x0_i2c *i2c, int speed, int slaveadd)
{
ulong freq, pres = 16, div;
-#ifdef CONFIG_EXYNOS5
+#if (defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
freq = get_i2c_clk();
#else
freq = get_PCLK();
@@ -188,7 +193,7 @@ unsigned int i2c_get_bus_num(void)
void i2c_init(int speed, int slaveadd)
{
struct s3c24x0_i2c *i2c;
-#ifndef CONFIG_EXYNOS5
+#if !(defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
struct s3c24x0_gpio *gpio = s3c24x0_get_base_gpio();
#endif
int i;
@@ -204,7 +209,7 @@ void i2c_init(int speed, int slaveadd)
i--;
}
-#ifndef CONFIG_EXYNOS5
+#if !(defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5)
if ((readl(&i2c->iicstat) & I2CSTAT_BSY) || GetI2CSDA() == 0) {
#ifdef CONFIG_S3C2410
ulong old_gpecon = readl(&gpio->gpecon);
@@ -248,7 +253,7 @@ void i2c_init(int speed, int slaveadd)
writel(old_gpecon, &gpio->pgcon);
#endif
}
-#endif /* #ifndef CONFIG_EXYNOS5 */
+#endif /* #if !(defined CONFIG_EXYNOS4 || defined CONFIG_EXYNOS5) */
i2c_ch_init(i2c, speed, slaveadd);
}