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