I'm working on an battery operated device that has a number of custom peripheral drivers. I would like my system to gracefully lower power consumption as the battery is low by informing the device drivers of the battery level so they can determine how best to reduce power consumption. For example the backlight may dim, various indicator LEDs might be turned off, optional sensors may be disabled, radio power turned down, change CPU governor etc.
A userspace program that monitors battery level and then communicates the level back to the drivers via sysfs calls appears to be one way to do this . Hacking the kernel to have internal callbacks would work as well. But my question is: is there a standard kernel mechanism designed for handling low power?