Reduce deep nesting of header files

Reduce the number of header files included from other header
files as much as possible without splitting the files. Use forward
declarations where possible. This allows removal of some unnecessary
"#ifndef __ASSEMBLY__" statements.

Also, review the .c and .S files for which header files really need
including and reorder the #include statements alphabetically.

Fixes ARM-software/tf-issues#31

Change-Id: Iec92fb976334c77453e010b60bcf56f3be72bd3e
diff --git a/include/drivers/arm/pl011.h b/include/drivers/arm/pl011.h
index 5ad2fc7..28aef54 100644
--- a/include/drivers/arm/pl011.h
+++ b/include/drivers/arm/pl011.h
@@ -31,6 +31,9 @@
 #ifndef __PL011_H__
 #define __PL011_H__
 
+#include <mmio.h>
+
+
 /* PL011 Registers */
 #define UARTDR                    0x000
 #define UARTRSR                   0x004
diff --git a/include/drivers/arm/tzc400.h b/include/drivers/arm/tzc400.h
index 7ac82ae..b4aa3ba 100644
--- a/include/drivers/arm/tzc400.h
+++ b/include/drivers/arm/tzc400.h
@@ -147,8 +147,6 @@
 /* Filters are bit mapped 0 to 3. */
 #define TZC400_COMPONENT_ID	0xb105f00d
 
-#ifndef __ASSEMBLY__
-
 /*******************************************************************************
  * Function & variable prototypes
  ******************************************************************************/
@@ -205,6 +203,5 @@
 void tzc_disable_filters(const tzc_instance_t *controller);
 void tzc_set_action(const tzc_instance_t *controller, tzc_action_t action);
 
-#endif /*__ASSEMBLY__*/
 
 #endif /* __TZC400__ */
diff --git a/include/drivers/io_driver.h b/include/drivers/io_driver.h
index cade5e7..cc01d3b 100644
--- a/include/drivers/io_driver.h
+++ b/include/drivers/io_driver.h
@@ -31,7 +31,9 @@
 #ifndef __IO_DRIVER_H__
 #define __IO_DRIVER_H__
 
+#include <io_storage.h>
 #include <platform.h>   /* For MAX_IO_DEVICES */
+#include <stdint.h>
 
 
 /* Generic IO entity structure,representing an accessible IO construct on the
diff --git a/include/drivers/io_fip.h b/include/drivers/io_fip.h
index 56dd1e0..212570d 100644
--- a/include/drivers/io_fip.h
+++ b/include/drivers/io_fip.h
@@ -31,6 +31,8 @@
 #ifndef __IO_FIP_H__
 #define __IO_FIP_H__
 
+struct io_dev_connector;
+
 int register_io_dev_fip(struct io_dev_connector **dev_con);
 
 #endif /* __IO_FIP_H__ */
diff --git a/include/drivers/io_memmap.h b/include/drivers/io_memmap.h
index 5fa7bc9..0e59ecb 100644
--- a/include/drivers/io_memmap.h
+++ b/include/drivers/io_memmap.h
@@ -31,6 +31,8 @@
 #ifndef __IO_MEMMAP_H__
 #define __IO_MEMMAP_H__
 
+struct io_dev_connector;
+
 int register_io_dev_memmap(struct io_dev_connector **dev_con);
 
 #endif /* __IO_MEMMAP_H__ */
diff --git a/include/drivers/io_semihosting.h b/include/drivers/io_semihosting.h
index 7dc632d..eab290a 100644
--- a/include/drivers/io_semihosting.h
+++ b/include/drivers/io_semihosting.h
@@ -31,6 +31,8 @@
 #ifndef __IO_SH_H__
 #define __IO_SH_H__
 
+struct io_dev_connector;
+
 int register_io_dev_sh(struct io_dev_connector **dev_con);
 
 #endif /* __IO_SH_H__ */