2010-12-20 17:17:21

by Brzezowski, Karen

[permalink] [raw]
Subject: WL1271 chip

SGkhDQpMdWNhIHN1Z2dlc3RlZCB0aGF0IEkgc2VuZCB0aGlzIHRvIGFsbCBvZiB5b3UhDQoNCkkg
bG9va2VkIGF0IGFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtem9vbS1wZXJpcGhlcmFscy5jIGZp
bGUuLg0KSSBkaWRuJ3Qgc2VlIGFueXRoaW5nIHNwZWNpZmljIHRvIFNESU8uLg0KDQpJIHdhcyBs
b29raW5nIGF0IGxpbnV4LTIuNi4zNi4yLi4NCklzIHRoaXMgdGhlIGNvcnJlY3QgdmVyc2lvbiB0
byBsb29rIGF0Pw0KDQpQbGVhc2UgcmVhZCBiZWxvdyBmb3Igb3JpZ2luYWwgcXVlc3Rpb24uDQpU
SEFOSyB5b3UgZXZlcnlvbmUgZm9yIEFOWSBoZWxwIHlvdSBjYW4gZ2l2ZSBtZSENCkthcmVuDQoN
Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpIaSBLYXJlbiwNCg0KDQo+IEhpIEx1Y2lhbm8s
DQo+ICANCj4gSeKAmW0gdmVyeSBzb3JyeSB0byBlbWFpbCAgeW91IGRpcmVjdGx5Lg0KDQpObyBw
cm9ibGVtLiAgQnV0IGl0IGlzIGFsd2F5cyBiZXR0ZXIgdG8gZW1haWwgdGhlIGxpbnV4LXdpcmVs
ZXNzQHZnZXIua2VybmVsLm9yZyBtYWlsaW5nIGxpc3QgdG9vLCBiZWNhdXNlIHRoZXJlIGFyZSBs
b3RzIG9mIG90aGVyIHBlb3BsZSB3aG8gY2FuIGhlbHAgeW91IHRoZXJlLg0KDQoNCj4gSSBhbSB2
ZXJ5IG5ldyB0byBwb3J0aW5nIGRyaXZlcnPigKYNCj4gDQo+IEkgaGF2ZSB0byBpbnRlZ3JhdGUv
cG9ydCBhIFdMMTI3MSBjaGlwIChJIHRoaW5rIGl04oCZcyBnb2luZyB0byBiZSB0aGUgDQo+IG9u
ZQ0KPiANCj4gbWFudWZhY3R1cmVkIGJ5IE11cmF0YSkuDQo+IA0KPiBJIHNlZSB0aGF0IHlvdSBt
YWludGFpbiB0aGUgd2wxMnh4IGRyaXZlcnMgb24gbGludXgtd2lyZWxlc3MgDQo+IGtlcm5lbC5v
cmcuDQo+IA0KPiAgDQo+IA0KPiBUaGUgcHJvY2Vzc29yIGlzIGlNWDIzMywgT1MgaXMgQW5kcm9p
ZCAoTGludXgpLg0KPiANCj4gIA0KPiANCj4gSSB3b3VsZCBiZSB2ZXJ5IGFwcHJlY2lhdGl2ZSBp
ZiB5b3UgY291bGQgZ2l2ZSBtZSBzb21lIA0KPiBhZHZpY2UvaW5zdHJ1Y3Rpb25zL2RvY3VtZW50
YXRpb24NCj4gDQo+IHRoYXQgd291bGQgaGVscCBtZSBvbiB1bmRlcnN0YW5kL3N0YXJ0L2NvbXBs
ZXRlIHRoaXMgdGFzay4NCg0KV2VsbCwgdGhlIHdsMTJ4eCBkcml2ZXIgc2hvdWxkIHdvcmsgbW9y
ZSBvciBsZXNzIG91dC1vZi10aGUtYm94LiAgVGhlIG9ubHkgdGhpbmcgeW91IG5lZWQgdG8gZG8g
aXMgdG8gc2V0IHVwIHRoZSBTRElPIGNvbm5lY3Rpb24gdG8geW91ciBjYXJkIChhc3N1bWluZyB0
aGF0IHlvdSdyZSB1c2luZyB0aGUgU0RJTyBidXMgdG8gY29ubmVjdCBpdCkuICBJJ20gbm90IGZh
bWlsaWFyIHdpdGggdGhlIGlNWDIzMywgYnV0IHdpdGggT01BUCwgaXQncyBwcmV0dHkgc2ltcGxl
LiAgWW91IGNhbiBzZWUgdGhlIGFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtem9vbS1wZXJpcGhl
cmFscy5jIGZpbGUgaW4gdGhlIExpbnV4IGtlcm5lbCBmb3IgYW4gZXhhbXBsZSBvbiBob3cgdG8g
c2V0IGl0IHVwIGZvciB0aGUgWm9vbSBib2FyZCAoT01BUC1iYXNlZCkuDQoNCg0KLS0NCkNoZWVy
cywNCkx1Y2EuDQoNCg0K


2010-12-20 21:04:48

by David H. Lynch Jr.

[permalink] [raw]
Subject: WL1271

I am looking to get the TI WL1271 WiFi working in an Android Froyo
system.
I have Linux kernel experience including network and wifi drivers.
I am gathering that there are atleast two different efforts to support
the TI1271 one based on the normal Linux kernel development process and
one that seems to be part of the TI Android community.
Can anyone comment on the relative merits of these approaches ?

Is it reasonable to assume that if I add the WL1271 to the Android
2.6.32 kernel tree using compat-wireless that it will properly integrate
with Android ? If not could someone point me towards resources specific
to Android's wireless implimentation ?

Thank You.




--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.587.7774 [email protected] http://www.dlasys.net
Over 25 years' experience in platforms, languages, and technologies too
numerous to list.

"Any intelligent fool can make things bigger and more complex... It
takes a touch of genius - and a lot of courage to move in the opposite
direction."
Albert Einstein



2010-12-21 18:50:36

by David H. Lynch Jr.

[permalink] [raw]
Subject: Re: WL1271

I am essentially doing exactly the same thing as you are - but I am a
few days behind you. I noted a post of yours about 10 days ago in
linux-omap that you were having voltage/SDIO detection problems. I am
having exactly that problem at this moment.
How did you work arround it ?
The WL1271 is attached to MMC2 on my system. All the examples in the
linux wireless tree are on SPI or MMC3. But I think I managed changing
things correctly - except that the error reports are mmc1:
Also the comments suggest that the WL1271 has its own internal voltage
regulation.
That and a CY8CTMG-200 touch screen are the only major items I need
working to polish off this project.


On Tue, 2010-12-21 at 01:31 +0400, Elvis Dowson wrote:
> Hi,
>
> On Dec 21, 2010, at 1:04 AM, David Lynch Jr. wrote:
>
> > I am looking to get the TI WL1271 WiFi working in an Android Froyo
> > system.
> > I have Linux kernel experience including network and wifi drivers.
> > I am gathering that there are atleast two different efforts to support
> > the TI1271 one based on the normal Linux kernel development process and
> > one that seems to be part of the TI Android community.
> > Can anyone comment on the relative merits of these approaches ?
> >
> > Is it reasonable to assume that if I add the WL1271 to the Android
> > 2.6.32 kernel tree using compat-wireless that it will properly integrate
> > with Android ? If not could someone point me towards resources specific
> > to Android's wireless implimentation ?
>
> I too am working on the very same subject, which is to get the Murata
> TI WL1271 chip working with Android 2.2.1.
>
> Chip integration with the board was verified using the mainline wl1271
> drivers (linux-2.6.37-rc6).
>
> With the proprietary TI drivers, I ran into issues getting it to work with my platform
> so, while that issue is being addressed, in parallel, I am going to try to use
> the compat-wireless package to get wl1271 working with android-2.6.32 and
> android-2.2.1.
>
> The only issue I see is I'm not sure if the mainline wl1271 driver currently supports
> the android specific wireless commands, and its integration with wpa_supplicant
> WEXT driver in the android repo. One could use the AWEXT wrapper core, in this
> case, but it is something that I need to see once I get to that stage, in a couple of days.
>
> Elvis Dowson
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2010-12-20 22:07:14

by Bob Copeland

[permalink] [raw]
Subject: Re: WL1271

On Mon, Dec 20, 2010 at 4:04 PM, David Lynch Jr. <[email protected]> wrote:
> ? ? ? ?Is it reasonable to assume that if I add the WL1271 to the Android
> 2.6.32 kernel tree using compat-wireless that it will properly integrate
> with Android ?

No; last I checked, Android has all kinds of hacks in the wext layer to
work with their UI. But in the mainline, new features are added to nl80211
and wext is deprecated.

> If not could someone point me towards resources specific
> to Android's wireless implimentation ?

There's this, but it's a bit out of date:

http://bobcopeland.com/android_wifi.html

Also I have a few Android ports/makefiles for wireless utitilies here:

https://github.com/bcopeland

>From there, you can follow github forks and see what the community
is doing with them.

My two cents: it's easier to just use the Android code, but it's worth
a whole lot more in the long run to work towards a mainline-friendly,
nl80211-based wireless system. That would make support of additional
mainline wireless drivers much easier.

--
Bob Copeland %% http://www.bobcopeland.com

2010-12-21 19:40:18

by Elvis Dowson

[permalink] [raw]
Subject: Re: WL1271

Hi,

On Dec 21, 2010, at 10:50 PM, David Lynch Jr. wrote:

> I am essentially doing exactly the same thing as you are - but I am a
> few days behind you. I noted a post of yours about 10 days ago in
> linux-omap that you were having voltage/SDIO detection problems. I am
> having exactly that problem at this moment.
> How did you work arround it ?
> The WL1271 is attached to MMC2 on my system. All the examples in the
> linux wireless tree are on SPI or MMC3. But I think I managed changing
> things correctly - except that the error reports are mmc1:
> Also the comments suggest that the WL1271 has its own internal voltage
> regulation.
> That and a CY8CTMG-200 touch screen are the only major items I need
> working to polish off this project.

If you could send me the schematics, I could comment on it.

There were a couple of hardware related problems that prevented the device from
booting up.

Here are some of the key things to watch out for:

a. You need a slow clock (SYS 32K signal from the omap processor) to the wlan module

b. You need to ensure that you have a 26Mhz TXCO signal coming in for the fast clock.

This would be controlled by a fixed voltage regulator. The wlan module asserts a WL_CLK_REQ
signal high, which is a signal sent to the LDO to turn on the 26MHz TXCO.

c. You need to probe MMC2 CLK signals to ensure that a 24MHz signal is being generated at the
output, when the MMC2 controller is initialized.

d. You need to update the mux settings to ensure that the MMC2 CMD, CLK, DAT 0 to DAT3, plus
GPIO pins for WLAN_EN and WLAN_IRQ are muxed correctly.

This should take care of it.

The SDIO detection problems occured because the 26MHZ TXCO was not being turn on.

You should also be aware of the TI WL1271 power up sequence, which is 10ms pulse high, 64us low,
and then asserted high for atleast 64ms. This is taken care of in the driver code.

Also use the linux-2.6.37-rc6 kernel patch, and apply the patch to read the MAC address from the nvs file.

Also put the firmware and nvs file in /lib/firmware folder, and configure wpa_supplicant.conf to connect
to a secured access point.

Best regards,

Elvis

2010-12-20 21:00:45

by Elvis Dowson

[permalink] [raw]
Subject: Re: WL1271 chip

Hi Karen,

On Dec 20, 2010, at 9:12 PM, Brzezowski, Karen wrote:

> I looked at arch/arm/mach-omap2/board-zoom-peripherals.c file..
> I didn't see anything specific to SDIO..

I'm attaching a patch that integrates the Murata WL1271 chip with the MMC2 SDIO
controller for the BeagleBoard. You can try to adapt this for you iMX platform.

> I was looking at linux-2.6.36.2..
> Is this the correct version to look at?

You will have to use linux-2.6.37-rc6 or higher for mainline kernel support for the
wl1271 device.

You will also need to ensure that you have the following kernel configuration options
are set:

CONFIG_REGULATOR_FIXED_VOLTAGE = y
CONFIG_WL12XX=m
CONFIG_WL1271=m
CONFIG_WL1271_SDIO=m
CONFIG_WL12XX_PLATFORM_DATA=y

Best regards,

Elvis Dowson


>From e84ded71b45aecd340ec6030a540d0305c43c82d Mon Sep 17 00:00:00 2001
From: Elvis Dowson <[email protected]>
Date: Fri, 17 Dec 2010 12:27:23 +0400
Subject: [PATCH] Add support for Murata wl1271 wlan module.

---
arch/arm/mach-omap2/Makefile | 1 +
arch/arm/mach-omap2/board-beagle20-wifi.c | 64 ++++++++++++++++++++++++++
arch/arm/mach-omap2/board-beagle20-wifi.h | 24 ++++++++++
arch/arm/mach-omap2/board-omap3beagle.c | 62 +++++++++++++++++++++++++
4 files changed, 151 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-omap2/board-beagle20-wifi.c
create mode 100644 arch/arm/mach-omap2/board-beagle20-wifi.h

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 60e51bc..36f2b69 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -119,6 +119,7 @@ obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o \
hsmmc.o
obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o
obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \
+ board-beagle20-wifi.o \
hsmmc.o
obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o \
hsmmc.o
diff --git a/arch/arm/mach-omap2/board-beagle20-wifi.c b/arch/arm/mach-omap2/board-beagle20-wifi.c
new file mode 100644
index 0000000..4f75e2d
--- /dev/null
+++ b/arch/arm/mach-omap2/board-beagle20-wifi.c
@@ -0,0 +1,64 @@
+/*
+ * linux/arch/arm/mach-omap2/board-beagle20-wifi.c
+ *
+ *
+ *
+ * Copyright (C) 2010 Texas Instruments Inc.
+ *
+ * Author :
+ * Elvis Dowson <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/clk.h>
+#include <linux/debugfs.h>
+#include <linux/delay.h>
+#include <linux/err.h>
+
+#include <linux/mmc/host.h>
+#include <linux/mmc/sdio_ids.h>
+
+#include <linux/gpio.h>
+
+#include "board-beagle20-wifi.h"
+#include "mux.h"
+
+void wlan_mux_init(void)
+{
+ pr_info("%s: Configuring mux settings for wl1271 wlan module\n", __func__);
+
+ /* OMAP_BEAGLE20_WIFI_PMENA_GPIO and OMAP_BEAGLE20_WIFI_IRQ_GPIO */
+ omap_mux_init_gpio(OMAP_BEAGLE20_WIFI_PMENA_GPIO, OMAP_PIN_OUTPUT);
+ omap_mux_init_gpio(OMAP_BEAGLE20_WIFI_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP);
+
+ /*
+ * MMC2 pin mux settings.
+ *
+ * The pix mux strings can be found in /arch/arm/mach-omap2/mux34xx.c
+ *
+ * Refer the TI OMAP 35x Technical Reference Manual (Rev.D), page 840
+ * for the following example.
+ *
+ * If the string name is ?xxx.yyy?
+ * xxx ? is the name of the default mode of the pad, usually Mode 0
+ * as described in the TRM.
+ * yyy ? is the pin on that pad you want to select.
+ *
+ * For example, MMC3 CLK line ("sdmmc3_clk") can be brought out in
+ * 2 places ("mcspi1_cs2" and "etk_clk").
+ *
+ */
+ omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP);
+ omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP);
+ omap_mux_init_signal("sdmmc2_dat0.sdmmc2_dat0", OMAP_PIN_INPUT_PULLUP);
+ omap_mux_init_signal("sdmmc2_dat1.sdmmc2_dat1", OMAP_PIN_INPUT_PULLUP);
+ omap_mux_init_signal("sdmmc2_dat2.sdmmc2_dat2", OMAP_PIN_INPUT_PULLUP);
+ omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP);
+}
+
diff --git a/arch/arm/mach-omap2/board-beagle20-wifi.h b/arch/arm/mach-omap2/board-beagle20-wifi.h
new file mode 100644
index 0000000..5ce7df2
--- /dev/null
+++ b/arch/arm/mach-omap2/board-beagle20-wifi.h
@@ -0,0 +1,24 @@
+/*
+ * linux/arch/arm/mach-omap2/board-beagle20-wifi.h
+ *
+ *
+ *
+ * Copyright (C) 2010 Texas Instruments Inc.
+ *
+ * Author :
+ * Elvis Dowson <[email protected]>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef BOARD_BEAGLE20_WIFI_H_
+#define BOARD_BEAGLE20_WIFI_H_
+
+#define OMAP_BEAGLE20_WIFI_PMENA_GPIO 139 /* Murata TI WL1271 WLAN module enable GPIO */
+#define OMAP_BEAGLE20_WIFI_IRQ_GPIO 137 /* Murata TI WL1271 WLAN module IRQ GPIO */
+
+void wlan_mux_init(void);
+
+#endif /* BOARD_BEAGLE20_WIFI_H_ */
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 50af879..6d1fcd6 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -30,7 +30,9 @@
#include <linux/mmc/host.h>

#include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
#include <linux/i2c/twl.h>
+#include <linux/wl12xx.h>

#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -45,6 +47,7 @@
#include <plat/nand.h>
#include <plat/usb.h>

+#include "board-beagle20-wifi.h"
#include "mux.h"
#include "hsmmc.h"
#include "timer-gp.h"
@@ -166,6 +169,14 @@ static struct omap2_hsmmc_info mmc[] = {
.gpio_cd = -EINVAL,
.gpio_wp = -EINVAL,
},
+ {
+ .name = "wl1271",
+ .mmc = 2,
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
+ .gpio_wp = -EINVAL,
+ .gpio_cd = -EINVAL,
+ .nonremovable = true,
+ },
{} /* Terminator */
};

@@ -177,6 +188,10 @@ static struct regulator_consumer_supply beagle_vsim_supply = {
.supply = "vmmc_aux",
};

+static struct regulator_consumer_supply beagle_vmmc2_supply = {
+ .supply = "vmmc",
+};
+
static struct gpio_led gpio_leds[];

static int beagle_twl_gpio_setup(struct device *dev,
@@ -187,6 +202,7 @@ static int beagle_twl_gpio_setup(struct device *dev,
/* link regulators to MMC adapters */
beagle_vmmc1_supply.dev = mmc[0].dev;
beagle_vsim_supply.dev = mmc[0].dev;
+ beagle_vmmc2_supply.dev = mmc[1].dev;

return 0;
}
@@ -217,6 +233,21 @@ static struct regulator_init_data beagle_vmmc1 = {
.consumer_supplies = &beagle_vmmc1_supply,
};

+/* VMMC2 for MMC2 card */
+static struct regulator_init_data beagle_vmmc2 = {
+ .constraints = {
+ .min_uV = 1850000,
+ .max_uV = 1850000,
+ .apply_uV = true,
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
+ | REGULATOR_MODE_STANDBY,
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
+ | REGULATOR_CHANGE_STATUS,
+ },
+ .num_consumer_supplies = 1,
+ .consumer_supplies = &beagle_vmmc2_supply,
+};
+
/* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */
static struct regulator_init_data beagle_vsim = {
.constraints = {
@@ -261,6 +292,31 @@ static struct regulator_init_data beagle_vpll2 = {
.consumer_supplies = &beagle_vdvi_supply,
};

+/* Fixed voltage regulator for wlan module */
+static struct fixed_voltage_config beagle_vwlan = {
+ .supply_name = "vwl1271",
+ .microvolts = 1850000, /* 1.8V */
+ .gpio = OMAP_BEAGLE20_WIFI_PMENA_GPIO,
+ .startup_delay = 70000, /* 70msec */
+ .enable_high = 1,
+ .enabled_at_boot = 0,
+ .init_data = &beagle_vmmc2,
+};
+
+static struct platform_device omap_vwlan_device = {
+ .name = "reg-fixed-voltage",
+ .id = 1,
+ .dev = {
+ .platform_data = &beagle_vwlan,
+ },
+};
+
+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
+ .irq = OMAP_GPIO_IRQ(OMAP_BEAGLE20_WIFI_IRQ_GPIO),
+ /* ZOOM ref clock is 26 MHz */
+ .board_ref_clock = 1,
+};
+
static struct twl4030_usb_data beagle_usb_data = {
.usb_mode = T2_USB_MODE_ULPI,
};
@@ -455,6 +511,12 @@ static void __init omap3_beagle_init(void)
omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);

beagle_display_init();
+
+ /* wl12xx wlan module */
+ wlan_mux_init();
+ if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
+ pr_err("error setting wl12xx data\n");
+ platform_device_register(&omap_vwlan_device);
}

MACHINE_START(OMAP3_BEAGLE, "Custom BeagleBoard 2.0")
--
1.7.0.4




2010-12-20 17:47:24

by Arend van Spriel

[permalink] [raw]
Subject: RE: WL1271 chip

SSBhbSBhbHNvIG5vdCBmYW1pbGlhciB3aXRoIGkuTVgyMzMsIGJ1dCBnb29nbGluZyBpdCB0aGlz
IHNlZW1zIHRvIGJlIGEgRnJlZXNjYWxlIGFwcCBwcm9jZXNzb3Igd2l0aCBBUk05MjZFSi1TIGNv
cmUgYW5kIGl0IGhhcyBTRElPIHJldjIuMCBjb21wbGlhbnQgaW50ZXJmYWNlIGludGVncmF0ZWQu
IFRoZXJlIGEgYXJjaC9hcm0vbWFjaC1pbXggZGlyZWN0b3J5IGNvbnRhaW5pbmcgaS5NWDI3IHBy
b2Nlc3NvciB3aGljaCBoYXMgc29tZSBzaW1pbGFyaXRpZXMgKHNhbWUgY29yZSBhbmQgTU1DL1NE
IGludGVyZmFjZXMpLiBTbyBpdCBjb3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHlv
dXIgcG9ydGluZyBlZmZvcnQuDQoNCkFub3RoZXIgaGludCBtYXkgYmUgdGhhdCBTRElPIGlzIHJl
bGF0ZWQgdG8gTU1DL1NELiBTbyBpbiBib2FyZC16b29tLXBlcmlwaGVyYWxzLmMgeW91IHdpbGwg
ZmluZCBtb3JlIHdoZW4gc2VhcmNoaW5nIGZvciAnbW1jJy4gZWc6DQoNCnN0YXRpYyBzdHJ1Y3Qg
b21hcDJfaHNtbWNfaW5mbyBtbWNbXSBfX2luaXRkYXRhID0gew0KICAgICAgICAgICA6DQogICAg
ICAgICAgIDoNCiAgICAgICAgew0KICAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJ3
bDEyNzEiLA0KICAgICAgICAgICAgICAgIC5tbWMgICAgICAgICAgICA9IDMsDQogICAgICAgICAg
ICAgICAgLmNhcHMgICAgICAgICAgID0gTU1DX0NBUF80X0JJVF9EQVRBLA0KICAgICAgICAgICAg
ICAgIC5ncGlvX3dwICAgICAgICA9IC1FSU5WQUwsDQogICAgICAgICAgICAgICAgLmdwaW9fY2Qg
ICAgICAgID0gLUVJTlZBTCwNCiAgICAgICAgICAgICAgICAubm9ucmVtb3ZhYmxlICAgPSB0cnVl
LA0KICAgICAgICB9LA0KICAgICAgICB7fSAgICAgIC8qIFRlcm1pbmF0b3IgKi8NCn07DQoNCkdy
LiBBdlMNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IGxp
bnV4LXdpcmVsZXNzLW93bmVyQHZnZXIua2VybmVsLm9yZyBbbGludXgtd2lyZWxlc3Mtb3duZXJA
dmdlci5rZXJuZWwub3JnXSBPbiBCZWhhbGYgT2YgQnJ6ZXpvd3NraSwgS2FyZW4gW0thcmVuLkJy
emV6b3dza2lAcGR0LmNvbV0NClNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMjAsIDIwMTAgNjoxMiBQ
TQ0KVG86IGxpbnV4LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZw0KQ2M6IEJyemV6b3dza2ksIEth
cmVuDQpTdWJqZWN0OiBXTDEyNzEgY2hpcA0KDQpIaSENCkx1Y2Egc3VnZ2VzdGVkIHRoYXQgSSBz
ZW5kIHRoaXMgdG8gYWxsIG9mIHlvdSENCg0KSSBsb29rZWQgYXQgYXJjaC9hcm0vbWFjaC1vbWFw
Mi9ib2FyZC16b29tLXBlcmlwaGVyYWxzLmMgZmlsZS4uDQpJIGRpZG4ndCBzZWUgYW55dGhpbmcg
c3BlY2lmaWMgdG8gU0RJTy4uDQoNCkkgd2FzIGxvb2tpbmcgYXQgbGludXgtMi42LjM2LjIuLg0K
SXMgdGhpcyB0aGUgY29ycmVjdCB2ZXJzaW9uIHRvIGxvb2sgYXQ/DQoNClBsZWFzZSByZWFkIGJl
bG93IGZvciBvcmlnaW5hbCBxdWVzdGlvbi4NClRIQU5LIHlvdSBldmVyeW9uZSBmb3IgQU5ZIGhl
bHAgeW91IGNhbiBnaXZlIG1lIQ0KS2FyZW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
CkhpIEthcmVuLA0KDQoNCj4gSGkgTHVjaWFubywNCj4NCj4gSeKAmW0gdmVyeSBzb3JyeSB0byBl
bWFpbCAgeW91IGRpcmVjdGx5Lg0KDQpObyBwcm9ibGVtLiAgQnV0IGl0IGlzIGFsd2F5cyBiZXR0
ZXIgdG8gZW1haWwgdGhlIGxpbnV4LXdpcmVsZXNzQHZnZXIua2VybmVsLm9yZyBtYWlsaW5nIGxp
c3QgdG9vLCBiZWNhdXNlIHRoZXJlIGFyZSBsb3RzIG9mIG90aGVyIHBlb3BsZSB3aG8gY2FuIGhl
bHAgeW91IHRoZXJlLg0KDQoNCj4gSSBhbSB2ZXJ5IG5ldyB0byBwb3J0aW5nIGRyaXZlcnPigKYN
Cj4NCj4gSSBoYXZlIHRvIGludGVncmF0ZS9wb3J0IGEgV0wxMjcxIGNoaXAgKEkgdGhpbmsgaXTi
gJlzIGdvaW5nIHRvIGJlIHRoZQ0KPiBvbmUNCj4NCj4gbWFudWZhY3R1cmVkIGJ5IE11cmF0YSku
DQo+DQo+IEkgc2VlIHRoYXQgeW91IG1haW50YWluIHRoZSB3bDEyeHggZHJpdmVycyBvbiBsaW51
eC13aXJlbGVzcw0KPiBrZXJuZWwub3JnLg0KPg0KPg0KPg0KPiBUaGUgcHJvY2Vzc29yIGlzIGlN
WDIzMywgT1MgaXMgQW5kcm9pZCAoTGludXgpLg0KPg0KPg0KPg0KPiBJIHdvdWxkIGJlIHZlcnkg
YXBwcmVjaWF0aXZlIGlmIHlvdSBjb3VsZCBnaXZlIG1lIHNvbWUNCj4gYWR2aWNlL2luc3RydWN0
aW9ucy9kb2N1bWVudGF0aW9uDQo+DQo+IHRoYXQgd291bGQgaGVscCBtZSBvbiB1bmRlcnN0YW5k
L3N0YXJ0L2NvbXBsZXRlIHRoaXMgdGFzay4NCg0KV2VsbCwgdGhlIHdsMTJ4eCBkcml2ZXIgc2hv
dWxkIHdvcmsgbW9yZSBvciBsZXNzIG91dC1vZi10aGUtYm94LiAgVGhlIG9ubHkgdGhpbmcgeW91
IG5lZWQgdG8gZG8gaXMgdG8gc2V0IHVwIHRoZSBTRElPIGNvbm5lY3Rpb24gdG8geW91ciBjYXJk
IChhc3N1bWluZyB0aGF0IHlvdSdyZSB1c2luZyB0aGUgU0RJTyBidXMgdG8gY29ubmVjdCBpdCku
ICBJJ20gbm90IGZhbWlsaWFyIHdpdGggdGhlIGlNWDIzMywgYnV0IHdpdGggT01BUCwgaXQncyBw
cmV0dHkgc2ltcGxlLiAgWW91IGNhbiBzZWUgdGhlIGFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQt
em9vbS1wZXJpcGhlcmFscy5jIGZpbGUgaW4gdGhlIExpbnV4IGtlcm5lbCBmb3IgYW4gZXhhbXBs
ZSBvbiBob3cgdG8gc2V0IGl0IHVwIGZvciB0aGUgWm9vbSBib2FyZCAoT01BUC1iYXNlZCkuDQoN
Cg0KLS0NCkNoZWVycywNCkx1Y2EuDQoNCg0KTu+/ve+/ve+/ve+/ve+/vXLvv73vv71577+977+9
77+9Yu+/vVjvv73vv73Hp3bvv71e77+9Kd66ey5u77+9K++/ve+/ve+/ve+/vXvvv73vv70q3pXv
v70s77+9e2F577+9HcqH2pnvv70sagfvv73vv71m77+977+977+9aO+/ve+/ve+/vXrvv70e77+9
d++/ve+/ve+/vSDvv73vv73vv71qOit277+977+977+9d++/vWrvv71t77+977+977+977+9B++/
ve+/ve+/ve+/vXpaK++/ve+/ve+/ve+/ve+/vd2iaiLvv73vv70h77+9aQ0K


2010-12-20 21:31:56

by Elvis Dowson

[permalink] [raw]
Subject: Re: WL1271

Hi,

On Dec 21, 2010, at 1:04 AM, David Lynch Jr. wrote:

> I am looking to get the TI WL1271 WiFi working in an Android Froyo
> system.
> I have Linux kernel experience including network and wifi drivers.
> I am gathering that there are atleast two different efforts to support
> the TI1271 one based on the normal Linux kernel development process and
> one that seems to be part of the TI Android community.
> Can anyone comment on the relative merits of these approaches ?
>
> Is it reasonable to assume that if I add the WL1271 to the Android
> 2.6.32 kernel tree using compat-wireless that it will properly integrate
> with Android ? If not could someone point me towards resources specific
> to Android's wireless implimentation ?

I too am working on the very same subject, which is to get the Murata
TI WL1271 chip working with Android 2.2.1.

Chip integration with the board was verified using the mainline wl1271
drivers (linux-2.6.37-rc6).

With the proprietary TI drivers, I ran into issues getting it to work with my platform
so, while that issue is being addressed, in parallel, I am going to try to use
the compat-wireless package to get wl1271 working with android-2.6.32 and
android-2.2.1.

The only issue I see is I'm not sure if the mainline wl1271 driver currently supports
the android specific wireless commands, and its integration with wpa_supplicant
WEXT driver in the android repo. One could use the AWEXT wrapper core, in this
case, but it is something that I need to see once I get to that stage, in a couple of days.

Elvis Dowson