On Mon, Sep 23, 2019 at 10:24:48AM +0800, Ji-Ze Hong (Peter Hong) wrote: > The Fintek F81534A series is contains 1 HUB / 1 GPIO device / n UARTs, > but the UART is default disable and need enabled by GPIO device(2c42/16F8). > > When F81534A plug to host, we can only see 1 HUB & 1 GPIO device and we > need write 0x8fff to GPIO device register F81534A_CMD_ENABLE_PORT(116h) > to enable all available serial ports. > > Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@xxxxxxxxx> > --- > drivers/usb/serial/f81232.c | 135 +++++++++++++++++++++++++++++++++++- > 1 file changed, 134 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/serial/f81232.c b/drivers/usb/serial/f81232.c > index 01cb5a5ea1d2..82cc1e6cff62 100644 > --- a/drivers/usb/serial/f81232.c > +++ b/drivers/usb/serial/f81232.c > @@ -36,6 +36,9 @@ > { USB_DEVICE(0x2c42, 0x1635) }, /* 8 port UART device */ \ > { USB_DEVICE(0x2c42, 0x1636) } /* 12 port UART device */ > > +#define F81534A_CTRL_ID \ > + { USB_DEVICE(0x2c42, 0x16f8) } /* Global control device */ > + > static const struct usb_device_id id_table[] = { > F81232_ID, > { } /* Terminating entry */ > @@ -46,6 +49,11 @@ static const struct usb_device_id f81534a_id_table[] = { > { } /* Terminating entry */ > }; > > +static const struct usb_device_id f81534a_ctrl_id_table[] = { > + F81534A_CTRL_ID, > + { } /* Terminating entry */ > +}; > + > static const struct usb_device_id all_serial_id_table[] = { > F81232_ID, > F81534A_SERIES_ID, Forgot to mention: don't you want F81534A_CTRL_ID in the combined (MODULE_DEVICE_TABLE) as well? Johan