• Stephan Gerhold's avatar
    net: wwan: Add RPMSG WWAN CTRL driver · 5e90abf4
    Stephan Gerhold authored
    The remote processor messaging (rpmsg) subsystem provides an interface
    to communicate with other remote processors. On many Qualcomm SoCs this
    is used to communicate with an integrated modem DSP that implements most
    of the modem functionality and provides high-level protocols like
    QMI or AT to allow controlling the modem.
    
    For QMI, most older Qualcomm SoCs (e.g. MSM8916/MSM8974) have
    a standalone "DATA5_CNTL" channel that allows exchanging QMI messages.
    Note that newer SoCs (e.g. SDM845) only allow exchanging QMI messages
    via a shared QRTR channel that is available via a socket API on Linux.
    
    For AT, the "DATA4" channel accepts at least a limited set of AT
    commands, on many older and newer Qualcomm SoCs, although QMI is
    typically the preferred control protocol.
    
    Often there are additional QMI/AT channels (usually named DATA*_CNTL
    for QMI and DATA* for AT), but it is not clear if those are really
    functional on all devices. Also, at the moment there is no use case
    for having multiple QMI/AT ports. If needed more channels could be
    added later after more testing.
    
    Note that the data path (network interface) is entirely separate
    from the control path and varies between Qualcomm SoCs, e.g. "IPA"
    on newer Qualcomm SoCs or "BAM-DMUX" on some older ones.
    
    The RPMSG WWAN CTRL driver exposes the QMI/AT control ports via the
    WWAN subsystem, and therefore allows userspace like ModemManager to
    set up the modem. Until now, ModemManager had to use the RPMSG-specific
    rpmsg-char where the channels must be explicitly exposed as a char
    device first and don't show up directly in sysfs.
    
    The driver is a fairly simple glue layer between WWAN and RPMSG
    and is mostly based on the existing mhi_wwan_ctrl.c and rpmsg_char.c.
    
    Cc: Loic Poulain <loic.poulain@linaro.org>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5e90abf4
Makefile 309 Bytes