RK903 & RK901 & AP6xxx系列WiFi模块配置

包括以下模块:RK901、RK903、AP6181、AP6210、AP6330、AP6476、AP6335等选择“RK901/RK903/BCM4330/AP6XXX wireless cards support”
RK903 & RK901 & AP6xxx系列WiFi模块配置_第1张图片不需要配置:“Select the wifi module”与”Select the wifi module crystal freq”dts中wifi_chip_type配置:
RK903 & RK901 & AP6xxx系列WiFi模块配置_第2张图片
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 驱动
RK903 & RK901 & AP6xxx系列WiFi模块配置_第3张图片
dts 中 wifi_chip_type 配置:
RK903 & RK901 & AP6xxx系列WiFi模块配置_第4张图片
如果使用 RTL8723BU,还需要配置以下 BT 驱动:
CONFIG_BT_RTKBTUSB=y
COB 版本注意
例如使用 RTL8703 COB 与 RTL8189es COB 时,特别需要注意以下两点:

  1. COB 版本没有硬件 MAC,所以需要通过工具将 MAC 地址写入到 flash 保留区,然后驱动中去读
    取,不然 MAC 地址是随机生成的,每次关闭再打开 WiFi 的 MAC 地址都会变化,或者每台机器的 MAC地址都一样。
  2. 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 clk\n”);

你可能感兴趣的:(正基)