TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x sdio wifi

hi :

我们使用AM335X上用RTL8723BS的WIFI,现在碰到个问题,ifconfig -a发现没有wlan0设备,调试驱动发现一直卡在sdio_readl函数中,mmc_wait_for_req这个函数一直没有返回值,我问了下模块供应商,他们说在WIFI上电的时候需要一个rescan函数。这个需要找平台厂家,我想请教下,ti平台下,类似功能的函数叫什么函数名?

下面的是SUNXI平台的函数例子

int platform_wifi_power_on(void)
{
int ret = 0;
#ifdef CONFIG_MMC_SUNXI_POWER_CONTROL
unsigned int mod_sel = mmc_pm_get_mod_type();
#endif // CONFIG_MMC_SUNXI_POWER_CONTROL

printk("[huzz]%s:%s\n",__func__,__FILE__);
#ifdef CONFIG_MMC_SUNXI_POWER_CONTROL
if (mod_sel == SUNXI_SDIO_WIFI_NUM_RTL8189ES) {
rtl8189es_sdio_powerup();
sunximmc_rescan_card(SDIOID, 1);
printk("[rtl8189es] %s: power up, rescan card.\n", __FUNCTION__);
} else {
ret = -1;
printk("[rtl8189es] %s: mod_sel = %d is incorrect.\n", __FUNCTION__, mod_sel);
}
#endif // CONFIG_MMC_SUNXI_POWER_CONTROL

return ret;
}

Eggsy Pang:

参考以下link:

http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/127565.aspx

zizhen hu:

回复 Eggsy Pang:

hi:

    现在的情况是/sys/bus/sdio/devices下已经有mmc1设备了,但是ifconfig -a没有wlan0。WIFI的上电也OK了。经过调试,发现wifi的probe函数没有执行完,卡在mmc_wait_for_req,在这个函数不往下跑了。

Jian Zhou:

回复 zizhen hu:

这个函数有进去看卡在哪里了么?是不是DMA传输没有完成?

zizhen hu:

回复 Jian Zhou:

hi:

    周工,从调试来看,好像是CMD53命令没有完成。发送CMD53的时候,卡在mmc_wait_for_req_done函数的wait_for_completion函数中。

Jian Zhou:

回复 zizhen hu:

那就是SDIO wifi没有回复。

你的SDIO wifi需要SD 卡那种scan的过程么?如果不需要可以把这部分精简掉。

zizhen hu:

回复 Jian Zhou:

周工:

      应该是需要的,我在帖子的第一楼想问的就是这个rescan函数。我想请教下,SDK-PROCESSOR-3.02有没有类似的rescan函数?

我问厂家,厂家是这么回复我的。

根据你发来的log,应该是在软件里面没有rescan,可参考platform_ARM_SUNnI_sdio.c

        

       rescan的代码需要找处理器的平台厂商要!

       有rescan的kernel的log参考如下:

      

Jian Zhou:

回复 zizhen hu:

AM335x的接口是支持SD V3.01协议的,整个rescan SD卡的过程,请参考AM335x TRM的Figure 18-35和Figure 18-36。

你的SDIO wifi支持什么样的协议?

zizhen hu:

回复 Jian Zhou:

数据手册里这么些的。Complies with SDIO 1.1/2.0/3.0 for WLAN with clock rate up to 100MHz (DDR50)

具体的rescan代码可否给个样例?

还有您说的rescan过程的图示,在TRM文档中,图18-35和图18-36是寄存器的说明。

PS:rescan的操作具体是指什么?比如通常SD卡插入的时候,是不是会自动rescan?

我刚才做了个测试,开机的时候不加载WIFI驱动,开机后才加载WIFI驱动,并把dts中的ti,non-removable去掉。这样当我手动Insmod 8723bs的时候是不是就相当于一次插入卡的操作?会不会自动rescan?实验结果和开机自动加载模块的结果一样,卡在CMD53命令。测量示波器,发现整个启动过程中,SD_D0上也没发现数据,只有SD_CLK和SD_CMD有数据。

Jian Zhou:

回复 zizhen hu:

你看的是哪版的TRM,下一个最新的看下,可能标号不一样,寄存器描述之前就是scan流程。

数据线上没有数据的话,就是因为AM3352发出cmd以后,wifi没有给response导致的,你问问厂家支持不支持cmd53这个command。

zizhen hu:

回复 Jian Zhou:

周工,您好,抱歉现在才回复。和厂家邮件通讯太没效率了。

    今天我和厂家那边沟通,他们确认说支持CMD53命令。他们硬件给出的建议是SDIO的6个线上是否必须要用到3.3v上拉,他说他们以前碰到的项目不需要这个上拉,请教下

1.SDIO的3.3V上拉是必须的吗?

2.CMD53没有应答还有其他原因导致吗?

谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » am335x sdio wifi
分享到: 更多 (0)