[RFC 0/2] sandbox: add gpio support with libftdi1

Ian Abbott abbotti at mev.co.uk
Thu Feb 16 03:11:10 PST 2017


On 16/02/17 07:34, Sascha Hauer wrote:
> Hi Antony,
>
> On Wed, Feb 15, 2017 at 10:12:25AM +0300, Antony Pavlov wrote:
>> This patch series makes it possible to use FT2232H ACBUS[7:0]
>> pins as gpio pins from sandbox barebox.
>>
>> I have tested output gpio functionality by connecting
>> a LED to ACBUS[0] and lightening it with gpio_direction_output
>> and gpio_set_value barebox commands.
>>
>> Also I have performed input test with ACBUS[0] -> ACBUS[1] loopback.
>>
>> The main goal of adding gpio functionality to sandbox barebox
>> is using it for connecting real i2c and spi devices to sandbox barebox
>> (not tested yet).
>
> I just read that the FT2232H can even do native I2C and SPI, so no gpio
> bitbanging would be necessary. Would it be possible to use this mode
> instead?
>
> Otherwise I think there should be a possibility to specify which, if
> any, FT2232H chip barebox uses.

The MPSSE mode of the FT2232H can sort of do native I2C, but not in a 
strictly conforming way.  The I2C SDA needs to be connected to two pins 
on the FT2232H, one for output and one for input, and there is a 
"Drive-Only-Zero" option for the output to ensure it is only driven low, 
and tri-stated high.  However, the I2C SCL is only connected to an 
output pin on the FT2232H, and is always driven in both directions. 
Therefore, it does not support "clock-stretching" by I2C slaves (where a 
slave pulls the SCL line low until it is ready), because it cannot read 
back the state of the SCL line.  Worse, if an I2C slave is doing 
clock-stretching by driving SCL low, this will contend with the FT2232H 
driving SCL high at the same time.

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-



More information about the barebox mailing list