The upcoming Linux 6.2 kernel will include new features for ChromeOS, Google’s operating system for Chromebooks. One of the key new features is a driver for the ChromeOS Human Presence Sensor (HPS), which is used for detecting when one or more humans are present in front of a Chromebook.

Linux 6.2 Adding Driver for Google’s ChromeOS Human Presence Sensor

The Linux 6.2 kernel is set to include a new driver for Google’s ChromeOS Human Presence Sensor (HPS), which is used for detecting when one or more humans are present in front of a Chromebook. The cros_hps_i2c driver will be mainlined in the Linux 6.2 kernel to support the HPS, which is found on newer Chromebooks.

Google ChromeOS

The driver doesn’t report on the presence of humans, but user-space interfacing with the sensor can be done through an exposed character device. The HPS is used for a variety of purposes, such as adaptive backlight handling and deferring the screensaver. The patch-set from Google explains the new driver and its capabilities:

“This patch introduces a driver for the ChromeOS human presence sensor (aka. HPS). The driver supports a sensor connected to the I2C bus and identified as “GOOG0020” in the ACPI tables. 

When loaded, the driver exports the sensor to userspace through a character device. This device only supports power management, i.e., communication with the sensor must be done through regular I2C transmissions from userspace. 

Power management is implemented by enabling the respective power GPIO while at least one userspace process holds an open fd on the character device. By default, the device is powered down if there are no active clients.”

Privacy-conscious users can rest easy knowing that the hardware firmware for the HPS is open-source. The firmware, I2C protocol, and other technical documentation can be found on GoogleSource.com. The new driver was sent in as part of the Chrome platform updates for the Linux 6.2 merge window. In addition to the new HPS driver, other updates in the pull request include setting PROBE_PREFER_ASYNCHRONOUS for more ChromeOS drivers to speed up boot times for Chromebooks.

RELATED:

(via)