STRUCT LPC_DRIVER_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct lpc_driver_data(9) β€” from the Kernel API Manual, bestie

okay so welcome to the glow-up of struct lpc_driver_data(9), a page straight out of the Kernel API Manual. she's small, she's specific, and she's carrying the whole hardware-quirk situation on her back. let's get into it ✨


🌸 NAME 🌸

struct lpc_driver_data β€” the driver data that gets attached to a DMI device ID so the kernel can flag hardware quirks. it's giving "notes app but for silicon" πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct lpc_driver_data {
    u32 quirks;
    u16 quirk_mmio_memory_base;
    const char *quirk_acpi_id;
    const char *quirk_aml_mutex_name;
 };

look at her. four fields. no notes. πŸ‘‘


✨ Members ✨

  • quirks β€” a bitfield, bestie, and it's composed of quirks from CROS_EC_LPC_QUIRK_*. think of it as a little mood board of everything weird your hardware does πŸŽ€
  • quirk_mmio_memory_base β€” the first I/O port addressing EC mapped memory. it's only in the picture when the quirk ...REMAP_MEMORY is set, so don't come for her if she's chilling at zero otherwise πŸ™ˆ
  • quirk_acpi_id β€” an ACPI HID, and its whole job is being used to find the ACPI device. lowkey a little detective πŸ”
  • quirk_aml_mutex_name β€” the name of an AML mutex, and yes it's used to protect access to the Microchip EC. she's the bodyguard of the group chat 🫢

πŸ’œ SEE ALSO πŸ’œ

  • the kernel file ./drivers/platform/chrome/cros_ec_lpc.c
  • struct cros_ec_lpc(9) β€” her bestie, obviously, go read that one next πŸ“–

ngl this struct is tiny but she's doing so much work. respect the quirk fields, they're carrying the compatibility of an entire EC fr fr πŸ”₯

and that's the page!! slay πŸ’– this one lives under ./drivers/platform/chrome, dated October 2026, and it's filed as struct lpc_driver_data(9). mwah, go touch some hardware (carefully) β­πŸŒˆπŸ“

πŸ“¦ where this page comes from