zl3073x_dpll_ptp_adjfine(9)
π zl3073x_dpll_ptp_adjfine π
okay so bestie, welcome to the Kernel API Manual β¨ β today's main character is zl3073x_dpll_ptp_adjfine, and honestly? her whole personality is "adjust PTP clock frequency." that's it, that's the vibe. no cap. π
πΈ NAME πΈ
zl3073x_dpll_ptp_adjfine β adjust PTP clock frequency. iconic behaviour, lowkey does exactly what it says on the tin π«Ά
β SYNOPSIS β
int zl3073x_dpll_ptp_adjfine (struct ptp_clock_info *info , long
scaled_ppm );
the way she takes two args and returns an intβ¦ she's giving "i'm a function signature and i know it" π
π¦ ARGUMENTS π¦
infoβ the PTP clock info π like, the whole identity of the clock bestie, she needs her paperworkscaled_ppmβ the frequency adjustment, but in scaled ppm, which isppm * 2^16. yes, scaled. yes,2^16. don't ask, just trust the math π§
π DESCRIPTION π
okay so real talk: this is only supported for NCO. only NCO, bestie, nobody else gets in the club π«π
what she actually does? writes the delta frequency offset register. that's the whole task. she writes the register. slay π β¨
π₯ RETURN π₯
0β success! π or, plot twist,scaled_ppmis zero, which means it's a no-op. either way she's thriving π-EOPNOTSUPPβ sad girl hours π the NCO pin is not connected andscaled_ppmis non-zero. no pin, no adjustment, no service π- negative β some other error π like, not great, not terrible, definitely not the vibe
> fr fr: if you're getting -EOPNOTSUPP, check that NCO pin connection before you blame the function, she's literally telling you what's wrong π«Ά
π SEE ALSO π
your girl over here in the kernel file ./drivers/dpll/zl3073x/dpll.c has a whole squad β here's the full friend group, no one left out, periodt:
struct zl3073x_dpll_pin(9)zl3073x_dpll_is_input_pin(9)zl3073x_dpll_is_nco_pin(9)zl3073x_dpll_is_p_pin(9)zl3073x_dpll_connected_ref_get(9)zl3073x_dpll_ref_operstate_get(9)zl3073x_dpll_pin_alloc(9)zl3073x_dpll_pin_free(9)zl3073x_dpll_pin_register(9)zl3073x_dpll_pin_unregister(9)zl3073x_dpll_pins_unregister(9)zl3073x_dpll_pin_is_registrable(9)zl3073x_dpll_pins_register(9)zl3073x_dpll_device_register(9)zl3073x_dpll_device_unregister(9)zl3073x_dpll_pin_phase_offset_check(9)zl3073x_dpll_pin_ffo_check(9)zl3073x_dpll_pin_measured_freq_check(9)zl3073x_dpll_changes_check(9)zl3073x_dpll_init_fine_phase_adjust(9)zl3073x_dpll_ptp_gettimex64(9)zl3073x_dpll_ptp_settime64(9)zl3073x_dpll_ptp_adjtime_phase_step(9)zl3073x_dpll_ptp_adjtime(9)zl3073x_dpll_ptp_adjphase(9)zl3073x_dpll_ptp_register(9)zl3073x_dpll_ptp_unregister(9)zl3073x_dpll_ref_sync_pair_register(9)zl3073x_dpll_ref_sync_pairs_register(9)zl3073x_dpll_alloc(9)zl3073x_dpll_free(9)zl3073x_dpll_register(9)zl3073x_dpll_unregister(9)
okay that's the whole page bestie, go forth and adjust those frequencies πβ¨
sign-off szn: this masterpiece lives in ./drivers/dpll/zl3073x, dated October 2026, and it's page zl3073x_dpll_ptp_adjfine(9) of the Kernel API Manual π bye pookie, drink water, and may all your returns be 0 π«Άπ
π¦ 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