gpio: add support for FTDI's MPSSE as GPIO
authorMary Strodl <mstrodl@csh.rit.edu>
Wed, 9 Oct 2024 13:11:31 +0000 (09:11 -0400)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 14 Oct 2024 07:07:32 +0000 (09:07 +0200)
commitc46a74ff05c0ac76ba11ef21c930c3b447abf31a
tree8df67dc1d35adcee12f79e6832995ef741617518
parentb2e861bd1eaf4c5f75139df9b75dade3334a5b6c
gpio: add support for FTDI's MPSSE as GPIO

FTDI FT2232H is a USB to GPIO chip. Sealevel produces some devices
with this chip. FT2232H presents itself as a composite device with two
interfaces (each is an "MPSSE"). Each MPSSE has two banks (high and low)
of 8 GPIO each. I believe some MPSSE's have only one bank, but I don't
know how to identify them (I don't have any for testing) and as a result
are unsupported for the time being.

Additionally, this driver provides software polling-based interrupts for
edge detection. For the Sealevel device I have to test with, this works
well because there is hardware debouncing. From talking to Sealevel's
people, this is their preferred way to do edge detection.

Signed-off-by: Mary Strodl <mstrodl@csh.rit.edu>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20241009131131.1618329-1-mstrodl@csh.rit.edu
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/gpio-mpsse.c [new file with mode: 0644]