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); }