[U-Boot] [[PATCH v3 2/2] gpio: omap5-uevm: Configure the tca6424 gpio expander

Nishanth Menon
2013-07-12T21:55:32Z

On Fri, Jul 12, 2013 at 12:30 PM, Dan Murphy <dmurphy@ti.com> wrote:
> On 07/11/2013 01:02 PM, Nishanth Menon wrote:
>>>> diff --git a/board/ti/omap5_uevm/mux_data.h
>> b/board/ti/omap5_uevm/mux_data.h
>>>>> index a82795d..7e6415e 100644
>>>>> --- a/board/ti/omap5_uevm/mux_data.h
>>>>> +++ b/board/ti/omap5_uevm/mux_data.h
>>>>> @@ -56,6 +56,8 @@ const struct pad_conf_entry
>> core_padconf_array_essential[] = {
>>>>> {USBD0_HS_DP, (IEN | M0)}, /* USBD0_HS_DP */
>>>>> {USBD0_HS_DM, (IEN | M0)}, /* USBD0_HS_DM */
>>>>> {USBD0_SS_RX, (IEN | M0)}, /* USBD0_SS_RX */
>>>>> + {I2C5_SCL, (IEN | M0)}, /* I2C5_SCL */
>>>> nit pick -> SCL (or i2c clk) is out put from master - always. IEN
>> enables full duplex, but anyways.. just a nitpick :)
>>> OK I changed this and did a test and reads fail without the IEN set.
>>> This is to sync the client clocks.
>> Scl? I2c clock? Does not work without input- something is fishy no?
> Nope. There is clock synchronization and clock arbitration that happens and the I2C master needs to see the SCL as an input.

Also, Table 24-1. HS I2C Input/Output in OMAP5 ES2.0 TRM Rev U
supports the requirement of SCL being input as well.

I think you mean bus busy condition here[1] rather than multi-master
arbitration? in the case of arbitration, the SDA will be monitored
than SCL - See "Figure 24-9. HS I2C Arbitration Between Master
Transmitters" in TRM.

Bus busy on the other hand needs stop condition detection for
transmission which involves SCL and SDA. yet another need is the
requirement to support clock stretching[2] (where the i2c slave holds
the SCL low while it does "something").

Either way, it explains why SCL needs to be in IEN.

[1] http://www.i2c-bus.org/MultiMaster/
[2] http://www.i2c-bus.org/clock-stretching/
Regards,
Nishanth Menon