LM75(4)

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

✨ LM75(4) ✨

bestie,,, it's the lm75 i2c digital temperature sensor driver manual page and it's literally about to eat πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

device iic
device iicbus
device lm75

πŸ’– DESCRIPTION πŸ’–

okay so the lm75 driver lowkey gives you access to all the sensor data and configuration over the iicbus(4). it's giving very much "easy and simple way to check the functionality of an i2c bus" because you get read AND write access to the lm75 configuration register 🫢

the way you access all the lm75 data is via the sysctl(8) interface, and here's what that looks like, no cap:

dev.lm75.0.%desc: LM75 temperature sensor
dev.lm75.0.%driver: lm75
dev.lm75.0.%location: addr=0x49
dev.lm75.0.%pnpinfo: name=lm750 compat=national,lm75
dev.lm75.0.%parent: iicbus3
dev.lm75.0.temperature: 27.1C
dev.lm75.0.thyst: 75.0C
dev.lm75.0.tos: 80.0C
dev.lm75.0.faults: 1
dev.lm75.0.mode: comparator
dev.lm75.0.polarity: active-low
dev.lm75.0.shutdown: 0

so iconic, right? now let's break down every single one:

  • dev.lm75.%d.temperature β€” this is the read-only value of the current temperature read by the sensor. it's literally just the temp, periodt 🌑️
  • dev.lm75.%d.thyst β€” sets the hysteresis temperature. once the temperature gets over the overtemperature shutdown value (tos), it needs to drop below the hysteresis temperature to disable the output (interrupt) pin again. so it's like the "chill out" threshold bestie πŸ’…
  • dev.lm75.%d.tos β€” sets the overtemperature shutdown value. once the temperature gets over this value the output pin will be enabled. the way the output (interrupt) pin works depends on the mode configuration πŸ”₯
  • dev.lm75.%d.faults β€” is the number of faults that must occur consecutively to activate the interrupt (output) pin. it can be set to 1, 2, 4, and 6. so like, how many strikes before it actually does something, iykyk πŸ’€
  • dev.lm75.%d.mode β€” sets the operation mode for the sensor interrupt pin. it can be set to 'comparator' (default) or 'interrupt' ⭐
  • dev.lm75.%d.polarity β€” sets the polarity of the sensor interrupt pin. it can be set to 'active-low' (default) or 'active-high'. please note that the output pin is an open-drain output and it needs a proper pull-up resistor to work. that's a whole technical vibe check right there πŸ™ˆ
  • dev.lm75.%d.shutdown β€” when set to '1' it shuts down the sensor. the temperature conversion stops but the sensor remains with its i2c bus active, i.e., it can be woken up by setting this option to '0' again. so it's not like, dead-dead, it's just sleeping πŸ’€

please check the lm75 datasheet for more details bestie, fr fr πŸ“–

when used together with snmp_lm75(3) it allows the monitoring of lm75 temperature data over SNMP. that's the crossover episode πŸ‘‘


🌈 the resolution models 🌈

the lm75 driver supports both the low and the high resolution models. it's giving versatility ✨

  • the low resolution model (lm75) provides a 9 bit output with the LSB representing 0.5C πŸ’–
  • the high resolution model (lm75a) provides an 11 bit output with the LSB representing 0.125C πŸ¦‹

the driver tries to auto-detect the lm75 model, but the detection of some lm75 clones may not work reliably. so like, it's trying its best but some clones are just messy 😭


🧚 device.hints vibes 🧚

on a device.hints(5) based system, such as MIPS, these values are configurable for lm75:

  • hint.lm75.%d.at β€” is the iicbus(4) you are attaching to πŸŽ€
  • hint.lm75.%d.addr β€” is the lm75 i2c address on the iicbus(4) πŸŽ€

πŸ¦‹ FDT(4) based systems, like ARM πŸ¦‹

on a FDT(4) based system, such as ARM, the DTS part for a lm75 device usually looks like:

i2c {
        /* Properties describing the controller appear here. */
        ...
        lm750@49 {
                compatible = "national,lm75";
                reg = <0x49>;
        };
};

where:

  • compatible β€” should always be set to "national,lm75" πŸ’œ
  • reg β€” indicates which 7-bit i2c address the lm75 is wired at. lm75 temperature sensors can be wired to 8 different addresses, allowing up to 8 sensors on the same iicbus(4). so you can stack 'em, slay πŸ’…βœ¨

πŸ‘€ SEE ALSO πŸ‘€

snmp_lm75(3), fdt(4), iic(4), iicbus(4), sysctl(8)


πŸ“œ HISTORY πŸ“œ

the lm75 driver first appeared in FreeBSD 11.0. a whole era 🫢


πŸ‘‘ AUTHORS πŸ‘‘

the lm75 driver and this manual page were written by Luiz Otavio O Souza <loos@FreeBSD.org>. legend behavior, honestly 🌟


and that's the whole page bestie! source and version are from Debian, dated December 26, 2017, and the manual is LM75(4) πŸ’– you're welcome, go check your temps and stay cool (or don't, up to your tos setting) πŸŒ‘οΈβœ¨πŸ’…

πŸ“¦ where this page comes from