1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/dma/fsl,imx-sdma.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Joy Zou <joy.zou@nxp.com>
11*cb7aa33aSEmmanuel Vadot
12*cb7aa33aSEmmanuel VadotallOf:
13*cb7aa33aSEmmanuel Vadot  - $ref: dma-controller.yaml#
14*cb7aa33aSEmmanuel Vadot
15*cb7aa33aSEmmanuel Vadotproperties:
16*cb7aa33aSEmmanuel Vadot  compatible:
17*cb7aa33aSEmmanuel Vadot    oneOf:
18*cb7aa33aSEmmanuel Vadot      - items:
19*cb7aa33aSEmmanuel Vadot          - enum:
20*cb7aa33aSEmmanuel Vadot              - fsl,imx50-sdma
21*cb7aa33aSEmmanuel Vadot              - fsl,imx51-sdma
22*cb7aa33aSEmmanuel Vadot              - fsl,imx53-sdma
23*cb7aa33aSEmmanuel Vadot              - fsl,imx6q-sdma
24*cb7aa33aSEmmanuel Vadot              - fsl,imx7d-sdma
25*cb7aa33aSEmmanuel Vadot          - const: fsl,imx35-sdma
26*cb7aa33aSEmmanuel Vadot      - items:
27*cb7aa33aSEmmanuel Vadot          - enum:
28*cb7aa33aSEmmanuel Vadot              - fsl,imx6sx-sdma
29*cb7aa33aSEmmanuel Vadot              - fsl,imx6sl-sdma
30*cb7aa33aSEmmanuel Vadot          - const: fsl,imx6q-sdma
31*cb7aa33aSEmmanuel Vadot      - items:
32*cb7aa33aSEmmanuel Vadot          - const: fsl,imx6ul-sdma
33*cb7aa33aSEmmanuel Vadot          - const: fsl,imx6q-sdma
34*cb7aa33aSEmmanuel Vadot          - const: fsl,imx35-sdma
35*cb7aa33aSEmmanuel Vadot      - items:
36*cb7aa33aSEmmanuel Vadot          - const: fsl,imx6sll-sdma
37*cb7aa33aSEmmanuel Vadot          - const: fsl,imx6ul-sdma
38*cb7aa33aSEmmanuel Vadot      - items:
39*cb7aa33aSEmmanuel Vadot          - const: fsl,imx8mq-sdma
40*cb7aa33aSEmmanuel Vadot          - const: fsl,imx7d-sdma
41*cb7aa33aSEmmanuel Vadot      - items:
42*cb7aa33aSEmmanuel Vadot          - enum:
43*cb7aa33aSEmmanuel Vadot              - fsl,imx8mp-sdma
44*cb7aa33aSEmmanuel Vadot              - fsl,imx8mn-sdma
45*cb7aa33aSEmmanuel Vadot              - fsl,imx8mm-sdma
46*cb7aa33aSEmmanuel Vadot          - const: fsl,imx8mq-sdma
47*cb7aa33aSEmmanuel Vadot      - items:
48*cb7aa33aSEmmanuel Vadot          - enum:
49*cb7aa33aSEmmanuel Vadot              - fsl,imx25-sdma
50*cb7aa33aSEmmanuel Vadot              - fsl,imx31-sdma
51*cb7aa33aSEmmanuel Vadot              - fsl,imx35-sdma
52*cb7aa33aSEmmanuel Vadot  reg:
53*cb7aa33aSEmmanuel Vadot    maxItems: 1
54*cb7aa33aSEmmanuel Vadot
55*cb7aa33aSEmmanuel Vadot  interrupts:
56*cb7aa33aSEmmanuel Vadot    maxItems: 1
57*cb7aa33aSEmmanuel Vadot
58*cb7aa33aSEmmanuel Vadot  fsl,sdma-ram-script-name:
59*cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/string
60*cb7aa33aSEmmanuel Vadot    description: Should contain the full path of SDMA RAM scripts firmware.
61*cb7aa33aSEmmanuel Vadot
62*cb7aa33aSEmmanuel Vadot  "#dma-cells":
63*cb7aa33aSEmmanuel Vadot    const: 3
64*cb7aa33aSEmmanuel Vadot    description: |
65*cb7aa33aSEmmanuel Vadot      The first cell: request/event ID
66*cb7aa33aSEmmanuel Vadot
67*cb7aa33aSEmmanuel Vadot      The second cell: peripheral types ID
68*cb7aa33aSEmmanuel Vadot        enum:
69*cb7aa33aSEmmanuel Vadot          - MCU domain SSI: 0
70*cb7aa33aSEmmanuel Vadot          - Shared SSI: 1
71*cb7aa33aSEmmanuel Vadot          - MMC: 2
72*cb7aa33aSEmmanuel Vadot          - SDHC: 3
73*cb7aa33aSEmmanuel Vadot          - MCU domain UART: 4
74*cb7aa33aSEmmanuel Vadot          - Shared UART: 5
75*cb7aa33aSEmmanuel Vadot          - FIRI: 6
76*cb7aa33aSEmmanuel Vadot          - MCU domain CSPI: 7
77*cb7aa33aSEmmanuel Vadot          - Shared CSPI: 8
78*cb7aa33aSEmmanuel Vadot          - SIM: 9
79*cb7aa33aSEmmanuel Vadot          - ATA: 10
80*cb7aa33aSEmmanuel Vadot          - CCM: 11
81*cb7aa33aSEmmanuel Vadot          - External peripheral: 12
82*cb7aa33aSEmmanuel Vadot          - Memory Stick Host Controller: 13
83*cb7aa33aSEmmanuel Vadot          - Shared Memory Stick Host Controller: 14
84*cb7aa33aSEmmanuel Vadot          - DSP: 15
85*cb7aa33aSEmmanuel Vadot          - Memory: 16
86*cb7aa33aSEmmanuel Vadot          - FIFO type Memory: 17
87*cb7aa33aSEmmanuel Vadot          - SPDIF: 18
88*cb7aa33aSEmmanuel Vadot          - IPU Memory: 19
89*cb7aa33aSEmmanuel Vadot          - ASRC: 20
90*cb7aa33aSEmmanuel Vadot          - ESAI: 21
91*cb7aa33aSEmmanuel Vadot          - SSI Dual FIFO: 22
92*cb7aa33aSEmmanuel Vadot              description: needs firmware more than ver 2
93*cb7aa33aSEmmanuel Vadot          - Shared ASRC: 23
94*cb7aa33aSEmmanuel Vadot          - SAI: 24
95*cb7aa33aSEmmanuel Vadot          - HDMI Audio: 25
96*cb7aa33aSEmmanuel Vadot
97*cb7aa33aSEmmanuel Vadot       The third cell: transfer priority ID
98*cb7aa33aSEmmanuel Vadot         enum:
99*cb7aa33aSEmmanuel Vadot           - High: 0
100*cb7aa33aSEmmanuel Vadot           - Medium: 1
101*cb7aa33aSEmmanuel Vadot           - Low: 2
102*cb7aa33aSEmmanuel Vadot
103*cb7aa33aSEmmanuel Vadot  gpr:
104*cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
105*cb7aa33aSEmmanuel Vadot    description: The phandle to the General Purpose Register (GPR) node
106*cb7aa33aSEmmanuel Vadot
107*cb7aa33aSEmmanuel Vadot  fsl,sdma-event-remap:
108*cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-matrix
109*cb7aa33aSEmmanuel Vadot    maxItems: 2
110*cb7aa33aSEmmanuel Vadot    items:
111*cb7aa33aSEmmanuel Vadot      items:
112*cb7aa33aSEmmanuel Vadot        - description: GPR register offset
113*cb7aa33aSEmmanuel Vadot        - description: GPR register shift
114*cb7aa33aSEmmanuel Vadot        - description: GPR register value
115*cb7aa33aSEmmanuel Vadot    description: |
116*cb7aa33aSEmmanuel Vadot      Register bits of sdma event remap, the format is <reg shift val>.
117*cb7aa33aSEmmanuel Vadot      The order is <RX>, <TX>.
118*cb7aa33aSEmmanuel Vadot
119*cb7aa33aSEmmanuel Vadot  clocks:
120*cb7aa33aSEmmanuel Vadot    maxItems: 2
121*cb7aa33aSEmmanuel Vadot
122*cb7aa33aSEmmanuel Vadot  clock-names:
123*cb7aa33aSEmmanuel Vadot    items:
124*cb7aa33aSEmmanuel Vadot      - const: ipg
125*cb7aa33aSEmmanuel Vadot      - const: ahb
126*cb7aa33aSEmmanuel Vadot
127*cb7aa33aSEmmanuel Vadot  iram:
128*cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
129*cb7aa33aSEmmanuel Vadot    description: The phandle to the On-chip RAM (OCRAM) node.
130*cb7aa33aSEmmanuel Vadot
131*cb7aa33aSEmmanuel Vadotrequired:
132*cb7aa33aSEmmanuel Vadot  - compatible
133*cb7aa33aSEmmanuel Vadot  - reg
134*cb7aa33aSEmmanuel Vadot  - interrupts
135*cb7aa33aSEmmanuel Vadot  - fsl,sdma-ram-script-name
136*cb7aa33aSEmmanuel Vadot
137*cb7aa33aSEmmanuel VadotadditionalProperties: false
138*cb7aa33aSEmmanuel Vadot
139*cb7aa33aSEmmanuel Vadotexamples:
140*cb7aa33aSEmmanuel Vadot  - |
141*cb7aa33aSEmmanuel Vadot    sdma: dma-controller@83fb0000 {
142*cb7aa33aSEmmanuel Vadot      compatible = "fsl,imx51-sdma", "fsl,imx35-sdma";
143*cb7aa33aSEmmanuel Vadot      reg = <0x83fb0000 0x4000>;
144*cb7aa33aSEmmanuel Vadot      interrupts = <6>;
145*cb7aa33aSEmmanuel Vadot      #dma-cells = <3>;
146*cb7aa33aSEmmanuel Vadot      fsl,sdma-ram-script-name = "sdma-imx51.bin";
147*cb7aa33aSEmmanuel Vadot    };
148*cb7aa33aSEmmanuel Vadot
149*cb7aa33aSEmmanuel Vadot...
150