lm4f: Add API for enabling/disabling peripherals clock source

The enum definitions are specified in the form
 31:5 register offset from SYSCTL_BASE for the clock register
 4:0  bit offset for the given peripheral

The names have the form [clock_type]_[periph_type]_[periph_number]
Where clock_type is
     RCC for run clock
     SCC for sleep clock
     DCC for deep-sleep clock

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add UART register definitions

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add UART function prototypes

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add UART "convenience" macros

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add basic UART implementation

Add basic functionality needed to setup the UART and send/recieve
data.
Interrupts, DMA, and more advanced features are not implemented in
this patch.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add basic UART echo example

Nothing fancy, just a demonstration of the blocking send and
recieve.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Use typedef's enum for UART parameters

typedef the enums used for the uart.
For example, change
enum uart_flowctl {
	UART_FLOWCTL_NONE,
	UART_FLOWCTL_SOFT,
	UART_FLOWCTL_HARD,
};

to:
typedef enum  {
	UART_FLOWCTL_NONE,
	UART_FLOWCTL_SOFT,
	UART_FLOWCTL_HARD,
} uart_flowctl_t;

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Modify uart example to use new clock API

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Fix UART bit definitions

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Implement UART Rx and Tx interrupt enable/disable

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lm4f: Add USB register definitions

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
NOTFORMERGE: lm4f: Add API for controlling the system clock sources

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>