ISL(4)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’… ISL(4) β€” like, the Intersil(TM) I2C ISL29018 sensor driver, bestie

okay so you're in section 4 of the Kernel Interfaces Manual and we're talking about isl, the Intersil(TM) I2C ISL29018 sensor driver. she's a little light-sniffing icon and I'm obsessed πŸ¦‹


✨ NAME ✨

isl β€” the Intersil(TM) I2C ISL29018 sensor driver. that's her. that's the whole name. periodt πŸ’…


🌸 SYNOPSIS 🌸

so if you wanna compile this driver into the kernel (main character energy, no modules), you drop these lines into your kernel configuration file:

device isl
device ig4
device iicbus

or, if you'd rather load her as a module at boot time (lowkey easier ngl), you put these in loader.conf(5):

isl_load="YES"
ig4_load="YES"

and ok, on many Chromebook models this driver can be automatically configured with a little help from the chromebook_platform(4) driver β€” slay. alternatively, you can manually configure the isl driver in /boot/device.hints:

hint.isl.0.at="iicbus0"
hint.isl.0.addr="0x88"
hint.isl.1.at="iicbus1"
hint.isl.1.addr="0x88"

πŸ’– DESCRIPTION πŸ’–

so the isl driver gives you access to sensor data from the Intersil(TM) I2C ISL29018 Digital Ambient Light Sensor and Proximity Sensor with Interrupt Function (yes that's the full government name πŸ’€). the functionality is basic and it's provided through the sysctl(8) interface.

on a system using device.hints(5), these values are configurable for isl:

  • hint.isl.%d.at β€” the target iicbus(4).
  • hint.isl.%d.addr β€” the isl i2c address on the iicbus(4).

πŸŽ€ SYSCTL VARIABLES πŸŽ€

these sysctl(8) variables are available, and honestly? collecting them is my new hobby:

  • dev.isl.X.als β€” the current ALS (Ambient Light Sensor) readout.
  • dev.isl.X.ir β€” the current IR (InfraRed) sensor readout.
  • dev.isl.X.prox β€” the current proximity sensor readout.
  • dev.isl.X.resolution β€” the current sensor resolution.
  • dev.isl.X.range β€” the current sensor range.

πŸ¦‹ EXAMPLES πŸ¦‹

🌈 Ambient light sensor read out

literally just:

$ sysctl dev.isl.0.als
dev.isl.0.als: 64

sixty-four. iconic. no notes. ✨

🌸 Automatically adjust brightness

ok so this one requires the port graphics/intel-backlight and only works with laptops using a supported Intel(R) GPU β€” important caveat bestie, don't come for me πŸ™ˆ

$ pkg install intel-backlight
$ sh /usr/local/share/examples/intel-backlight/isl_backlight.sh

πŸ‘‘ SEE ALSO πŸ‘‘

chromebook_platform(4), ig4(4), iicbus(4) β€” go read them, iykyk 🫢


πŸ’œ AUTHORS πŸ’œ

the isl driver was written by Michael Gmelin <freebsd@grem.de>.

this manual page was also written by Michael Gmelin <freebsd@grem.de>. double duty legend ⭐


πŸ’€ BUGS πŸ’€

ok so the isl driver detects the device based from the I2C address. this might have unforeseen consequences if the initialization sequence is sent to an unknown device at that address. like... ma'am. be careful out there. 🫠


and that's the whole page, bestie β€” Debian, December 18, 2018, ISL(4), mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from