-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: net: Add schema for Qualcomm BAM-DMUX
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@gerhold.net> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Stephan Gerhold
authored and
David S. Miller
committed
Nov 29, 2021
1 parent
fc1e5a3
commit f3aee7c
Showing
1 changed file
with
92 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# 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@gerhold.net> | ||
|
||
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 <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"; | ||
}; | ||
}; |