# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/net/qcom,bam-dmux.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm BAM Data Multiplexer maintainers: - Stephan Gerhold description: | The BAM Data Multiplexer provides access to the network data channels of modems integrated into many older Qualcomm SoCs, e.g. Qualcomm MSM8916 or MSM8974. It is built using a simple protocol layer on top of a DMA engine (Qualcomm BAM DMA) and bidirectional interrupts to coordinate power control. Note that this schema does not directly describe a hardware block but rather a firmware convention that combines several other hardware blocks (such as the DMA engine). As such it is specific to a firmware version, not a particular SoC or hardware version. properties: compatible: const: qcom,bam-dmux interrupts: description: Interrupts used by the modem to signal the AP. Both interrupts must be declared as IRQ_TYPE_EDGE_BOTH. items: - description: Power control - description: Power control acknowledgment interrupt-names: items: - const: pc - const: pc-ack qcom,smem-states: $ref: /schemas/types.yaml#/definitions/phandle-array description: State bits used by the AP to signal the modem. items: - description: Power control - description: Power control acknowledgment qcom,smem-state-names: description: Names for the state bits used by the AP to signal the modem. items: - const: pc - const: pc-ack dmas: items: - description: TX DMA channel phandle - description: RX DMA channel phandle dma-names: items: - const: tx - const: rx required: - compatible - interrupts - interrupt-names - qcom,smem-states - qcom,smem-state-names - dmas - dma-names additionalProperties: false examples: - | #include mpss: remoteproc { bam-dmux { compatible = "qcom,bam-dmux"; interrupt-parent = <&modem_smsm>; interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>; interrupt-names = "pc", "pc-ack"; qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>; qcom,smem-state-names = "pc", "pc-ack"; dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>; dma-names = "tx", "rx"; }; };