STRUCT I3C_CCC_DEV_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct i3c_ccc_dev_desc(9) ✨

okay so bestie, welcome to the Kernel API Manual β€” this one's all about struct i3c_ccc_dev_desc, and it's literally the glow-up blueprint for I3C/I2C device descriptors used for DEFSLVS. πŸ’…


πŸŽ€ NAME πŸŽ€

struct i3c_ccc_dev_desc β€” the I3C/I2C device descriptor that gets used for DEFSLVS. no cap, that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

struct i3c_ccc_dev_desc {
    u8 dyn_addr;
    union {
      u8 dcr;
      u8 lvr;
    };
    u8 bcr;
    u8 static_addr;
 };

πŸ’– Members πŸ’–

here's the cast, main character energy only:

  • dyn_addr β€” the dynamic address that got assigned to the I3C slave. and if this entry is describing an I2C slave? it's just 0. zero. nothing. bye. πŸ‘‹
  • {unnamed_union} β€” the anonymous union. she has no name but she's still iconic. 🫢
  • dcr β€” the DCR value. quick note: this one is not applicable to entries that describe I2C devices. so don't come for her when she's not invited. πŸ™ˆ
  • lvr β€” the LVR value. and same deal flipped: not applicable to entries describing I3C devices. iykyk. ✨
  • bcr β€” the BCR value, or 0 if this entry is describing an I2C slave. take notes bestie πŸ“
  • static_addr β€” the static address, or 0 if the device flat-out doesn't have a static address. simple as that πŸ’€

🌸 Description 🌸

so the DEFSLVS command is supposed to be passed an array of i3c_ccc_dev_desc descriptors β€” literally one entry per I3C/I2C dev that the master controls. that's it. that's the assignment. slay. πŸ‘‘


πŸ”₯ SEE ALSO πŸ”₯

go read these next, bestie, they're all in Kernel file ./include/linux/i3c/ccc.h:

  • struct i3c_ccc_events(9)
  • struct i3c_ccc_mwl(9)
  • struct i3c_ccc_mrl(9)
  • struct i3c_ccc_defslvs(9)
  • enum i3c_ccc_test_mode(9)
  • struct i3c_ccc_enttm(9)
  • struct i3c_ccc_setda(9)
  • struct i3c_ccc_getpid(9)
  • struct i3c_ccc_getbcr(9)
  • struct i3c_ccc_getdcr(9)
  • struct i3c_ccc_getstatus(9)
  • struct i3c_ccc_getaccmst(9)
  • struct i3c_ccc_bridged_slave_desc(9)
  • struct i3c_ccc_setbrgtgt(9)
  • enum i3c_sdr_max_data_rate(9)
  • enum i3c_tsco(9)
  • struct i3c_ccc_getmxds(9)
  • struct i3c_ccc_gethdrcap(9)
  • enum i3c_ccc_setxtime_subcmd(9)
  • struct i3c_ccc_setxtime(9)
  • struct i3c_ccc_getxtime(9)
  • struct i3c_ccc_cmd_payload(9)
  • struct i3c_ccc_cmd_dest(9)
  • struct i3c_ccc_cmd(9)

and that's the whole page, bestie!! πŸŽ€βœ¨ huge shoutout to the source ./include/linux/i3c, dated October 2026 β€” literally carrying this entire doc on her back πŸ’œπŸ¦‹ mwah, see u in the next manpage 🫢

πŸ“¦ where this page comes from