diff --git a/api/README b/api/README
index c8f9c45..6df225f 100644
--- a/api/README
+++ b/api/README
@@ -22,7 +22,7 @@
   - the U-Boot integral part of the API is meant to be thin and non-intrusive,
     leaving as much processing as possible on the consumer application side,
     for example it doesn't keep states, but relies on hints from the app and
-    so on 
+    so on
 
   - optional (CONFIG_API)
 
diff --git a/api/api.c b/api/api.c
index 10f83eb..0598d90 100644
--- a/api/api.c
+++ b/api/api.c
@@ -231,7 +231,7 @@
 		/* start over - clean up enumeration */
 		dev_enum_reset();	/* XXX shouldn't the name contain 'stor'? */
 		debugf("RESTART ENUM\n");
-		
+
 		/* net device enumeration first */
 		if (dev_enum_net(di))
 			return 0;
@@ -365,7 +365,7 @@
 		return API_EINVAL;
 
 	if (di->type & DEV_TYP_STOR)
-		/* 
+		/*
 		 * write to storage is currently not supported by U-Boot:
 		 * no storage device implements block_write() method
 		 */
@@ -523,7 +523,7 @@
 	char *last, **next;
 
 	last = (char *)va_arg(ap, u_int32_t);
-	
+
 	if ((next = (char **)va_arg(ap, u_int32_t)) == NULL)
 		return API_EINVAL;
 
@@ -540,7 +540,7 @@
 					return 0;
 				}
 			}
-		
+
 			if (envmatch((uchar *)last, i) < 0)
 				continue;
 
@@ -567,7 +567,7 @@
  * serviced until finished.
  *
  * e.g. syscall(1, int *, u_int32_t, u_int32_t, u_int32_t, u_int32_t);
- * 
+ *
  * call:	syscall number
  *
  * retval:	points to the return value placeholder, this is the place the
@@ -655,7 +655,7 @@
 
 	if (!si->mr || !size || (flags == 0))
 		return;
-	
+
 	/* find free slot */
 	for (i = 0; i < si->mr_no; i++)
 		if (si->mr[i].flags == 0) {
diff --git a/api/api_net.c b/api/api_net.c
index 9b20a17..9611ab0 100644
--- a/api/api_net.c
+++ b/api/api_net.c
@@ -75,7 +75,7 @@
 	return 0;
 }
 
-/* 
+/*
  * There can only be one active eth interface at a time - use what is
  * currently set to eth_current
  */
