STRUCT AD9523_PLATFORM_DATA(9)
π STRUCT AD9523_PLATFORM_DATA(9) π
okay bestie, so this is a page straight outta the Kernel API Manual β¨ and it's literally all about struct ad9523_platform_data β the vibe-check sheet where you tell the kernel everything it needs to know about your specific AD9523 setup. platform specific information, no cap π
πΈ NAME πΈ
struct ad9523_platform_data β platform specific information, fr fr π«Ά
β¨ SYNOPSIS β¨
here's the whole glow-up, character for character, don't touch a thing:
struct ad9523_platform_data {
unsigned long vcxo_freq;
bool refa_diff_rcv_en;
bool refb_diff_rcv_en;
bool zd_in_diff_en;
bool osc_in_diff_en;
bool refa_cmos_neg_inp_en;
bool refb_cmos_neg_inp_en;
bool zd_in_cmos_neg_inp_en;
bool osc_in_cmos_neg_inp_en;
unsigned short refa_r_div;
unsigned short refb_r_div;
unsigned short pll1_feedback_div;
unsigned short pll1_charge_pump_current_nA;
bool zero_delay_mode_internal_en;
bool osc_in_feedback_en;
enum pll1_rzero_resistor pll1_loop_filter_rzero;
enum ref_sel_mode ref_mode;
unsigned int pll2_charge_pump_current_nA;
unsigned char pll2_ndiv_a_cnt;
unsigned char pll2_ndiv_b_cnt;
bool pll2_freq_doubler_en;
unsigned char pll2_r2_div;
unsigned char pll2_vco_div_m1;
unsigned char pll2_vco_div_m2;
enum rpole2_resistor rpole2;
enum rzero_resistor rzero;
enum cpole1_capacitor cpole1;
bool rzero_bypass_en;
int num_channels;
struct ad9523_channel_spec *channels;
char name[SPI_NAME_SIZE];
};
π MEMBERS π
okay so every single field, one by one, let's go πββοΈπ¨
vcxo_freqβ the External VCXO frequency, in Hz β±οΈrefa_diff_rcv_enβ REFA differential/single-ended input selection. pick your fighter πrefb_diff_rcv_enβ REFB differential/single-ended input selection. same energy, different ref π¦zd_in_diff_enβ Zero Delay differential/single-ended input selection.osc_in_diff_enβ OSC differential/ single-ended input selection. (yes that spacing is canon, leave it π)refa_cmos_neg_inp_enβ REFA single-ended neg./pos. input enable.refb_cmos_neg_inp_enβ REFB single-ended neg./pos. input enable.zd_in_cmos_neg_inp_enβ Zero Delay single-ended neg./pos. input enable.osc_in_cmos_neg_inp_enβ OSC single-ended neg./pos. input enable.refa_r_divβ PLL1 10-bit REFA R divider β¨refb_r_divβ PLL1 10-bit REFB R divider β¨pll1_feedback_divβ PLL1 10-bit Feedback N divider.pll1_charge_pump_current_nAβ Magnitude of PLL1 charge pump current (nA). it's giving pump π₯zero_delay_mode_internal_enβ Internal, external Zero Delay mode selection.osc_in_feedback_enβ PLL1 feedback path, local feedback from the OSC_IN receiver or zero delay mode πpll1_loop_filter_rzeroβ PLL1 Loop Filter Zero Resistor selection.ref_modeβ Reference selection mode. main character reference, honestly πpll2_charge_pump_current_nAβ Magnitude of PLL2 charge pump current (nA).pll2_ndiv_a_cntβ PLL2 Feedback N-divider, A Counter, range0..4.pll2_ndiv_b_cntβ PLL2 Feedback N-divider, B Counter, range0..63.pll2_freq_doubler_enβ PLL2 frequency doubler enable. double it and give it to the next one πpll2_r2_divβ PLL2 R2 divider, range0..31.pll2_vco_div_m1β VCO1 divider, range3..5.pll2_vco_div_m2β VCO2 divider, range3..5.rpole2β PLL2 loop filter Rpole resistor value.rzeroβ PLL2 loop filter Rzero resistor value.cpole1β PLL2 loop filter Cpole capacitor value.rzero_bypass_enβ PLL2 loop filter Rzero bypass enable. skip the resistor, live your truth πnum_channelsβ Array size ofstruct ad9523_channel_spec.channelsβ Pointer to channel array.nameβ Optional alternative iio device name. name your baby πΌπ
btw bestie, those dividers and counters have hard ranges (like0..4,0..63,0..31,3..5) β respect them, don't just freestyle π¨
π SEE ALSO π
- Kernel file
./include/linux/iio/frequency/ad9523.h struct ad9523_channel_spec(9)β the channel bestie that this struct points at π«Ά
and that's the whole page, periodt π
this little gem lives under ./include/linux/iio/frequency, dated October 2026 β so go forth, configure your AD9523, and slay β¨π¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms