xref: /freebsd-src/sys/contrib/device-tree/Bindings/iio/adc/xilinx-xadc.txt (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1c66ec88fSEmmanuel VadotXilinx XADC device driver
2c66ec88fSEmmanuel Vadot
3*5def4c47SEmmanuel VadotThis binding document describes the bindings for the Xilinx 7 Series XADC as well
4*5def4c47SEmmanuel Vadotas the UltraScale/UltraScale+ System Monitor.
5*5def4c47SEmmanuel Vadot
6*5def4c47SEmmanuel VadotThe Xilinx XADC is an ADC that can be found in the Series 7 FPGAs from Xilinx.
7*5def4c47SEmmanuel VadotThe XADC has a DRP interface for communication. Currently two different
8*5def4c47SEmmanuel Vadotfrontends for the DRP interface exist. One that is only available on the ZYNQ
9*5def4c47SEmmanuel Vadotfamily as a hardmacro in the SoC portion of the ZYNQ. The other one is available
10*5def4c47SEmmanuel Vadoton all series 7 platforms and is a softmacro with a AXI interface. This binding
11*5def4c47SEmmanuel Vadotdocument describes the bindings for both of them since the bindings are very
12*5def4c47SEmmanuel Vadotsimilar.
13*5def4c47SEmmanuel Vadot
14*5def4c47SEmmanuel VadotThe Xilinx System Monitor is an ADC that is found in the UltraScale and
15*5def4c47SEmmanuel VadotUltraScale+ FPGAs from Xilinx. The System Monitor provides a DRP interface for
16*5def4c47SEmmanuel Vadotcommunication. Xilinx provides a standard IP core that can be used to access the
17*5def4c47SEmmanuel VadotSystem Monitor through an AXI interface in the FPGA fabric. This IP core is
18*5def4c47SEmmanuel Vadotcalled the Xilinx System Management Wizard. This document describes the bindings
19*5def4c47SEmmanuel Vadotfor this IP.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel VadotRequired properties:
22c66ec88fSEmmanuel Vadot	- compatible: Should be one of
23c66ec88fSEmmanuel Vadot		* "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
24c66ec88fSEmmanuel Vadot		  configuration interface to interface to the XADC hardmacro.
25c66ec88fSEmmanuel Vadot		* "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
26c66ec88fSEmmanuel Vadot		  interface to the XADC hardmacro.
27*5def4c47SEmmanuel Vadot		* "xlnx,system-management-wiz-1.3": When using the
28*5def4c47SEmmanuel Vadot		  Xilinx System Management Wizard fabric IP core to access the
29*5def4c47SEmmanuel Vadot		  UltraScale and UltraScale+ System Monitor.
30c66ec88fSEmmanuel Vadot	- reg: Address and length of the register set for the device
31c66ec88fSEmmanuel Vadot	- interrupts: Interrupt for the XADC control interface.
32c66ec88fSEmmanuel Vadot	- clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
33*5def4c47SEmmanuel Vadot	  when using the axi-xadc or the axi-system-management-wizard this must be
34*5def4c47SEmmanuel Vadot	  the clock that provides the clock to the AXI bus interface of the core.
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel VadotOptional properties:
37c66ec88fSEmmanuel Vadot	- xlnx,external-mux:
38c66ec88fSEmmanuel Vadot		* "none": No external multiplexer is used, this is the default
39c66ec88fSEmmanuel Vadot		  if the property is omitted.
40c66ec88fSEmmanuel Vadot		* "single": External multiplexer mode is used with one
41c66ec88fSEmmanuel Vadot		   multiplexer.
42c66ec88fSEmmanuel Vadot		* "dual": External multiplexer mode is used with two
43c66ec88fSEmmanuel Vadot		  multiplexers for simultaneous sampling.
44c66ec88fSEmmanuel Vadot	- xlnx,external-mux-channel: Configures which pair of pins is used to
45c66ec88fSEmmanuel Vadot	  sample data in external mux mode.
46c66ec88fSEmmanuel Vadot	  Valid values for single external multiplexer mode are:
47c66ec88fSEmmanuel Vadot		0: VP/VN
48c66ec88fSEmmanuel Vadot		1: VAUXP[0]/VAUXN[0]
49c66ec88fSEmmanuel Vadot		2: VAUXP[1]/VAUXN[1]
50c66ec88fSEmmanuel Vadot		...
51c66ec88fSEmmanuel Vadot		16: VAUXP[15]/VAUXN[15]
52c66ec88fSEmmanuel Vadot	  Valid values for dual external multiplexer mode are:
53c66ec88fSEmmanuel Vadot		1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
54c66ec88fSEmmanuel Vadot		2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
55c66ec88fSEmmanuel Vadot		...
56c66ec88fSEmmanuel Vadot		8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot	  This property needs to be present if the device is configured for
59c66ec88fSEmmanuel Vadot	  external multiplexer mode (either single or dual). If the device is
60c66ec88fSEmmanuel Vadot	  not using external multiplexer mode the property is ignored.
61c66ec88fSEmmanuel Vadot	- xnlx,channels: List of external channels that are connected to the ADC
62c66ec88fSEmmanuel Vadot	  Required properties:
63c66ec88fSEmmanuel Vadot		* #address-cells: Should be 1.
64c66ec88fSEmmanuel Vadot		* #size-cells: Should be 0.
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot	  The child nodes of this node represent the external channels which are
67c66ec88fSEmmanuel Vadot	  connected to the ADC. If the property is no present no external
68c66ec88fSEmmanuel Vadot	  channels will be assumed to be connected.
69c66ec88fSEmmanuel Vadot
70c66ec88fSEmmanuel Vadot	  Each child node represents one channel and has the following
71c66ec88fSEmmanuel Vadot	  properties:
72c66ec88fSEmmanuel Vadot		Required properties:
73c66ec88fSEmmanuel Vadot			* reg: Pair of pins the channel is connected to.
74c66ec88fSEmmanuel Vadot				0: VP/VN
75c66ec88fSEmmanuel Vadot				1: VAUXP[0]/VAUXN[0]
76c66ec88fSEmmanuel Vadot				2: VAUXP[1]/VAUXN[1]
77c66ec88fSEmmanuel Vadot				...
78c66ec88fSEmmanuel Vadot				16: VAUXP[15]/VAUXN[15]
79c66ec88fSEmmanuel Vadot			  Note each channel number should only be used at most
80c66ec88fSEmmanuel Vadot			  once.
81c66ec88fSEmmanuel Vadot		Optional properties:
82c66ec88fSEmmanuel Vadot			* xlnx,bipolar: If set the channel is used in bipolar
83c66ec88fSEmmanuel Vadot			  mode.
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel VadotExamples:
87c66ec88fSEmmanuel Vadot	xadc@f8007100 {
88c66ec88fSEmmanuel Vadot		compatible = "xlnx,zynq-xadc-1.00.a";
89c66ec88fSEmmanuel Vadot		reg = <0xf8007100 0x20>;
90c66ec88fSEmmanuel Vadot		interrupts = <0 7 4>;
91c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
92c66ec88fSEmmanuel Vadot		clocks = <&pcap_clk>;
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot		xlnx,channels {
95c66ec88fSEmmanuel Vadot			#address-cells = <1>;
96c66ec88fSEmmanuel Vadot			#size-cells = <0>;
97c66ec88fSEmmanuel Vadot			channel@0 {
98c66ec88fSEmmanuel Vadot				reg = <0>;
99c66ec88fSEmmanuel Vadot			};
100c66ec88fSEmmanuel Vadot			channel@1 {
101c66ec88fSEmmanuel Vadot				reg = <1>;
102c66ec88fSEmmanuel Vadot			};
103c66ec88fSEmmanuel Vadot			channel@8 {
104c66ec88fSEmmanuel Vadot				reg = <8>;
105c66ec88fSEmmanuel Vadot			};
106c66ec88fSEmmanuel Vadot		};
107c66ec88fSEmmanuel Vadot	};
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot	xadc@43200000 {
110c66ec88fSEmmanuel Vadot		compatible = "xlnx,axi-xadc-1.00.a";
111c66ec88fSEmmanuel Vadot		reg = <0x43200000 0x1000>;
112c66ec88fSEmmanuel Vadot		interrupts = <0 53 4>;
113c66ec88fSEmmanuel Vadot		interrupt-parent = <&gic>;
114c66ec88fSEmmanuel Vadot		clocks = <&fpga1_clk>;
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadot		xlnx,channels {
117c66ec88fSEmmanuel Vadot			#address-cells = <1>;
118c66ec88fSEmmanuel Vadot			#size-cells = <0>;
119c66ec88fSEmmanuel Vadot			channel@0 {
120c66ec88fSEmmanuel Vadot				reg = <0>;
121c66ec88fSEmmanuel Vadot				xlnx,bipolar;
122c66ec88fSEmmanuel Vadot			};
123c66ec88fSEmmanuel Vadot		};
124c66ec88fSEmmanuel Vadot	};
125*5def4c47SEmmanuel Vadot
126*5def4c47SEmmanuel Vadot	adc@80000000 {
127*5def4c47SEmmanuel Vadot		compatible = "xlnx,system-management-wiz-1.3";
128*5def4c47SEmmanuel Vadot		reg = <0x80000000 0x1000>;
129*5def4c47SEmmanuel Vadot		interrupts = <0 81 4>;
130*5def4c47SEmmanuel Vadot		interrupt-parent = <&gic>;
131*5def4c47SEmmanuel Vadot		clocks = <&fpga1_clk>;
132*5def4c47SEmmanuel Vadot
133*5def4c47SEmmanuel Vadot		xlnx,channels {
134*5def4c47SEmmanuel Vadot			#address-cells = <1>;
135*5def4c47SEmmanuel Vadot			#size-cells = <0>;
136*5def4c47SEmmanuel Vadot			channel@0 {
137*5def4c47SEmmanuel Vadot				reg = <0>;
138*5def4c47SEmmanuel Vadot				xlnx,bipolar;
139*5def4c47SEmmanuel Vadot			};
140*5def4c47SEmmanuel Vadot		};
141*5def4c47SEmmanuel Vadot	};
142