I'm working on converting the pca953x driver to using regmap, but since it's not a trivial task I figured I'd post a couple refactoring patches I did so far for 4.9. The first patch just fixes a couple coding style issues. The second removes a couple unnecessary switches. Last three refactor the read/write_regs functions to avoid if-elses by using function pointers to smaller, specialized routines. Tested with pca9534 and pca9535 chips. v1 -> v2: - constified the offset structures in patch 2/5 v2 -> v3: - modified the order of the patches so that minor coding style fixes no longer create noise for the later changes - moved the **_write_regs_16() assignments to where other variants are assigned v3 -> v4: - minor style fixes v4 -> v5: - added a patch making the register offset names consistent - bunch of style changes in patch 5/6 - renamed the structure containing the register offsets v5 -> v6: - dropped patch 6/6 - the names reflect the ones in the datasheet - rebased on top of gpio/devel NOTE: the devel branch doesn't compile due to: CC drivers/gpio/gpiolib.o drivers/gpio/gpiolib.c: In function '_gpiochip_irqchip_add': drivers/gpio/gpiolib.c:1622:62: error: macro "WARN_ON" passed 3 arguments, but takes just 1 "%s: Ignoring %d default trigger\n", of_node->full_name)) ^ drivers/gpio/gpiolib.c:1621:6: error: 'WARN_ON' undeclared (first use in this function) if (WARN_ON(of_node && type != IRQ_TYPE_NONE, ^ drivers/gpio/gpiolib.c:1621:6: note: each undeclared identifier is reported only once for each function it appears in This is due to an incorrect use of WARN_ON() (should have been WARN() in this case). Fixed in a separate patch. Bartosz Golaszewski (5): gpio: pca953x: code shrink gpio: pca953x: refactor pca953x_write_regs() gpio: pca953x: refactor pca953x_read_regs() gpio: pca953x: remove an unused variable gpio: pca953x: coding style fixes drivers/gpio/gpio-pca953x.c | 285 ++++++++++++++++++++++---------------------- 1 file changed, 144 insertions(+), 141 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html