Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87ed6e61 authored by Evgeniy Borisov's avatar Evgeniy Borisov Committed by Petar Sivenov
Browse files

net: wireless: implements host target communication with QCA402x



This driver enables support for communication beteween
an APQ8053 Host and Qualcomm's QCA402x wireless SoC.

Change-Id: I777f89b95094ad1cd72f515bb43a198502d0a12f
Signed-off-by: default avatarEvgeniy Borisov <gencho@codeaurora.org>
parent 7d5af490
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -114,3 +114,5 @@ source "drivers/net/wireless/cnss_utils/Kconfig"
source "drivers/net/wireless/cnss_genl/Kconfig"

endif # WLAN

source "drivers/net/wireless/qca402x/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -32,3 +32,4 @@ obj-$(CONFIG_WCNSS_MEM_PRE_ALLOC) += cnss_prealloc/
obj-$(CONFIG_CNSS_UTILS) += cnss_utils/
obj-$(CONFIG_CNSS_GENL) += cnss_genl/
obj-$(CONFIG_CNSS_CRYPTO) += cnss_crypto/
obj-$(CONFIG_QCA402X) += qca402x/
+10 −0
Original line number Diff line number Diff line
config QCA402X
	tristate "Qualcomm QCA402X wireless support"
	default n
	---help---
	Software for Qualcomm QCA402x including HIF and HTCA.

	Say Y here if support for Qualcomm's QCA402x wireless SoC
	via host-target communication protocol is required.
	Say N to disable completely if support for that device is
	not needed or if not sure.
+9 −0
Original line number Diff line number Diff line
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_compl.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_events.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_intr.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_recv.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_send.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_task.o
obj-$(CONFIG_QCA402X) += htca_mbox/htca_mbox_utils.o
obj-$(CONFIG_QCA402X) += hif_sdio/hif.o
+52 −0
Original line number Diff line number Diff line
This directory contains support to communicate beteween an APQ8053 Host
and Qualcomm's QCA402x wireless SoC.

QCA4020 SoC supports
    802.11 (i.e. WiFi/WLAN)
    802.15.4 (i.e. Zigbee, Thread)
    BT LE

Contents of this directory may eventually include:
	cfg80211 support
	SoftMAC wireless driver
	Perhaps a mac80211 driver
	Zigbee APIs
	Thread APIs
	BT APIs

For now, all that is present are the bottommost layers of a communication stack:

	HTCA - Host/Target Communications protocol
		htca_mbox
		    Quartz SDIO/SPI address space
		    Quartz mailboxes and associated SDIO/SPI registers
		    Quartz mbox credit-based flow control
		htca_uart (TBD)

	HIF - a shim layer which abstracts the underlying Master/Host-side
		interconnect controller (e.g. SDIO controller) to provide
		an interconnect-independent API for use by HTCA.
		hif_sdio
			Host Interface layer for SDIO Master controllers
		hif_spi (TBD)
			Host Interface layer for SPI Master controllers
		hif_uart (TBD)
			Host Interface layer for UART-based controllers

	qrtzdev-a simple driver used for HTCA TESTING.

Note: The initial implementation supports HTCA Protocol Version 1 over SDIO.
It is based on previous HTCA implementations for Atheros SoCs, but uses a
revised design which appropriately leverages kernel threads.

This implementation is likely to evolve with increasing focus on performance,
especially for use cases of current interest such as streaming video from
Host over SDIO to WLAN; however this evolution may differ from the existing
implementation of HTCA Protocol Version 2 used by earlier Atheros SoC's.

However there are several issues with this code:
  it is based on HTCA v2 protocol which adds complexity
  it is based on a non-threaded design, originally for a non-threaded RTOS
TBD: Ideally, these two implementations ought to be merged so that the resulting
implementation is based on a proper threaded design and supports both HTCA
protocol v1 and v2.
Loading