STRUCT RMI_F01_POWER_MANAGEMENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct rmi_f01_power_management(9) 🌸

okay bestie, welcome to the Kernel API Manual ✨ this one's a lil struct page and it's honestly kinda iconic β€” it's all about when your touch sensor is allowed to chill out and nap 😴


πŸ’– NAME πŸ’–

struct rmi_f01_power_management β€” so here's the tea πŸ«–: when any of these values are non-zero, they get written straight to the touch sensor to override the default firmware settings. yep, you're the main character now, you're overruling the firmware πŸ’…

and like, if you wanna know what each individual field actually does in excruciating detail, go read the corresponding documentation in the RMI4 specification β€” that's where the lore lives πŸ“–βœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

struct rmi_f01_power_management {
    enum rmi_reg_state nosleep;
    u8 wakeup_threshold;
    u8 doze_holdoff;
    u8 doze_interval;
 };

like, look at her. four fields. no notes. πŸ”₯


πŸŽ€ Members πŸŽ€

  • nosleep
  • wakeup_threshold
  • doze_holdoff
  • doze_interval

(descriptions below, bestie, don't worry πŸ’œ)


⭐ Description ⭐

  • nosleep β€” this one's the vibe check for napping πŸ›Œ it says whether the device is even permitted to sleep or doze β€” and yes, doze means "enter a temporary low power state" β€” when there are no fingers touching the sensor. so like, no fingers, no nap? that's nosleep's whole thing.
  • wakeup_threshold β€” controls the capacitance threshold at which the touch sensor decides "okay bestie, time to wake up from that low power state" ⏰ like the exact amount of capacitance that gets it out of bed.
  • doze_holdoff β€” controls how long the touch sensor waits after the last finger lifts before it goes into the doze state 😴 and the units are 100ms, so do the math, don't just guess.
  • doze_interval β€” controls the interval between checks for finger presence while the touch sensor is in doze mode πŸ‘€ and these units are 10ms. she's checking. constantly. respectfully.

🌈 SEE ALSO 🌈

kernel file ./include/linux/rmi.h, plus these absolute legends:

  • struct rmi_2d_axis_alignment(9)
  • struct rmi_gpio_data(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)

πŸ’€ reminder that these only take effect when they're non-zero β€” zero means the firmware keeps its default settings, no override, no drama.

and that's the whole page, bestie 🫢 sourced from ./include/linux, dated October 2026, and yeah the footer tried to write the title again β€” we don't need that energy twice πŸ’– go forth and configure your touch sensor's napping schedule, you've got this πŸ‘‘βœ¨

πŸ“¦ where this page comes from