Android 移植之 WIFI
2010-03-16 16:36:00 来源:WEB开发网1、前言
硬件平台:marvel 310,软件平台:maemo4,内核:2.6.28 (经过marvel的移植)
2、移植思想
(1)WIFI 模块本身和 cpu 之间的接口:我们的模块和cpu 之间的接口是 sdio 的,也就是说必须要先保证 SDIO 本身是工作的;
(2)WIFI 模块本身的上电时序:模块都有它自己的规律,所以必须要根据 spec 了解它本身的上电过程,严格遵守;
(3)以太网接口的创建:我们的WIFI模块本身是建立在SDIO口之上,而对上都是提供以太网接口,所以必须要保证这个接口以及创建;
(4)特殊处理:不同的模块都有它特别的地方,比如我们用的是 8686 和 compo 也就是说它和蓝牙共用天线,所以需要在初始化的时候做特殊的处理,发送特殊的命令,才能工作;
3.、移植过程
(1)sdio 本身是通过 gpio 口模拟的,所以需要对 gpio 口进行配置 ;
static mfp_cfg_t littleton_mmc3_pins[] = {
GPIO7_2_MMC3_DAT0,
GPIO8_2_MMC3_DAT1,
GPIO9_2_MMC3_DAT2,
GPIO10_2_MMC3_DAT3,
GPIO103_MMC3_CLK,
GPIO105_MMC3_CMD,
};
void pxa3xx_enable_mmc3_pins(void)
{
pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mmc3_pins));
}
在 littleton_init ()函数里面添加下面这一行: pxa3xx_enable_mmc3_pins();
(2)wifi 模块本身的初始化 ;
#define MFP_WIFI_V18_ENABLE (GPIO26_GPIO)
#define MFP_WLAN_RESETN (GPIO99_GPIO)
#define WIFI_WAKEUP_HOST (GPIO104_GPIO) /*error must be changed*/
#define WLAN_ENABLE_PIN 26
#define WLAN_RESET_PIN 99
#define M200_B
#ifdef M200_B
#define BT_RESET_PIN EXT1_GPIO(1)
#define BT_RESET_GPIO (GPIO1_2_GPIO)
#else
#define BT_RESET_GPIO (GPIO6_2_GPIO)
#define BT_RESET_PIN EXT1_GPIO(6)
#endif
static mfp_cfg_t lin2008_wifibt_pins[] = {
MFP_WIFI_V18_ENABLE,
MFP_WLAN_RESETN,
WIFI_WAKEUP_HOST,/*wakeup host*/
};
更多精彩
赞助商链接