After I updated GPIO library for the case Benjamin has with CP2112, I have a brief look into the CP2112 driver itself. >From GPIO perspective it has two main (maitenance) issues: - usage of ->to_irq() with IRQ chip present; - having IRQ chip not immutable. Besides that there are plenty small cleanups here and there. Hence this series. Compile tested only. Andy Shevchenko (12): lib/string_choices: Add str_write_read() helper HID: cp2112: Use str_write_read() and str_read_write() HID: cp2112: Make irq_chip immutable HID: cp2112: Switch to for_each_set_bit() to simplify the code HID: cp2112: Don't call ->to_irq() explicitly HID: cp2112: Remove dead code HID: cp2112: Define maximum GPIO constant and use it HID: cp2112: Define all GPIO mask and use it HID: cp2112: Use BIT() in GPIO setter and getter HID: cp2112: Use sysfs_emit() to instead of scnprintf() HID: cp2112: Convert to DEVICE_ATTR_RW() HID: cp2112: Use octal permissions drivers/hid/hid-cp2112.c | 169 +++++++++++---------------------- include/linux/string_choices.h | 1 + 2 files changed, 58 insertions(+), 112 deletions(-) -- 2.40.0.1.gaa8946217a0b