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

Antony Pavlov antonynpavlov at gmail.com
Thu Feb 16 00:28:35 PST 2017

On Thu, 16 Feb 2017 08:34:30 +0100
Sascha Hauer <s.hauer at pengutronix.de> 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.

I suppose that gpio support itself is valuable.

> Would it be possible to use this mode instead?

Yes, FT2232H has MPSSE acellerator.
Using MPSSE one can increase FT2232 I2C/SPI performance dramatically.
I have compared two FT2232 I2C realizations (bitbang and libmpsse,
see https://github.com/frantony/mprog/tree/master/i2c_access).
on reading of 8 KiB data block from I2C eeprom. libmpsse's bandwidth is 6 KiB per second,
bitbang's bandwidth is only 73 bytes per second (nearly 100 times worse).

Alas, I have no time to realize ftdi fast i2c/spi support for barebox in the nearest future

> Otherwise I think there should be a possibility to specify which, if
> any, FT2232H chip barebox uses.

I'll add cmdline options to select FT2232H chips on USB bus in v2 patchseries.
Also I'll check i2c bitbang support. I can connect ds1307 rtc or at24 eeprom).

Best regards,
  Antony Pavlov

More information about the barebox mailing list