mirror of https://gitee.com/openkylin/linux.git
114 lines
3.5 KiB
Plaintext
114 lines
3.5 KiB
Plaintext
Xilinx XADC device driver
|
|
|
|
This binding document describes the bindings for both of them since the
|
|
bindings are very similar. The Xilinx XADC is a ADC that can be found in the
|
|
series 7 FPGAs from Xilinx. The XADC has a DRP interface for communication.
|
|
Currently two different frontends for the DRP interface exist. One that is only
|
|
available on the ZYNQ family as a hardmacro in the SoC portion of the ZYNQ. The
|
|
other one is available on all series 7 platforms and is a softmacro with a AXI
|
|
interface. This binding document describes the bindings for both of them since
|
|
the bindings are very similar.
|
|
|
|
Required properties:
|
|
- compatible: Should be one of
|
|
* "xlnx,zynq-xadc-1.00.a": When using the ZYNQ device
|
|
configuration interface to interface to the XADC hardmacro.
|
|
* "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
|
|
interface to the XADC hardmacro.
|
|
- reg: Address and length of the register set for the device
|
|
- interrupts: Interrupt for the XADC control interface.
|
|
- clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
|
|
when using the AXI-XADC pcore this must be the clock that provides the
|
|
clock to the AXI bus interface of the core.
|
|
|
|
Optional properties:
|
|
- interrupt-parent: phandle to the parent interrupt controller
|
|
- xlnx,external-mux:
|
|
* "none": No external multiplexer is used, this is the default
|
|
if the property is omitted.
|
|
* "single": External multiplexer mode is used with one
|
|
multiplexer.
|
|
* "dual": External multiplexer mode is used with two
|
|
multiplexers for simultaneous sampling.
|
|
- xlnx,external-mux-channel: Configures which pair of pins is used to
|
|
sample data in external mux mode.
|
|
Valid values for single external multiplexer mode are:
|
|
0: VP/VN
|
|
1: VAUXP[0]/VAUXN[0]
|
|
2: VAUXP[1]/VAUXN[1]
|
|
...
|
|
16: VAUXP[15]/VAUXN[15]
|
|
Valid values for dual external multiplexer mode are:
|
|
1: VAUXP[0]/VAUXN[0] - VAUXP[8]/VAUXN[8]
|
|
2: VAUXP[1]/VAUXN[1] - VAUXP[9]/VAUXN[9]
|
|
...
|
|
8: VAUXP[7]/VAUXN[7] - VAUXP[15]/VAUXN[15]
|
|
|
|
This property needs to be present if the device is configured for
|
|
external multiplexer mode (either single or dual). If the device is
|
|
not using external multiplexer mode the property is ignored.
|
|
- xnlx,channels: List of external channels that are connected to the ADC
|
|
Required properties:
|
|
* #address-cells: Should be 1.
|
|
* #size-cells: Should be 0.
|
|
|
|
The child nodes of this node represent the external channels which are
|
|
connected to the ADC. If the property is no present no external
|
|
channels will be assumed to be connected.
|
|
|
|
Each child node represents one channel and has the following
|
|
properties:
|
|
Required properties:
|
|
* reg: Pair of pins the channel is connected to.
|
|
0: VP/VN
|
|
1: VAUXP[0]/VAUXN[0]
|
|
2: VAUXP[1]/VAUXN[1]
|
|
...
|
|
16: VAUXP[15]/VAUXN[15]
|
|
Note each channel number should only be used at most
|
|
once.
|
|
Optional properties:
|
|
* xlnx,bipolar: If set the channel is used in bipolar
|
|
mode.
|
|
|
|
|
|
Examples:
|
|
xadc@f8007100 {
|
|
compatible = "xlnx,zynq-xadc-1.00.a";
|
|
reg = <0xf8007100 0x20>;
|
|
interrupts = <0 7 4>;
|
|
interrupt-parent = <&gic>;
|
|
clocks = <&pcap_clk>;
|
|
|
|
xlnx,channels {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
channel@0 {
|
|
reg = <0>;
|
|
};
|
|
channel@1 {
|
|
reg = <1>;
|
|
};
|
|
channel@8 {
|
|
reg = <8>;
|
|
};
|
|
};
|
|
};
|
|
|
|
xadc@43200000 {
|
|
compatible = "xlnx,axi-xadc-1.00.a";
|
|
reg = <0x43200000 0x1000>;
|
|
interrupts = <0 53 4>;
|
|
interrupt-parent = <&gic>;
|
|
clocks = <&fpga1_clk>;
|
|
|
|
xlnx,channels {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
channel@0 {
|
|
reg = <0>;
|
|
xlnx,bipolar;
|
|
};
|
|
};
|
|
};
|