- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
大家好,我使用BCM43438并创建了dts,但是在WL_REG_ON上遇到了困难。
当我设置为GPIO_ACTIVE_LOW,却不能正常启动,设置为HIGH却能启动内部稳压器,这真的太奇怪了,我想知道这个到底是为什么啊?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
我们芯片WL_REG_ON 确实是拉高启动啊。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
不是啊,我知道是高电平启动,可是这个引脚的模式是低电平有效,代表复位,不知道为什么是相反的,而且我重新做了板子发现还是一样,不能启动,sdio扫描不到就是说没有响应。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
我记得在驱动中需要再主动对WL_REG_ON 再主动操作, 比如拉高, 以前不使用dts的时候,还需要额外有api 来操作power。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
对呀,感觉很奇怪,我看别人的dts里面都是直接写的LOW,在pwrseq_simple这个文件里面,设置的就是拉低后变高,不知道为啥会是反着的。我测量了一下设置reset-gpios=<GPIO_ACTIVE_LOW>确实会拉高一段时间,但是之后又恢复了低电平状态,这个引脚对于WL_REG_ON来说应该就是复位的设置啊,低电平复位我想我写的应该没有错误,可是不知道为啥不能用。
还有啊,你们的那个代理不知道为什么说不给我支持,搞得我现在马上都要被开除了,搞了第二版发现晶振还是不能起振,你们都不能帮帮我吗?真的太让人伤心了,我看别人的都没有问题,我都不知道我的问题在哪里,我是参考了君正的原理图的,所以我怀疑是不是布局的问题。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
在dhd_linux_platdev.c 里面有个函数,
wifi_platform_set_power , 你可以检查下这个里面的regulator_enable 是否可以将对应的GPIO拉起来。
还有个地方也是调用wifi power的,有些驱动版本可能会这样使用dhd_gpio.c 里面的函数
dhd_wlan_set_power , 如果有你也可以检查下里面关于gpio的调用情况。
我们的wifi 在启动的时候会拉高初始化, 完成后会关闭wifi的,所以掉电是正常的。
后面我们一般会用
ifconfig wlan0 up 这样的动作来测试, 这个时候就开始正常工作了。
如果可以的话,请上传dmesg log上来。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
再检查下SDIO的接口是否有添加上拉电阻。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
已经添加了呢,而且按照标准的47K上拉
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你这个log 显示mmc0 没有成功枚举啊,还在降低频率retry, 我这边平台的对比log,还是要检查SDIO接口的问题,你是飞线的接口吗?
1.548019] sdhci: Secure Digital Host Controller Interface driver
[ 1.552909] sdhci: Copyright(c) Pierre Ossman
[ 1.555973] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.561294] /soc/aips-bus@02100000/usdhc@02194000: voltage-ranges unspecified
[ 1.569248] sdhci-esdhc-imx 2194000.usdhc: No vmmc regulator found
[ 1.574147] sdhci-esdhc-imx 2194000.usdhc: No vqmmc regulator found
[ 1.618470] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA
[ 1.632743] /soc/aips-bus@02100000/usdhc@02198000: voltage-ranges unspecified
[ 1.641703] sdhci-esdhc-imx 2198000.usdhc: Got WP GPIO
[ 1.647796] sdhci-esdhc-imx 2198000.usdhc: allocated mmc-pwrseq
[ 1.662201] sdhci-esdhc-imx 2198000.usdhc: No vqmmc regulator found
[ 1.717437] mmc2: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[ 1.723963] /soc/aips-bus@02100000/usdhc@0219c000: voltage-ranges unspecified
[ 1.730902] sdhci-esdhc-imx 219c000.usdhc: could not get ultra high speed state, work on normal mode
[ 1.740853] sdhci-esdhc-imx 219c000.usdhc: Got CD GPIO
[ 1.749838] sdhci-esdhc-imx 219c000.usdhc: Got WP GPIO
[ 1.762054] sdhci-esdhc-imx 219c000.usdhc: No vmmc regulator found
[ 1.769045] sdhci-esdhc-imx 219c000.usdhc: No vqmmc regulator found
[ 1.819629] mmc3: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
[ 1.827850] galcore: clk_get 2d core clock failed, disable 2d/vg!
[ 1.832891] Galcore version 5.0.11.41671
[ 2.051189] mmc2: new high speed SDIO card at address 0001
[ 2.148490] mmc3: new high speed SDHC card at address e624
[ 2.157514] mmcblk3: mmc3:e624 SS16G 14.8 GiB
[ 2.172217] mmcblk3: p1 p2 p3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
对啊,我也不知道为啥,没有飞线呢,我是直接在电路板上做的测试。都已经打了第二次板了发现还是不成功呢,晶振也没有起振,就感觉很奇怪
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
对了大佬他这个晶振会不会起振,你测试一下,是上电就会起振的吗
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
是的, 我找了一块板子测试了下, 只是插入到SD 接口, 上电,没有运行driver, clock一直存在的。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
我觉得不会 ,我建议你多检查电源的供给方面,看是否会有些异常的情况。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
电源电流不够?我给的是350mA的LDO,或者难道电源纹波太大?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
而且有个情况就是,我WL_REG_ON不给高电平的时候,晶振反而有0.12V的电压,只要一正常上电,立马变成0V
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
350mA是vbat的供电吗? 这个一定不够的, 43438 是internal PA。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
是的,我是350mA供给IO和VBAT,会不会因为电流不够起不来?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
这个肯定有问题, 你外接电源试试。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
刚刚用外部电源实验了一下,还是不行,晶振还是不会起振,太奇怪了,不知道还有啥能影响到
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
wifi问题解决了,非常感谢你的耐心解答,原来还是硬件电路的问题,内核上的电源没供上,电源网络标号写错了。。。。。真是个傻逼了我
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
恭喜恭喜!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
还要多感谢感谢你,能那么耐心解答我的问题