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