kernel: aic8800 wifi driver adapt to duos
Signed-off-by: carbon <carbon@milkv.io>
This commit is contained in:
@ -49,6 +49,7 @@ source "drivers/net/wireless/ti/Kconfig"
|
|||||||
source "drivers/net/wireless/zydas/Kconfig"
|
source "drivers/net/wireless/zydas/Kconfig"
|
||||||
source "drivers/net/wireless/quantenna/Kconfig"
|
source "drivers/net/wireless/quantenna/Kconfig"
|
||||||
source "drivers/net/wireless/icommsemi/Kconfig"
|
source "drivers/net/wireless/icommsemi/Kconfig"
|
||||||
|
source "drivers/net/wireless/aicsemi/Kconfig"
|
||||||
|
|
||||||
config PCMCIA_RAYCS
|
config PCMCIA_RAYCS
|
||||||
tristate "Aviator/Raytheon 2.4GHz wireless support"
|
tristate "Aviator/Raytheon 2.4GHz wireless support"
|
||||||
|
|||||||
@ -21,6 +21,7 @@ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/
|
|||||||
obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/
|
obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/
|
||||||
obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/
|
obj-$(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/
|
||||||
obj-$(CONFIG_WLAN_VENDOR_ICOMMSEMI) += icommsemi/
|
obj-$(CONFIG_WLAN_VENDOR_ICOMMSEMI) += icommsemi/
|
||||||
|
obj-$(CONFIG_WLAN_VENDOR_AICSEMI) += aicsemi/
|
||||||
|
|
||||||
# 16-bit wireless PCMCIA client drivers
|
# 16-bit wireless PCMCIA client drivers
|
||||||
obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
|
obj-$(CONFIG_PCMCIA_RAYCS) += ray_cs.o
|
||||||
|
|||||||
16
linux_5.10/drivers/net/wireless/aicsemi/Kconfig
Normal file
16
linux_5.10/drivers/net/wireless/aicsemi/Kconfig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
config WLAN_VENDOR_AICSEMI
|
||||||
|
bool "AICSEMI devices"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
If you have a wireless card belonging to this class, say Y.
|
||||||
|
|
||||||
|
Note that the answer to this question doesn't directly affect the
|
||||||
|
kernel: saying N will just cause the configurator to skip all the
|
||||||
|
questions about these cards. If you say Y, you will be asked for
|
||||||
|
your specific card in the following questions.
|
||||||
|
|
||||||
|
if WLAN_VENDOR_AICSEMI
|
||||||
|
|
||||||
|
source "drivers/net/wireless/aicsemi/aic8800/Kconfig"
|
||||||
|
|
||||||
|
endif # WLAN_VENDOR_AICSEMI
|
||||||
6
linux_5.10/drivers/net/wireless/aicsemi/Makefile
Normal file
6
linux_5.10/drivers/net/wireless/aicsemi/Makefile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#
|
||||||
|
# Makefile for the Linux Wireless network device drivers for AICSEMI units
|
||||||
|
#
|
||||||
|
|
||||||
|
obj-$(CONFIG_AIC8800) += aic8800/
|
||||||
|
|
||||||
@ -1,18 +1,18 @@
|
|||||||
config AIC_WLAN_SUPPORT
|
config AIC8800
|
||||||
bool "AIC wireless Support"
|
bool "AIC wireless Support"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
This is support for aic wireless chip.
|
This is support for aic wireless chip.
|
||||||
|
|
||||||
config AIC_FW_PATH
|
config AIC_FW_PATH
|
||||||
depends on AIC_WLAN_SUPPORT
|
depends on AIC8800
|
||||||
string "Firmware & config file path"
|
string "Firmware & config file path"
|
||||||
default "/vendor/etc/firmware"
|
default "/vendor/etc/firmware"
|
||||||
#default "/lib/firmware/aic8800_sdio"
|
#default "/lib/firmware/aic8800_sdio"
|
||||||
help
|
help
|
||||||
Path to the firmware & config file.
|
Path to the firmware & config file.
|
||||||
|
|
||||||
if AIC_WLAN_SUPPORT
|
if AIC8800
|
||||||
source "drivers/net/wireless/aic8800/aic8800_fdrv/Kconfig"
|
source "drivers/net/wireless/aicsemi/aic8800/aic8800_fdrv/Kconfig"
|
||||||
source "drivers/net/wireless/aic8800/aic8800_btlpm/Kconfig"
|
source "drivers/net/wireless/aicsemi/aic8800/aic8800_btlpm/Kconfig"
|
||||||
endif
|
endif
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
CONFIG_AIC8800_BTLPM_SUPPORT := m
|
CONFIG_AIC8800_BTLPM_SUPPORT := m
|
||||||
CONFIG_AIC8800_WLAN_SUPPORT := m
|
CONFIG_AIC8800_WLAN_SUPPORT := m
|
||||||
CONFIG_AIC_WLAN_SUPPORT := m
|
CONFIG_AIC8800 := m
|
||||||
|
|
||||||
obj-$(CONFIG_AIC8800_BTLPM_SUPPORT) += aic8800_btlpm/
|
obj-$(CONFIG_AIC8800_BTLPM_SUPPORT) += aic8800_btlpm/
|
||||||
obj-$(CONFIG_AIC8800_WLAN_SUPPORT) += aic8800_fdrv/
|
obj-$(CONFIG_AIC8800_WLAN_SUPPORT) += aic8800_fdrv/
|
||||||
obj-$(CONFIG_AIC_WLAN_SUPPORT) += aic8800_bsp/
|
obj-$(CONFIG_AIC8800) += aic8800_bsp/
|
||||||
|
|
||||||
MAKEFLAGS +=-j$(shell nproc)
|
MAKEFLAGS +=-j$(shell nproc)
|
||||||
|
|
||||||
@ -22,7 +22,8 @@ export CONFIG_PLATFORM_ROCKCHIP = n
|
|||||||
export CONFIG_PLATFORM_ROCKCHIP2 = n
|
export CONFIG_PLATFORM_ROCKCHIP2 = n
|
||||||
export CONFIG_PLATFORM_ALLWINNER = n
|
export CONFIG_PLATFORM_ALLWINNER = n
|
||||||
export CONFIG_PLATFORM_AMLOGIC = n
|
export CONFIG_PLATFORM_AMLOGIC = n
|
||||||
export CONFIG_PLATFORM_UBUNTU = y
|
export CONFIG_PLATFORM_UBUNTU = n
|
||||||
|
export CONFIG_PLATFORM_CVITEK = y
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
||||||
ARCH = arm64
|
ARCH = arm64
|
||||||
@ -66,6 +67,11 @@ CROSS_COMPILE ?=
|
|||||||
endif
|
endif
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_CVITEK), y)
|
||||||
|
$(info ARCH: $(ARCH))
|
||||||
|
$(info CROSS_COMPILE: $(CROSS_COMPILE))
|
||||||
|
endif
|
||||||
|
|
||||||
all: modules
|
all: modules
|
||||||
modules:
|
modules:
|
||||||
make -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
|
make -C $(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
|
||||||
|
|||||||
@ -70,7 +70,8 @@ CONFIG_PLATFORM_ROCKCHIP2 ?= n
|
|||||||
CONFIG_PLATFORM_ALLWINNER ?=n
|
CONFIG_PLATFORM_ALLWINNER ?=n
|
||||||
CONFIG_PLATFORM_INGENIC_T20 ?= n
|
CONFIG_PLATFORM_INGENIC_T20 ?= n
|
||||||
CONFIG_PLATFORM_AMLOGIC ?= n
|
CONFIG_PLATFORM_AMLOGIC ?= n
|
||||||
CONFIG_PLATFORM_UBUNTU ?= y
|
CONFIG_PLATFORM_UBUNTU ?= n
|
||||||
|
CONFIG_PLATFORM_CVITEK ?= y
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
||||||
ccflags-$(CONFIG_PLATFORM_ROCKCHIP) += -DCONFIG_PLATFORM_ROCKCHIP
|
ccflags-$(CONFIG_PLATFORM_ROCKCHIP) += -DCONFIG_PLATFORM_ROCKCHIP
|
||||||
@ -116,6 +117,12 @@ MODDESTDIR ?= /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
|||||||
ARCH ?= x86_64
|
ARCH ?= x86_64
|
||||||
CROSS_COMPILE ?=
|
CROSS_COMPILE ?=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_CVITEK), y)
|
||||||
|
$(info ARCH: $(ARCH))
|
||||||
|
$(info CROSS_COMPILE: $(CROSS_COMPILE))
|
||||||
|
ccflags-$(CONFIG_PLATFORM_CVITEK) += -DCONFIG_PLATFORM_CVITEK
|
||||||
|
endif
|
||||||
###########################################
|
###########################################
|
||||||
|
|
||||||
all: modules
|
all: modules
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
#include <linux/semaphore.h>
|
#include <linux/semaphore.h>
|
||||||
#include <linux/debugfs.h>
|
#include <linux/debugfs.h>
|
||||||
#include <linux/kthread.h>
|
#include <linux/kthread.h>
|
||||||
|
#include <linux/gpio.h>
|
||||||
#include "aicsdio_txrxif.h"
|
#include "aicsdio_txrxif.h"
|
||||||
#include "aicsdio.h"
|
#include "aicsdio.h"
|
||||||
#include "aic_bsp_driver.h"
|
#include "aic_bsp_driver.h"
|
||||||
@ -42,6 +43,11 @@ extern void extern_wifi_set_enable(int is_on);
|
|||||||
extern void set_power_control_lock(int lock);
|
extern void set_power_control_lock(int lock);
|
||||||
#endif//for AML
|
#endif//for AML
|
||||||
|
|
||||||
|
#ifdef CONFIG_PLATFORM_CVITEK
|
||||||
|
extern int cvi_get_wifi_pwr_on_gpio(void);
|
||||||
|
extern int cvi_sdio_rescan(void);
|
||||||
|
static int cvi_wifi_power_gpio = -1;
|
||||||
|
#endif //CONFIG_PLATFORM_CVITEK
|
||||||
|
|
||||||
static int aicbsp_platform_power_on(void);
|
static int aicbsp_platform_power_on(void);
|
||||||
static void aicbsp_platform_power_off(void);
|
static void aicbsp_platform_power_off(void);
|
||||||
@ -492,6 +498,28 @@ static int aicbsp_platform_power_on(void)
|
|||||||
rockchip_wifi_set_carddetect(1);
|
rockchip_wifi_set_carddetect(1);
|
||||||
#endif /*CONFIG_PLATFORM_ROCKCHIP2*/
|
#endif /*CONFIG_PLATFORM_ROCKCHIP2*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_PLATFORM_CVITEK
|
||||||
|
printk("======== CVITEK WLAN_POWER_ON ========\n");
|
||||||
|
cvi_wifi_power_gpio = cvi_get_wifi_pwr_on_gpio();
|
||||||
|
if (cvi_wifi_power_gpio >= 0) {
|
||||||
|
ret = gpio_request(cvi_wifi_power_gpio, "WLAN_POWER");
|
||||||
|
if (ret < 0) {
|
||||||
|
printk("%s: gpio_request(%d) for WLAN_POWER failed\n",
|
||||||
|
__func__, cvi_wifi_power_gpio);
|
||||||
|
cvi_wifi_power_gpio = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cvi_wifi_power_gpio >= 0) {
|
||||||
|
ret = gpio_direction_output(cvi_wifi_power_gpio, 1);
|
||||||
|
if (ret) {
|
||||||
|
printk("%s: WLAN_POWER output high failed!\n", __func__);
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
mdelay(50);
|
||||||
|
}
|
||||||
|
#endif //CONFIG_PLATFORM_CVITEK
|
||||||
|
|
||||||
sema_init(&aic_chipup_sem, 0);
|
sema_init(&aic_chipup_sem, 0);
|
||||||
ret = aicbsp_reg_sdio_notify(&aic_chipup_sem);
|
ret = aicbsp_reg_sdio_notify(&aic_chipup_sem);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -507,6 +535,12 @@ static int aicbsp_platform_power_on(void)
|
|||||||
sunxi_mmc_rescan_card(aicbsp_bus_index);
|
sunxi_mmc_rescan_card(aicbsp_bus_index);
|
||||||
#endif //CONFIG_PLATFORM_ALLWINNER
|
#endif //CONFIG_PLATFORM_ALLWINNER
|
||||||
|
|
||||||
|
#ifdef CONFIG_PLATFORM_CVITEK
|
||||||
|
printk("%s,%d: cvi_sdio_rescan\n", __func__, __LINE__);
|
||||||
|
cvi_sdio_rescan();
|
||||||
|
//udelay(1000);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (down_timeout(&aic_chipup_sem, msecs_to_jiffies(2000)) == 0) {
|
if (down_timeout(&aic_chipup_sem, msecs_to_jiffies(2000)) == 0) {
|
||||||
aicbsp_unreg_sdio_notify();
|
aicbsp_unreg_sdio_notify();
|
||||||
if(aicbsp_load_fw_in_fdrv){
|
if(aicbsp_load_fw_in_fdrv){
|
||||||
@ -530,6 +564,15 @@ static int aicbsp_platform_power_on(void)
|
|||||||
rockchip_wifi_power(0);
|
rockchip_wifi_power(0);
|
||||||
#endif /*CONFIG_PLATFORM_ROCKCHIP2*/
|
#endif /*CONFIG_PLATFORM_ROCKCHIP2*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_PLATFORM_CVITEK
|
||||||
|
if (cvi_wifi_power_gpio >= 0) {
|
||||||
|
ret = gpio_direction_output(cvi_wifi_power_gpio, 0);
|
||||||
|
if (ret) {
|
||||||
|
printk("%s: WLAN_POWER output low failed!\n", __func__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //CONFIG_PLATFORM_CVITEK
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -558,6 +601,14 @@ static void aicbsp_platform_power_off(void)
|
|||||||
extern_wifi_set_enable(0);
|
extern_wifi_set_enable(0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_PLATFORM_CVITEK
|
||||||
|
printk("======== CVITEK WLAN_POWER_OFF ========\n");
|
||||||
|
if (cvi_wifi_power_gpio >= 0) {
|
||||||
|
if(gpio_direction_output(cvi_wifi_power_gpio, 0)) {
|
||||||
|
printk("%s: WLAN_POWER output low failed!\n", __func__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //CONFIG_PLATFORM_CVITEK
|
||||||
|
|
||||||
sdio_dbg("%s\n", __func__);
|
sdio_dbg("%s\n", __func__);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,8 @@ CONFIG_PLATFORM_ROCKCHIP ?= n
|
|||||||
CONFIG_PLATFORM_ROCKCHIP2 ?= n
|
CONFIG_PLATFORM_ROCKCHIP2 ?= n
|
||||||
CONFIG_PLATFORM_ALLWINNER ?= n
|
CONFIG_PLATFORM_ALLWINNER ?= n
|
||||||
CONFIG_PLATFORM_AMLOGIC ?= n
|
CONFIG_PLATFORM_AMLOGIC ?= n
|
||||||
CONFIG_PLATFORM_UBUNTU ?= y
|
CONFIG_PLATFORM_UBUNTU ?= n
|
||||||
|
CONFIG_PLATFORM_CVITEK ?= y
|
||||||
|
|
||||||
CONFIG_SUPPORT_LPM ?= n
|
CONFIG_SUPPORT_LPM ?= n
|
||||||
CONFIG_AUTO_PM ?= n
|
CONFIG_AUTO_PM ?= n
|
||||||
@ -63,6 +63,10 @@ ARCH ?= x86_64
|
|||||||
CROSS_COMPILE ?=
|
CROSS_COMPILE ?=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_CVITEK), y)
|
||||||
|
$(info ARCH: $(ARCH))
|
||||||
|
$(info CROSS_COMPILE: $(CROSS_COMPILE))
|
||||||
|
endif
|
||||||
|
|
||||||
all: modules
|
all: modules
|
||||||
modules:
|
modules:
|
||||||
|
|||||||
@ -311,7 +311,8 @@ CONFIG_PLATFORM_ROCKCHIP2 ?= n
|
|||||||
CONFIG_PLATFORM_ALLWINNER ?= n
|
CONFIG_PLATFORM_ALLWINNER ?= n
|
||||||
CONFIG_PLATFORM_INGENIC_T20 ?= n
|
CONFIG_PLATFORM_INGENIC_T20 ?= n
|
||||||
CONFIG_PLATFORM_AMLOGIC ?= n
|
CONFIG_PLATFORM_AMLOGIC ?= n
|
||||||
CONFIG_PLATFORM_UBUNTU ?= y
|
CONFIG_PLATFORM_UBUNTU ?= n
|
||||||
|
CONFIG_PLATFORM_CVITEK ?= y
|
||||||
|
|
||||||
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
ifeq ($(CONFIG_PLATFORM_ROCKCHIP), y)
|
||||||
ARCH := arm64
|
ARCH := arm64
|
||||||
@ -358,8 +359,12 @@ MODDESTDIR ?= /lib/modules/$(KVER)/kernel/drivers/net/wireless/
|
|||||||
ARCH ?= x86_64
|
ARCH ?= x86_64
|
||||||
CROSS_COMPILE ?=
|
CROSS_COMPILE ?=
|
||||||
endif
|
endif
|
||||||
###########################################
|
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_PLATFORM_CVITEK), y)
|
||||||
|
$(info ARCH: $(ARCH))
|
||||||
|
$(info CROSS_COMPILE: $(CROSS_COMPILE))
|
||||||
|
endif
|
||||||
|
###########################################
|
||||||
|
|
||||||
all: modules
|
all: modules
|
||||||
modules:
|
modules:
|
||||||
|
|||||||
Reference in New Issue
Block a user