Clean the PCA953x driver up, convert to regmap and add suspend/resume support. Marek Vasut (14): gpio: pca953x: Deduplicate the bank_shift gpio: pca953x: Fix AI overflow on PCAL6524 gpio: pca953x: Repair multi-byte IO address increment on PCA9575 gpio: pca953x: Unify pca95{3,7}x_write_regs_16() gpio: pca953x: Unify pca953x_{read,write}_regs_{16,24}() gpio: pca953x: Unify pca953x_{read,write}_regs_{8,mul}() gpio: pca953x: Factor out common code from device_pca95xx_init() gpio: pca953x: Zap ad-hoc I2C block write in multi GPIO set gpio: pca953x: Extract the register address mangling to single function gpio: pca953x: Perform basic regmap conversion gpio: pca953x: Zap ad-hoc reg_direction cache gpio: pca953x: Zap ad-hoc reg_output cache gpio: pca953x: Zap single use of pca953x_read_single() gpio: pca953x: Restore registers after suspend/resume cycle drivers/gpio/Kconfig | 1 + drivers/gpio/gpio-pca953x.c | 484 ++++++++++++++++++++++-------------- 2 files changed, 303 insertions(+), 182 deletions(-) V2: Minor fixes in 01,02,14/14 V3: The only change is in 10/14, where we select REGMAP_I2C in Kconfig, since the driver uses regmap now Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> Cc: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> -- 2.18.0