Private
Public Access
2
0
Commit Graph

34 Commits

Author SHA1 Message Date
Thomas Ingleby
fce4daab02 mraa: Correct spelling of capabilities
Type was correctly spelt, but the member in the platform strut was not.
My mistake from 2014.

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2016-08-08 21:44:00 +02:00
Mihai Tudor Panu
a702cdf4d5 ft4222: fixed pca9555 expander detection
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-05-04 09:48:40 +01:00
Brendan Le Foll
c1465bd694 i2c: Make i2c advance function match new prototypes
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-04-22 11:59:17 +01:00
Henry Bruce
3b9c4f2bad ft4222: added error checking for getting libft4222 function addresses
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Thomas Ingleby
7f78b6760f ft4222: move calls to libft4222.so to use dlopen
Makes the lib a runtime only dependency

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Henry Bruce
441a24aaea ftdi_ft4222: Refactoring of I/O expander support.
Refactored of I/O expander support to simplify addition of new devices.
This had added ISR support for PCA9555.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Henry Bruce
9c2f3c83c9 ftdi_ft4222: Resolved conflicts with PCA9555 I/O expander (commit 3b2a5b8)
This has removed PCA9555 support. It will be introduced soon.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Henry Bruce
65514bb432 ftdi_ft4222: Refactored GPIO expander ISR code
GPIO expander ISRs were dropping interrupts as each pin had its own
thread which cleared the INT signal when reading the GPIO register.
Thus pending interrupts for GPIO on threads waiting to be scheduled
were dropped. Now a single thread polls the GPIO register when INT goes
low and sets interrupt flags for each GPIO line. The threads created
by mraa_gpio_isr() now poll the appropriate interrupt flag.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Henry Bruce
c770c4c669 ftdi_ft4222: Fixed i2c synchronization bug
Synchronization must be done at "context" level so that i2c bus
cannot be unexpectedly changed by a different thread.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-09 14:04:22 +00:00
Mihai Tudor Panu
3b2a5b8429 ft4222: added full support for PCA9555 read/write
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-02-24 11:22:42 +00:00
Henry Bruce
944670f66a ftdi_ft4222: Added mutex synchronize i2c operations
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
2016-02-12 11:25:38 +00:00
Henry Bruce
1fd4ed5736 ftdi_ft4222: Added GPIO interrupt support for language bindings.
- FT4222 GPIO ISR implementation was specific to C/C++ and ignored
  language binding support. This is now fixed via adv_func updates.
- GPIO ISR code has been refactored to reduce i2c traffic when using
  I/O expanders
- Added support for built-in FT4222 GPIO interrupts

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
2016-02-12 11:25:38 +00:00
Ian Johnson
ab14b9de43 mraa: Prefer calloc over malloc
Switch to using calloc on all calls to malloc where the memory isn't
initialized. For things like the mraa_board_t, not allocating all to zero
causes issues such as with the sub_platform member, where if that's not zero
mraa_get_platform_type will try to dereference a random memory location for the
sub_platform->platform_name, which can result in segmentation faults and other
issues.

Note that in some places where immediately after the malloc call is a copy
operation, there is no need for calloc, as all the memory gets overwritten
anyways, but in cases where there may or may not be memory written to (such as
in mraa_file_contains, with reading from a file), even though in most cases the
memory is overwritten, it could be the case that the read operation does
nothing, but the memory still has non-zero values, by virtue of the fact it
wasn't overwritten.

Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-20 08:20:28 +00:00
Henry Bruce
8c40842e4b ftdi_ft4222: Re-order pin numbering and support i2c switch
First four pins (0 to 3) are now built-in FTDI GPIO/I2C pins
If i2c GPIO expander is detected, next 8 pins (4 to 11) are its GPIO
If i2c switch is detected an extra 4 i2c busses are added

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-06 10:38:51 +00:00
Henry Bruce
ed0124cc70 mraa_adv_func: Updated signature of gpio_init_internal_replace()
mraa_adv_func_t->gpio_init_internal_replace() now has mraa_gpio_context
parameter so that override function can access both physical and logical
pin numbers.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-06 10:38:51 +00:00
Mihai Tudor Panu
063a3154aa ft4222: adds initial support for on-chip GPIO in mode0
This commits uses CLK_* and so requires libftdi 1.2.1.4+

Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-01 12:07:12 +00:00
Mihai Tudor Panu
5f4f0a2aef ft4222: prepares onboard gpio support in addition to i2c expander option
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-01 12:01:55 +00:00
Henry Bruce
bf803209aa ftdi_ft4222.c: Fixed bug in gpio configuration
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-10-26 15:46:54 +00:00
Henry Bruce
799f1409b9 ftdi_ft4222.c: Implemented previously stubbed out i2c functions.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-10-26 15:46:54 +00:00
Brendan Le Foll
fc55088c03 ftdi_ft4222.c: clean up, styling fix
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Henry Bruce
ba85c9ebc2 ft4222.c: Fixed bug in write_byte_data
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Henry Bruce
4acb0e5562 cmake: USB source files now added to mraa_LIB_PLAT_SRCS_NOAUTO
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Henry Bruce
b20a685b0c i2c: mraa_i2c_init_raw fixed and sub-platform updates.
mraa_i2c_init_raw now works again without platfrorm defined.
More API calls now support sub-platform

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00
Brendan Le Foll
79e33890b6 usb.c: move usb platform not found msg to debug
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
93d326bff4 ftdi_ft4222.c: Removed i2c read/write logging messages.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
99901d05f7 ftdi_ft4222.c: Implemented i2c_frequency().
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
453eefc56a usb: Added gpio isr support to ft4222
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
802c5af986 usb: Added gpio read/write support for ft4222 with i/o expander
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
99593ec640 usb: USB sub-platform bug fixes.
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
d5e5539be3 usb: Updated ft4222 device detection
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
7ada55982d platform_type: platform_type now in mraa_board_t
Now platform_type is no longer global it tracks with board instance
so that platform and sub-platform can report different types.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
1c9b87bfd3 cmake: add FTDI FT4222 support
Existing FTDI D2xx support is just for serial comms library
but FT4222 needs a different library for i2c operation.

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Brendan Le Foll
e353508e30 cmake: add -DFTDID2xx and use FindFtd2xx.cmake
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00
Henry Bruce
8f48df0533 usb: Skeleton platform code for FTDI FT4222 USB to i2c bridge
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:03 +01:00