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 <<redacted><mailto:<redacted>>>
---
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