概述
包括以下模块:RK901、RK903、AP6181、AP6210、AP6330、AP6476、AP6335等选择“RK901/RK903/BCM4330/AP6XXX wireless cards support”
不需要配置:“Select the wifi module”与”Select the wifi module crystal freq”dts中wifi_chip_type配置:
WiFi 电源脚:
WiFi 电源脚:模块第 12 脚
WiFi 中断脚:
需要配置 WiFi 中断脚,不然 WiFi 无法正常工作。对应的 wifi 模块上的管脚为模块第 13 脚:
WL_HOST_WAKE。
BT 电源脚:
BT_RST 模块 34 脚
BT_WAKE 模块 6 脚
BT_HOST_WAKE 模块 7 脚
3.3.2 Realtek 系列配置
2.Realtek 系列配置
选择“Realtek Wireless Device Driver Support” -> Wireless LAN (WLAN [=y])
-> Realtek Wireless Device Driver Support (RTL_WIRELESS_SOLUTION [=y])
-> Realtek WiFi Device Driver Support ( [=y])
选择对应的 Realtek WiFi 驱动
dts 中 wifi_chip_type 配置:
如果使用 RTL8723BU,还需要配置以下 BT 驱动:
CONFIG_BT_RTKBTUSB=y
COB 版本注意
例如使用 RTL8703 COB 与 RTL8189es COB 时,特别需要注意以下两点:
- COB 版本没有硬件 MAC,所以需要通过工具将 MAC 地址写入到 flash 保留区,然后驱动中去读
取,不然 MAC 地址是随机生成的,每次关闭再打开 WiFi 的 MAC 地址都会变化,或者每台机器的 MAC地址都一样。 - COB 版本需要根据硬件调好 EFUSE 参数(找代理商调试)(影响 wifi 性能),然后内置于机器以
下目录
/system/etc/wifi/wifi_efuse_8723bs-vq0.map RTL8703 COB
/system/etc/firmware/wifi_efuse_8189e.map RTL8189ES COB
其它特殊配置
SDIO 工作在 3.0
如果是 AP6335 模块,主控是 RK3288,可以让 SDIO 工作在 3.0,以提高 WiFi 吞吐率,具体如下 为:
1). dts 里面时钟要提上去
&sdio {
clock-frequency = <150000000>;
clock-freq-min-max = <200000 150000000>;
};
2). CONFIG_MMC_DW_ROCKCHIP_SWITCH_VOLTAGE=y
注意:上面修改后可能会造成 SD 卡兼容性问题,再打上以下补丁
— a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1393,7 +1393,9 @@ int __mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage)
{
int err = 0;
int old_signal_voltage = host->ios.signal_voltage;
++ if ((host->restrict_caps & (RESTRICT_CARD_TYPE_SD | RESTRICT_CARD_TYPE_TSD)))
- return 0;
host->ios.signal_voltage = signal_voltage;
if (host->ops->start_signal_voltage_switch) {
mmc_host_clk_hold(host);
@@ -1427,6 +1429,8 @@ int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage, u32 ocr)
- If we cannot switch voltages, return failure so the caller
- can continue without UHS mode
*/
- if ((host->restrict_caps & (RESTRICT_CARD_TYPE_SD | RESTRICT_CARD_TYPE_TSD)))
- return -EPERM;
- if (!host->ops->start_signal_voltage_switch)
return -EPERM;
if (!host->ops->card_busy)
提高 BT UART 波特率
BT UART 默认工作在 1500000,如果需要调整,修改如下:
(1) dts 文件修改:
+++ b/arch/arm/boot/dts/rk3288-tb_8846.dts
@@ -393,6 +393,7 @@
&uart_bt {
status = “okay”;
dma-names = “!tx”, “!rx”; - clock-frequency = <48000000>;
pinctrl-0 = <&uart0_xfer &uart0_cts>;
};
默认 UART Clock 是 24M,可以让稳定工作在 1.5M 的波特率下。如果需要修改其它波特率,
请按以下公式计算出相应的 Clock:
clock = n * 16 * rate (n = 1, 2, …)
例如调试波特别率为 3M,那么 clock 需要设置为 48M。
(2) uart 驱动修改:
#endif
+
- retval = clk_set_rate(up->clk, up->port.uartclk);
- if(retval < 0) {
- printk(“failed to set uart clkn”);
最后
以上就是重要画笔为你收集整理的RK903 & RK901 & AP6xxx系列WiFi模块配置的全部内容,希望文章能够帮你解决RK903 & RK901 & AP6xxx系列WiFi模块配置所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复