Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ maintainers:

allOf:
- $ref: dma-controller.yaml#
- if:
not:
properties:
compatible:
contains:
const: qcom,shikra-bam-dma
then:
properties:
qcom,vmid: false

properties:
compatible:
Expand All @@ -27,6 +36,8 @@ properties:
- enum:
# SDM845, SM6115, SM8150, SM8250 and QCM2290
- qcom,bam-v1.7.4
# Shikra
- qcom,shikra-bam-dma
- const: qcom,bam-v1.7.0

clocks:
Expand Down Expand Up @@ -79,6 +90,21 @@ properties:
Indicates that the bam is powered up by a remote processor but must be
initialized by the local processor.

qcom,vmid:
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 1
maxItems: 8
items:
minimum: 1
maximum: 63
description:
Destination VMIDs of the remote processor(s) that read the per-channel
descriptor FIFOs as an AXI master. When present, the driver SCM-assigns
each FIFO to these VMIDs so the remote access does not trigger an XPU
violation. HLOS is always retained as the source owner and must not be
listed. Optional even when the qcom,shikra-bam-dma compatible is
present; not valid on any other compatible in this schema.

reg:
maxItems: 1

Expand Down
8 changes: 7 additions & 1 deletion Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@ description: |

properties:
compatible:
const: qcom,bam-dmux
oneOf:
- const: qcom,bam-dmux
- items:
- enum:
# Shikra
- qcom,shikra-bam-dmux
- const: qcom,bam-dmux

interrupts:
description:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ properties:
- description: Firmware name of the Hexagon core
- description: Firmware name of the Hexagon Devicetree

bam-dmux:
$ref: /schemas/net/qcom,bam-dmux.yaml#
description:
Qualcomm BAM Data Multiplexer (provides network interface to the modem)

glink-edge:
$ref: /schemas/remoteproc/qcom,glink-edge.yaml#
description:
Expand Down
58 changes: 30 additions & 28 deletions arch/arm64/boot/dts/qcom/shikra.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,6 @@
#address-cells = <2>;
#size-cells = <2>;

bam_dmux: bam-dmux {
compatible = "qcom,bam-dmux";

interrupts-extended = <&modem_smsm 1 IRQ_TYPE_EDGE_BOTH>,
<&modem_smsm 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";
};

clocks {
xo_board: xo-board {
compatible = "fixed-clock";
Expand Down Expand Up @@ -2587,18 +2571,6 @@
};
};

bam_dmux_dma: dma-controller@6044000 {
compatible = "qcom,bam-v1.7.0";
reg = <0x0 0x06044000 0x0 0x19000>;
interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>;
#dma-cells = <1>;
qcom,ee = <0>;

num-channels = <6>;
qcom,num-ees = <1>;
qcom,powered-remotely;
};

remoteproc_mpss: remoteproc@6080000 {
compatible = "qcom,shikra-mpss-pas";
reg = <0x0 0x06080000 0x0 0x100>;
Expand Down Expand Up @@ -2631,6 +2603,23 @@

status = "disabled";

bam_dmux: bam-dmux {
compatible = "qcom,shikra-bam-dmux", "qcom,bam-dmux";

interrupts-extended = <&modem_smsm 1 IRQ_TYPE_EDGE_BOTH>,
<&modem_smsm 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";
};

glink-edge {
interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING 0>;
mboxes = <&apcs_glb 12>;
Expand Down Expand Up @@ -3470,6 +3459,19 @@
};
};

bam_dmux_dma: dma-controller@6044000 {
compatible = "qcom,shikra-bam-dma", "qcom,bam-v1.7.0";
reg = <0x0 0x06044000 0x0 0x19000>;
interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>;
#dma-cells = <1>;
qcom,ee = <0>;

num-channels = <6>;
qcom,num-ees = <1>;
qcom,powered-remotely;
qcom,vmid = <QCOM_SCM_VMID_NAV>;
};

sram@c11e000 {
compatible = "qcom,shikra-imem", "mmio-sram";
reg = <0x0 0x0c11e000 0x0 0x1000>;
Expand Down
1 change: 1 addition & 0 deletions drivers/dma/qcom/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ config QCOM_BAM_DMA
depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM)
select DMA_ENGINE
select DMA_VIRTUAL_CHANNELS
select QCOM_SCM
help
Enable support for the QCOM BAM DMA controller. This controller
provides DMA capabilities for a variety of on-chip devices.
Expand Down
Loading
Loading