Telit Cinterion IoT Developer Community
MV31/MV32: Linux Kernel Driver SW +source code
Tutorial, August 15, 2022 - 10:01am, 2165 views
MV31/MV32 Tutorial: Linux Driver SW
Since Linux Kernel v5.13.x, the kernel OS driver has adapted the driver SW + source code for our MV31/MV32 5G modules
- For USB variant: product VID/PID included in /drivers/usb/serial/option.c
========================================
option.c - drivers/usb/serial/option.c - Linux source code (v4.19.249) - Bootlin
https://elixir.bootlin.com/linux/v5.19-rc4/source/drivers/usb/serial/option.c
#define CINTERION_PRODUCT_MV31_MBIM 0x00b3
#define CINTERION_PRODUCT_MV31_RMNET 0x00b7
#define CINTERION_PRODUCT_MV31_2_MBIM 0x00b8
#define CINTERION_PRODUCT_MV31_2_RMNET 0x00b9
#define CINTERION_PRODUCT_MV32_WA 0x00f1
#define CINTERION_PRODUCT_MV32_WB 0x00f2
=========================================================
- For PCIe variant/mode: product VID/PID included in MHI Driver SW in /drivers/bus/mhi/host/pci_generic.c
https://docs.kernel.org/mhi/mhi.html
https://www.linaro.org/blog/mhi-bus-support-gets-added-to-the-linux-kernel/
https://www.linaro.org/blog/upstreaming-support-for-qualcomm-pcie-modems/
Kernel Patch since 2021-03-16
[PATCH] Add MHI bus support and driver for 5G module
https://lore.kernel.org/netdev/YFMTEr5yGU0owYoM@unreal/T/
/drivers/bus/mhi/host/pci_generic.c
static const struct pci_device_id mhi_pci_id_table[] = {
/* MV31-W (Cinterion) */
{ PCI_DEVICE(0x1269, 0x00b3),
.driver_data = (kernel_ulong_t) &mhi_mv31_info },
/* MV31-2-W (Cinterion), based on new baseline */
{ PCI_DEVICE(0x1269, 0x00b4),
.driver_data = (kernel_ulong_t) &mhi_mv31_info },
/* MV32-WA (Cinterion) */
{ PCI_DEVICE(0x1269, 0x00ba),
.driver_data = (kernel_ulong_t) &mhi_mv32_info },
/* MV32-WB (Cinterion) */
{ PCI_DEVICE(0x1269, 0x00bb),
.driver_data = (kernel_ulong_t) &mhi_mv32_info },
==================================================
On both the USB/PCIe variants, we recommend to use the MBIM (Mobile Broadband Interface Model) data/control interfaces on Linux Kernel for 5G data transmissions:
https://www.kernelconfig.io/config_usb_net_cdc_mbim?q=&kernelversion=4.9.251&arch=x86