Gemalto is now part of the Thales Group, find out more.

You are here

Thales IoT Developer Community

MV31/MV32: Linux Kernel Driver SW +source code

Tutorial, August 15, 2022 - 10:01am, 1387 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

#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/****: product VID/PID included in MHI Driver SW in /drivers/bus/mhi/host/pci_generic.c****ms/

 Kernel Patch since 2021-03-16

[PATCH] Add MHI bus support and driver for 5G module


 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:



wemei's picture