STRUCT CDNS_UART(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct cdns_uart β€” device data, bestie

okay so this is the kernel API manual page for struct cdns_uart, and it's literally just the vibe of a UART device's whole personality stored in one struct. no cap. it's giving "everything you need to know about this device, in a C struct" ✨


✨ NAME ✨

struct cdns_uart β€” device data πŸŽ€

like… it's the device data. the whole thing. that's the assignment and it ate.


🌸 SYNOPSIS 🌸

struct cdns_uart {
    struct uart_port        *port;
    struct clk              *uartclk;
    struct clk              *pclk;
    unsigned int            baud;
    struct notifier_block   clk_rate_change_nb;
    u32 quirks;
    bool cts_override;
    struct gpio_desc        *gpiod_rts;
    bool rs485_tx_started;
    struct hrtimer          tx_timer;
    struct reset_control    *rstc;
 };

copy it exactly, character for character, please and thank you 🫢 this is not the place to freestyle.


πŸ¦‹ Members πŸ¦‹

okay bestie, field-by-field tour, let's go πŸ’…

  • port β€” pointer to the UART port. iconic. the main character of the struct fr fr.
  • uartclk β€” the reference clock. the clock the whole thing looks up to 🌈
  • pclk β€” the APB clock. second clock, equally valid, we stan both ⭐
  • baud β€” the current baud rate. it's an unsigned int, it's the number, it's the speed, periodt.
  • clk_rate_change_nb β€” notifier block for clock changes. it's literally the "hey bestie, the clock changed" messenger πŸ”₯
  • quirks β€” flags for RXBS support. yes it's spelled "quirks". no we're not changing it. it's quirky like that πŸ™ˆ
  • cts_override β€” modem control state override. a bool. it overrides. that's the whole job.
  • gpiod_rts β€” pointer to the gpio descriptor. a whole struct gpio_desc *, living its best life πŸ’–
  • rs485_tx_started β€” RS485 tx state. also a bool, also keeping track of whether tx has started, as one does.
  • tx_timer β€” timer for tx. a struct hrtimer, because tx needs its own little clock moment ⏰
  • rstc β€” pointer to the reset control. holding the reset destiny of the whole device 😭

no field left behind. every single one is on the list. we don't skip members in this house 🧚


πŸ‘‘ SEE ALSO πŸ‘‘

the kernel file is ./drivers/tty/serial/xilinx_uartps.c β€” remember that, it's the home base 🏠

and now, the entire friend group, in order, no one gets cut from the group chat:

thirty-four references, all accounted for, and honestly? reading them all is the vibe check you need before touching this driver πŸ’€βœ¨


lowkey important: this page is part of the Kernel API Manual, from the ./drivers/tty/serial section, dated October 2026, and it's titled struct cdns_uart(9). that's the lore. πŸ’œ

anyway bestie that's the whole page β€” device data, every member named, every function referenced, nothing dropped. slay, go read the source, mwah πŸ“πŸ’–

πŸ“¦ where this page comes from