From: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
To: davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org
Cc: khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org,
linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH/RFC 1/1] recover from davinci i2c time out conditions
Date: Wed, 15 Jul 2009 10:10:18 -0700 [thread overview]
Message-ID: <200907151010.18709.david-b@pacbell.net> (raw)
In-Reply-To: <1247643267.5981.82.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
On Wednesday 15 July 2009, Philby John wrote:
> /*
> + * Configure the i2c data pin as a GPIO input and the i2c clock pin as a
> + * high GPIO output.
> + */
> +static void disable_i2c_pins(void)
> +{
> + unsigned long flags;
> +
> + local_irq_save(flags);
> + if (cpu_is_davinci_dm355()) {
> + gpio_direction_input(15);
> + gpio_direction_output(14, 0);
> + gpio_set_value(14, 1);
As noted: gpio_direction_output(14, 1) is better.
> + davinci_cfg_reg(DM355_I2C_SDA);
> + davinci_cfg_reg(DM355_I2C_SCL);
> + }
> + local_irq_restore(flags);
> +}
> +
> +/* Connect the i2c pins to the i2c controller. */
> +static void enable_i2c_pins(void)
> +{
> + unsigned long flags;
> +
> + local_irq_save(flags);
> + if (cpu_is_davinci_dm355()) {
> + davinci_cfg_reg(DM355_I2C_SDA);
> + davinci_cfg_reg(DM355_I2C_SCL);
> + }
> + local_irq_restore(flags);
> +}
> +
> +
> +/* Generate a pulse on the i2c clock pin. */
> +static void pulse_i2c_clock(void)
> +{
> + if (cpu_is_davinci_dm355()) {
> + gpio_set_value(14, 0);
> + udelay(20);
> + gpio_set_value(14, 1);
> + udelay(20);
> + }
> +}
> +
The general problem with how that's done is that the SoC-specific
bits should not be in this file. The mach-davinc/dm355.c file
should hold that configuration; likewise for other SoCs.
> + /* Disable i2c */
> + disable_i2c_pins();
> + for (i = 0; i < 10; i++)
> + pulse_i2c_clock();
> + /* Re-enable i2c */
> + enable_i2c_pins();
A better description of this is that you're trying to follow
the I2Cv3 instructions about how to *reset* the bus, yes?
> + i2c_davinci_init(dev);
>
next prev parent reply other threads:[~2009-07-15 17:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-15 7:34 [PATCH/RFC 1/1] recover from davinci i2c time out conditions Philby John
[not found] ` <1247643267.5981.82.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-07-15 12:34 ` Sergei Shtylyov
[not found] ` <4A5DCCBD.909-hkdhdckH98+B+jHODAdFcQ@public.gmane.org>
2009-11-23 15:23 ` Philby John
2009-07-15 17:10 ` David Brownell [this message]
[not found] ` <200907151010.18709.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2009-11-23 15:23 ` Philby John
2009-07-15 17:15 ` Troy Kisky
[not found] ` <4A5E0E98.2030108-Q5RJGjKts06CY9SHAMCTRUEOCMrvLtNR@public.gmane.org>
2009-07-24 14:34 ` Karicheri, Muralidharan
[not found] ` <A69FA2915331DC488A831521EAE36FE40144FDB54B-UmuGNrFEPrGIQmiDNMet8wC/G2K4zDHf@public.gmane.org>
2009-07-24 18:14 ` Troy Kisky
2009-11-23 15:24 ` Philby John
2009-07-22 11:03 ` Nitin Mahajan
[not found] ` <218571.29671.qm-LK+a5U5w+t2B9c0Qi4KiSl5cfvJIxWXgQQ4Iyu8u01E@public.gmane.org>
2009-07-22 11:14 ` Philby John
[not found] ` <1248261275.4077.4.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-09-19 5:12 ` Craig Matsuura
[not found] ` <200909182312.58018.cmatsuura-/SMLdF/PHsZWk0Htik3J/w@public.gmane.org>
2009-09-21 6:31 ` Philby John
[not found] ` <1253514660.4507.2.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-09-21 13:34 ` Craig Matsuura
2009-09-21 13:41 ` Craig Matsuura
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=200907151010.18709.david-b@pacbell.net \
--to=david-b-ybekhbn/0ldr7s880joybq@public.gmane.org \
--cc=davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/@public.gmane.org \
--cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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.