On Fri, Mar 07, 2025 at 11:43:55PM +0800, Boon Khai Ng wrote: > The Altera USB Blaster 3, available as both a cable and an on-board > solution, is primarily used for programming and debugging FPGAs. > > It interfaces with host software such as Quartus Programmer, > System Console, SignalTap, and Nios Debugger. The device utilizes > either an FT2232 or FT4232 chip. > > Enabling support for various configurations of the USB Blaster 3 > by including the appropriate VID/PID pairs, allowing it to function > as a serial device via ftdi_sio. The configurations are determined > by the hardware design and include: > > 1) PID 0x6020, FT2232, 1 JTAG port > 2) PID 0x6021, FT2232, 2 JTAG ports > 3) PID 0x6022, FT2232, 1 JTAG port + Port B as UART > 4) PID 0x6023, FT2232, Cable USB-Blaster 3 > 5) PID 0x6024, FT4232, 1 JTAG port > 6) PID 0x6025, FT4232, 1 JTAG port + Port C as UART > 7) PID 0x6026, FT4232, 1 JTAG port + Port C, D as UART > 8) PID 0x602e, FT4232, 1 JTAG port + Port B, C, D as UART > > These configurations allow for flexibility in how the > USB Blaster 3 is used, depending on the specific needs of the > hardware design. > > Signed-off-by: Boon Khai Ng <boon.khai.ng@xxxxxxxxx> > --- Thanks for the update, I've applied this one now. But for your future contributions, remember to put a short changelog here under the cut-off (---) line when revising patches. > drivers/usb/serial/ftdi_sio.c | 14 ++++++++++++++ > drivers/usb/serial/ftdi_sio_ids.h | 13 +++++++++++++ > 2 files changed, 27 insertions(+) > > diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c > index e07c5e3eb18c..9b34e23b7091 100644 > --- a/drivers/usb/serial/ftdi_sio.c > +++ b/drivers/usb/serial/ftdi_sio.c > @@ -1079,6 +1079,20 @@ static const struct usb_device_id id_table_combined[] = { > .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, > /* GMC devices */ > { USB_DEVICE(GMC_VID, GMC_Z216C_PID) }, > + /* Altera USB Blaster 3 */ > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6022_PID, 1) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6025_PID, 2) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6026_PID, 2) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6026_PID, 3) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_6029_PID, 2) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602A_PID, 2) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602A_PID, 3) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602C_PID, 1) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602D_PID, 1) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602D_PID, 2) }, These configurations were not mentioned in the commit message. Are they also used for embedded designs? > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 1) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 2) }, > + { USB_DEVICE_INTERFACE_NUMBER(ALTERA_VID, ALTERA_UB3_602E_PID, 3) }, > { } /* Terminating entry */ > }; Johan