mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
gpio: pca953x: Zap ad-hoc I2C block write in multi GPIO set
The ad-hoc i2c block write can be replaced by standard register accessor function, which correctly handles all the chip details and differences. Do so to simplify the code. Signed-off-by: Marek Vasut <[email protected]> Cc: Bartosz Golaszewski <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
This commit is contained in:
parent
7a04aaa32c
commit
25a1b7102f
1 changed files with 1 additions and 10 deletions
|
|
@ -364,8 +364,6 @@ static void pca953x_gpio_set_multiple(struct gpio_chip *gc,
|
|||
unsigned long *mask, unsigned long *bits)
|
||||
{
|
||||
struct pca953x_chip *chip = gpiochip_get_data(gc);
|
||||
int bank_shift = pca953x_bank_shift(chip);
|
||||
u32 regaddr = chip->regs->output << bank_shift;
|
||||
unsigned int bank_mask, bank_val;
|
||||
int bank;
|
||||
u8 reg_val[MAX_BANK];
|
||||
|
|
@ -384,14 +382,7 @@ static void pca953x_gpio_set_multiple(struct gpio_chip *gc,
|
|||
}
|
||||
}
|
||||
|
||||
/* PCA9575 needs address-increment on multi-byte writes */
|
||||
if ((PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) &&
|
||||
(NBANK(chip) > 1)) {
|
||||
regaddr |= REG_ADDR_AI;
|
||||
}
|
||||
|
||||
ret = i2c_smbus_write_i2c_block_data(chip->client, regaddr,
|
||||
NBANK(chip), reg_val);
|
||||
ret = pca953x_write_regs(chip, chip->regs->output, reg_val);
|
||||
if (ret)
|
||||
goto exit;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue