On Wed, Apr 07, 2021 at 01:25:00AM +0300, Andy Shevchenko wrote: > On Tuesday, April 6, 2021, Pho Tran <photranvan0712@xxxxxxxxx> wrote: > > Because CP2108 has 16 GPIO pins, the parameter 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, > > should be mask all pins which are not in GPIO mode in cp2108_gpio_init() > > function. > This I didn’t get. If you are talking about usage pin as GPIO, perhaps you > should use valid_mask in GPIO chip structure. Otherwise you probably need > to implement a proper pinmux ops for this (and register a pin controller > which the code below also suggests). Neither is needed here. Using a valid mask is a new feature and isn't a prerequisite for adding support for the GPIOs on cp2108. I've been meaning to implement that since we started using it for ftdi_sio, and I'll be posting that shortly. The cp2108 pin configuration can't be changed at runtime, but even if it was it's not clear what the pinctrl subsystem would buy us for a hotpluggable USB device currently (even if devicetree could be used for static topologies). I'll look at the rest of this thread and the latest version of this patch next week. Johan