Merge tag 'gpio-v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
[linux-2.6-microblaze.git] / drivers / gpio / gpio-pca953x.c
index c2d6121..825b362 100644 (file)
@@ -90,6 +90,7 @@ static const struct i2c_device_id pca953x_id[] = {
        { "pcal6416", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
        { "pcal6524", 24 | PCA953X_TYPE | PCA_LATCH_INT, },
        { "pcal9535", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
+       { "pcal9554b", 8  | PCA953X_TYPE | PCA_LATCH_INT, },
        { "pcal9555a", 16 | PCA953X_TYPE | PCA_LATCH_INT, },
 
        { "max7310", 8  | PCA953X_TYPE, },
@@ -1018,12 +1019,9 @@ static int pca953x_probe(struct i2c_client *client,
        chip->client = client;
 
        reg = devm_regulator_get(&client->dev, "vcc");
-       if (IS_ERR(reg)) {
-               ret = PTR_ERR(reg);
-               if (ret != -EPROBE_DEFER)
-                       dev_err(&client->dev, "reg get err: %d\n", ret);
-               return ret;
-       }
+       if (IS_ERR(reg))
+               return dev_err_probe(&client->dev, PTR_ERR(reg), "reg get err\n");
+
        ret = regulator_enable(reg);
        if (ret) {
                dev_err(&client->dev, "reg en err: %d\n", ret);
@@ -1255,6 +1253,7 @@ static const struct of_device_id pca953x_dt_ids[] = {
        { .compatible = "nxp,pcal6416", .data = OF_953X(16, PCA_LATCH_INT), },
        { .compatible = "nxp,pcal6524", .data = OF_953X(24, PCA_LATCH_INT), },
        { .compatible = "nxp,pcal9535", .data = OF_953X(16, PCA_LATCH_INT), },
+       { .compatible = "nxp,pcal9554b", .data = OF_953X( 8, PCA_LATCH_INT), },
        { .compatible = "nxp,pcal9555a", .data = OF_953X(16, PCA_LATCH_INT), },
 
        { .compatible = "maxim,max7310", .data = OF_953X( 8, 0), },