summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/dma/qcom,bam-dma.yaml
blob: e72adc172af102d8f400044ea0dc32db6b2365be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/dma/qcom,bam-dma.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies Inc BAM DMA controller

maintainers:
  - Andy Gross <agross@kernel.org>
  - Bjorn Andersson <andersson@kernel.org>

allOf:
  - $ref: dma-controller.yaml#

properties:
  compatible:
    oneOf:
      - enum:
          # APQ8064, IPQ8064 and MSM8960
          - qcom,bam-v1.3.0
          # MSM8974, APQ8074 and APQ8084
          - qcom,bam-v1.4.0
          # MSM8916, SDM630
          - qcom,bam-v1.7.0
          # Kaanapali
          - qcom,bam-v2.0.0
      - items:
          - enum:
              # SDM845, SM6115, SM8150, SM8250 and QCM2290
              - qcom,bam-v1.7.4
          - const: qcom,bam-v1.7.0

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: bam_clk

  "#dma-cells":
    const: 1

  interrupts:
    maxItems: 1

  dma-coherent: true

  iommus:
    minItems: 1
    maxItems: 7

  num-channels:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Indicates supported number of DMA channels in a remotely controlled bam.

  qcom,controlled-remotely:
    type: boolean
    description:
      Indicates that the bam is controlled by remote processor i.e. execution
      environment.

  qcom,ee:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 7
    description:
      Indicates the active Execution Environment identifier (0-7) used in the
      secure world.

  qcom,num-ees:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Indicates supported number of Execution Environments in a remotely
      controlled bam.

  qcom,powered-remotely:
    type: boolean
    description:
      Indicates that the bam is powered up by a remote processor but must be
      initialized by the local processor.

  reg:
    maxItems: 1

required:
  - compatible
  - "#dma-cells"
  - interrupts
  - qcom,ee
  - reg

anyOf:
  - required:
      - qcom,powered-remotely
      - num-channels
      - qcom,num-ees
  - required:
      - qcom,controlled-remotely
      - num-channels
      - qcom,num-ees
  - required:
      - clocks
      - clock-names

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/qcom,gcc-msm8974.h>

    dma-controller@f9944000 {
        compatible = "qcom,bam-v1.4.0";
        reg = <0xf9944000 0x19000>;
        interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&gcc GCC_BLSP2_AHB_CLK>;
        clock-names = "bam_clk";
        #dma-cells = <1>;
        qcom,ee = <0>;
    };
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        dma-controller@1dc4000 {
            compatible = "qcom,bam-v2.0.0";
            reg = <0x0 0x01dc4000 0x0 0x22000>;
            interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
            #dma-cells = <1>;
            iommus = <&apps_smmu 0xc0 0>, <&apps_smmu 0xc1 0>;
            qcom,ee = <0>;
            qcom,num-ees = <4>;
            num-channels = <20>;
            qcom,controlled-remotely;
        };
    };
...