xref: /linux/Documentation/devicetree/bindings/iio/frequency/adi,adf41513.yaml (revision 93e4b3076b5f2d853462b9777d083c77fc0b7b23)
1*0d294bcbSRodrigo Alencar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0d294bcbSRodrigo Alencar%YAML 1.2
3*0d294bcbSRodrigo Alencar---
4*0d294bcbSRodrigo Alencar$id: http://devicetree.org/schemas/iio/frequency/adi,adf41513.yaml#
5*0d294bcbSRodrigo Alencar$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0d294bcbSRodrigo Alencar
7*0d294bcbSRodrigo Alencartitle: Analog Devices ADF41513 PLL Frequency Synthesizer
8*0d294bcbSRodrigo Alencar
9*0d294bcbSRodrigo Alencarmaintainers:
10*0d294bcbSRodrigo Alencar  - Rodrigo Alencar <rodrigo.alencar@analog.com>
11*0d294bcbSRodrigo Alencar
12*0d294bcbSRodrigo Alencardescription:
13*0d294bcbSRodrigo Alencar  The ADF41513 is an ultralow noise frequency synthesizer that can be used to
14*0d294bcbSRodrigo Alencar  implement local oscillators (LOs) as high as 26.5 GHz in the upconversion and
15*0d294bcbSRodrigo Alencar  downconversion sections of wireless receivers and transmitters. The ADF41510
16*0d294bcbSRodrigo Alencar  supports frequencies up to 10 GHz.
17*0d294bcbSRodrigo Alencar
18*0d294bcbSRodrigo Alencar  https://www.analog.com/en/products/adf41510.html
19*0d294bcbSRodrigo Alencar  https://www.analog.com/en/products/adf41513.html
20*0d294bcbSRodrigo Alencar
21*0d294bcbSRodrigo Alencarproperties:
22*0d294bcbSRodrigo Alencar  compatible:
23*0d294bcbSRodrigo Alencar    enum:
24*0d294bcbSRodrigo Alencar      - adi,adf41510
25*0d294bcbSRodrigo Alencar      - adi,adf41513
26*0d294bcbSRodrigo Alencar
27*0d294bcbSRodrigo Alencar  reg:
28*0d294bcbSRodrigo Alencar    maxItems: 1
29*0d294bcbSRodrigo Alencar
30*0d294bcbSRodrigo Alencar  spi-max-frequency:
31*0d294bcbSRodrigo Alencar    maximum: 25000000
32*0d294bcbSRodrigo Alencar
33*0d294bcbSRodrigo Alencar  clocks:
34*0d294bcbSRodrigo Alencar    maxItems: 1
35*0d294bcbSRodrigo Alencar    description: Clock that provides the reference input frequency.
36*0d294bcbSRodrigo Alencar
37*0d294bcbSRodrigo Alencar  avdd1-supply:
38*0d294bcbSRodrigo Alencar    description: PFD and Up and Down Digital Driver Power Supply (3.3 V)
39*0d294bcbSRodrigo Alencar
40*0d294bcbSRodrigo Alencar  avdd2-supply:
41*0d294bcbSRodrigo Alencar    description: RF Buffer and Prescaler Power Supply (3.3 V)
42*0d294bcbSRodrigo Alencar
43*0d294bcbSRodrigo Alencar  avdd3-supply:
44*0d294bcbSRodrigo Alencar    description: N Divider Power Supply (3.3 V)
45*0d294bcbSRodrigo Alencar
46*0d294bcbSRodrigo Alencar  avdd4-supply:
47*0d294bcbSRodrigo Alencar    description: R Divider and Lock Detector Power Supply (3.3 V)
48*0d294bcbSRodrigo Alencar
49*0d294bcbSRodrigo Alencar  avdd5-supply:
50*0d294bcbSRodrigo Alencar    description: Sigma-Delta Modulator and SPI Power Supply (3.3 V)
51*0d294bcbSRodrigo Alencar
52*0d294bcbSRodrigo Alencar  vp-supply:
53*0d294bcbSRodrigo Alencar    description: Charge Pump Power Supply (3.3 V)
54*0d294bcbSRodrigo Alencar
55*0d294bcbSRodrigo Alencar  enable-gpios:
56*0d294bcbSRodrigo Alencar    description:
57*0d294bcbSRodrigo Alencar      GPIO that controls the chip enable pin. A logic low on this pin
58*0d294bcbSRodrigo Alencar      powers down the device and puts the charge pump output into
59*0d294bcbSRodrigo Alencar      three-state mode.
60*0d294bcbSRodrigo Alencar    maxItems: 1
61*0d294bcbSRodrigo Alencar
62*0d294bcbSRodrigo Alencar  lock-detect-gpios:
63*0d294bcbSRodrigo Alencar    description:
64*0d294bcbSRodrigo Alencar      GPIO for lock detect functionality. When configured for digital lock
65*0d294bcbSRodrigo Alencar      detect, this pin will output a logic high when the PLL is locked.
66*0d294bcbSRodrigo Alencar    maxItems: 1
67*0d294bcbSRodrigo Alencar
68*0d294bcbSRodrigo Alencar  adi,power-up-frequency-mhz:
69*0d294bcbSRodrigo Alencar    minimum: 1000
70*0d294bcbSRodrigo Alencar    maximum: 26500
71*0d294bcbSRodrigo Alencar    default: 10000
72*0d294bcbSRodrigo Alencar    description:
73*0d294bcbSRodrigo Alencar      The PLL tunes to this frequency during the initialization sequence.
74*0d294bcbSRodrigo Alencar      This property should be set to a frequency supported by the loop filter
75*0d294bcbSRodrigo Alencar      and VCO used in the design. Range is 1 GHz to 26.5 GHz for ADF41513,
76*0d294bcbSRodrigo Alencar      and 1 GHz to 10 GHz for ADF41510.
77*0d294bcbSRodrigo Alencar
78*0d294bcbSRodrigo Alencar  adi,reference-div-factor:
79*0d294bcbSRodrigo Alencar    $ref: /schemas/types.yaml#/definitions/uint32
80*0d294bcbSRodrigo Alencar    minimum: 1
81*0d294bcbSRodrigo Alencar    maximum: 32
82*0d294bcbSRodrigo Alencar    default: 1
83*0d294bcbSRodrigo Alencar    description:
84*0d294bcbSRodrigo Alencar      Value for the reference division factor (R Counter). The driver will
85*0d294bcbSRodrigo Alencar      increment R Counter as needed to achieve a PFD frequency within the
86*0d294bcbSRodrigo Alencar      allowed range. High R counter values will reduce the PFD frequency, which
87*0d294bcbSRodrigo Alencar      lowers the frequency resolution, and affects phase noise performance.
88*0d294bcbSRodrigo Alencar      As it affects the PFD frequency, this value depends on the loop filter
89*0d294bcbSRodrigo Alencar      design.
90*0d294bcbSRodrigo Alencar
91*0d294bcbSRodrigo Alencar  adi,reference-doubler-enable:
92*0d294bcbSRodrigo Alencar    description:
93*0d294bcbSRodrigo Alencar      Enables the reference doubler when deriving the PFD frequency.
94*0d294bcbSRodrigo Alencar      The maximum reference frequency when the doubler is enabled is 225 MHz.
95*0d294bcbSRodrigo Alencar      As it affects the PFD frequency, this value depends on the loop filter
96*0d294bcbSRodrigo Alencar      design.
97*0d294bcbSRodrigo Alencar    type: boolean
98*0d294bcbSRodrigo Alencar
99*0d294bcbSRodrigo Alencar  adi,reference-div2-enable:
100*0d294bcbSRodrigo Alencar    description:
101*0d294bcbSRodrigo Alencar      Enables the reference divide-by-2 function when deriving the PFD
102*0d294bcbSRodrigo Alencar      frequency. As it affects the PFD frequency, this value depends on the
103*0d294bcbSRodrigo Alencar      loop filter design.
104*0d294bcbSRodrigo Alencar    type: boolean
105*0d294bcbSRodrigo Alencar
106*0d294bcbSRodrigo Alencar  adi,charge-pump-resistor-ohms:
107*0d294bcbSRodrigo Alencar    minimum: 1800
108*0d294bcbSRodrigo Alencar    maximum: 10000
109*0d294bcbSRodrigo Alencar    default: 2700
110*0d294bcbSRodrigo Alencar    description:
111*0d294bcbSRodrigo Alencar      External charge pump resistor (R_SET) value in ohms. This sets the maximum
112*0d294bcbSRodrigo Alencar      charge pump current along with the charge pump current setting.
113*0d294bcbSRodrigo Alencar
114*0d294bcbSRodrigo Alencar  adi,charge-pump-current-microamp:
115*0d294bcbSRodrigo Alencar    minimum: 81
116*0d294bcbSRodrigo Alencar    maximum: 7200
117*0d294bcbSRodrigo Alencar    description:
118*0d294bcbSRodrigo Alencar      Charge pump current (I_CP) in microamps. The value will be rounded to the
119*0d294bcbSRodrigo Alencar      nearest supported value. Range of acceptable values depends on the
120*0d294bcbSRodrigo Alencar      charge pump resistor value, such that 810 mV <= I_CP * R_SET <= 12960 mV.
121*0d294bcbSRodrigo Alencar      This value depends on the loop filter and the VCO design.
122*0d294bcbSRodrigo Alencar
123*0d294bcbSRodrigo Alencar  adi,logic-level-1v8-enable:
124*0d294bcbSRodrigo Alencar    description:
125*0d294bcbSRodrigo Alencar      Set MUXOUT and DLD logic levels to 1.8V. Default is 3.3V.
126*0d294bcbSRodrigo Alencar    type: boolean
127*0d294bcbSRodrigo Alencar
128*0d294bcbSRodrigo Alencar  adi,phase-detector-polarity-positive-enable:
129*0d294bcbSRodrigo Alencar    description:
130*0d294bcbSRodrigo Alencar      Set phase detector polarity to positive. Default is negative.
131*0d294bcbSRodrigo Alencar      Use positive polarity with non-inverting loop filter and VCO with
132*0d294bcbSRodrigo Alencar      positive tuning slope, or with inverting loop filter and VCO with
133*0d294bcbSRodrigo Alencar      negative tuning slope.
134*0d294bcbSRodrigo Alencar    type: boolean
135*0d294bcbSRodrigo Alencar
136*0d294bcbSRodrigo Alencar  adi,lock-detector-count:
137*0d294bcbSRodrigo Alencar    $ref: /schemas/types.yaml#/definitions/uint32
138*0d294bcbSRodrigo Alencar    default: 64
139*0d294bcbSRodrigo Alencar    description:
140*0d294bcbSRodrigo Alencar      Sets the value for Lock Detector count of the PLL, which determines the
141*0d294bcbSRodrigo Alencar      number of consecutive phase detector cycles that must be within the lock
142*0d294bcbSRodrigo Alencar      detector window before lock is declared. Lower values increase the lock
143*0d294bcbSRodrigo Alencar      detection sensitivity, while higher values provides a more stable lock
144*0d294bcbSRodrigo Alencar      detection. Applications that consume the lock detect signal may require
145*0d294bcbSRodrigo Alencar      different settings based on system requirements.
146*0d294bcbSRodrigo Alencar    enum: [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192]
147*0d294bcbSRodrigo Alencar
148*0d294bcbSRodrigo Alencar  adi,phase-resync-period-ns:
149*0d294bcbSRodrigo Alencar    default: 0
150*0d294bcbSRodrigo Alencar    description:
151*0d294bcbSRodrigo Alencar      When this value is non-zero, enable phase resync functionality, which
152*0d294bcbSRodrigo Alencar      produces a consistent output phase offset with respect to the input
153*0d294bcbSRodrigo Alencar      reference. The value specifies the resync period in nanoseconds, used
154*0d294bcbSRodrigo Alencar      to configure clock dividers with respect to the PFD frequency. This value
155*0d294bcbSRodrigo Alencar      should be set to a value that is at least as long as the worst case lock
156*0d294bcbSRodrigo Alencar      time, i.e., it depends mostly on the loop filter design.
157*0d294bcbSRodrigo Alencar
158*0d294bcbSRodrigo Alencar  adi,le-sync-enable:
159*0d294bcbSRodrigo Alencar    description:
160*0d294bcbSRodrigo Alencar      Synchronizes Load Enable (LE) transitions with the reference signal to
161*0d294bcbSRodrigo Alencar      avoid asynchronous glitches in the output. This is recommended when using
162*0d294bcbSRodrigo Alencar      the PLL as a frequency synthesizer, where the reference signal will always
163*0d294bcbSRodrigo Alencar      be present while the device is being configured. When using the PLL as a
164*0d294bcbSRodrigo Alencar      frequency tracker, where the reference signal may be absent, LE sync
165*0d294bcbSRodrigo Alencar      should be left disabled.
166*0d294bcbSRodrigo Alencar    type: boolean
167*0d294bcbSRodrigo Alencar
168*0d294bcbSRodrigo Alencardependencies:
169*0d294bcbSRodrigo Alencar  adi,charge-pump-resistor-ohms: [ 'adi,charge-pump-current-microamp' ]
170*0d294bcbSRodrigo Alencar
171*0d294bcbSRodrigo Alencarrequired:
172*0d294bcbSRodrigo Alencar  - compatible
173*0d294bcbSRodrigo Alencar  - reg
174*0d294bcbSRodrigo Alencar  - clocks
175*0d294bcbSRodrigo Alencar  - avdd1-supply
176*0d294bcbSRodrigo Alencar  - avdd2-supply
177*0d294bcbSRodrigo Alencar  - avdd3-supply
178*0d294bcbSRodrigo Alencar  - avdd4-supply
179*0d294bcbSRodrigo Alencar  - avdd5-supply
180*0d294bcbSRodrigo Alencar  - vp-supply
181*0d294bcbSRodrigo Alencar
182*0d294bcbSRodrigo AlencarallOf:
183*0d294bcbSRodrigo Alencar  - $ref: /schemas/spi/spi-peripheral-props.yaml#
184*0d294bcbSRodrigo Alencar  - if:
185*0d294bcbSRodrigo Alencar      properties:
186*0d294bcbSRodrigo Alencar        compatible:
187*0d294bcbSRodrigo Alencar          contains:
188*0d294bcbSRodrigo Alencar            const: adi,adf41510
189*0d294bcbSRodrigo Alencar    then:
190*0d294bcbSRodrigo Alencar      properties:
191*0d294bcbSRodrigo Alencar        adi,power-up-frequency-mhz:
192*0d294bcbSRodrigo Alencar          maximum: 10000
193*0d294bcbSRodrigo Alencar
194*0d294bcbSRodrigo AlencarunevaluatedProperties: false
195*0d294bcbSRodrigo Alencar
196*0d294bcbSRodrigo Alencarexamples:
197*0d294bcbSRodrigo Alencar  - |
198*0d294bcbSRodrigo Alencar    #include <dt-bindings/gpio/gpio.h>
199*0d294bcbSRodrigo Alencar    spi {
200*0d294bcbSRodrigo Alencar        #address-cells = <1>;
201*0d294bcbSRodrigo Alencar        #size-cells = <0>;
202*0d294bcbSRodrigo Alencar
203*0d294bcbSRodrigo Alencar        pll@0 {
204*0d294bcbSRodrigo Alencar            compatible = "adi,adf41513";
205*0d294bcbSRodrigo Alencar            reg = <0>;
206*0d294bcbSRodrigo Alencar            spi-max-frequency = <25000000>;
207*0d294bcbSRodrigo Alencar            clocks = <&ref_clk>;
208*0d294bcbSRodrigo Alencar            avdd1-supply = <&avdd1_3v3>;
209*0d294bcbSRodrigo Alencar            avdd2-supply = <&avdd2_3v3>;
210*0d294bcbSRodrigo Alencar            avdd3-supply = <&avdd3_3v3>;
211*0d294bcbSRodrigo Alencar            avdd4-supply = <&avdd4_3v3>;
212*0d294bcbSRodrigo Alencar            avdd5-supply = <&avdd5_3v3>;
213*0d294bcbSRodrigo Alencar            vp-supply = <&vp_3v3>;
214*0d294bcbSRodrigo Alencar            enable-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
215*0d294bcbSRodrigo Alencar            lock-detect-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
216*0d294bcbSRodrigo Alencar
217*0d294bcbSRodrigo Alencar            adi,power-up-frequency-mhz = <15500>;
218*0d294bcbSRodrigo Alencar            adi,charge-pump-current-microamp = <3600>;
219*0d294bcbSRodrigo Alencar            adi,charge-pump-resistor-ohms = <2700>;
220*0d294bcbSRodrigo Alencar            adi,reference-doubler-enable;
221*0d294bcbSRodrigo Alencar            adi,lock-detector-count = <64>;
222*0d294bcbSRodrigo Alencar            adi,phase-resync-period-ns = <0>;
223*0d294bcbSRodrigo Alencar            adi,phase-detector-polarity-positive-enable;
224*0d294bcbSRodrigo Alencar            adi,le-sync-enable;
225*0d294bcbSRodrigo Alencar        };
226*0d294bcbSRodrigo Alencar    };
227*0d294bcbSRodrigo Alencar...
228