All of lore.kernel.org
 help / color / mirror / Atom feed
From: Samuel Ortiz <sameo@linux.intel.com>
To: Moiz Sonasath <m-sonasath@ti.com>
Cc: linux-omap@vger.kernel.org, tony@atomide.com,
	Allen Pais <allen.pais@ti.com>
Subject: Re: [PATCH 1/2] omap: Disable TWL4030/5030 I2C1/I2C4 internal pull-ups
Date: Fri, 19 Feb 2010 12:37:15 +0100	[thread overview]
Message-ID: <20100219113714.GC10255@sortiz.org> (raw)
In-Reply-To: <1266368241-10459-2-git-send-email-m-sonasath@ti.com>

Hi Moiz,

On Tue, Feb 16, 2010 at 06:57:21PM -0600, Moiz Sonasath wrote:
> This patch disables TWL4030/5030 I2C1 adn I2C4(SR) internal pull-up, to
> use only the external HW resistor >=470 Ohm for the assured
> functionality in HS mode.
> 
> While testing the I2C in High Speed mode, it was discovered that
> without a proper pull-up resistor, there is data corruption during
> multi-byte transfer. RTC(time_set) test case was used for testing.
> 
> From the analysis done, it was concluded that ideally we need a
> pull-up of 1.6k Ohm(recomended) or atleast 470 Ohm or greater for
> assured performance in HS mode.
Patch applied, many thanks.

Cheers,
Samuel.


> Signed-off-by: Moiz Sonasath <m-sonasath@ti.com>
> Signed-off-by: Allen Pais <allen.pais@ti.com>
> ---
>  drivers/mfd/twl-core.c  |   13 +++++++++++++
>  include/linux/i2c/twl.h |   15 +++++++++++++++
>  2 files changed, 28 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
> index 2a76065..35ae2ee 100644
> --- a/drivers/mfd/twl-core.c
> +++ b/drivers/mfd/twl-core.c
> @@ -965,6 +965,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
>  	int				status;
>  	unsigned			i;
>  	struct twl4030_platform_data	*pdata = client->dev.platform_data;
> +	u8 temp;
>  
>  	if (!pdata) {
>  		dev_dbg(&client->dev, "no platform data?\n");
> @@ -1032,6 +1033,18 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
>  			goto fail;
>  	}
>  
> +	/* Disable TWL4030/TWL5030 I2C Pull-up on I2C1 and I2C4(SR) interface.
> +	 * Program I2C_SCL_CTRL_PU(bit 0)=0, I2C_SDA_CTRL_PU (bit 2)=0,
> +	 * SR_I2C_SCL_CTRL_PU(bit 4)=0 and SR_I2C_SDA_CTRL_PU(bit 6)=0.
> +	 */
> +
> +	if (twl_class_is_4030()) {
> +		twl_i2c_read_u8(TWL4030_MODULE_INTBR, &temp, REG_GPPUPDCTR1);
> +		temp &= ~(SR_I2C_SDA_CTRL_PU | SR_I2C_SCL_CTRL_PU | \
> +		I2C_SDA_CTRL_PU | I2C_SCL_CTRL_PU);
> +		twl_i2c_write_u8(TWL4030_MODULE_INTBR, temp, REG_GPPUPDCTR1);
> +	}
> +
>  	status = add_children(pdata, id->driver_data);
>  fail:
>  	if (status < 0)
> diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h
> index bf1c5be..fd95eca 100644
> --- a/include/linux/i2c/twl.h
> +++ b/include/linux/i2c/twl.h
> @@ -239,6 +239,21 @@ int twl6030_interrupt_mask(u8 bit_mask, u8 offset);
>  
>  /*----------------------------------------------------------------------*/
>  
> +/*Interface Bit Register (INTBR) offsets
> + *(Use TWL_4030_MODULE_INTBR)
> + */
> +
> +#define REG_GPPUPDCTR1			0x0F
> +
> +/*I2C1 and I2C4(SR) SDA/SCL pull-up control bits */
> +
> +#define I2C_SCL_CTRL_PU			BIT(0)
> +#define I2C_SDA_CTRL_PU			BIT(2)
> +#define SR_I2C_SCL_CTRL_PU		BIT(4)
> +#define SR_I2C_SDA_CTRL_PU		BIT(6)
> +
> +/*----------------------------------------------------------------------*/
> +
>  /*
>   * Keypad register offsets (use TWL4030_MODULE_KEYPAD)
>   * ... SIH/interrupt only
> -- 
> 1.5.6.3
> 

-- 
Intel Open Source Technology Centre
http://oss.intel.com/

      parent reply	other threads:[~2010-02-19 11:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-17  0:57 (unknown), Moiz Sonasath
2010-02-17  0:57 ` [PATCH 1/2] omap: Disable TWL4030/5030 I2C1/I2C4 internal pull-ups Moiz Sonasath
2010-02-17  7:45   ` Eduardo Valentin
2010-02-17 17:01     ` Sonasath, Moiz
2010-02-19 11:37   ` Samuel Ortiz [this message]

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=20100219113714.GC10255@sortiz.org \
    --to=sameo@linux.intel.com \
    --cc=allen.pais@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=m-sonasath@ti.com \
    --cc=tony@atomide.com \
    /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.