• Stephan Gerhold's avatar
    remoteproc: qcom_q6v5_mss: Create platform device for BAM-DMUX · 59983c74
    Stephan Gerhold authored
    The modem remoteproc on older Qualcomm SoCs (e.g. MSM8916 and MSM8974)
    implements the BAM-DMUX protocol to allow access to the network data
    channels of the modem. The hardware/firmware resources required to
    implement the BAM-DMUX driver are described in an extra node in the
    device tree (with the compatible "qcom,bam-dmux").
    
    This node logically belongs below the modem remoteproc, so that both
    control interfaces (rpmsg_wwan_ctrl) and network interfaces (bam_dmux)
    have a common parent.
    
    Unlike other child devices of the modem remoteproc, the bam-dmux device
    currently does not follow the state of the remoteproc (i.e. it is not
    added/removed when the remoteproc is started/stopped). However, this is
    an implementation detail of the bam_dmux driver in Linux that might
    change in the future.
    
    To be flexible for future changes, create a standard platform device
    specifically only for "qcom,bam-dmux", rather than populating all child
    nodes. This is also more consistent with the way the other child nodes
    are handled in the driver.
    
    Note: of_platform_device_create() and of_node_put() have NULL-checks
    internally, so there is no need to check if the "qcom,bam-dmux" node
    actually exists in the device tree.
    Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
    Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20220228225400.146555-2-stephan@gerhold.net
    59983c74
qcom_q6v5_mss.c 56.4 KB