diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c
index 64c7797..be13745 100644
--- a/drivers/gpio/pca953x.c
+++ b/drivers/gpio/pca953x.c
@@ -221,7 +221,7 @@
 int do_pca953x(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
 	static uint8_t chip = CONFIG_SYS_I2C_PCA953X_ADDR;
-	int val;
+	int ret = CMD_RET_USAGE, val;
 	ulong ul_arg2 = 0;
 	ulong ul_arg3 = 0;
 	cmd_tbl_t *c;
@@ -232,7 +232,7 @@
 	if (!c || !((argc == (c->maxargs)) ||
 		(((int)c->cmd == PCA953X_CMD_DEVICE) &&
 		 (argc == (c->maxargs - 1))))) {
-		return cmd_usage(cmdtp);
+		return CMD_RET_USAGE;
 	}
 
 	/* arg2 used as chip number or pin number */
@@ -246,32 +246,53 @@
 	switch ((int)c->cmd) {
 #ifdef CONFIG_CMD_PCA953X_INFO
 	case PCA953X_CMD_INFO:
-		return pca953x_info(chip);
+		ret = pca953x_info(chip);
+		if (ret)
+			ret = CMD_RET_FAILURE;
+		break;
 #endif
+
 	case PCA953X_CMD_DEVICE:
 		if (argc == 3)
 			chip = (uint8_t)ul_arg2;
 		printf("Current device address: 0x%x\n", chip);
-		return 0;
+		ret = CMD_RET_SUCCESS;
+		break;
+
 	case PCA953X_CMD_INPUT:
-		pca953x_set_dir(chip, (1 << ul_arg2),
+		ret = pca953x_set_dir(chip, (1 << ul_arg2),
 				PCA953X_DIR_IN << ul_arg2);
 		val = (pca953x_get_val(chip) & (1 << ul_arg2)) != 0;
 
-		printf("chip 0x%02x, pin 0x%lx = %d\n", chip, ul_arg2, val);
-		return val;
+		if (ret)
+			ret = CMD_RET_FAILURE;
+		else
+			printf("chip 0x%02x, pin 0x%lx = %d\n", chip, ul_arg2,
+									val);
+		break;
+
 	case PCA953X_CMD_OUTPUT:
-		pca953x_set_dir(chip, (1 << ul_arg2),
+		ret = pca953x_set_dir(chip, (1 << ul_arg2),
 				(PCA953X_DIR_OUT << ul_arg2));
-		return pca953x_set_val(chip, (1 << ul_arg2),
-					(ul_arg3 << ul_arg2));
+		if (!ret)
+			ret = pca953x_set_val(chip, (1 << ul_arg2),
+						(ul_arg3 << ul_arg2));
+		if (ret)
+			ret = CMD_RET_FAILURE;
+		break;
+
 	case PCA953X_CMD_INVERT:
-		return pca953x_set_pol(chip, (1 << ul_arg2),
+		ret = pca953x_set_pol(chip, (1 << ul_arg2),
 					(ul_arg3 << ul_arg2));
-	default:
-		/* We should never get here */
-		return 1;
+		if (ret)
+			ret = CMD_RET_FAILURE;
+		break;
 	}
+
+	if (ret == CMD_RET_FAILURE)
+		eprintf("Error talking to chip at 0x%x\n", chip);
+
+	return ret;
 }
 
 U_BOOT_CMD(
