From patchwork Fri Jun 22 04:12:04 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Troy Kisky X-Patchwork-Id: 166485 X-Patchwork-Delegate: hs@denx.de 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 43380B6EF1 for ; Fri, 22 Jun 2012 14:14:44 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B4543280DC; Fri, 22 Jun 2012 06:14:01 +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 rrCGeixnUNx7; Fri, 22 Jun 2012 06:14:01 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 21BCF280EF; Fri, 22 Jun 2012 06:13:10 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id B1C6A28094 for ; Fri, 22 Jun 2012 06:12:33 +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 aSk7WWGX841h for ; Fri, 22 Jun 2012 06:12:33 +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 mail-pz0-f44.google.com (mail-pz0-f44.google.com [209.85.210.44]) by theia.denx.de (Postfix) with ESMTPS id 3384528086 for ; Fri, 22 Jun 2012 06:12:29 +0200 (CEST) Received: by dacx6 with SMTP id x6so1729094dac.3 for ; Thu, 21 Jun 2012 21:12:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :x-gm-message-state; bh=51jgx+yOm1oKJhJ9+983v6Y4+DNXQnAyQ7txEc9S1pA=; b=gRV+/ku0NeiUjIkxSaS/j9b2UoPvKGwwTWV+krgOnAgY2ApxXUvgTTaSYZIABMRugo DkqVapcRMrqbLO5iSCJyLd0wKba85OL9DFi7Qkj/PgDchR6dKBY5jKeraVE9IQKFJjAN 8d6YYQfEpN+ZN/YqZQIN0yevCBbDKfpibYGfSCmuSJX3rhZZ9gfHPSBIbbMXX2KhtJwn MGGiyTrgr2S0avAu0R48sjScHXiArQnHM/UNvTQ3uSzfVv4z2RJ6Y1hoIQEkXUvNmdYd 9hr0V5Dh4zlZY2cF+ER4khDzdzyIa+VUY5azKv+DmPI+1X7/WLft0Z2+UArpThn5n0Pd ZuEg== Received: by 10.68.136.229 with SMTP id qd5mr6067781pbb.2.1340338348154; Thu, 21 Jun 2012 21:12:28 -0700 (PDT) Received: from officeserver-2 ([70.96.116.236]) by mx.google.com with ESMTPS id ru4sm37662587pbc.66.2012.06.21.21.12.23 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 21 Jun 2012 21:12:24 -0700 (PDT) Received: from tkisky by officeserver-2 with local (Exim 4.76) (envelope-from ) id 1ShvEL-00032h-Oq; Thu, 21 Jun 2012 21:12:21 -0700 From: Troy Kisky To: hs@denx.de, sbabic@denx.de Date: Thu, 21 Jun 2012 21:12:04 -0700 Message-Id: <1340338339-11626-9-git-send-email-troy.kisky@boundarydevices.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1340338339-11626-1-git-send-email-troy.kisky@boundarydevices.com> References: <1340338339-11626-1-git-send-email-troy.kisky@boundarydevices.com> X-Gm-Message-State: ALoCoQl2TGrKSoUdDHw6x7ghaQr80V8vRYm+iB/7PMDcF0XNjIAffb0b5gD1D3OiRX8E56MKZKFN Cc: u-boot@lists.denx.de, r49496@freescale.com, jason.hui@linaro.org Subject: [U-Boot] [PATCH 09/24] mxc_i2c: place imx_start code inline 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 imx_start is only referenced once so move to that location. Signed-off-by: Troy Kisky Acked-by: Marek Vasut --- drivers/i2c/mxc_i2c.c | 53 +++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 9063d1e..ac91872 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -199,37 +199,6 @@ static int tx_byte(struct mxc_i2c_regs *i2c_regs, u8 byte) } /* - * Start the controller - */ -int i2c_imx_start(void) -{ - struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE; - unsigned int temp = 0; - int result; - - /* Enable I2C controller */ - writeb(0, &i2c_regs->i2sr); - writeb(I2CR_IEN, &i2c_regs->i2cr); - - /* Wait controller to be stable */ - udelay(50); - - /* Start I2C transaction */ - temp = readb(&i2c_regs->i2cr); - temp |= I2CR_MSTA; - writeb(temp, &i2c_regs->i2cr); - - result = wait_for_sr_state(i2c_regs, ST_BUS_BUSY); - if (result < 0) - return result; - - temp |= I2CR_MTX | I2CR_TX_NO_AK; - writeb(temp, &i2c_regs->i2cr); - - return 0; -} - -/* * Stop the controller */ void i2c_imx_stop(void) @@ -255,10 +224,28 @@ void i2c_imx_stop(void) static int i2c_init_transfer(struct mxc_i2c_regs *i2c_regs, uchar chip, uint addr, int alen) { - int ret = i2c_imx_start(); - if (ret) + unsigned int temp; + int ret; + + /* Enable I2C controller */ + writeb(0, &i2c_regs->i2sr); + writeb(I2CR_IEN, &i2c_regs->i2cr); + + /* Wait for controller to be stable */ + udelay(50); + + /* Start I2C transaction */ + temp = readb(&i2c_regs->i2cr); + temp |= I2CR_MSTA; + writeb(temp, &i2c_regs->i2cr); + + ret = wait_for_sr_state(i2c_regs, ST_BUS_BUSY); + if (ret < 0) goto exit; + temp |= I2CR_MTX | I2CR_TX_NO_AK; + writeb(temp, &i2c_regs->i2cr); + /* write slave address */ ret = tx_byte(i2c_regs, chip << 1); if (ret < 0)