Skip to content
Permalink
Browse files
bus: mhi: Add Qcom WWAN control driver
The MHI WWWAN control driver allows MHI Qcom based modems to expose
different modem control protocols to userspace, so that userspace
modem tools or daemon (e.g. ModemManager) can control WWAN config
and state (APN config, SMS, provider selection...). A Qcom based
modem can expose one or several of the following protocols:
- AT: Well known AT commands interactive protocol (microcom, minicom...)
- MBIM: Mobile Broadband Interface Model (libmbim, mbimcli)
- QMI: Qcom MSM/Modem Interface (libqmi, qmicli)
- QCDM: Qcom Modem diagnostic interface (libqcdm)
- FIREHOSE: XML-based protocol for Modem firmware management
	    (qmi-firmware-update)

The different interfaces are exposed as character devices, in the same
way as for USB modem variants.

Note that this patch is mostly a rework of the earlier MHI UCI
tentative that was a generic interface for accessing MHI bus from
userspace. As suggested, this new version is WWAN specific and is
dedicated to only expose channels used for controlling a modem, and
for which related opensource user support exist. Other MHI channels
not fitting the requirements will request either to be plugged to
the right Linux subsystem (when available) or to be discussed as a
new MHI driver (e.g AI accelerator, WiFi debug channels, etc...).

Co-developed-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
  • Loading branch information
Loic Poulain authored and intel-lab-lkp committed Mar 8, 2021
1 parent 144c79e commit 727df932009e4a00b877f66f9a77658967e0d8a4
Show file tree
Hide file tree
Showing 3 changed files with 574 additions and 0 deletions.
@@ -29,3 +29,15 @@ config MHI_BUS_PCI_GENERIC
This driver provides MHI PCI controller driver for devices such as
Qualcomm SDX55 based PCIe modems.

config MHI_WWAN_CTRL
tristate "MHI WWAN control driver for QCOM based PCIe modems"
depends on MHI_BUS
help
MHI WWAN CTRL allow QCOM based PCIe modems to expose different modem
control protocols to userspace, including AT, MBIM, QMI, DIAG and
FIREHOSE. These protocols can be accessed directly from userspace
(e.g. AT commands) or via libraries/tools (e.g. libmbim, libqmi,
libqcdm...).

To compile this driver as a module, choose M here: the module will be
called mhi_wwan_ctrl.
@@ -4,3 +4,6 @@ obj-y += core/
obj-$(CONFIG_MHI_BUS_PCI_GENERIC) += mhi_pci_generic.o
mhi_pci_generic-y += pci_generic.o

# MHI client
mhi_wwan_ctrl-y := wwan_ctrl.o
obj-$(CONFIG_MHI_WWAN_CTRL) += mhi_wwan_ctrl.o

0 comments on commit 727df93

Please sign in to comment.