From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 09/24] mxc_i2c: place imx_start code inline
Date: Fri, 22 Jun 2012 19:02:54 +0200 [thread overview]
Message-ID: <201206221902.54576.marex@denx.de> (raw)
In-Reply-To: <1340338339-11626-9-git-send-email-troy.kisky@boundarydevices.com>
Dear Troy Kisky,
> 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 | 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)
Best regards,
Marek Vasut
next prev parent reply other threads:[~2012-06-22 17:02 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-22 4:11 [U-Boot] [PATCH 01/24] mxc_i2c: fix i2c_imx_stop Troy Kisky
2012-06-22 4:11 ` [U-Boot] [PATCH 02/24] mxc_i2c: remove ifdef of CONFIG_HARD_I2C Troy Kisky
2012-06-22 16:55 ` Marek Vasut
2012-06-22 4:11 ` [U-Boot] [PATCH 03/24] mxc_i2c: create tx_byte function Troy Kisky
2012-06-22 16:58 ` Marek Vasut
2012-06-22 23:05 ` Troy Kisky
2012-06-23 1:51 ` Marek Vasut
2012-06-22 4:11 ` [U-Boot] [PATCH 04/24] mxc_i2c: clear i2sr before waiting for bit Troy Kisky
2012-06-22 16:59 ` Marek Vasut
2012-06-24 0:18 ` Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 05/24] mxc_i2c: create i2c_init_transfer Troy Kisky
2012-06-22 16:59 ` Marek Vasut
2012-06-24 8:06 ` Stefano Babic
2012-06-22 4:12 ` [U-Boot] [PATCH 06/24] mxc_i2c.c: code i2c_probe as a 0 length i2c_write Troy Kisky
2012-06-22 17:00 ` Marek Vasut
2012-06-24 8:03 ` Stefano Babic
2012-06-22 4:12 ` [U-Boot] [PATCH 07/24] mxc_i2c: combine i2c_imx_bus_busy and i2c_imx_trx_complete into wait_for_sr_state Troy Kisky
2012-06-22 17:01 ` Marek Vasut
2012-06-22 17:34 ` Troy Kisky
2012-06-22 18:01 ` Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 08/24] mxc_i2c: remove redundant read Troy Kisky
2012-06-22 17:02 ` Marek Vasut
2012-06-22 4:12 ` [U-Boot] [PATCH 09/24] mxc_i2c: place imx_start code inline Troy Kisky
2012-06-22 17:02 ` Marek Vasut [this message]
2012-06-22 4:12 ` [U-Boot] [PATCH 10/24] mxc_i2c: place i2c_reset " Troy Kisky
2012-06-22 17:03 ` Marek Vasut
2012-06-22 4:12 ` [U-Boot] [PATCH 11/24] mxc_i2c: don't disable controller after every transaction Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 12/24] mxc_i2c: change slave addr if conflicts with destination Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 13/24] mxc_i2c: check for arbitration lost Troy Kisky
2012-06-22 17:04 ` Marek Vasut
2012-06-22 4:12 ` [U-Boot] [PATCH 14/24] mxc_i2c: add retries Troy Kisky
2012-06-22 17:06 ` Marek Vasut
2012-06-22 17:40 ` Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 15/24] mxc_i2c: add i2c_regs argument to i2c_imx_stop Troy Kisky
2012-06-22 17:06 ` Marek Vasut
2012-06-22 4:12 ` [U-Boot] [PATCH 16/24] mxc_i2c: prep work for multiple busses support Troy Kisky
2012-06-22 17:08 ` Marek Vasut
2012-06-24 8:47 ` Heiko Schocher
2012-06-24 20:08 ` Marek Vasut
2012-06-24 22:09 ` Wolfgang Denk
2012-06-22 4:12 ` [U-Boot] [PATCH 17/24] mxc_i2c: add bus recovery support Troy Kisky
2012-06-24 8:51 ` Heiko Schocher
2012-06-26 3:42 ` Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 18/24] mxc_i2c.c: finish adding CONFIG_I2C_MULTI_BUS support Troy Kisky
2012-06-22 17:09 ` Marek Vasut
2012-06-22 19:41 ` Troy Kisky
2012-06-25 3:34 ` Tabi Timur-B04825
2012-06-22 4:12 ` [U-Boot] [PATCH 19/24] iomux-v3: remove include of mx6x_pins.h Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 20/24] i.mx: iomux-v3.h: move to imx-common include directory Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 21/24] i.mx: iomux-v3.c: move to imx-common directory Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 22/24] i.mx53: add definition for I2C3_BASE_ADDR Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 23/24] imx-common: add i2c.c for bus recovery support Troy Kisky
2012-06-22 4:12 ` [U-Boot] [PATCH 24/24] mx6qsabrelite: add i2c multi-bus support Troy Kisky
2012-06-22 16:55 ` [U-Boot] [PATCH 01/24] mxc_i2c: fix i2c_imx_stop Marek Vasut
2012-06-24 7:49 ` Stefano Babic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201206221902.54576.marex@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.