diff --git a/arch/arm/cpu/armv7/sunxi/usbc.c b/arch/arm/cpu/armv7/sunxi/usbc.c
index 7b883fb..21032aa 100644
--- a/arch/arm/cpu/armv7/sunxi/usbc.c
+++ b/arch/arm/cpu/armv7/sunxi/usbc.c
@@ -17,6 +17,7 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 #include <common.h>
+#include <errno.h>
 #ifdef CONFIG_AXP152_POWER
 #include <axp152.h>
 #endif
@@ -90,7 +91,7 @@
 	case 1: return sunxi_name_to_gpio(CONFIG_USB1_VBUS_PIN);
 	case 2: return sunxi_name_to_gpio(CONFIG_USB2_VBUS_PIN);
 	}
-	return -1;
+	return -EINVAL;
 }
 
 static int get_vbus_detect_gpio(int index)
@@ -98,7 +99,7 @@
 	switch (index) {
 	case 0: return sunxi_name_to_gpio(CONFIG_USB0_VBUS_DET);
 	}
-	return -1;
+	return -EINVAL;
 }
 
 static void usb_phy_write(struct sunxi_usbc_hcd *sunxi_usbc, int addr,
@@ -188,13 +189,13 @@
 	int ret = 0;
 
 	sunxi_usbc->gpio_vbus = get_vbus_gpio(index);
-	if (sunxi_usbc->gpio_vbus != -1) {
+	if (sunxi_usbc->gpio_vbus >= 0) {
 		ret |= gpio_request(sunxi_usbc->gpio_vbus, "usbc_vbus");
 		ret |= gpio_direction_output(sunxi_usbc->gpio_vbus, 0);
 	}
 
 	sunxi_usbc->gpio_vbus_det = get_vbus_detect_gpio(index);
-	if (sunxi_usbc->gpio_vbus_det != -1) {
+	if (sunxi_usbc->gpio_vbus_det >= 0) {
 		ret |= gpio_request(sunxi_usbc->gpio_vbus_det, "usbc_vbus_det");
 		ret |= gpio_direction_input(sunxi_usbc->gpio_vbus_det);
 	}
@@ -207,10 +208,10 @@
 	struct sunxi_usbc_hcd *sunxi_usbc = &sunxi_usbc_hcd[index];
 	int ret = 0;
 
-	if (sunxi_usbc->gpio_vbus != -1)
+	if (sunxi_usbc->gpio_vbus >= 0)
 		ret |= gpio_free(sunxi_usbc->gpio_vbus);
 
-	if (sunxi_usbc->gpio_vbus_det != -1)
+	if (sunxi_usbc->gpio_vbus_det >= 0)
 		ret |= gpio_free(sunxi_usbc->gpio_vbus_det);
 
 	return ret;
@@ -264,7 +265,7 @@
 {
 	struct sunxi_usbc_hcd *sunxi_usbc = &sunxi_usbc_hcd[index];
 
-	if (sunxi_usbc->gpio_vbus != -1)
+	if (sunxi_usbc->gpio_vbus >= 0)
 		gpio_set_value(sunxi_usbc->gpio_vbus, 1);
 }
 
@@ -272,7 +273,7 @@
 {
 	struct sunxi_usbc_hcd *sunxi_usbc = &sunxi_usbc_hcd[index];
 
-	if (sunxi_usbc->gpio_vbus != -1)
+	if (sunxi_usbc->gpio_vbus >= 0)
 		gpio_set_value(sunxi_usbc->gpio_vbus, 0);
 }
 
@@ -281,9 +282,9 @@
 	struct sunxi_usbc_hcd *sunxi_usbc = &sunxi_usbc_hcd[index];
 	int err, retries = 3;
 
-	if (sunxi_usbc->gpio_vbus_det == -1) {
+	if (sunxi_usbc->gpio_vbus_det < 0) {
 		eprintf("Error: invalid vbus detection pin\n");
-		return -1;
+		return sunxi_usbc->gpio_vbus_det;
 	}
 
 	err = gpio_get_value(sunxi_usbc->gpio_vbus_det);
