[RK3288] AP6335WIFI模块移植(板级dts文件代码编写)

1.经过一周的努力的今天终于解决了RK3288安卓系统中打不开WIFI的问题,特意记录一下。
2. 一般拿到板子厂家会提供RK3288的SDK框架包(我的是android8.1),在这里我附上移植WIFI帮助文档(原谅我CSDN不知道怎么上传附件有需要加我Q:812417530)。
3. 板级dts文件添加wifi模块需要的代码描述:(至于下面这些代码在哪个文件里面我就不说了,可能你的跟我的不一样,但都是在kernel/arch/arm/boot/bts/里面)

 wireless-wlan {
		compatible = "wlan-platdata";
		rockchip,grf = <&grf>;
		wifi_chip_type = "ap6335";
		sdio_vref = <1800>;
		WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};
&sdio0 {
	status = "okay";
	max-frequency = <150000000>;

	bus-width = <4>;
	cap-sd-highspeed;
	cap-sdio-irq;
	disable-wp;
	keep-power-in-suspend;
	mmc-pwrseq = <&sdio_pwrseq>;
	non-removable;
	num-slots = <1>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
	sd-uhs-sdr104;
	supports-sdio;
};

4.当然添加上面这两段代码还远远不够,需要看文档继续修改添加,下面的我就不说了,文档找我拿。
5.编译好系统文件和系统镜像后,烧录到板子,发现WIFI一直打不开
这里插入图片描述
6.打不开能怎么办?那只能看RK3288打印了啊(附图)下面都是报错的打印,你可以选择不看,然后我是在这里面找到问题的

[16020.274020] dhd_open: Enter dd6c8800
[16020.274051] 
[16020.274051] Dongle Host Driver, version 1.579.77.41.2 (r)
[16020.274059] wl_android_wifi_on in 1
[16020.274066] wl_android_wifi_on in 2: g_wifi_on=0
[16020.274080] wifi_platform_set_power = 1
[16020.274086] ======== PULL WL_REG_ON(-1) HIGH! ========
[16020.274093] [WLAN_RFKILL]: rockchip_wifi_power: 1
[16020.274101] [WLAN_RFKILL]: wifi turn on power. -1
[16020.575297] sdio_reset_comm():
[16020.588702] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[16020.642667] sdio_read_cis: 2 callbacks suppressed
[16020.642693] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[16020.644206] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[16020.645743] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[16020.648662] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[16020.705084] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0)
[16020.832098] dwmmc_rockchip ff0d0000.dwmmc: Successfully tuned phase to 82
[16020.832526] sdioh_start: set sd_f2_blocksize 256
[16020.833396] 
[16020.833396] 
[16020.833396] dhd_bus_devreset: == WLAN ON ==
[16020.833494] F1 signature read @0x18000000=0x16224335
[16020.835729] F1 signature OK, socitype:0x1 chip:0x4339 rev:0x1 pkg:0x2
[16020.836619] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[16020.836793] dhd_conf_read_config: Ignore config file endor/etc/firmware/config.txt
[16020.836816] Final fw_path=endor/etc/firmware_bcm4339a0_ag.bin
[16020.836822] Final nv_path=endor/etc/firmware/nvram_AP6335.txt
[16020.836829] Final clm_path=endor/etc/firmware/clm_bcmdhd.blob
[16020.836836] Final conf_path=endor/etc/firmware/config.txt
[16020.836841] dhd_set_bus_params: set use_rxchain 0
[16020.836847] dhd_set_bus_params: set txglomsize 36
[16020.837089] dhd_os_open_image: endor/etc/firmware_bcm4339a0_ag.bin (567196 bytes) open success
[16020.872375] sdioh_buffer_tofrom_bus: TX FAILED dae38000, addr=0x0a000, pkt_len=1948, ERR=-84
[16020.872394] dhdsdio_membytes: membytes transfer failed
[16021.055964] dwmmc_rockchip ff0d0000.dwmmc: Successfully tuned phase to 82
[16021.056330] dhdsdio_download_code_file: error -1 on writing 2048 membytes at 0x0020a000
[16021.056449] _dhdsdio_download_firmware: dongle image file download failed
[16021.056659] dhd_bus_devreset Failed to download binary to the dongle
[16021.056783] dhd_net_bus_devreset: dhd_bus_devreset: -35
[16021.056841] dhd_wl_ioctl: returning as busstate=0
[16021.056893] dhd_dbg_detach_pkt_monitor, 2204
[16021.056974] dhd_net_bus_devreset: dhd_bus_devreset: -35
[16021.057139] wifi_platform_set_power = 0
[16021.057224] ======== PULL WL_REG_ON(-1) LOW! ========
[16021.057276] [WLAN_RFKILL]: rockchip_wifi_power: 0
[16021.057373] [WLAN_RFKILL]: wifi shut off power.
[16021.057421] wl_android_wifi_on: Failed
[16021.057471] dhd_open : wl_android_wifi_on failed (-35)
[16021.057522] dhd_stop: Enter dd6c8800
[16021.057616] wl_android_wifi_off in 1
[16021.057665] wl_android_wifi_off in 2: g_wifi_on=0, on_failure=1
[16021.057714] dhd_wl_ioctl: returning as busstate=0
[16021.057796] dhd_dbg_detach_pkt_monitor, 2204
[16021.057845] dhd_net_bus_devreset: dhd_bus_devreset: -35
[16021.057973] sdioh_disable_func_intr: error for read SDIO_CCCR_IENx : 0xffffff92
[16021.058065] wifi_platform_set_power = 0
[16021.058113] ======== PULL WL_REG_ON(-1) LOW! ========
[16021.058161] [WLAN_RFKILL]: rockchip_wifi_power: 0
[16021.058250] [WLAN_RFKILL]: wifi shut off power.
[16021.058298] wl_android_wifi_off out
[16021.058421] dhd_stop: Exit
[16021.058499] dhd_open: Exit ret=-1
[16021.118126] dhd_open: Enter dd6c8800
  1. 附上解决问题的网页链接
  2. 解决办法:
    在这里插入图片描述
    9.这是我的硬件原理图,我用的是SDIO接口的WIFI模块,所以板级dts文件还要看原理图对应配置
    在这里插入图片描述
    10.OK我觉得我讲的很清楚了,代码都是手打的,图片都是剪切的,如果对你有帮助麻烦关注互粉一波啊兄弟!!!

猜你喜欢

转载自blog.csdn.net/a812417530/article/details/106902338