Part Number: CC3351
Tool/software:
My customer is trying to port the CC3351 driver to Linux kernel 4.9 and 5.1. The current SDK only supports 6.10 verion Linux kernel.
The customer also tried to use CC33xx SDK v1.0.0.0, but cc33xx.ko failed during probe, the probe process does not complete.
Would you please share the CC3351 driver for Linux kernel 4.9 and 5.1?
Below I attach the driver log with v1.0.0.0:
/lib/modules/wifi # insmod cc33xx.ko /lib/modules/wifi # dmesg -c /lib/modules/wifi # /lib/modules/wifi # /lib/modules/wifi # /lib/modules/wifi # insmod cc33xx_sdio.ko cc33xx_sdio mmc0:0001:2: Using SDIO in-band IRQ /lib/modules/wifi # dmesg -c wlcore: ERROR boot IRQ timeout wlcore: ERROR FW download failed cc33xx_sdio mmc0:0001:2: Using SDIO in-band IRQ wlcore: cc33xx_probe :: Start wlcore: Wireless Driver Version 1.7.0.22 wlcore: WLAN CC33xx platform device probe done wlcore: Chip wakeup wlcore: Set BLKsize to 128 IBI_WA: Read core status wlcore: wlcore_irq invoked wlcore: wlcore_irq: Core-status locked wlcore: Reading core status wlcore: HINT_STATUS: 0x0, TSF: 0x1b05fd72, rx status: 0xeff0000 wlcore: wlcore_irq: Releasing core-status IBI_WA: Core status processed wlcore: ERROR boot IRQ timeout wlcore: ERROR FW download failed wlcore: wlcore_nvs_cb Complete
And the dts configuration as below:
sdmmc {
compatible = "sstar,sdmmc";
slotnum = <2>;
slot-ip-orders = <0>,<1>,<2>;
slot-pad-orders = <1>,<1>,<2>;
slot-max-clks = <24000000>,<24000000>,<24000000>;
slot-revcdz = <0>,<0>,<0>;
slot-intcdzs = <0>,<1>,<1>;
slot-support-sd30 = <0>,<0>,<0>;
slot-fakecdzs = <1>,<0>,<0>;
slot-cdzs-pad = <PAD_UNKNOWN>,<PAD_PM_SD_CDZ>,<PAD_PM_SD_CDZ>;
slot-pwr-pad = <PAD_UNKNOWN>,<PAD_FUART_RTS>,<PAD_FUART_RTS>;
slot-en-pwr-high-valid = <0>,<0>,<0>; //gpio output (1/0), power on.
slot-pwr-off-delay = <30>,<30>,<30>;
slot-pwr-on-delay = <30>,<1>,<1>;
slot-removable = <0>,<1>,<1>;
slot-sdio-use = <1>,<0>,<0>;
slot-sdio-use-1bit = <0>,<0>,<0>;
slot-sdio-dis-intr = <0>,<0>,<0>;
slot-en-clk-phase = <0>,<0>,<0>; //0/1
slot-tx-clk-phase = <0>,<0>,<0>; //0-3
slot-rx-clk-phase = <0>,<0>,<0>; //0-3
slot-clk-driving = <1>,<0>,<0>;
slot-cmd-driving = <1>,<0>,<0>;
slot-data-driving = <1>,<0>,<0>;
interrupts-extended = <&ms_main_intc GIC_SPI INT_IRQ_SD IRQ_TYPE_LEVEL_HIGH>,//was INT_IRQ_SDIO
<&ms_main_intc GIC_SPI INT_IRQ_FCIE_TOP IRQ_TYPE_LEVEL_HIGH>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_0 IRQ_TYPE_LEVEL_HIGH>,
//<&ms_gpi_intc 42>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_1 IRQ_TYPE_LEVEL_HIGH>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_0 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mie0_irq", "mie1_irq", "cdz_slot0_irq", "cdz_slot1_irq", "cdz_slot2_irq";
clocks = <&CLK_sd>,<&CLK_fcie>,
<&CLK_sd>,<&CLK_fcie>,
<&CLK_sd>,<&CLK_fcie>;
status = "ok";
wlcore: wlcore@0 {
compatible = "ti,cc33xx";
reg = <0>;
status = "ok";
};
};
Best regards,
Shuyang