On Tue, Feb 23, 2021 at 10:02:08AM +0000, Pho Tran wrote: > Similar to other CP210x devices, GPIO interfaces (gpiochip) should be supported for CP2108. > > CP2108 has 4 serial interfaces but only 1 set of GPIO pins are shared to all of those interfaces. > So, just need to initialize GPIOs of CP2108 with only one interface (I use interface 0). > It means just only 1 gpiochip device file will be created for CP2108. > > CP2108 has 16 GPIOs, So data types of several variables need to be is u16 > instead of u8(in struct cp210x_serial_private). This doesn't affect other CP210x devices. > > Because CP2108 has 16 GPIO pins, the parameter which is passed by CP210x functions > will be different from other CP210x devices. So need to check part number of the device > to use correct data format before sending commands to devices. > > Like CP2104, CP2108 have GPIO pins with configurable options. Therefore, in cp2108_gpio_init() function, > Should be mask all pins which are not in GPIO mode. > > Signed-off-by: Pho Tran <pho.tran@xxxxxxxxxx<mailto:pho.tran@xxxxxxxxxx>> > --- > drivers/usb/serial/cp210x.c | 199 +++++++++++++++++++++++++++++++----- > 1 file changed, 172 insertions(+), 27 deletions(-) You sent this patch twice, and I'm afraid both have been white-space corrupted (e.g. by your mailer). Try sending the patch to yourself first and make sure you can apply it using git-am (and run checkpatch.pl on it without any obvious errors). Johan