1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/net/qcom,bam-dmux.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm BAM Data Multiplexer 8 9maintainers: 10 - Stephan Gerhold <stephan@gerhold.net> 11 12description: | 13 The BAM Data Multiplexer provides access to the network data channels 14 of modems integrated into many older Qualcomm SoCs, e.g. Qualcomm MSM8916 15 or MSM8974. It is built using a simple protocol layer on top of a DMA engine 16 (Qualcomm BAM DMA) and bidirectional interrupts to coordinate power control. 17 18 Note that this schema does not directly describe a hardware block but rather 19 a firmware convention that combines several other hardware blocks (such as the 20 DMA engine). As such it is specific to a firmware version, not a particular 21 SoC or hardware version. 22 23properties: 24 compatible: 25 const: qcom,bam-dmux 26 27 interrupts: 28 description: 29 Interrupts used by the modem to signal the AP. 30 Both interrupts must be declared as IRQ_TYPE_EDGE_BOTH. 31 items: 32 - description: Power control 33 - description: Power control acknowledgment 34 35 interrupt-names: 36 items: 37 - const: pc 38 - const: pc-ack 39 40 qcom,smem-states: 41 $ref: /schemas/types.yaml#/definitions/phandle-array 42 description: State bits used by the AP to signal the modem. 43 items: 44 - description: Power control 45 - description: Power control acknowledgment 46 47 qcom,smem-state-names: 48 description: Names for the state bits used by the AP to signal the modem. 49 items: 50 - const: pc 51 - const: pc-ack 52 53 dmas: 54 items: 55 - description: TX DMA channel phandle 56 - description: RX DMA channel phandle 57 58 dma-names: 59 items: 60 - const: tx 61 - const: rx 62 63required: 64 - compatible 65 - interrupts 66 - interrupt-names 67 - qcom,smem-states 68 - qcom,smem-state-names 69 - dmas 70 - dma-names 71 72additionalProperties: false 73 74examples: 75 - | 76 #include <dt-bindings/interrupt-controller/irq.h> 77 78 mpss: remoteproc { 79 bam-dmux { 80 compatible = "qcom,bam-dmux"; 81 82 interrupt-parent = <&modem_smsm>; 83 interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>; 84 interrupt-names = "pc", "pc-ack"; 85 86 qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>; 87 qcom,smem-state-names = "pc", "pc-ack"; 88 89 dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>; 90 dma-names = "tx", "rx"; 91 }; 92 }; 93