drivers: usart: added empty files for the usart.

Added various standard files for the usart driver core. The USART driver
core is going to be responsible for all generic USART operations and
calling the correct chip driver when needed or requested. In other
words, is a thin abstraction layer for USART drivers.

Signed-off-by: Michel Megens <dev@michelmegens.net>
usart: core: implemented the core usart structure.

Implemented the core data structure for the USART device driver. The
USART device driver is located at drivers/usart/usart-core.c. A platform
specific driver is then using that driver to implement the hardware in
drivers/usart/usart-<platform-name>.c

The USART data structure contains:

	* a lock (mutex)
	* device structure (embedded, no pointer)
	* read fpointer
	* write fpointer
	* timeout for reads and writes

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'master' into usart

Signed-off-by: Michel Megens <dev@michelmegens.net>
usart: avr: implemented a basic USART AVR driver.

Implemented the basics for an AVR (ATmega) USART driver. The driver
makes use of the device core API to register a device. Communication to
the driver can be done using file operations.

Signed-off-by: Michel Megens <dev@michelmegens.net>
usart: atmega: implemented getc.

Implemented the getc functionality in the AVR USART driver.

Signed-off-by: Michel Megens <dev@michelmegens.net>
usart: core: implemented usart read.

* Implemented the read functionality for the USART core driver.
* Added a function to accept read calls to the AVR ATmega USART driver.

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'usart'

Basic USART core and AVR ATmega bus driver:

	* read
	* write
	* byte write
	* byte read
	* initialisation