diff --git a/arch/riscv/boot/dts/spacemit/k1-x_lpi3a.dts b/arch/riscv/boot/dts/spacemit/k1-x_lpi3a.dts index 94c912b26f3a32d4d282b61516def78f9e2ac99b..d369a08ff86b1965cd2f6f590b33f5e853319229 100644 --- a/arch/riscv/boot/dts/spacemit/k1-x_lpi3a.dts +++ b/arch/riscv/boot/dts/spacemit/k1-x_lpi3a.dts @@ -15,7 +15,7 @@ / { model = "SiPEED LPi3A Board"; - modules_usrload = "aic8800_bsp", "aic8800_fdrv", "aic8800_btlpm"; + modules_usrload = "aic8800_bsp,aic8800_fdrv,aic8800_btlpm"; cpus: cpus { #address-cells = <1>; @@ -145,12 +145,12 @@ rf_pwrseq: rf-pwrseq { //vdd_voltage = <3300000>; io-supply = <&dcdc_3>; io_voltage = <1800000>; - pwr-gpios = <&ioexp1 4 0>; + pwr-gpios = <&ioexp1 6 0>; status = "okay"; wlan_pwrseq: wlan-pwrseq { compatible = "spacemit,wlan-pwrseq"; - //regon-gpios = <&ioexp1 4 0>; + regon-gpios = <&ioexp1 4 0>; interrupt-parent = <&pinctrl>; interrupts = <268>; pinctrl-names = "default"; @@ -784,7 +784,7 @@ &sdhci1 { pinctrl-0 = <&pinctrl_mmc2>; bus-width = <4>; non-removable; - vqmmc-supply = <&dcdc_3>; + //vqmmc-supply = <&dcdc_3>; no-mmc; no-sd; keep-power-in-suspend; @@ -804,7 +804,7 @@ SDHCI_QUIRK2_BROKEN_PHY_MODULE )>; spacemit,rx_dline_reg = <0x0>; spacemit,rx_tuning_limit = <50>; - spacemit,sdh-freq = <375000000>; + spacemit,sdh-freq = <102400000>; status = "okay"; }; diff --git a/drivers/net/wireless/aic8800/aic8800_bsp/Makefile b/drivers/net/wireless/aic8800/aic8800_bsp/Makefile index 5fc7399fe1a19abdd684e63acc2dea1d2c6ea221..b0d32b3817c1c3af198d1506bc3e5350b3e53af0 100755 --- a/drivers/net/wireless/aic8800/aic8800_bsp/Makefile +++ b/drivers/net/wireless/aic8800/aic8800_bsp/Makefile @@ -1,6 +1,6 @@ CONFIG_PLATFORM_SPACEMIT := y ifeq ($(CONFIG_AIC_INTF_SDIO),y) -CONFIG_SDIO_PWRCTRL ?= y +CONFIG_SDIO_PWRCTRL ?= n endif CONFIG_VRF_DCDC_MODE ?=y CONFIG_OOB ?= n diff --git a/drivers/net/wireless/aic8800/aic8800_bsp/aic_bsp_8800d.c b/drivers/net/wireless/aic8800/aic8800_bsp/aic_bsp_8800d.c index ff099f1c5a495621860b99bcf94ac632dd6e8f1f..8a1e9b092f80ce19c58ce8e6d5b87e3ce18e3cf4 100644 --- a/drivers/net/wireless/aic8800/aic8800_bsp/aic_bsp_8800d.c +++ b/drivers/net/wireless/aic8800/aic8800_bsp/aic_bsp_8800d.c @@ -443,12 +443,12 @@ static int aicwifi_init(struct priv_dev *aicdev) return -1; } - if (aicbsp_info.cpmode == AICBSP_CPMODE_WORK) { - if (rwnx_plat_bin_fw_upload_android(aicdev, RAM_FMAC_FW_PATCH_ADDR, aicbsp_firmware_list[aicbsp_info.cpmode].wl_table)) { - printk("download wifi fw patch fail\n"); - return -1; - } - } +// if (aicbsp_info.cpmode == AICBSP_CPMODE_WORK) { +// if (rwnx_plat_bin_fw_upload_android(aicdev, RAM_FMAC_FW_PATCH_ADDR, aicbsp_firmware_list[aicbsp_info.cpmode].wl_table)) { +// printk("download wifi fw patch fail\n"); +// return -1; +// } +// } if (aicwifi_patch_config(aicdev)) { printk("aicwifi_patch_config fail\n"); diff --git a/drivers/net/wireless/aic8800/aic8800_bsp/aicsdio.c b/drivers/net/wireless/aic8800/aic8800_bsp/aicsdio.c index 7098745cc7c7107bb2648bcb3b0c0da79fbde436..4fa108137e56d48ba2ded39d8ea2dbcd279b3d36 100644 --- a/drivers/net/wireless/aic8800/aic8800_bsp/aicsdio.c +++ b/drivers/net/wireless/aic8800/aic8800_bsp/aicsdio.c @@ -202,6 +202,7 @@ static int aicbsp_sdio_probe(struct sdio_func *func, if (aic_matched_ic == NULL) return err; + bsp_dbg("%s:%d, matched chip: vendor:0x%04x device:0x%04x\n", __func__, func->num, func->vendor, func->device); bsp_dbg("%s:%d, matched chip: %s\n", __func__, func->num, aic_matched_ic ? aic_matched_ic->name : "none"); if (func->num != 2) return err; diff --git a/drivers/net/wireless/aic8800/aic8800_fdrv/Makefile b/drivers/net/wireless/aic8800/aic8800_fdrv/Makefile index 48758485c26773b6429de0995c4d72857f3f2ef4..a261b615762f2178e942c7bc12d40e854d9961ac 100755 --- a/drivers/net/wireless/aic8800/aic8800_fdrv/Makefile +++ b/drivers/net/wireless/aic8800/aic8800_fdrv/Makefile @@ -51,7 +51,7 @@ CONFIG_ARP_OFFLOAD =y CONFIG_RADAR_OR_IR_DETECT =n CONFIG_DOWNLOAD_FW =y CONFIG_RFTEST=y -CONFIG_SDIO_PWRCTRL ?= y +CONFIG_SDIO_PWRCTRL ?= n ifeq ($(CONFIG_USB_SUPPORT),y) CONFIG_USB_BT := y endif diff --git a/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_main.c b/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_main.c index 21f3166956c6b584a76fadb75e2e9f67ac30510f..1571e963c8168582018977880ce0037fcb4f2592 100644 --- a/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_main.c +++ b/drivers/net/wireless/aic8800/aic8800_fdrv/rwnx_main.c @@ -6197,6 +6197,7 @@ int rwnx_cfg80211_init(struct rwnx_plat *rwnx_plat, void **platform_data) if (rwnx_hw->chipid == PRODUCT_ID_AIC8800D) { ret = rwnx_send_set_stack_start_req(rwnx_hw, 1, feature.hwinfo < 0, feature.hwinfo, feature.fwlog_en, &set_start_cfm); + set_start_cfm.is_5g_support = true; } else if (rwnx_hw->chipid == PRODUCT_ID_AIC8800DC || rwnx_hw->chipid == PRODUCT_ID_AIC8800DW) { ret = rwnx_send_set_stack_start_req(rwnx_hw, 1, 0, 0, feature.fwlog_en, &set_start_cfm);