STRUCT RMI_GPIO_DATA(9)

📦 version 7.3.1, in nixpkgs unstable

💅 struct rmi_gpio_data(9) — Kernel API Manual

okay so bestie, welcome to struct rmi_gpio_data 💖 this is a lil struct that lets you override the defaults for a single F30/F3A GPIOs/LED chip. literally one chip, one override, no cap. it's giving "small but mighty" energy.

Here's what each field is actually for, because the details matter, bestie:

  • buttonpad — the touchpad is a buttonpad, so enable only the first actual button that is found 🎀
  • trackstick_buttons — set when the function 30 or 3a is handling the physical buttons of the trackstick (as a PS/2 passthrough device) 🦋
  • disable — the touchpad incorrectly reports F30/F3A and it should be ignored. this one is a special case which is due to misconfigured firmware 🙈

✨ SYNOPSIS ✨

struct rmi_gpio_data {
    bool buttonpad;
    bool trackstick_buttons;
    bool disable;
 };

🌸 Members 🌸

  • bool buttonpad — flag it when the touchpad is a buttonpad, so only the first actual button found gets enabled 💅
  • bool trackstick_buttons — set it when function 30 or 3a is handling the physical buttons of the trackstick (as a PS/2 passthrough device) ⭐
  • bool disable — the touchpad incorrectly reports F30/F3A and should be ignored; a special case due to misconfigured firmware 🫶
no cap: disable is a workaround for misconfigured firmware, not a normal vibe. don't reach for it unless the chip is genuinely lying to you 💀

🔥 SEE ALSO 🔥

Kernel file ./include/linux/rmi.h:

  • struct rmi_2d_axis_alignment(9)
  • struct rmi_f01_power_management(9)
  • struct rmi_device_platform_data_spi(9)
  • struct rmi_device_platform_data(9)
  • struct rmi_function_descriptor(9)
  • struct rmi_transport_dev(9)
  • struct rmi_transport_ops(9)
  • struct rmi_driver(9)
  • struct rmi_device(9)

and that's the whole page, bestie 🌈 this one lives in ./include/linux, dated October 2026 — go read the headers, they ate 💜 👑

📦 where this page comes from