xref: /freebsd/sys/contrib/device-tree/Bindings/dma/intel,ldma.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1*5def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5def4c47SEmmanuel Vadot%YAML 1.2
3*5def4c47SEmmanuel Vadot---
4*5def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/dma/intel,ldma.yaml#
5*5def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5def4c47SEmmanuel Vadot
7*5def4c47SEmmanuel Vadottitle: Lightning Mountain centralized DMA controllers.
8*5def4c47SEmmanuel Vadot
9*5def4c47SEmmanuel Vadotmaintainers:
10*5def4c47SEmmanuel Vadot  - chuanhua.lei@intel.com
11*5def4c47SEmmanuel Vadot  - mallikarjunax.reddy@intel.com
12*5def4c47SEmmanuel Vadot
13*5def4c47SEmmanuel VadotallOf:
14*5def4c47SEmmanuel Vadot  - $ref: "dma-controller.yaml#"
15*5def4c47SEmmanuel Vadot
16*5def4c47SEmmanuel Vadotproperties:
17*5def4c47SEmmanuel Vadot  compatible:
18*5def4c47SEmmanuel Vadot    enum:
19*5def4c47SEmmanuel Vadot      - intel,lgm-cdma
20*5def4c47SEmmanuel Vadot      - intel,lgm-dma2tx
21*5def4c47SEmmanuel Vadot      - intel,lgm-dma1rx
22*5def4c47SEmmanuel Vadot      - intel,lgm-dma1tx
23*5def4c47SEmmanuel Vadot      - intel,lgm-dma0tx
24*5def4c47SEmmanuel Vadot      - intel,lgm-dma3
25*5def4c47SEmmanuel Vadot      - intel,lgm-toe-dma30
26*5def4c47SEmmanuel Vadot      - intel,lgm-toe-dma31
27*5def4c47SEmmanuel Vadot
28*5def4c47SEmmanuel Vadot  reg:
29*5def4c47SEmmanuel Vadot    maxItems: 1
30*5def4c47SEmmanuel Vadot
31*5def4c47SEmmanuel Vadot  "#dma-cells":
32*5def4c47SEmmanuel Vadot    const: 3
33*5def4c47SEmmanuel Vadot    description:
34*5def4c47SEmmanuel Vadot      The first cell is the peripheral's DMA request line.
35*5def4c47SEmmanuel Vadot      The second cell is the peripheral's (port) number corresponding to the channel.
36*5def4c47SEmmanuel Vadot      The third cell is the burst length of the channel.
37*5def4c47SEmmanuel Vadot
38*5def4c47SEmmanuel Vadot  dma-channels:
39*5def4c47SEmmanuel Vadot    minimum: 1
40*5def4c47SEmmanuel Vadot    maximum: 16
41*5def4c47SEmmanuel Vadot
42*5def4c47SEmmanuel Vadot  dma-channel-mask:
43*5def4c47SEmmanuel Vadot    maxItems: 1
44*5def4c47SEmmanuel Vadot
45*5def4c47SEmmanuel Vadot  clocks:
46*5def4c47SEmmanuel Vadot    maxItems: 1
47*5def4c47SEmmanuel Vadot
48*5def4c47SEmmanuel Vadot  resets:
49*5def4c47SEmmanuel Vadot    maxItems: 1
50*5def4c47SEmmanuel Vadot
51*5def4c47SEmmanuel Vadot  reset-names:
52*5def4c47SEmmanuel Vadot    items:
53*5def4c47SEmmanuel Vadot      - const: ctrl
54*5def4c47SEmmanuel Vadot
55*5def4c47SEmmanuel Vadot  interrupts:
56*5def4c47SEmmanuel Vadot    maxItems: 1
57*5def4c47SEmmanuel Vadot
58*5def4c47SEmmanuel Vadot  intel,dma-poll-cnt:
59*5def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
60*5def4c47SEmmanuel Vadot    description:
61*5def4c47SEmmanuel Vadot      DMA descriptor polling counter is used to control the poling mechanism
62*5def4c47SEmmanuel Vadot      for the descriptor fetching for all channels.
63*5def4c47SEmmanuel Vadot
64*5def4c47SEmmanuel Vadot  intel,dma-byte-en:
65*5def4c47SEmmanuel Vadot    type: boolean
66*5def4c47SEmmanuel Vadot    description:
67*5def4c47SEmmanuel Vadot      DMA byte enable is only valid for DMA write(RX).
68*5def4c47SEmmanuel Vadot      Byte enable(1) means DMA write will be based on the number of dwords
69*5def4c47SEmmanuel Vadot      instead of the whole burst.
70*5def4c47SEmmanuel Vadot
71*5def4c47SEmmanuel Vadot  intel,dma-drb:
72*5def4c47SEmmanuel Vadot    type: boolean
73*5def4c47SEmmanuel Vadot    description:
74*5def4c47SEmmanuel Vadot      DMA descriptor read back to make sure data and desc synchronization.
75*5def4c47SEmmanuel Vadot
76*5def4c47SEmmanuel Vadot  intel,dma-dburst-wr:
77*5def4c47SEmmanuel Vadot    type: boolean
78*5def4c47SEmmanuel Vadot    description:
79*5def4c47SEmmanuel Vadot      Enable RX dynamic burst write. When it is enabled, the DMA does RX dynamic burst;
80*5def4c47SEmmanuel Vadot      if it is disabled, the DMA RX will still support programmable fixed burst size of 2,4,8,16.
81*5def4c47SEmmanuel Vadot      It only applies to RX DMA and memcopy DMA.
82*5def4c47SEmmanuel Vadot
83*5def4c47SEmmanuel Vadotrequired:
84*5def4c47SEmmanuel Vadot  - compatible
85*5def4c47SEmmanuel Vadot  - reg
86*5def4c47SEmmanuel Vadot
87*5def4c47SEmmanuel VadotadditionalProperties: false
88*5def4c47SEmmanuel Vadot
89*5def4c47SEmmanuel Vadotexamples:
90*5def4c47SEmmanuel Vadot  - |
91*5def4c47SEmmanuel Vadot    dma0: dma-controller@e0e00000 {
92*5def4c47SEmmanuel Vadot      compatible = "intel,lgm-cdma";
93*5def4c47SEmmanuel Vadot      reg = <0xe0e00000 0x1000>;
94*5def4c47SEmmanuel Vadot      #dma-cells = <3>;
95*5def4c47SEmmanuel Vadot      dma-channels = <16>;
96*5def4c47SEmmanuel Vadot      dma-channel-mask = <0xFFFF>;
97*5def4c47SEmmanuel Vadot      interrupt-parent = <&ioapic1>;
98*5def4c47SEmmanuel Vadot      interrupts = <82 1>;
99*5def4c47SEmmanuel Vadot      resets = <&rcu0 0x30 0>;
100*5def4c47SEmmanuel Vadot      reset-names = "ctrl";
101*5def4c47SEmmanuel Vadot      clocks = <&cgu0 80>;
102*5def4c47SEmmanuel Vadot      intel,dma-poll-cnt = <4>;
103*5def4c47SEmmanuel Vadot      intel,dma-byte-en;
104*5def4c47SEmmanuel Vadot      intel,dma-drb;
105*5def4c47SEmmanuel Vadot    };
106*5def4c47SEmmanuel Vadot  - |
107*5def4c47SEmmanuel Vadot    dma3: dma-controller@ec800000 {
108*5def4c47SEmmanuel Vadot      compatible = "intel,lgm-dma3";
109*5def4c47SEmmanuel Vadot      reg = <0xec800000 0x1000>;
110*5def4c47SEmmanuel Vadot      clocks = <&cgu0 71>;
111*5def4c47SEmmanuel Vadot      resets = <&rcu0 0x10 9>;
112*5def4c47SEmmanuel Vadot      #dma-cells = <3>;
113*5def4c47SEmmanuel Vadot      intel,dma-poll-cnt = <16>;
114*5def4c47SEmmanuel Vadot      intel,dma-byte-en;
115*5def4c47SEmmanuel Vadot      intel,dma-dburst-wr;
116*5def4c47SEmmanuel Vadot    };
117