The CC3200 SDK provides a peripheral driver library and hardware
register access header files for the Texas Instruments SimpleLink
CC3200 SoC.

The current version supported in Zephyr is CC3200 SDK V1.2.0, downloaded
from:

	http://www.ti.com/tool/cc3200sdk

Files in driverlib/ and inc/ are copied from an SDK installation
(without modification).

After setting CONFIG_HAS_CC3200SDK=y in Kconfig, there are two methods
for using the peripheral driver library:

1) (Default) Use the driverlib functions in ROM instead of RAM.

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

For the zephyr shell sample, for example, this resulted in a savings of
about 2Kb in code space.

Setting CONFIG_CC3200SDK_ROM_DRIVERLIB enables all driverlib APIs prefixed by
"MAP_" to vector to those functions already existing in ROM.

See: Section 6.2.2 "Linking User Application with ROM APIs",
     CC3200 Programmer's Guide, www.ti.com/lit/pdf/swru369

2) Use the driver library functions built from the CC3200SDK files in Zephyr.

Setting CONFIG_CC3200SDK_BUILTIN allows building those files within
the Zephyr ext/hal/ti/ subdirectory. Though this will take more code space
than using the ROM driverlib functions, this may be useful for debugging
purposes.

Applications can use the two configurations simultaneously:  For example, calling
APIs without the "MAP_" prefix would call into Zephyr-built driver lib functions in
RAM, while calling APIs with the "MAP_" prefix would call into the ROM.
