]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
mxc_i2c: place imx_start code inline
authorTroy Kisky <troy.kisky@boundarydevices.com>
Thu, 19 Jul 2012 08:18:11 +0000 (08:18 +0000)
committerHeiko Schocher <hs@denx.de>
Tue, 31 Jul 2012 05:46:06 +0000 (07:46 +0200)
imx_start is only referenced once so
move to that location.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Marek Vasut <marex@denx.de>
drivers/i2c/mxc_i2c.c

index 83c2fab0897a5fda5e89d4d9d535694cf6c54ed1..9efa9bdae54f18b8c2ae511f5d7afc8059b53f58 100644 (file)
@@ -200,37 +200,6 @@ static int tx_byte(struct mxc_i2c_regs *i2c_regs, u8 byte)
        return 0;
 }
 
-/*
- * 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
  */
@@ -259,10 +228,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)