aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/dma/xilinx/xilinx_dpdma.txt
blob: 5f1e680ffcc2ae4ffb83a49f29b81bf881db7fe8 (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
Device-Tree bindings for Xilinx ZynqMP DisplayPort Subsystem

The ZynqMP DisplayPort subsystem handles DMA channel buffer management,
blending, and audio mixing. The DisplayPort subsystem receives display
and audio frames from DPDMA and transmits output to the DisplayPort IP core.

Required properties:
 - compatible: Should be "xlnx,dpdma".
 - reg: Base address and size of the IP core.
 - interrupts: Interrupt number.
 - interrupts-parent: phandle for interrupt controller.
 - clocks: phandle for AXI clock
 - clock-names: The identification string, "axi_clk", is always required.

Required child node properties:
- compatible: Should be one of "xlnx,video0", "xlnx,video1", "xlnx,video2",
  "xlnx,graphics", "xlnx,audio0", or "xlnx,audio1".

Example:

	xlnx_dpdma: axidpdma@43c10000 {
		compatible = "xlnx,dpdma";
		reg = <0x43c10000 0x1000>;
		interrupts = <0 54 4>;
		interrupt-parent = <&intc>;
		clocks = <&clkc 16>;
		clock-names = "axi_clk";
		xlnx,axi-clock-freq = <200000000>;

		dma-channels = <6>;

		#dma-cells = <1>;
		dma-video0channel@43c10000 {
			compatible = "xlnx,video0";
		};
		dma-video1channel@43c10000 {
			compatible = "xlnx,video1";
		};
		dma-video2channel@43c10000 {
			compatible = "xlnx,video2";
		};
		dma-graphicschannel@43c10000 {
			compatible = "xlnx,graphics";
		};
		dma-audio0channel@43c10000 {
			compatible = "xlnx,audio0";
		};
		dma-audio1channel@43c10000 {
			compatible = "xlnx,audio1";
		};
	};

* DMA client

Required properties:
- dmas: a list of <[DPDMA device phandle] [Channel ID]> pairs. "Channel ID"
  is defined as video0 = 0, video1 = 1, video2 = 2, graphics = 3, audio0 = 4,
  and audio1 = 5.

Example:

	xilinx_drm {
		compatible = "xlnx,drm";
		xlnx,encoder-slave = <&xlnx_dp>;
		clocks = <&si570 0>;
		xlnx,connector-type = "DisplayPort";
		xlnx,dp-sub = <&xlnx_dp_sub>;
		planes {
			xlnx,pixel-format = "rgb565";
			plane0 {
				dmas = <&xlnx_dpdma 3>;
				dma-names = "dma";
			};
			plane1 {
				dmas = <&xlnx_dpdma 0>;
				dma-names = "dma";
			};
		};
	};

	xlnx_dp_snd_pcm0: dp_snd_pcm0 {
		compatible = "xlnx,dp-snd-pcm";
		dmas = <&xlnx_dpdma 4>;
		dma-names = "tx";
	};

	xlnx_dp_snd_pcm1: dp_snd_pcm1 {
		compatible = "xlnx,dp-snd-pcm";
		dmas = <&xlnx_dpdma 5>;
		dma-names = "tx";
	};