From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/5] i2c: omap24xx: Fix waitdelay value for I2C HS
Date: Mon, 18 Jan 2016 06:59:43 +0100 [thread overview]
Message-ID: <569C7F4F.5050407@denx.de> (raw)
In-Reply-To: <1453028992-14220-3-git-send-email-christophe-h.ricard@st.com>
Hello Christophe,
Am 17.01.2016 um 12:09 schrieb Christophe Ricard:
> After several testings and experiment, it appears that waitdelay calculation
> formula was giving different behavior on the i2c status registers.
>
> Experiment shows waitdelay needs to be extended at least 4 times to get
> proper results.
>
> Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
> ---
>
> drivers/i2c/omap24xx_i2c.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c
> index f3a4d96..d6e5fe9 100644
> --- a/drivers/i2c/omap24xx_i2c.c
> +++ b/drivers/i2c/omap24xx_i2c.c
> @@ -168,6 +168,13 @@ static int omap24_i2c_setspeed(struct udevice *adap, unsigned int speed)
> scll = (unsigned int)hsscll << 8 | (unsigned int)fsscll;
> sclh = (unsigned int)hssclh << 8 | (unsigned int)fssclh;
>
> +#ifdef CONFIG_SYS_I2C
> + adap->speed = speed;
> + adap->waitdelay = (10000000 / speed) * 8; /* wait for 20 clkperiods */
> +#else
> + i2c_bus->clock_frequency = speed;
> + i2c_bus->waitdelay = (10000000 / speed) * 8; /* wait for 20 clkperiods */
> +#endif
> } else {
> /* Standard and fast speed */
> psc = omap24_i2c_findpsc(&scll, &sclh, speed);
> @@ -175,15 +182,15 @@ static int omap24_i2c_setspeed(struct udevice *adap, unsigned int speed)
> puts("Error : I2C initializing clock\n");
> return -1;
> }
> - }
>
> #ifdef CONFIG_SYS_I2C
> - adap->speed = speed;
> - adap->waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */
> + adap->speed = speed;
> + adap->waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */
> #else
> - i2c_bus->clock_frequency = speed;
> - i2c_bus->waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */
> + i2c_bus->clock_frequency = speed;
> + i2c_bus->waitdelay = (10000000 / speed) * 2; /* wait for 20 clkperiods */
> #endif
> + }
You change here only the "speed >= OMAP_I2C_HIGH_SPEED" case ... Is this your intention?
If so, please add this info in your commit message.
Beside of this nitpick:
Acked-by: Heiko Schocher <hs@denx.de>
bye,
Heiko
>
> writew(0, &i2c_base->con);
> writew(psc, &i2c_base->psc);
> @@ -467,7 +474,6 @@ static int omap24_i2c_read(struct udevice *adap, uchar chip, uint addr,
> i2c_bus = dev_get_priv(adap);
> i2c_base = i2c_bus->i2c_base;
> #endif
> -
> if (alen < 0) {
> puts("I2C read: addr len < 0\n");
> return 1;
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
next prev parent reply other threads:[~2016-01-18 5:59 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-17 11:09 [U-Boot] [PATCH 0/5] Convert omap24xx-i2c driver to Driver Model Christophe Ricard
2016-01-17 11:09 ` [U-Boot] [PATCH 1/5] i2c: omap24xx: Convert to DM Christophe Ricard
2016-01-18 5:49 ` Heiko Schocher
2016-01-21 2:46 ` Simon Glass
2016-01-17 11:09 ` [U-Boot] [PATCH 2/5] i2c: omap24xx: Fix waitdelay value for I2C HS Christophe Ricard
2016-01-18 5:59 ` Heiko Schocher [this message]
2016-01-17 11:09 ` [U-Boot] [PATCH 3/5] i2c: omap24xx: Remove unused I2C_WAIT macro Christophe Ricard
2016-01-18 6:00 ` Heiko Schocher
2016-01-17 11:09 ` [U-Boot] [PATCH 4/5] i2c: omap24xx: Fix high speed trimming calculation Christophe Ricard
2016-01-18 6:02 ` Heiko Schocher
2016-01-17 11:09 ` [U-Boot] [PATCH 5/5] i2c: omap24xx: Convert fully to DM_I2C Christophe Ricard
2016-01-18 6:04 ` Heiko Schocher
2016-01-18 21:22 ` Christophe Ricard
2016-01-20 4:50 ` Heiko Schocher
2016-12-05 12:19 ` [U-Boot] [PATCH 0/5] Convert omap24xx-i2c driver to Driver Model Heiko Schocher
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=569C7F4F.5050407@denx.de \
--to=hs@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.