# SPDX-License-Identifier: GPL-2.0-only
#
# AICSemi AIC8800DC SDIO WiFi+BT driver (WardenOS M5 port).
#
# Ported from the vendor 5.10.160 out-of-tree source
# (flare-edge/sdk/sysdrv/drv_ko/wifi/aic8800dc/) — see
# warden-sdk/kernel/rv1106-enablement/wifi/PORT-PLAN.md and PORT-PROGRESS.md.
# Modules (=m), loaded late by /oem/usr/ko/insmod_wifi.sh: the AIC8800 SDIO
# bring-up is two-stage (bsp downloads firmware, chip re-enumerates, fdrv
# attaches). Built-in device_initcalls run BEFORE the dw_mmc/SDIO controller
# probes — initcalls are sequential, so aicbsp_init blocks [3.3-7.5]s while the
# mmc controller only probes at [7.9]s afterward, and the eager bring-up
# deadlocks (it waits for a card the blocked mmc probe hasn't enumerated).
# Late module load, after the mmc-pwrseq enumerates the card, is the
# vendor-proven flow. See PORT-PROGRESS.md.

config AIC_WLAN_SUPPORT
	tristate "AIC wireless Support"
	default m
	help
	  This is support for the AIC wireless chip (AIC8800DC SDIO combo
	  wifi+BT on the WardenOS 86-Panel). Build as a module (m); built-in
	  deadlocks the two-stage SDIO bring-up (see note above).

config AIC_FW_PATH
	depends on AIC_WLAN_SUPPORT
	string "Firmware & config file path"
	default "/oem/usr/ko/aic8800dc_fw"
	help
	  Path to the firmware & config files. The driver reads these
	  directly (not via request_firmware()) — see PORT-PLAN.md §3.8.

if AIC_WLAN_SUPPORT
source "drivers/net/wireless/aic8800/aic8800_fdrv/Kconfig"
source "drivers/net/wireless/aic8800/aic8800_btlpm/Kconfig"
endif
