The SimpleLink SDKs provide peripheral driver and WiFi libraries
and hardware register access header files for the Texas Instruments
SimpleLink SoCs.

For an explanation of the SimpleLink family SDK directory structure, see:
http://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_1_30_00_06/docs/simplelink_mcu_sdk/Users_Guide.html#directory-structure

The current version supported in Zephyr is the SimpleLink CC3220 SDK
1.50.00.06, downloaded from:

	http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK

The source files in the source/ti/devices/ and source/ti/drivers/
directories are copied from a Linux CC3220 SDK installation, using
the following commands:

  % cd ~/ti/simplelink_cc32xx_sdk_1_50_00_06/
  % find devices -name '*.[c|h]' | \
	cpio -pdm ~/zephyr/ext/hal/ti/simplelink/source/ti
  % find drivers -name '*.[c|h]' | \
	cpio -pdm ~/zephyr/ext/hal/ti/simplelink/source/ti

In a separate commit, the file modes and trailing whitespace are fixed.

Note: TI provides the driver library functions burned into ROM at the factory,
or updated via a service pack patch, thus saving application code space.

Calling driverlib APIs prefixed by "MAP_" will vector to those functions
already existing in ROM.

After setting CONFIG_HAS_CC3220SDK=y in Kconfig, most of the
peripheral driver library functions will be accessible from ROM,
except for some functions in the following modules, which are
compiled in the Kbuild file:
- driverlib/pin.c
- driverlib/utils.c
- driverlib/prcm.c

Setting CONFIG_SIMPLELINK_HOST_DRIVER=y builds the SimpleLink Host
Driver, which communicates over dedicated SPI to the
network coprocessor.
