mirror of https://github.com/torvalds/linux.git
gpio: mpsse: support bryx radio interface kit
This device is powered by an FT232H, which is very similar to the FT2232H this driver was written for. The key difference is it has only one MPSSE instead of two. As a result, it presents only one USB interface to the system, which conveniently "just works" out of the box with this driver. The brik exposes only two GPIO lines which are hardware limited to only be useful in one direction. As a result, I've restricted things on the driver side to refuse to configure any other lines. This device, unlike the sealevel device I wrote this driver for originally, is hotpluggable, which makes for all sorts of weird edgecases. I've tried my best to stress-test the parts that could go wrong, but given the new usecase, more heads taking a critical look at the teardown and synchronization bits on the driver as a whole would be appreciated. Signed-off-by: Mary Strodl <mstrodl@csh.rit.edu> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20251014133530.3592716-5-mstrodl@csh.rit.edu Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
f13b0f72af
commit
03ac8183c9
|
|
@ -65,8 +65,19 @@ struct mpsse_quirk {
|
|||
unsigned long dir_out; /* Bitmask of valid output pins */
|
||||
};
|
||||
|
||||
static struct mpsse_quirk bryx_brik_quirk = {
|
||||
.names = {
|
||||
[3] = "Push to Talk",
|
||||
[5] = "Channel Activity",
|
||||
},
|
||||
.dir_out = BIT(3), /* Push to Talk */
|
||||
.dir_in = BIT(5), /* Channel Activity */
|
||||
};
|
||||
|
||||
static const struct usb_device_id gpio_mpsse_table[] = {
|
||||
{ USB_DEVICE(0x0c52, 0xa064) }, /* SeaLevel Systems, Inc. */
|
||||
{ USB_DEVICE(0x0403, 0x6988), /* FTDI, assigned to Bryx */
|
||||
.driver_info = (kernel_ulong_t)&bryx_brik_quirk},
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue