RE: [PATCH 1/2] omap: Disable GAIA I2C1/I2C4 internal pull-ups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Paul,

> -----Original Message-----
> From: Paul Walmsley [mailto:paul@xxxxxxxxx]
> Sent: Monday, February 01, 2010 9:37 PM
> To: Pais, Allen
> Cc: linux-omap@xxxxxxxxxxxxxxx; Sonasath, Moiz; tony@xxxxxxxxxxx
> Subject: Re: [PATCH 1/2] omap: Disable GAIA I2C1/I2C4 internal pull-ups
> 
> Hi Allen,
> 
> On Thu, 21 Jan 2010, Pais, Allen wrote:
> 
> > This patch disables GAIA 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.
> 
> A few more questions.
> 
> 1. Does this patch also apply to other TI PMICs, e.g., Triton2, Reno, etc?

Thanks for raising this important question.

This patch does hold true for the following PM IC's:
Triton(TWL4030)/GAIA(TWL5030)/Phoenix(TWL6030)

I did verify, the register 'REG_GPPUPDCTR1' holds true for Triton(TWL4030)/GAIA(TWL5030), hence for OMAP34XX/36XX.
But there is a register change for this PU/PD control on Phoenix(TWL6030) which is used with OMAP44XX. So I might have to modify this patch a little as this code will apply for TWL4030/5030 and have to introduce new code to achieve the intended fix for TWL6030.

I don't think so it applies to Reno though, AFAIK its not included in the Triton family and not used with OMAP on any boards.

> 
> 2. It sounds like, from the patch description, that HS I2C mode is not
> reliable on boards without external pullups.  Shouldn't this patch (or one
> in the same series) provide some way for mach-omap2/board-*.c files to
> indicate this to the I2C code, such that HS I2C can be disallowed on those
> boards?  Similarly, for SmartReflex, which has an internal I2C controller
> but does not use the OMAP I2C driver code, shouldn't there be a similar
> mechanism for that code?

Its not that HS I2C mode is not reliable without external pull-ups but what was observed is that, for reliable operation a HW resitor >= 470 Ohm is needed as pull-up. Now if we keep the internal pull-ups on PIC's enabled they come in parallel to the external pull-up and might lead to lower equivalent resistor value (< required 470 Ohm). That was the reason we decided to just rely on the external resistor on OMAP SOM, and disable any internal pull-ups on Power IC as well as on OMAP (36XX/44XX).
 
> 
> 
> - Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux