AnsweredAssumed Answered

WL1271 register power function with MMC device

Question asked by Bruno De Paoli on Sep 25, 2014
Latest reply on Sep 26, 2014 by Bruno De Paoli

We have a custom iMX53 based platform running Android Gingerbread, Linux kernel 2.6.35 with a TiWi-BLE Wlan/Bluetooth device using the SDIO interface for WLAN.

 

We have a problem when the radio is being restarted where the OS loses communication with the radio.

 

It looks like the problem is caused by the fact that the power control initialisation in the platform-specific section is not being done correctly. The WL12xx porting guide

http://processors.wiki.ti.com/index.php/WL127x_Porting_Guide#Board_Initialization_file

has a section on power control and details how to register the power control function with the MMC device. Specifically the key piece of code is as follows:

 

static void wl12xx_init(int evm_id, int profile)
{
struct device *dev;
struct omap_mmc_platform_data *pdata;

…
…
dev = am335x_mmc[1].dev;
…
pdata->slots[0].set_power = wl12xx_set_power;
out:
return;
}

 

I have done a similar thing on our platform in the WL1271 driver. I dont think this is correct and the right approach is to do this in the board-specific code as specified in the porting guide. However the example above is TI/OMAP-specific and I'm unsure how to do this on the Freescale platform since the structures are different and the Freescale structures do no appear to support this in the same way.

Can anyone clarify if this is the right thing to do and how this is done on the Freescale platform?

 

Thanks,

Bruno

Outcomes