Skip to content

Commit 76e3d30

Browse files
committed
iio: frequency: adf41513: add documentation
- DT bindings YAML file - ReStructured Text Document Signed-off-by: Rodrigo Alencar <[email protected]>
1 parent 83d0985 commit 76e3d30

File tree

3 files changed

+657
-0
lines changed

3 files changed

+657
-0
lines changed
Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/iio/frequency/adi,adf41513.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Analog Devices ADF41513 PLL Frequency Synthesizer
8+
9+
maintainers:
10+
- Rodrigo Alencar <[email protected]>
11+
12+
description: |
13+
The ADF41513 is an ultralow noise frequency synthesizer that can be used to
14+
implement local oscillators (LOs) as high as 26.5 GHz in the upconversion and
15+
downconversion sections of wireless receivers and transmitters. The ADF41510
16+
supports frequencies up to 10 GHz.
17+
18+
https://www.analog.com/en/products/adf41513.html
19+
https://www.analog.com/en/products/adf41510.html
20+
21+
properties:
22+
compatible:
23+
enum:
24+
- adi,adf41510
25+
- adi,adf41513
26+
27+
reg:
28+
maxItems: 1
29+
30+
spi-max-frequency:
31+
maximum: 25000000
32+
33+
clocks:
34+
maxItems: 1
35+
description: Clock that provides the reference input frequency.
36+
37+
clock-names:
38+
const: clkin
39+
40+
'#clock-cells':
41+
const: 0
42+
43+
clock-output-names:
44+
maxItems: 1
45+
46+
vcc-supply:
47+
description: Power supply for the device (3.3V)
48+
49+
chip-enable-gpios:
50+
description: |
51+
GPIO that controls the chip enable pin. A logic low on this pin
52+
powers down the device and puts the charge pump output into
53+
three-state mode.
54+
maxItems: 1
55+
56+
lock-detect-gpios:
57+
description: |
58+
GPIO for lock detect functionality. When configured for digital lock
59+
detect, this pin will output a logic high when the PLL is locked.
60+
maxItems: 1
61+
62+
adi,power-up-frequency:
63+
$ref: /schemas/types.yaml#/definitions/uint64
64+
description:
65+
If set, the PLL tunes to this frequency (in Hz) on driver probe.
66+
Range is 1 GHz to 26.5 GHz for ADF41513, and 1 GHz to 10 GHz for ADF41510.
67+
68+
adi,reference-div-factor:
69+
$ref: /schemas/types.yaml#/definitions/uint32
70+
minimum: 1
71+
maximum: 32
72+
description:
73+
Reference division factor (R Counter). If not specified, the driver
74+
will calculate the optimal value automatically.
75+
76+
adi,reference-doubler-enable:
77+
$ref: /schemas/types.yaml#/definitions/flag
78+
description:
79+
Enables the reference doubler. The maximum reference frequency when
80+
the doubler is enabled is 225 MHz.
81+
82+
adi,reference-div2-enable:
83+
$ref: /schemas/types.yaml#/definitions/flag
84+
description:
85+
Enables the reference divide-by-2 function. This provides a 50%
86+
duty cycle signal to the PFD.
87+
88+
adi,charge-pump-current:
89+
$ref: /schemas/types.yaml#/definitions/uint32
90+
minimum: 450
91+
maximum: 7200
92+
description:
93+
Charge pump current in microamps. The value will be rounded to the
94+
nearest supported value. Default is 2400 µA.
95+
96+
adi,charge-pump-resistor:
97+
$ref: /schemas/types.yaml#/definitions/uint32
98+
minimum: 1800
99+
maximum: 10000
100+
description:
101+
External charge pump resistor value in ohms. This sets the maximum
102+
charge pump current along with the charge pump current setting.
103+
Default is 2700 ohms.
104+
105+
adi,muxout-select:
106+
$ref: /schemas/types.yaml#/definitions/uint32
107+
minimum: 0
108+
maximum: 14
109+
description: |
110+
Multiplexer output selection. Valid values are:
111+
0: Tristate (default)
112+
3: R divider output
113+
4: N divider output
114+
6: Digital lock detect
115+
7: Serial data output
116+
8: Readback
117+
10: CLK1 divider output
118+
13: R divider/2 output
119+
14: N divider/2 output
120+
121+
adi,muxout-level-1v8-enable:
122+
$ref: /schemas/types.yaml#/definitions/flag
123+
description:
124+
Set MUXOUT and DLD logic levels to 1.8V. Default is 3.3V.
125+
126+
adi,phase-detector-polarity-positive:
127+
$ref: /schemas/types.yaml#/definitions/flag
128+
description:
129+
Set phase detector polarity to positive. Default is negative.
130+
Use positive polarity with non-inverting loop filter and VCO with
131+
positive tuning slope, or with inverting loop filter and VCO with
132+
negative tuning slope.
133+
134+
adi,lock-detect-precision:
135+
$ref: /schemas/types.yaml#/definitions/uint32
136+
minimum: 0
137+
maximum: 3
138+
description:
139+
Lock detector precision setting. Higher values provide more precise
140+
lock detection but may increase lock time.
141+
142+
adi,lock-detect-count:
143+
$ref: /schemas/types.yaml#/definitions/uint32
144+
minimum: 0
145+
maximum: 7
146+
description:
147+
Lock detector count setting (3-bit value). Determines the number of
148+
consecutive phase detector cycles that must be within the lock detector
149+
window before lock is declared.
150+
151+
adi,lock-detect-bias:
152+
$ref: /schemas/types.yaml#/definitions/uint32
153+
minimum: 0
154+
maximum: 3
155+
description:
156+
Lock detector bias setting. Controls the lock detector window size
157+
along with the lock detector precision setting.
158+
159+
adi,fast-lock-enable:
160+
$ref: /schemas/types.yaml#/definitions/flag
161+
description:
162+
Enable fast lock mode. This changes the lock detector clock selection
163+
for faster lock indication.
164+
165+
adi,phase-resync-enable:
166+
$ref: /schemas/types.yaml#/definitions/flag
167+
description:
168+
Enable phase resync functionality. This produces a consistent output
169+
phase offset with respect to the input reference.
170+
171+
adi,12bit-clk-divider:
172+
$ref: /schemas/types.yaml#/definitions/uint32
173+
minimum: 0
174+
maximum: 4095
175+
description:
176+
CLK1 divider value used when adi,phase-resync-enable is set
177+
178+
adi,12bit-clk2-divider:
179+
$ref: /schemas/types.yaml#/definitions/uint32
180+
minimum: 0
181+
maximum: 4095
182+
description:
183+
CLK2 divider value used when adi,phase-resync-enable is set
184+
185+
adi,load-enable-sync:
186+
$ref: /schemas/types.yaml#/definitions/flag
187+
description:
188+
Synchronize the rising edge of LE on an SPI write with the falling
189+
edge of the reference signal to prevent glitches.
190+
191+
adi,freq-resolution-uhz:
192+
$ref: /schemas/types.yaml#/definitions/uint64
193+
description:
194+
Initial frequency resolution in micro-Hz (µHz) for the algorithm to achieve.
195+
This influences the choice between fixed and variable modulus modes.
196+
Default is 1000000 µHz (1 Hz).
197+
198+
required:
199+
- compatible
200+
- reg
201+
- clocks
202+
- vcc-supply
203+
204+
allOf:
205+
- $ref: /schemas/spi/spi-peripheral-props.yaml#
206+
207+
unevaluatedProperties: false
208+
209+
examples:
210+
- |
211+
spi {
212+
#address-cells = <1>;
213+
#size-cells = <0>;
214+
215+
pll@0 {
216+
compatible = "adi,adf41513";
217+
reg = <0>;
218+
spi-max-frequency = <10000000>;
219+
clocks = <&ref_clk>;
220+
clock-names = "clkin";
221+
vcc-supply = <&vcc_3v3>;
222+
#clock-cells = <0>;
223+
224+
adi,power-up-frequency = /bits/ 64 <12000000000>;
225+
adi,charge-pump-current = <2400>;
226+
adi,phase-detector-polarity-positive;
227+
};
228+
};
229+
- |
230+
#include <dt-bindings/gpio/gpio.h>
231+
spi {
232+
#address-cells = <1>;
233+
#size-cells = <0>;
234+
235+
/* Example with advanced features enabled */
236+
pll_advanced@0 {
237+
compatible = "adi,adf41513";
238+
reg = <0>;
239+
spi-max-frequency = <25000000>;
240+
clocks = <&ref_clk>;
241+
clock-names = "clkin";
242+
vcc-supply = <&vcc_3v3>;
243+
chip-enable-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
244+
lock-detect-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
245+
#clock-cells = <0>;
246+
clock-output-names = "adf41513_clk";
247+
248+
adi,power-up-frequency = /bits/ 64 <15500000000>;
249+
adi,charge-pump-current = <3600>;
250+
adi,charge-pump-resistor = <2700>;
251+
adi,reference-doubler-enable;
252+
adi,muxout-select = <6>; /* Digital lock detect */
253+
adi,lock-detect-precision = <1>;
254+
adi,lock-detect-count = <4>;
255+
adi,lock-detect-bias = <2>;
256+
adi,fast-lock-enable;
257+
adi,phase-resync-enable;
258+
adi,12bit-clk-divider = <1>;
259+
adi,12bit-clk2-divider = <200>;
260+
adi,load-enable-sync;
261+
adi,freq-resolution-uhz = /bits/ 64 <1000000>;
262+
adi,phase-detector-polarity-positive;
263+
};
264+
};
265+
...

0 commit comments

Comments
 (0)