AP6256是正基科技推出的一款低成本,低功耗的双模模块。是一款SDIO接口单通道802.11ac双频支持BT5.0 蓝牙WiFi二合一模块。
Model:AP6256:SDIO WIFI + UART BT
1、内核配置选择编为模块(个人选择,编译到内核中也行)
wifi配置
2、查看原理图引脚复用:
因为原理图中WL_HOST_WAKE和BT_HOST_WAKE引脚硬件未连接,DTS中去除了相关引脚配置。并且需要配置kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/Makefile中CONFIG_BCMDHD_OOB=n。
SDIO3.0 引脚1.8V SDIO2.0 3.3V //设备树中sd-uhs-sdr104节点和max-frequency节点相关
3、修改设备树
/* SDIO节点 */
&sdmmc1 {
max-frequency = <20000000>; //本硬件限制最大24M,3.3v转1.8v模块限制
supports-sdio;
bus-width = <4>;
disable-wp;
cap-sd-highspeed;
cap-sdio-irq;
keep-power-in-suspend;
mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
num-slots = <1>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
sd-uhs-sdr104; //1.8v SDIO3.0 3.3v SDIO2.0 需要去除此项
status = "okay";
};
sdio_pwrseq: sdio-pwrseq {
status = "okay";
compatible = "mmc-pwrseq-simple";
clocks = <&clk32k>; //外部32K时钟
clock-names = "ext_clock";
pinctrl-names = "default";
pinctrl-0 = <&wifi_reg_on>;
post-power-on-delay-ms = <200>;
reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
};
/* wifi节点 */
wireless_wlan: wireless-wlan {
compatible = "wlan-platdata";
rockchip,grf = <&grf>;
wifi_chip_type = "ap6256";
status = "okay";
};
/* 蓝牙节点 */
wireless_bluetooth: wireless-bluetooth {
compatible = "bluetooth-platdata";
//wifi-bt-power-toggle;
status = "okay";
clocks = <&clk32k>; //外部32K时钟
clock-names = "ext_clock";
uart_rts_gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "rts_gpio";
pinctrl-0 = <&uart1m0_rtsn>, <&bt_power_en_gpio>;
pinctrl-1 = <&uart1m0_xfer>;
BT,power_gpio = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
};
4、拷贝AP6256 firmware到设备中
fSDK目录为/RK3568/rk356x_linux_release_v1.3.1_20221120/external/rkwifibt/firmware/broadcom/AP6256
设备目录为/vendor/etc/firmware
6、验证
重新烧录boot.img
insmod bcmdhd.ko
ifconfig -a 查看存在wlan0