From: Marek Vasut <marek.vasut@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH V3+] I2C: mxc_i2c rework
Date: Fri, 29 Jul 2011 11:35:34 +0200 [thread overview]
Message-ID: <201107291135.34868.marek.vasut@gmail.com> (raw)
In-Reply-To: <CAFQ4atTS=ptKnNe_ntfA-ypV5Ctw+AeudHG5=pJYYNmju+f-EA@mail.gmail.com>
On Friday, July 29, 2011 08:55:14 AM Jason Hui wrote:
> Hi, Marek,
>
> On Thu, Jul 14, 2011 at 5:58 AM, Marek Vasut <marek.vasut@gmail.com> wrote:
> > Rewrite the mxc_i2c driver.
> > * This version is much closer to Linux implementation.
> > * Fixes IPG_PERCLK being incorrectly used as clock source
> > * Fixes behaviour of the driver on iMX51
> > * Clean up coding style a bit ;-)
>
> why you change i2c clock from IPG_PERCLK to IPG_CLK?
On MX51, PERCLK are those fast (680MHz) clock, that's not source of clock for
I2C. The IPG_CLK (they are 68.5MHz iirc) are source for the I2C. Also, I
discussed this with Stefano and we agreed this is likely a bug.
>
> [...]
>
> > +static void i2c_imx_set_clk(unsigned int rate)
> > {
> > - int freq;
> > + struct mxc_i2c_regs *i2c_regs = (struct mxc_i2c_regs *)I2C_BASE;
> > + unsigned int i2c_clk_rate;
> > + unsigned int div;
> > int i;
> >
> > + /* Divider value calculation */
> > #if defined(CONFIG_MX31)
> > struct clock_control_regs *sc_regs =
> > (struct clock_control_regs *)CCM_BASE;
> >
> > - freq = mx31_get_ipg_clk();
> > + i2c_clk_rate = mx31_get_ipg_clk();
> > /* start the required I2C clock */
> > writel(readl(&sc_regs->cgr0) | (3 << I2C_CLK_OFFSET),
> > &sc_regs->cgr0);
> > #else
> > - freq = mxc_get_clock(MXC_IPG_PERCLK);
> > + i2c_clk_rate = mxc_get_clock(MXC_IPG_CLK);
> > #endif
>
> There are two clocks for i2c:
>
> Peripheral clock (IPBus): source from ipg_clk_root, which is for IP
> bus register read/write.
> Block clock: source from perclk_root, which is I2C function clock.
>
> We need get perclk not ipg clock, right?
For divider, we need those slower ones, the IPG_CLK, not PERCLK.
>
> BTW, do you test this driver on mx53?
No, I don't have one.
>
> Jason
next prev parent reply other threads:[~2011-07-29 9:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-13 21:58 [U-Boot] [PATCH V3+] I2C: mxc_i2c rework Marek Vasut
2011-07-14 9:04 ` Heiko Schocher
2011-07-28 14:29 ` Wolfgang Denk
2011-07-14 13:55 ` Albert ARIBAUD
2011-07-14 14:35 ` Marek Vasut
2011-07-14 14:45 ` Albert ARIBAUD
2011-07-29 6:55 ` Jason Hui
2011-07-29 9:35 ` Marek Vasut [this message]
2011-07-29 9:42 ` Stefano Babic
2011-09-14 19:39 ` Marek Vasut
2011-09-15 1:43 ` Jason Hui
2011-09-15 2:07 ` Marek Vasut
2011-09-15 2:26 ` Jason Hui
2011-09-15 4:07 ` Marek Vasut
2011-08-30 10:48 ` Stefano Babic
-- strict thread matches above, loose matches on Subject: below --
2011-07-13 21:05 [U-Boot] [PATCH V3] " Marek Vasut
2011-07-13 21:34 ` Wolfgang Denk
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=201107291135.34868.marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--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.