xref: /freebsd/sys/contrib/device-tree/Bindings/dma/atmel,at91sam9g45-dma.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8ccc0d23SEmmanuel Vadot%YAML 1.2
3*8ccc0d23SEmmanuel Vadot---
4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/atmel,at91sam9g45-dma.yaml#
5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8ccc0d23SEmmanuel Vadot
7*8ccc0d23SEmmanuel Vadottitle: Atmel Direct Memory Access Controller (DMA)
8*8ccc0d23SEmmanuel Vadot
9*8ccc0d23SEmmanuel Vadotmaintainers:
10*8ccc0d23SEmmanuel Vadot  - Ludovic Desroches <ludovic.desroches@microchip.com>
11*8ccc0d23SEmmanuel Vadot
12*8ccc0d23SEmmanuel Vadotdescription:
13*8ccc0d23SEmmanuel Vadot  The Atmel Direct Memory Access Controller (DMAC) transfers data from a source
14*8ccc0d23SEmmanuel Vadot  peripheral to a destination peripheral over one or more AMBA buses. One channel
15*8ccc0d23SEmmanuel Vadot  is required for each source/destination pair. In the most basic configuration,
16*8ccc0d23SEmmanuel Vadot  the DMAC has one master interface and one channel. The master interface reads
17*8ccc0d23SEmmanuel Vadot  the data from a source and writes it to a destination. Two AMBA transfers are
18*8ccc0d23SEmmanuel Vadot  required for each DMAC data transfer. This is also known as a dual-access transfer.
19*8ccc0d23SEmmanuel Vadot  The DMAC is programmed via the APB interface.
20*8ccc0d23SEmmanuel Vadot
21*8ccc0d23SEmmanuel Vadotproperties:
22*8ccc0d23SEmmanuel Vadot  compatible:
23*8ccc0d23SEmmanuel Vadot    enum:
24*8ccc0d23SEmmanuel Vadot      - atmel,at91sam9g45-dma
25*8ccc0d23SEmmanuel Vadot      - atmel,at91sam9rl-dma
26*8ccc0d23SEmmanuel Vadot
27*8ccc0d23SEmmanuel Vadot  reg:
28*8ccc0d23SEmmanuel Vadot    maxItems: 1
29*8ccc0d23SEmmanuel Vadot
30*8ccc0d23SEmmanuel Vadot  interrupts:
31*8ccc0d23SEmmanuel Vadot    maxItems: 1
32*8ccc0d23SEmmanuel Vadot
33*8ccc0d23SEmmanuel Vadot  "#dma-cells":
34*8ccc0d23SEmmanuel Vadot    description:
35*8ccc0d23SEmmanuel Vadot      Must be <2>, used to represent the number of integer cells in the dma
36*8ccc0d23SEmmanuel Vadot      property of client devices. The two cells in order are
37*8ccc0d23SEmmanuel Vadot      1. The first cell represents the channel number.
38*8ccc0d23SEmmanuel Vadot      2. The second cell is 0 for RX and 1 for TX transfers.
39*8ccc0d23SEmmanuel Vadot    const: 2
40*8ccc0d23SEmmanuel Vadot
41*8ccc0d23SEmmanuel Vadot  clocks:
42*8ccc0d23SEmmanuel Vadot    maxItems: 1
43*8ccc0d23SEmmanuel Vadot
44*8ccc0d23SEmmanuel Vadot  clock-names:
45*8ccc0d23SEmmanuel Vadot    const: dma_clk
46*8ccc0d23SEmmanuel Vadot
47*8ccc0d23SEmmanuel Vadotrequired:
48*8ccc0d23SEmmanuel Vadot  - compatible
49*8ccc0d23SEmmanuel Vadot  - reg
50*8ccc0d23SEmmanuel Vadot  - interrupts
51*8ccc0d23SEmmanuel Vadot  - "#dma-cells"
52*8ccc0d23SEmmanuel Vadot  - clocks
53*8ccc0d23SEmmanuel Vadot  - clock-names
54*8ccc0d23SEmmanuel Vadot
55*8ccc0d23SEmmanuel VadotadditionalProperties: false
56*8ccc0d23SEmmanuel Vadot
57*8ccc0d23SEmmanuel Vadotexamples:
58*8ccc0d23SEmmanuel Vadot  - |
59*8ccc0d23SEmmanuel Vadot    dma-controller@ffffec00 {
60*8ccc0d23SEmmanuel Vadot        compatible = "atmel,at91sam9g45-dma";
61*8ccc0d23SEmmanuel Vadot        reg = <0xffffec00 0x200>;
62*8ccc0d23SEmmanuel Vadot        interrupts = <21>;
63*8ccc0d23SEmmanuel Vadot        #dma-cells = <2>;
64*8ccc0d23SEmmanuel Vadot        clocks = <&pmc 2 20>;
65*8ccc0d23SEmmanuel Vadot        clock-names = "dma_clk";
66*8ccc0d23SEmmanuel Vadot    };
67*8ccc0d23SEmmanuel Vadot
68*8ccc0d23SEmmanuel Vadot...
69