diff --git a/wl12xx/Android.mk b/wl12xx/Android.mk
new file mode 100644
index 0000000..7ad0e2c
--- /dev/null
+++ b/wl12xx/Android.mk
@@ -0,0 +1,20 @@
+LOCAL_PATH := $(my-dir)
+TARGET_OUT_WLAN_FW := $(TARGET_OUT_ETC)/firmware/ti-connectivity
+
+# WLAN FW file for wl1271
+include $(CLEAR_VARS)
+LOCAL_MODULE := wl1271-fw-2.bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_WLAN_FW)
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+LOCAL_MODULE_TAGS := optional
+include $(BUILD_PREBUILT)
+
+# WLAN NVS file for wl1271
+include $(CLEAR_VARS)
+LOCAL_MODULE := wl1271-nvs.bin
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_WLAN_FW)
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+LOCAL_MODULE_TAGS := optional
+include $(BUILD_PREBUILT)
diff --git a/wl12xx/LICENCE b/wl12xx/LICENCE
new file mode 100644
index 0000000..085f6c7
--- /dev/null
+++ b/wl12xx/LICENCE
@@ -0,0 +1,151 @@
+Texas Instruments Incorporated
+Technology and Software Publicly Available
+Software (Object Code) License Agreement
+
+
+IMPORTANT - PLEASE READ THE FOLLOWING LICENSE AGREEMENT CAREFULLY. THIS IS
+	A LEGALLY BINDING AGREEMENT.  DO NOT DOWNLOAD THE LICENSED MATERIALS
+	UNLESS: (1) YOU ARE AUTHORIZED TO ACCEPT AND AGREE TO THE TERMS OF THIS
+	LICENSE AGREEMENT AND (2) YOU INTEND TO ENTER INTO AND TO BE BOUND BY
+	THE TERMS OF THIS AGREEMENT.
+
+This Software License Agreement ("Agreement") is a legal agreement between you
+	(either an individual or entity) and Texas Instruments Incorporated
+	("TI").  The "Licensed Materials" subject to this Agreement include,
+	in whole or in part, the software programs that accompany this Agreement
+	and any "on-line" or electronic documentation associated with these
+	programs.  By installing, copying or otherwise using the Licensed
+	Materials you agree to abide by the terms of this Agreement.
+	If you choose not to accept or agree with these terms, do not download
+	or install the Licensed Materials.
+
+
+1. Object Code License.  TI hereby grants to you a limited, non-exclusive
+	license to reproduce and use the Licensed Materials provided to you in
+	object code format and to distribute an unlimited number of object or
+	executable copies of such Licensed Materials, provided that such object
+	or executable copies are used solely and exclusively on devices
+	manufactured by or for TI.
+
+2. Termination.  This license is effective until terminated.  Without prejudice
+	to any other rights, TI may terminate your right to use the Licensed
+	Materials under this Agreement if you fail to comply with the terms of
+	this Agreement.  In such event, you shall destroy all copies of the
+	Licensed Materials, including all portions and derivatives thereof.
+
+3. Intellectual Property Rights.  The Licensed Materials being provided to you
+	hereunder are being made publicly available by TI, even though they
+	contain copyrighted material of TI and its licensors, if applicable.
+	In no event may you alter, remove or destroy any copyright notice
+	included in the Licensed Materials.  To the extent that any of the
+	Licensed Materials are provided in binary or object code only, you may
+	not unlock, decompile, reverse engineer, disassemble or otherwise
+	translate such binary or object code to human-perceivable form. The
+	source code of such reverse engineered code may contain TI trade secret
+	and other proprietary information.  Further, nothing shall obligate TI
+	to provide you with source code for the Licensed Materials licensed to
+	you in binary or object code only under this Agreement.  TI reserves all
+	rights not specifically granted under this Agreement.
+
+4. Warranties and Limitations.  THE LICENSED MATERIALS ARE PROVIDED "AS IS". TI
+	MAKES NO WARRANTY OR REPRESENTATION, EXPRESS, IMPLIED OR STATUTORY,
+	INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTIBILITY, FITNESS FOR A
+	PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS OF
+	RESPONSES, RESULTS AND LACK OF NEGLIGENCE.  TI DISCLAIMS ANY WARRANTY OF
+	TITLE, QUIET ENJOYMENT, QUIET POSESSION, AND NON-INFRINGEMENT OF ANY
+	THIRD PARTY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE LICENSED
+	MATERIALS OR USE OF THOSE MATERIALS.
+
+YOU ACKNOWLEDGE AND AGREE THAT THE LICENSED MATERIALS MAY NOT BE INTENDED FOR
+	PRODUCTION APPLICATIONS AND MAY CONTAIN IRREGULARITIES AND DEFECTS NOT
+	FOUND IN PRODUCTION SOFTWARE.  FURTHERMORE, YOU ACKNOWLEDGE AND AGREE
+	THAT THE LICENSED MATERIALS HAVE NOT BEEN TESTED OR CERTIFIED BY ANY
+	GOVERNMENT AGENCY OR INDUSTRY REGULATORY ORGANIZATION OR ANY OTHER THIRD
+	PARTY ORGANIZATION.  YOU AGREE THAT PRIOR TO USING, INCORPORATING OR
+	DISTRIBUTING THE LICENSED MATERIALS IN OR WITH ANY COMMERCIAL PRODUCT
+	THAT YOU WILL THOROUGHLY TEST THE PRODUCT AND THE FUNCTIONALITY OF THE
+	LICENSED MATERIALS IN OR WITH THAT PRODUCT AND BE SOLELY RESPONSIBLE FOR
+	ANY PROBLEMS OR FAILURES.
+
+IN NO EVENT SHALL TI, OR ANY APPLICABLE LICENSOR, BE LIABLE FOR ANY SPECIAL,
+	INDIRECT, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED
+	ON ANY THEORY OF LIABILITY, ARISING IN ANY WAY OUT OF THIS AGREEMENT,
+	OR YOUR USE OF THE LICENSED MATERIALS, WHETHER OR NOT TI HAS BEEN
+	ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  EXCLUDED DAMAGES INCLUDE,
+	BUT ARE NOT LIMITED TO, COST OF REMOVAL OR REINSTALLATION, OUTSIDE
+	COMPUTER TIME, LABOR COSTS, LOSS OR CORRUPTION OF DATA, LOSS OF
+	GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF USE OR
+	INTERRUPTION OF BUSINESS OR ANY OTHER ECONOMIC LOSS.  IN NO EVENT WILL
+	TI'S AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF YOUR USE
+	OF THE LICENSED MATERIALS EXCEED FIVE HUNDRED U.S. DOLLARS (US$500).
+
+Because some jurisdictions do not allow the exclusion or limitation of
+	incidental or consequential damages or limitation on how long an implied
+	warranty lasts, the above limitations or exclusions may not apply to
+	you.
+
+5. Export Control. Thesoftware programs and any "on-line" documentation as well
+	as any updates or upgrades to such software programs or documentation
+	may be subject to the export or import regulations of certain countries.
+	You agree to comply with all such regulations and acknowledge that you
+	have the responsibility to obtain any licenses or other authorizations
+	that may be required to export, re-export or import the Licensed
+	Materials.
+
+6. Governing Law, Jurisdiction and Severability.  This Agreement will be
+	governed by and interpreted in accordance with the laws of the State of
+	Texas, without reference to that state's conflict of laws principles.
+	This Agreement shall not be governed by the United Nations Convention on
+	Contracts for the International Sale of Goods, nor shall it be governed
+	by the Uniform Computer Information Transactions Act (UCITA).  Any
+	dispute arising out of or related to this Agreement will be brought in,
+	and each party consents to the exclusive jurisdiction and venue in the
+	state and federal courts sitting in Dallas Country, Texas. Each party
+	waives all defenses of lack of personal jurisdiction and forum
+	non-conveniens and agrees that process may be served on either party in
+	a manner authorized by applicable law or court rule.  If for any reason
+	a court of competent jurisdiction finds any provision of the Agreement
+	to be unenforceable, that provision will be enforced to the maximum
+	extent possible to effectuate the intent of the parties and the
+	remainder of the Agreement shall continue in full force and effect.
+
+7. PRC Provisions.  If you are located in the People's Republic of China ("PRC")
+	or if the Licensed Materials will be sent to the PRC, the following
+	provisions shall apply and shall supersede any other provisions in this
+	Agreement concerning the same subject matter as the following
+	provisions:
+
+	a.	Registration Requirements.  You shall be solely responsible for
+	performing all acts and obtaining all approvals that may be required in
+	connection with this Agreement by the government of the PRC, including
+	but not limited to registering pursuant to, and otherwise complying
+	with, the PRC Measures on the Administration of Software Products,
+	Management Regulations on Technology Import-Export, and Technology
+	Import and Export Contract Registration Management Rules. Upon receipt
+	of such approvals from the government authorities, you shall forward
+	evidence of all such approvals to TI for its records.  In the event that
+	you fail to obtain any such approval or registration, you shall be
+	solely responsible for any and all losses, damages or costs resulting
+	therefrom, and shall indemnify TI for all such losses, damages or costs.
+
+	b.	Governing Language.  This Agreement is written and executed in
+	the English language.  If a translation of this Agreement is required
+	for any purpose, including but not limited to registration of the
+	Agreement pursuant to any governmental laws, regulations or rules, you
+	shall be solely responsible for creating such translation.  Any
+	translation of this Agreement into a language other than English is
+	intended solely in order to comply with such laws or for reference
+	purposes, and the English language version shall be authoritative and
+	controlling.
+
+8. Entire Agreement.  This is the entire Agreement between you and TI and
+	supersedes any prior agreement between the parties related to the
+	subject matter of this Agreement. No amendment or modification of this
+	Agreement will be effective unless in writing and signed by a duly
+	authorized representative of TI.  You hereby warrant and represent that
+	you have obtained all authorizations and other applicable consents
+	required empowering you to enter into this Agreement.
+
+1
+TILAW-#236402v3
+
diff --git a/wl12xx/ti-wl12xx-vendor.mk b/wl12xx/ti-wl12xx-vendor.mk
new file mode 100644
index 0000000..cca2a75
--- /dev/null
+++ b/wl12xx/ti-wl12xx-vendor.mk
@@ -0,0 +1,3 @@
+PRODUCT_PACKAGES += \
+	wl1271-fw-2.bin \
+	wl1271-nvs.bin 
diff --git a/wl12xx/wl1271-fw-2.bin b/wl12xx/wl1271-fw-2.bin
new file mode 100644
index 0000000..8d18611
--- /dev/null
+++ b/wl12xx/wl1271-fw-2.bin
Binary files differ
diff --git a/wl12xx/wl1271-nvs.bin b/wl12xx/wl1271-nvs.bin
new file mode 100644
index 0000000..91978f9
--- /dev/null
+++ b/wl12xx/wl1271-nvs.bin
Binary files differ
