diff --git a/lib_blackfin/bf533_linux.c b/lib_blackfin/bf533_linux.c
index 6f29795..88b4da2 100644
--- a/lib_blackfin/bf533_linux.c
+++ b/lib_blackfin/bf533_linux.c
@@ -46,7 +46,7 @@
 #define CMD_LINE_ADDR 0xFF900000  /* L1 scratchpad */
 
 #ifdef SHARED_RESOURCES
-        extern void swap_to(int device_id);
+	extern void swap_to(int device_id);
 #endif
 
 static char *make_command_line(void);
diff --git a/lib_blackfin/bf533_string.c b/lib_blackfin/bf533_string.c
index cfa515a..c8b1a3a 100644
--- a/lib_blackfin/bf533_string.c
+++ b/lib_blackfin/bf533_string.c
@@ -127,7 +127,7 @@
 void * memcpy(void * dest,const void *src,size_t count)
 {
 	char *tmp = (char *) dest, *s = (char *) src;
-	
+
 /* Turn off the cache, if destination in the L1 memory */
 	if ( (tmp >= (char *)L1_ISRAM) && (tmp < (char *)L1_ISRAM_END)
 		|| (tmp >= (char *)DATA_BANKA_SRAM) && (tmp < DATA_BANKA_SRAM_END)
@@ -150,7 +150,7 @@
 
 void *dma_memcpy(void * dest,const void *src,size_t count)
 {
-	
+
 		*pMDMA_D0_IRQ_STATUS = DMA_DONE | DMA_ERR;
 
 		/* Copy sram functions from sdram to sram */
@@ -173,7 +173,7 @@
 		asm("ssync;");
 
 		*pMDMA_D0_CONFIG = ( WNR | DMAEN);
-		
+
 		while(*pMDMA_D0_IRQ_STATUS & DMA_RUN){
 			*pMDMA_D0_IRQ_STATUS |= (DMA_DONE | DMA_ERR);
 		}
diff --git a/lib_blackfin/blackfin_board.h b/lib_blackfin/blackfin_board.h
index 35a513f..31c16a2 100644
--- a/lib_blackfin/blackfin_board.h
+++ b/lib_blackfin/blackfin_board.h
@@ -38,7 +38,7 @@
 ulong monitor_flash_len;
 
 
-#define VERSION_STRING_SIZE  150 /* including 40 bytes buffer to change any string */ 
+#define VERSION_STRING_SIZE  150 /* including 40 bytes buffer to change any string */
 #define VERSION_STRING_FORMAT "%s (%s - %s)\n"
 #define VERSION_STRING		U_BOOT_VERSION, __DATE__, __TIME__
 
diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c
index 7bf63eb..55d13fa 100644
--- a/lib_blackfin/board.c
+++ b/lib_blackfin/board.c
@@ -147,7 +147,7 @@
 	addr = (CFG_GBL_DATA_ADDR + sizeof(gd_t));
 
 	/* Align to 4 byte boundary */
-        addr &= ~(4 - 1);
+	addr &= ~(4 - 1);
 	bd = (bd_t*)addr;
 	gd->bd = bd;
 	memset((void *) bd, 0, sizeof(bd_t));
diff --git a/lib_blackfin/cache.c b/lib_blackfin/cache.c
index 4213b86..847278d 100644
--- a/lib_blackfin/cache.c
+++ b/lib_blackfin/cache.c
@@ -26,16 +26,15 @@
  */
 
 /* for now: just dummy functions to satisfy the linker */
-extern void blackfin_icache_range(unsigned long *,unsigned long *);
-extern void blackfin_dcache_range(unsigned long *,unsigned long *);
-void flush_cache(unsigned long dummy1, unsigned long dummy2)
+extern void blackfin_icache_range (unsigned long *, unsigned long *);
+extern void blackfin_dcache_range (unsigned long *, unsigned long *);
+void flush_cache (unsigned long dummy1, unsigned long dummy2)
 {
-	if(icache_status()){
-		blackfin_icache_flush_range(dummy1,dummy1+dummy2);
-		}
-	if(dcache_status()){
-		blackfin_dcache_flush_range(dummy1,dummy1+dummy2);
-		}
+	if (icache_status ()) {
+		blackfin_icache_flush_range (dummy1, dummy1 + dummy2);
+	}
+	if (dcache_status ()) {
+		blackfin_dcache_flush_range (dummy1, dummy1 + dummy2);
+	}
 	return;
 }
-
diff --git a/lib_blackfin/muldi3.c b/lib_blackfin/muldi3.c
index a562242..1fc34e3 100644
--- a/lib_blackfin/muldi3.c
+++ b/lib_blackfin/muldi3.c
@@ -80,13 +80,13 @@
 {
 	DIunion w;
 	DIunion uu, vv;
- 
+
 	uu.ll = u,
 	vv.ll = v;
 	/*  panic("kernel panic for __muldi3"); */
 	w.ll = __umulsidi3 (uu.s.low, vv.s.low);
 	w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
 	+ (USItype) uu.s.high * (USItype) vv.s.low);
- 
+
 	return w.ll;
 }
