From: David Brownell <david-b@pacbell.net>
To: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Jean Delvare <khali@linux-fr.org>, Bryan Wu <bryan.wu@analog.com>,
Andrew Morton <akpm@linux-foundation.org>,
Deepak Saxena <dsaxena@plexity.net>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Bitbanging i2c bus driver using the GPIO API
Date: Fri, 9 Mar 2007 11:30:12 -0800 [thread overview]
Message-ID: <200703091130.13547.david-b@pacbell.net> (raw)
In-Reply-To: <11734661281633-git-send-email-hskinnemoen@atmel.com>
On Friday 09 March 2007 10:48 am, Haavard Skinnemoen wrote:
> This is a very simple bitbanging i2c bus driver utilizing the new
> arch-neutral GPIO API. Useful for chips that don't have a built-in
> i2c controller, additional i2c busses, or testing purposes.
That's the right idea! But remember that not all GPIOs support
reading back the actual value on SCL (it's an OUT pin, so lacking
multidrive capability the values "should" be what you wrote), so
getscl() support should depend on a flag in platform data. In
the same vein, if SCL is an output-only pin, you won't be able
to change its direction ... but then, I'm not sure why you were
changing its direction in setscl() rather than just its value.
I2C has another interesting special case. at91_set_multi_drive()
would be appropriate (yes?) for ARCH_AT91 to use on SCL, to best
support both clock stretching and multi-master configurations.
> + gpio_direction_input(pdata->sda_pin);
> + gpio_direction_input(pdata->scl_pin);
> + gpio_set_value(pdata->sda_pin, 0);
> + gpio_set_value(pdata->scl_pin, 0);
Surely you mean "output" in both cases. So you can set the
value. Setting the value on an input pin is undefined. ;)
> + printk(KERN_INFO "i2c-gpio: using pins 0x%x (sda) 0x%x (scl)\n",
> + pdata->sda_pin, pdata->scl_pin);
Please, no hex there. I think dev_info() would be better; and it
might be nice to report whether clock stretching is supported.
> --- a/include/linux/i2c-id.h
> +++ b/include/linux/i2c-id.h
> @@ -194,6 +194,7 @@
> #define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */
> #define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */
> #define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */
> +#define I2C_HW_B_GPIO 0x010022 /* Generic GPIO-based driver */
It'd be nice to completely abolish those IDs, starting by not
adding new ones. Especially, not adding unused ones!
- Dave
next prev parent reply other threads:[~2007-03-09 19:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-09 10:13 [PATCH] i2c-core: i2c bitbang gpio structure Wu, Bryan
2007-03-09 16:55 ` Jean Delvare
2007-03-09 17:45 ` David Brownell
2007-03-09 18:48 ` [PATCH] Bitbanging i2c bus driver using the GPIO API Haavard Skinnemoen
2007-03-09 19:30 ` David Brownell [this message]
2007-03-09 20:08 ` Russell King
2007-03-09 21:17 ` David Brownell
2007-03-09 20:43 ` Håvard Skinnemoen
2007-03-09 21:45 ` David Brownell
2007-03-10 13:13 ` [PATCH v2] " Haavard Skinnemoen
2007-03-10 20:15 ` Jean Delvare
2007-03-11 4:31 ` David Brownell
2007-03-12 14:11 ` Haavard Skinnemoen
2007-03-11 4:02 ` David Brownell
2007-03-12 10:07 ` Wu, Bryan
2007-03-12 14:34 ` Haavard Skinnemoen
2007-03-12 14:53 ` Haavard Skinnemoen
2007-03-12 15:11 ` Jean Delvare
2007-03-12 15:30 ` Haavard Skinnemoen
2007-03-10 19:15 ` [PATCH] " Jean Delvare
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=200703091130.13547.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@linux-foundation.org \
--cc=bryan.wu@analog.com \
--cc=dsaxena@plexity.net \
--cc=hskinnemoen@atmel.com \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox