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

Commit d5b845bf authored by Sarada Prasanna Garnayak's avatar Sarada Prasanna Garnayak
Browse files

net: cnss platform driver for SDIO WLAN module



This platform driver adds support for the CNSS connectivity
subsystem used for SDIO based wifi devices.

CRs-Fixed: 920271
Change-Id: I8193b73815a8667c9ef4b7d2a87f61f7f3c090fe
Signed-off-by: default avatarSarada Prasanna Garnayak <sgarna@codeaurora.org>
parent f81d0b1f
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
* Qualcomm Connectivity SubSystem Platform Driver

This platform driver adds support for the CNSS subsystem used for SDIO
based Wi-Fi devices. The main purpose of this device tree entry below
is to invoke the CNSS SDIO platform driver.

Required properties:
- compatible	: "qcom,cnss_sdio"

Example:
	qcom,cnss-sdio {
		compatible = "qcom,cnss_sdio";
	};
+11 −0
Original line number Diff line number Diff line
@@ -308,6 +308,17 @@ config CNSS
	  This driver also adds support to integrate PCIe WLAN module to subsystem
	  restart framework.

config CNSS_SDIO
	tristate "Flag to enable platform driver for SIDO based wifi device"
	depends on MMC_SDHCI
	depends on MMC_SDHCI_MSM
	---help---
	  This module specifies whether CNSS Platform Driver supports SDIO.
	  This flag needs to be disabled if CNSS platform Driver need to be
	  supported for other buses.
	  This Flag is used by CLD Driver to use the SDIO GPL API's through
	  CNSS Platform Driver.

config CLD_LL_CORE
	tristate "Qualcomm core WLAN driver for QCA6174 chipset"
	select NL80211_TESTMODE
+1 −0
Original line number Diff line number Diff line
@@ -63,5 +63,6 @@ obj-$(CONFIG_RSI_91X) += rsi/

obj-$(CONFIG_WCNSS_CORE)	+= wcnss/

obj-$(CONFIG_CNSS_SDIO)		+= cnss/cnss_sdio.o
obj-$(CONFIG_CNSS)		+= cnss/
obj-$(CONFIG_WCNSS_MEM_PRE_ALLOC) += cnss_prealloc/
+59 −0
Original line number Diff line number Diff line
/* Copyright (c) 2015, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/of.h>
#include <linux/platform_device.h>

static int cnss_sdio_probe(struct platform_device *pdev)
{
	return 0;
}

static int cnss_sdio_remove(struct platform_device *pdev)
{
	return 0;
}

static const struct of_device_id cnss_sdio_dt_match[] = {
	{.compatible = "qcom,cnss_sdio"},
	{}
};
MODULE_DEVICE_TABLE(of, cnss_sdio_dt_match);

static struct platform_driver cnss_sdio_driver = {
	.probe  = cnss_sdio_probe,
	.remove = cnss_sdio_remove,
	.driver = {
		.name = "cnss_sdio",
		.owner = THIS_MODULE,
		.of_match_table = cnss_sdio_dt_match,
	},
};

static int __init cnss_sdio_init(void)
{
	return platform_driver_register(&cnss_sdio_driver);
}

static void __exit cnss_sdio_exit(void)
{
	platform_driver_unregister(&cnss_sdio_driver);
}

module_init(cnss_sdio_init);
module_exit(cnss_sdio_exit);

MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION(DEVICE "CNSS SDIO Driver");