From: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] I2C on iMX25
Date: Mon, 24 Sep 2012 13:05:11 +0200 (CEST) [thread overview]
Message-ID: <214426378.5044408.1348484711663.JavaMail.root@advansee.com> (raw)
In-Reply-To: <50602BBD.5030605@denx.de>
Hi Stefano, Matthias,
On Monday, September 24, 2012 11:45:33 AM, Stefano Babic wrote:
> On 24/09/2012 11:32, Matthias Wei?er wrote:
> > Hi Stefano
> >
>
> Hi Matthias,
>
> > I am currently in the process of updating my zmx25 board support
> > for a new
> > hardware revision where I need I2C access. I2C on imx25 currently
> > fails
> > to build:
> >
> > mxc_i2c.c: In function 'i2c_imx_get_clk':
> > mxc_i2c.c:101:31: error: 'MXC_IPG_PERCLK' undeclared (first use in
> > this
> > function)
>
> Ok, I see.
I had the same issue a while ago. I have a fix for that. I will try to post it
tonight.
> > I can easily fix this by replacing MXC_IPG_PERCLK with MXC_I2C_CLK.
> > But
> > MXC_I2C_CLK is only defined for imx25. So, this change will break
> > all other
> > imx chips.
>
> But this seems the right solution. The mxc_get_clk() gets as
> parameter
> an enum representing a peripheral or a special clock name, valid for
> a
> SOC. The driver should use the peripheral name.
Yes and no. The best would be to add a clock abstraction function
imx_get_i2cclk(), like what exists for UART. This is what I did.
> > I can now add MXC_IPG_PERCLK to arch-mx25/clock.h and adopt
> > generic.c accordingly but I don't think that this is the right way
> > to go
> > as the i2c clock can be different from perclk. Doing this
> > #define MXC_IPG_PERCLK MXC_I2C_CLK
> > in my config file is even more ugly.
>
> This is wrong.
I agree. MXC_IPG_PERCLK means something else, and the I?C clock is not that
clock on i.MX25.
> Really I think the right way is to add MXC_I2C_CLK to the other SOCs,
> adding the case in their specific mxc_get_clock() implementation, for
> example for mx6 something like this:
>
> diff --git a/arch/arm/cpu/armv7/mx5/clock.c
> b/arch/arm/cpu/armv7/mx5/clock.c
> index c67c3cf..8fa737a 100644
> --- a/arch/arm/cpu/armv7/mx5/clock.c
> +++ b/arch/arm/cpu/armv7/mx5/clock.c
> @@ -482,6 +482,7 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
> case MXC_IPG_CLK:
> return get_ipg_clk();
> case MXC_IPG_PERCLK:
> + case MXC_I2C_CLK:
> return get_ipg_per_clk();
> case MXC_UART_CLK:
> return get_uart_clk();
>
>
> and updating the mxc_i2c driver to follow the same rule.
That can be a good solution. What do you think about my imx_get_i2cclk()?
Also, note that there are some broken clocks for i.MX25. I?C is one of them. It
should be:
case MXC_I2C_CLK:
return imx_get_perclk(I2C_PER_CLK);
Best regards,
Beno?t
next prev parent reply other threads:[~2012-09-24 11:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-24 9:32 [U-Boot] I2C on iMX25 Matthias Weißer
2012-09-24 9:45 ` Stefano Babic
2012-09-24 11:04 ` Matthias Weißer
2012-09-24 11:05 ` Benoît Thébaudeau [this message]
2012-09-24 11:34 ` Matthias Weißer
2012-09-24 12:35 ` Benoît Thébaudeau
2012-09-24 11:54 ` 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=214426378.5044408.1348484711663.JavaMail.root@advansee.com \
--to=benoit.thebaudeau@advansee.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.