gpio: pca953x: Swap if statements to save later complexity
authorMartyn Welch <martyn.welch@collabora.com>
Wed, 14 Sep 2022 15:15:56 +0000 (16:15 +0100)
committerBartosz Golaszewski <brgl@bgdev.pl>
Thu, 15 Sep 2022 08:08:44 +0000 (10:08 +0200)
A later patch in the series adds support for a further chip type that
shares some similarity with the PCA953X_TYPE. In order to keep the logic
simple, swap over the if and else portions where checks are made against
PCA953X_TYPE and instead check for PCA957X_TYPE.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-pca953x.c

index a6081d9..c27b83b 100644 (file)
@@ -294,13 +294,13 @@ static bool pca953x_readable_register(struct device *dev, unsigned int reg)
        struct pca953x_chip *chip = dev_get_drvdata(dev);
        u32 bank;
 
-       if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE) {
-               bank = PCA953x_BANK_INPUT | PCA953x_BANK_OUTPUT |
-                      PCA953x_BANK_POLARITY | PCA953x_BANK_CONFIG;
-       } else {
+       if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) {
                bank = PCA957x_BANK_INPUT | PCA957x_BANK_OUTPUT |
                       PCA957x_BANK_POLARITY | PCA957x_BANK_CONFIG |
                       PCA957x_BANK_BUSHOLD;
+       } else {
+               bank = PCA953x_BANK_INPUT | PCA953x_BANK_OUTPUT |
+                      PCA953x_BANK_POLARITY | PCA953x_BANK_CONFIG;
        }
 
        if (chip->driver_data & PCA_PCAL) {
@@ -317,12 +317,12 @@ static bool pca953x_writeable_register(struct device *dev, unsigned int reg)
        struct pca953x_chip *chip = dev_get_drvdata(dev);
        u32 bank;
 
-       if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE) {
-               bank = PCA953x_BANK_OUTPUT | PCA953x_BANK_POLARITY |
-                       PCA953x_BANK_CONFIG;
-       } else {
+       if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) {
                bank = PCA957x_BANK_OUTPUT | PCA957x_BANK_POLARITY |
                        PCA957x_BANK_CONFIG | PCA957x_BANK_BUSHOLD;
+       } else {
+               bank = PCA953x_BANK_OUTPUT | PCA953x_BANK_POLARITY |
+                       PCA953x_BANK_CONFIG;
        }
 
        if (chip->driver_data & PCA_PCAL)
@@ -337,10 +337,10 @@ static bool pca953x_volatile_register(struct device *dev, unsigned int reg)
        struct pca953x_chip *chip = dev_get_drvdata(dev);
        u32 bank;
 
-       if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE)
-               bank = PCA953x_BANK_INPUT;
-       else
+       if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE)
                bank = PCA957x_BANK_INPUT;
+       else
+               bank = PCA953x_BANK_INPUT;
 
        if (chip->driver_data & PCA_PCAL)
                bank |= PCAL9xxx_BANK_IRQ_STAT;
@@ -1071,13 +1071,12 @@ static int pca953x_probe(struct i2c_client *client,
        /* initialize cached registers from their original values.
         * we can't share this chip with another i2c master.
         */
-
-       if (PCA_CHIP_TYPE(chip->driver_data) == PCA953X_TYPE) {
-               chip->regs = &pca953x_regs;
-               ret = device_pca95xx_init(chip, invert);
-       } else {
+       if (PCA_CHIP_TYPE(chip->driver_data) == PCA957X_TYPE) {
                chip->regs = &pca957x_regs;
                ret = device_pca957x_init(chip, invert);
+       } else {
+               chip->regs = &pca953x_regs;
+               ret = device_pca95xx_init(chip, invert);
        }
        if (ret)
                goto err_exit;