STRUCT TOUCHPAD_INFO_PROTOCOL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct touchpad_info_protocol(9) β€” the kernel API manual, bestie edition

okay so welcome to section 9 of the Kernel API Manual, and today's main character is struct touchpad_info_protocol πŸŽ€ this is literally the touchpad info response β€” like, the reply you get back when you ask a touchpad "hey bestie who are you". and it comes with receipts: message.type = 0x1020 and message.length = 0x006e. no cap, those exact numbers, memorize them πŸ’…


✨ SYNOPSIS ✨

here's the whole glow-up, verbatim, don't @ me:

struct touchpad_info_protocol {
    u8 unknown1[105];
    u8 model_flags;
    u8 model_no;
    u8 unknown2[3];
    __le16 crc16;
};

it's giving "mostly vibes, a little data" and honestly? iconic πŸ¦‹


🌸 MEMBERS 🌸

  • unknown1 β€” unknown πŸ™ˆ yeah that's it. that's the whole description. 105 bytes of beautiful mystery, we simply don't know, and that's okay.
  • model_flags β€” the flags, which vary by model number, but whose significance is otherwise unknown 😭 so like, they exist, they do something, but the meaning is a mystery bestie. we love an enigmatic king.
  • model_no β€” the touchpad model number πŸ‘‘ this one actually tells you something, slay.
  • unknown2 β€” unknown again πŸ’€ three more bytes of "we don't know her". not me pointing at unlabeled bytes like "she's mysterious".
  • crc16 β€” the crc over the whole message struct, and by whole we mean message header + this struct, minus this crc16 field itself. so it checks everything except itself, which is lowkey the most relatable thing in this entire struct. check your friends, not yourself ✨

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, fr fr, they're all in the Kernel file ./drivers/input/keyboard/applespi.c:

  • struct keyboard_protocol(9)
  • struct tp_finger(9)
  • struct touchpad_protocol(9)
  • struct command_protocol_tp_info(9)
  • struct command_protocol_mt_init(9)
  • struct command_protocol_capsl(9)
  • struct command_protocol_bl(9)
  • struct message(9)
  • struct spi_packet(9)

a whole friend group honestly, they all hang out together 🌈


ngl the theme here is "we documented the layout and left the semantics as an exercise for the reader" β€” that's not a bug, that's just what the original says, and we respect it 🫢

okay that's the page!! πŸ’– brought to you from ./drivers/input/keyboard, dated October 2026, and yes the header and footer both still say struct touc...nfo_protocol(9) because truncation is camp actually ✨ bye bestie, go read your structs πŸŽ€

πŸ“¦ where this page comes from