On Mon, Oct 11, 2021 at 04:17:35PM +0200, Stephan Gerhold wrote: > 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) and bidirectional interrupts to coordinate power control. > > The device tree node combines the incoming interrupt with the outgoing > interrupts (smem-states) as well as the two DMA channels, which allows > the BAM-DMUX driver to request all necessary resources. > > Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> > --- > Changes since RFC: None. > --- > .../bindings/net/qcom,bam-dmux.yaml | 87 +++++++++++++++++++ > 1 file changed, 87 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml > > diff --git a/Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml b/Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml > new file mode 100644 > index 000000000000..33e125e70cb4 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml > @@ -0,0 +1,87 @@ > +# 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 <stephan@xxxxxxxxxxx> > + > +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. > + > +properties: > + compatible: > + const: qcom,bam-dmux Is this block the same on every SoC? It needs to be SoC specific. > + > + 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 <dt-bindings/interrupt-controller/irq.h> > + > + 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"; > + }; > + }; > -- > 2.33.0 > >