zl3073x_chan_tod_read(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ zl3073x_chan_tod_read(9) β€” from the Kernel API Manual, bestie ✨

Okay so picture this: you're deep in the kernel, you've just fired off a command, and now you need the Time-of-Day registers back. That's literally this function. It's zl3073x_chan_tod_read, and it reads the ToD registers after you've issued a command. Slay. πŸŽ€


🌸 NAME 🌸

zl3073x_chan_tod_read β€” read ToD registers after issuing a command, no cap 🫢


✨ SYNOPSIS ✨

int zl3073x_chan_tod_read (struct zl3073x_dev *zldev , u8 ch , bool
next_hz , struct timespec64 *ts , struct ptp_system_timestamp *sts );

That's the whole vibe check right there β€” one int coming back at you, five args going in. πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • zldev β€” pointer to zl3073x device. Your main character struct, the whole reason we're here πŸ’–
  • ch β€” DPLL channel index. Which channel we're doing this for, u8 style ✨
  • next_hz β€” if true, read the predicted ToD at next 1 Hz; otherwise read current. Pick your timeline, bestie ⏰
  • ts β€” timespec to store the result. This is where the answer lands πŸŽ€
  • sts β€” optional system timestamp pair for cross-timestamping. Optional! So you can totally pass nothing here πŸ™ˆ

πŸ”₯ CONTEXT πŸ”₯

Heads up, this one's on you: the caller must serialize all zl3073x_chan_tod_* calls externally. Like, all of them. Every single one. No sneaky parallel calls, okay? 😭

⭐ RETURN ⭐

  • 0 on success πŸŽ‰
  • <0 on error πŸ’€

🌈 SEE ALSO 🌈

Kernel file ./drivers/dpll/zl3073x/chan.c, plus the whole friend group:


And that's the page, bestie 🧚 This gem lives under ./drivers/dpll/zl3073x, stamped October 2026 β€” go forth and cross-timestamp responsibly πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from